:root{--red:#de2826;--red-dark:#b91f1d;--charcoal:#2d2926;--ink:#252a3a;--muted:#6b7280;--line:#dedbd7;--paper:#f6f5f3;--white:#fff;--green:#367a58;--amber:#a45a05;--shadow:0 14px 38px rgba(45,41,38,.09)}
*{box-sizing:border-box}html{font-family:Inter,Aptos,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper)}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}.hidden{display:none!important}.muted{color:var(--muted)}.eyebrow{margin:0 0 .35rem;font-size:.75rem;font-weight:900;letter-spacing:.2em}.red-text{color:var(--red)}h1,h2,p{margin-top:0}h1{margin-bottom:.35rem}h2{margin-bottom:.65rem;font-size:1.18rem}.login-screen{min-height:100vh;display:grid;place-items:center;padding:2rem;background:radial-gradient(circle at 75% 20%,rgba(222,40,38,.2),transparent 30%),linear-gradient(135deg,#171615,#302824)}.login-card{width:min(430px,100%);background:white;border-radius:22px;padding:2.2rem;box-shadow:0 30px 90px rgba(0,0,0,.32)}.login-card h1{font-size:2rem}.login-brand{margin-bottom:2rem}.brand-lockup{display:flex;align-items:center;gap:.9rem}.brand-lockup img{width:58px;height:58px;object-fit:contain;background:#211f1e;border-radius:14px}.brand-lockup strong{display:block;font-size:1.65rem;line-height:1}.brand-lockup span{display:block;margin-top:.45rem;color:#c8b8aa;font-size:.72rem;font-weight:800;letter-spacing:.18em}.stack{display:grid;gap:1rem}.stack.compact{margin-top:1.3rem}.stack label,.form-grid label{display:grid;gap:.4rem;font-size:.78rem;font-weight:800;color:#4b5563}input,select,textarea{width:100%;border:1px solid #ccd1da;border-radius:9px;padding:.72rem .8rem;background:white;color:var(--ink)}textarea{min-height:82px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(222,40,38,.13);border-color:var(--red)}.form-error{min-height:1rem;margin:0;color:#b91c1c;font-size:.8rem;font-weight:700}.form-message{font-weight:800}.button{border:0;border-radius:10px;padding:.72rem 1rem;font-weight:900;cursor:pointer;transition:.15s transform,.15s opacity}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button.primary{background:var(--red);color:white}.button.neutral{background:#fff;color:var(--charcoal);border:1px solid #cfcac5}.button.ghost{background:transparent;color:white;border:1px solid rgba(255,255,255,.25)}.button.small{padding:.5rem .75rem;font-size:.75rem}.button.full{width:100%}.hero{background:linear-gradient(120deg,#1d1c1b 0%,#2d2926 58%,#47302d 100%);color:white;border-top:5px solid var(--red);padding:1.8rem clamp(1rem,4vw,4rem)}.hero-top{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(440px,1.8fr) minmax(180px,.6fr);gap:2.2rem;align-items:center}.portal-title{border-left:1px solid rgba(255,255,255,.25);padding-left:2.2rem}.portal-title h1{font-size:clamp(1.5rem,2.5vw,2.45rem)}.portal-title>p:last-child{margin:0;color:#d7c7bb}.user-panel{text-align:right}.user-panel strong,.user-panel span{display:block}.user-panel span{margin:.35rem 0 .8rem;color:#d7c7bb;font-size:.78rem}.nav-tabs{display:flex;gap:.3rem;padding:.75rem clamp(1rem,4vw,4rem);background:white;border-bottom:1px solid var(--line);overflow:auto;position:sticky;top:0;z-index:20}.nav-button{white-space:nowrap;border:0;background:transparent;padding:.8rem 1rem;border-radius:10px;font-weight:900;color:#64748b;cursor:pointer}.nav-button.active{background:var(--charcoal);color:white;box-shadow:inset 0 -3px var(--red)}main{padding:1.6rem clamp(1rem,4vw,4rem) 4rem}.tab{display:none}.tab.active{display:block}.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(155px,1fr));gap:1rem;margin-bottom:1rem}.kpi{background:white;border:1px solid var(--line);border-radius:16px;padding:1.25rem;box-shadow:var(--shadow)}.kpi span{display:block;color:#8b95ab;font-size:.72rem;font-weight:900;letter-spacing:.08em}.kpi strong{display:block;margin-top:.7rem;font-size:clamp(1.2rem,2vw,1.8rem)}.kpi.red strong{color:var(--red)}.kpi.green strong{color:var(--green)}.kpi.amber strong{color:var(--amber)}.dashboard-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1rem;margin-bottom:1rem}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:1.35rem;box-shadow:var(--shadow);margin-bottom:1rem}.panel-title,.toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.toolbar-actions,.filters{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.toolbar-actions input,.filters input{min-width:280px}.filters{padding:1rem 0}.filters select{max-width:220px}.pill{display:inline-flex;align-items:center;border-radius:999px;background:#f2efec;padding:.48rem .75rem;font-weight:900;font-size:.78rem}.table-wrap{overflow:auto;border:1px solid #e2dfdc;border-radius:12px}.table-wrap.wide{max-height:62vh}table{width:100%;border-collapse:collapse;min-width:900px}th{position:sticky;top:0;background:#252b3c;color:white;text-align:left;font-size:.75rem;padding:.85rem;white-space:nowrap}td{padding:.78rem .85rem;border-bottom:1px solid #ece9e6;font-size:.78rem;vertical-align:top}tbody tr:hover{background:#fbf6f5}.money{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.status{display:inline-block;border-radius:999px;padding:.3rem .55rem;background:#f1f3f5;font-size:.68rem;font-weight:900}.status.paid,.status.approved,.status.ready{background:#dcf5e6;color:#22623f}.status.pending,.status.partially{background:#fff1cf;color:#8a5300}.status.rejected,.status.not-paid{background:#fee4e2;color:#a52320}.row-actions{display:flex;gap:.35rem;white-space:nowrap}.row-actions button{border:0;background:#f1f3f5;border-radius:7px;padding:.35rem .55rem;font-size:.68rem;font-weight:900;cursor:pointer}.empty-state{padding:1.5rem;text-align:center;color:#8992a5}.bar-chart{display:flex;align-items:flex-end;gap:.7rem;height:255px;padding:1rem 0 0}.bar-chart .bar-group{flex:1;min-width:42px;display:grid;grid-template-rows:1fr auto;gap:.4rem;height:100%;text-align:center}.bars{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:100%;border-bottom:1px solid #ddd}.bar{width:14px;min-height:2px;border-radius:4px 4px 0 0;background:var(--red)}.bar.paid{background:var(--green)}.bar-label{font-size:.65rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-list{display:grid;gap:.65rem}.rank-row{display:grid;grid-template-columns:1fr auto;gap:.7rem;padding:.75rem;border-radius:10px;background:#f7f6f4}.rank-row b{display:block}.rank-row span{font-size:.72rem;color:var(--muted)}.preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:1rem 0}.preview-card{padding:1rem;border-radius:12px;background:#f5f4f2}.preview-card span{display:block;font-size:.7rem;font-weight:900;color:#7b8498}.preview-card strong{display:block;margin-top:.35rem;font-size:1.4rem}.import-error{padding:.7rem;border-left:4px solid var(--red);background:#fff3f2;margin:.4rem 0;font-size:.76rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-grid.three{grid-template-columns:repeat(3,1fr)}.span-2{grid-column:span 2}.span-3{grid-column:span 3}dialog{border:0;border-radius:18px;padding:0;width:min(800px,calc(100% - 2rem));box-shadow:0 25px 80px rgba(0,0,0,.32)}dialog::backdrop{background:rgba(15,18,25,.65);backdrop-filter:blur(4px)}.dialog-card{padding:1.4rem}.dialog-card.large{width:100%}.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem}.dialog-head{margin-bottom:1.2rem}.dialog-actions{justify-content:flex-end;border-top:1px solid #e5e1de;padding-top:1rem;margin-top:1rem}.icon-button{border:0;background:#f1f3f5;border-radius:8px;width:36px;height:36px;font-size:1.4rem;cursor:pointer}.toast{position:fixed;right:1.2rem;bottom:1.2rem;background:#20201f;color:white;padding:.9rem 1.1rem;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;z-index:100}.toast.show{opacity:1;transform:none}.toast.error{background:#a52320}
@media(max-width:1100px){.hero-top{grid-template-columns:1fr 1.5fr}.user-panel{grid-column:1/-1;text-align:left;display:flex;align-items:center;gap:1rem}.user-panel span{margin:0}.kpi-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:700px){.hero-top{grid-template-columns:1fr}.portal-title{border-left:0;padding-left:0}.brand-lockup strong{font-size:1.25rem}.kpi-grid{grid-template-columns:1fr 1fr}.form-grid,.form-grid.three{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.toolbar,.panel-title{align-items:flex-start;flex-direction:column}.toolbar-actions,.filters{width:100%}.toolbar-actions input,.filters input,.filters select{min-width:0;max-width:none;width:100%}.preview-grid{grid-template-columns:1fr 1fr}}
.toast.bad{background:#a52320}.text-button{border:0;background:transparent;color:#315f87;padding:.25rem .4rem;font-size:.72rem;font-weight:900;cursor:pointer}.text-button.danger,.amount-due{color:#a52320}.bar-chart{display:grid;height:auto;gap:.75rem;padding:.75rem 0}.bar-row{display:grid;grid-template-columns:110px minmax(140px,1fr) 130px;gap:.75rem;align-items:center;font-size:.72rem}.bar-row>span{font-weight:800}.bar-row>strong{text-align:right}.bar-track{position:relative;height:18px;border-radius:999px;background:#f0eeeb;overflow:hidden}.bar-track i,.bar-track b{position:absolute;inset:0 auto 0 0;display:block;border-radius:999px}.bar-track i{background:#f4b8b4}.bar-track b{background:var(--green);height:7px;top:auto;bottom:0}.rank-list>div{display:grid;grid-template-columns:28px 1fr auto;gap:.7rem;align-items:center;padding:.7rem;border-radius:10px;background:#f7f6f4}.rank-list>div>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--charcoal);color:white;font-weight:900}.rank-list p{margin:0}.rank-list small{display:block;margin-top:.2rem;color:var(--muted)}.preview-grid>div{padding:1rem;border-radius:12px;background:#f5f4f2}.preview-grid>div span{display:block;color:var(--muted);font-size:.72rem;font-weight:900}.preview-grid>div strong{display:block;font-size:1.35rem}.error-box,.success-box{padding:1rem;border-radius:10px}.error-box{background:#fff0ef;color:#92201e}.success-box{background:#e8f7ee;color:#256447}.error-box li{margin:.35rem 0}
.workspace-banner{display:flex;justify-content:space-between;gap:1.5rem;align-items:center;margin-bottom:1rem;padding:1.25rem 1.4rem;border-radius:16px;color:white;background:linear-gradient(120deg,#2d2926,#403633);box-shadow:var(--shadow)}.workspace-banner h2,.workspace-banner p{margin-bottom:.25rem}.workspace-banner .eyebrow{color:#ffaaa6}.workspace-stats{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}.workspace-stats span{min-width:125px;padding:.75rem;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.07);font-size:.72rem}.workspace-stats b{display:block;font-size:1.25rem}.reviewer-grid,.client-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}.reviewer-grid article,.client-grid article{padding:1rem;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#fff,#f8f6f4)}.reviewer-grid h3,.client-grid h3{margin:.25rem 0}.reviewer-grid span,.client-grid span{font-size:.7rem;font-weight:900;color:var(--red)}.reviewer-grid dl,.client-grid dl{display:grid;grid-template-columns:1fr auto;gap:.38rem .7rem;margin:1rem 0 0;font-size:.74rem}.reviewer-grid dt,.client-grid dt{color:var(--muted)}.reviewer-grid dd,.client-grid dd{margin:0;font-weight:900;text-align:right}.notification-list{display:grid;gap:.5rem}.notice{display:grid;gap:.2rem;text-align:left;padding:.8rem;border:1px solid #e5dfda;border-left:4px solid var(--red);border-radius:10px;background:#fff;cursor:pointer}.notice.read{opacity:.62;border-left-color:#aaa}.notice span,.notice small{font-size:.72rem;color:var(--muted)}.overdue-row{background:#fff0ef!important}.overdue-row td:first-child{border-left:4px solid var(--red)}.link-button{display:block;text-align:center;text-decoration:none}.status.changes-requested,.status.rejected{background:#fee4e2;color:#a52320}.status.submitted{background:#fff1cf;color:#8a5300}.status.approved{background:#dcf5e6;color:#22623f}.row-actions .danger{color:#a52320}.user-panel span b{color:#fff}.user-panel span #notificationBadge{display:inline;color:#ffaaa6}
@media(max-width:800px){.workspace-banner{align-items:flex-start;flex-direction:column}.workspace-stats{justify-content:flex-start}.workspace-stats span{min-width:100px}}
.document-history{margin:.8rem 0;padding:.8rem;border-radius:10px;background:#f6f5f3;max-height:220px;overflow:auto}.document-history h3{margin:0 0 .6rem}.document-history>div{display:flex;justify-content:space-between;gap:.7rem;padding:.55rem 0;border-bottom:1px solid #dedbd7}.document-history small{display:block;margin-top:.15rem;color:var(--muted)}.document-history a{text-decoration:none;align-self:center}
.engineer-hero{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:4px solid var(--red)}.engineer-hero p:last-child{margin-bottom:0}.engineer-kpis{margin-top:1rem}.engineer-grid-wrap{max-height:58vh}.engineer-table{min-width:1900px}.engineer-table th:nth-child(1){min-width:145px}.engineer-table th:nth-child(2){min-width:170px}.engineer-table th:nth-child(3){min-width:180px}.engineer-table th:nth-child(4){min-width:230px}.engineer-table th:nth-child(5){min-width:330px}.engineer-table th:nth-child(6){min-width:230px}.engineer-table td{padding:.38rem}.engineer-table input,.engineer-table select,.engineer-table textarea{border-radius:6px;padding:.52rem;font-size:.74rem}.engineer-table textarea{min-height:56px}.engineer-table input[readonly]{background:#f4f3f1;color:#6b7280}.engineer-table tr.row-error{background:#fff0ef}.mini-chart{display:grid;gap:.65rem;padding:.6rem 0}.mini-chart-row{display:grid;grid-template-columns:minmax(100px,160px) 1fr 35px;gap:.7rem;align-items:center;font-size:.76rem}.mini-chart-row span{font-weight:800}.mini-chart-row i{height:13px;border-radius:99px;background:#efedeb;overflow:hidden}.mini-chart-row i b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--red),#ef756e)}.mini-chart-row strong{text-align:right}.inline-import{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.inline-import input{max-width:460px}.engineer-table button:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:800px){.engineer-hero{align-items:flex-start;flex-direction:column}.inline-import input{max-width:none}.engineer-kpis{grid-template-columns:1fr 1fr}}
.remember-row{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:.55rem!important;cursor:pointer}.remember-row input{width:18px;height:18px;margin:0;accent-color:var(--red)}.remember-row span{font-weight:700;color:#4b5563}
.chart-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:1rem;margin-bottom:1rem}.donut-host{display:flex;align-items:center;justify-content:center;gap:1.5rem;min-height:265px;flex-wrap:wrap}.donut{width:190px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;box-shadow:inset 0 0 0 1px rgba(45,41,38,.06)}.donut:after{content:"";position:absolute;width:58%;aspect-ratio:1;border-radius:50%;background:white;box-shadow:0 0 0 1px #eee}.donut>span{position:relative;z-index:1;display:grid;text-align:center;max-width:95px}.donut>span b{font-size:.82rem;line-height:1.2}.donut>span small{color:var(--muted);margin-top:.2rem}.chart-legend{display:grid;gap:.55rem;min-width:210px}.chart-legend span{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:.45rem;font-size:.72rem}.chart-legend i{width:10px;height:10px;border-radius:3px}.chart-legend b{text-align:right}.stacked-chart{display:grid;gap:.65rem;padding:.6rem 0}.stack-row{display:grid;grid-template-columns:minmax(120px,170px) minmax(160px,1fr) 90px;gap:.7rem;align-items:center;font-size:.74rem}.stack-row>span{font-weight:800}.stack-row>div{display:flex;height:17px;background:#efedeb;border-radius:99px;overflow:hidden}.stack-row i,.stack-row b{display:block;height:100%}.stack-row i{background:var(--green)}.stack-row b{background:var(--red)}.stack-row>strong{text-align:right}.stack-legend{display:flex;justify-content:flex-end;gap:1rem;font-size:.7rem;color:var(--muted)}.stack-legend span{display:flex;align-items:center;gap:.35rem}.stack-legend i,.stack-legend b{width:12px;height:8px;display:block}.stack-legend i{background:var(--green)}.stack-legend b{background:var(--red)}.amount-positive{color:var(--green);font-weight:800}.over-budget-row{background:#fff4f2!important}.financial-readonly,select:disabled{background:#f2f0ed!important;color:#68635f!important;cursor:not-allowed}.mini-chart-row{grid-template-columns:minmax(100px,190px) 1fr minmax(55px,145px)}
@media(max-width:1100px){.chart-grid{grid-template-columns:1fr}}
.chart-legend em{font-style:normal;font-weight:800}.chart-legend em small{display:block;color:var(--muted);font-weight:900}.pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;color:var(--muted);font-size:.75rem;font-weight:800}.pagination>div{display:flex;align-items:center;gap:.75rem}.pagination button:disabled{opacity:.4;cursor:not-allowed}.reviewer-operational{padding-bottom:.8rem;border-bottom:1px solid var(--line)}.reviewer-financial{display:grid;grid-template-columns:minmax(170px,1fr) 112px;align-items:center;gap:1rem}.reviewer-grid .reviewer-financial dl{margin:.85rem 0 0}.mini-donut{width:104px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative}.mini-donut:after{content:"";position:absolute;width:66%;aspect-ratio:1;border-radius:50%;background:#fff}.mini-donut span{position:relative;z-index:1;display:grid;text-align:center}.mini-donut b{font-size:1rem}.mini-donut small{font-size:.62rem!important;color:var(--muted)!important}.user-panel{flex-wrap:wrap}.login-card .text-button{justify-self:center}.dialog-card>.muted{margin-top:0}@media(max-width:700px){.pagination{align-items:flex-start;flex-direction:column}.reviewer-financial{grid-template-columns:1fr}.mini-donut{margin:auto}}

/* V2.6 enterprise shell */
:root{
  --navy:#0d1b2e;
  --navy-2:#162a46;
  --navy-3:#23496f;
  --red:#c7352b;
  --red-dark:#a92720;
  --ink:#172033;
  --muted:#667085;
  --line:#e4e7ec;
  --paper:#f5f7fa;
  --green:#267a55;
  --amber:#a76400;
  --sidebar:264px;
  --shadow:0 10px 30px rgba(15,23,42,.06);
}
body{background:var(--paper);color:var(--ink)}
.enterprise-portal{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}
.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);z-index:60;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--navy),#0a1626);color:#fff;border-right:1px solid rgba(255,255,255,.07);box-shadow:8px 0 30px rgba(15,23,42,.08)}
.sidebar-brand{display:grid;justify-items:center;gap:.55rem;padding:1rem 1.25rem .85rem;border-top:4px solid var(--red)}
.sidebar-official-logo{position:relative;width:100%;height:128px;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#fff;box-shadow:0 9px 22px rgba(0,0,0,.2)}
.sidebar-official-logo img{position:absolute;left:50%;top:50%;width:320px;height:auto;max-width:none;transform:translate(-50%,-50%)}
.sidebar-brand>span{display:block;color:#b8c7d9;font-size:.67rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.sidebar-context{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:0 1rem .85rem;padding:.65rem .75rem;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:rgba(255,255,255,.04)}
.sidebar-context small{color:#8fa3bb;font-size:.58rem;text-align:right}
.environment-badge{display:inline-flex;align-items:center;gap:.4rem;color:#c9f3dd;font-size:.65rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.environment-badge i,.status-dot{width:7px;height:7px;border-radius:50%;background:#36b37e;box-shadow:0 0 0 3px rgba(54,179,126,.14)}
.app-sidebar .nav-tabs{position:static;display:block;flex:1;overflow-y:auto;padding:.25rem .75rem 1rem;background:transparent;border:0}
.nav-group{margin:1.05rem .65rem .35rem;color:#70859f;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.16em}
.app-sidebar .nav-button{display:flex;width:100%;align-items:center;gap:.75rem;margin:.12rem 0;padding:.7rem .75rem;border-radius:8px;color:#c6d1df;font-size:.76rem;text-align:left;transition:background .15s,color .15s,transform .15s}
.app-sidebar .nav-button:hover{background:rgba(255,255,255,.06);color:#fff;transform:translateX(2px)}
.app-sidebar .nav-button.active{background:linear-gradient(90deg,rgba(199,53,43,.95),rgba(199,53,43,.72));color:#fff;box-shadow:0 8px 18px rgba(199,53,43,.18)}
.nav-icon{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:rgba(255,255,255,.07);font-size:.84rem}
.nav-button.active .nav-icon{background:rgba(255,255,255,.16)}
.sidebar-footer{padding:1rem 1.25rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);color:#9fb1c7}
.sidebar-footer span{display:block;font-size:.56rem;font-weight:900;letter-spacing:.13em}
.sidebar-footer strong{display:block;margin-top:.2rem;color:#fff;font-size:.7rem}
.sidebar-footer>small{display:block;margin-top:.7rem;font-size:.58rem}
.app-shell{grid-column:2;min-width:0;min-height:100vh}
.app-topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:76px;padding:.8rem 1.6rem;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.topbar-title{display:flex;align-items:center;gap:.75rem;min-width:230px}
.topbar-title p{margin:0 0 .15rem;color:#7b8496;font-size:.63rem;font-weight:800}
.topbar-title h1{margin:0;color:var(--navy);font-size:1.15rem;letter-spacing:-.02em}
.global-search{display:flex;align-items:center;gap:.6rem;width:min(430px,36vw);padding:0 .75rem;border:1px solid #d7dce3;border-radius:9px;background:#f9fafb;color:#8390a4}
.global-search input{border:0;padding:.62rem 0;background:transparent;outline:0;box-shadow:none;font-size:.76rem}
.global-search input:focus{outline:0;border:0}
.topbar-actions{display:flex;align-items:center;gap:.65rem}
.topbar-icon{position:relative;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #e2e6eb;border-radius:9px;background:#fff;color:#526176;cursor:pointer}
.topbar-icon:hover{border-color:#bdc5d0;color:var(--navy)}
.topbar-icon b{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border:2px solid #fff;border-radius:99px;background:var(--red);color:#fff;font-size:.57rem}
.mobile-menu{display:none}
.app-topbar .user-panel{position:relative;display:grid;grid-template-columns:36px auto 32px;align-items:center;gap:.55rem;min-width:205px;text-align:left}
.app-topbar .user-panel>div:not(.user-menu){min-width:0}
.app-topbar .user-panel strong{display:block;max-width:135px;overflow:hidden;color:var(--navy);font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}
.app-topbar .user-panel span:not(.user-avatar){display:block;margin:.12rem 0 0;color:#7c8799;font-size:.62rem}
.user-avatar{display:grid!important;place-items:center;width:36px;height:36px;border-radius:9px;background:var(--navy);color:#fff!important;font-size:.68rem!important;font-weight:900;letter-spacing:.03em}
.user-menu{position:absolute;top:45px;right:0;z-index:90;width:180px;padding:.4rem;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.16)}
.user-menu button{display:block;width:100%;padding:.62rem .7rem;border:0;border-radius:7px;background:transparent;color:#344054;font-size:.7rem;font-weight:800;text-align:left;cursor:pointer}
.user-menu button:hover{background:#f4f6f8}
.system-strip{display:flex;justify-content:space-between;gap:1rem;padding:.48rem 1.6rem;border-bottom:1px solid #e6e9ee;background:#fbfcfd;color:#6f7a8c;font-size:.61rem;font-weight:700}
.system-strip span{display:flex;align-items:center;gap:.45rem}
.enterprise-portal main{padding:1.45rem 1.6rem 4rem}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.1rem;padding:0 .1rem}
.page-head p{max-width:720px;margin:.25rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.55}
.page-head h2{margin:0;color:var(--navy);font-size:1.35rem;letter-spacing:-.025em}
.page-head .page-label{color:var(--red);font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.page-head .page-context{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}
.page-head .page-context span{padding:.45rem .65rem;border:1px solid var(--line);border-radius:7px;background:#fff;color:#59667a;font-size:.62rem;font-weight:800}
.workspace-banner{position:relative;overflow:hidden;border:0;border-radius:12px;background:linear-gradient(115deg,var(--navy),var(--navy-2));box-shadow:0 10px 25px rgba(13,27,46,.13)}
.workspace-banner:after{content:"";position:absolute;right:-70px;top:-100px;width:260px;height:260px;border:1px solid rgba(255,255,255,.08);border-radius:50%}
.workspace-banner>*{position:relative;z-index:1}
.kpi-grid{gap:.75rem}
.kpi{position:relative;overflow:hidden;border-color:#e5e8ed;border-radius:11px;padding:1.05rem 1.1rem;box-shadow:var(--shadow)}
.kpi:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#8b96a8}
.kpi.red:before{background:var(--red)}.kpi.green:before{background:var(--green)}.kpi.amber:before{background:var(--amber)}
.kpi span{color:#7c8799;font-size:.62rem;letter-spacing:.09em}
.kpi strong{margin-top:.55rem;color:var(--navy);font-size:clamp(1.1rem,1.7vw,1.55rem)}
.panel{border-color:#e4e7ec;border-radius:12px;padding:1.1rem 1.15rem;box-shadow:var(--shadow)}
.panel h2{color:var(--navy);font-size:1rem;letter-spacing:-.015em}
.eyebrow{font-size:.61rem;letter-spacing:.16em}
.button{border-radius:8px;padding:.66rem .9rem;font-size:.72rem;box-shadow:none}
.button.primary{background:var(--red)}.button.primary:hover{background:var(--red-dark)}
input,select,textarea{border-color:#d5dae1;border-radius:8px;font-size:.76rem}
.table-wrap{border-color:#e3e6ea;border-radius:9px;background:#fff}
table{font-variant-numeric:tabular-nums}
th{background:var(--navy);padding:.73rem .75rem;font-size:.64rem;letter-spacing:.02em}
td{padding:.7rem .75rem;border-color:#edf0f2;font-size:.7rem}
tbody tr:nth-child(even){background:#fbfcfd}tbody tr:hover{background:#f5f8fb}
.status{border:1px solid transparent;font-size:.61rem}
.filters{margin-top:.65rem;padding:.75rem;border:1px solid #e5e8ec;border-radius:9px;background:#f9fafb}
.pill{border:1px solid #e3e6ea;background:#f8f9fa;font-size:.66rem}
.row-actions button{border:1px solid #e3e6ea;background:#fff;color:#425067}.row-actions button:hover{border-color:#bbc3cd;background:#f8fafc}
.rank-row,.rank-list>div,.preview-card,.preview-grid>div{background:#f8fafc}
dialog{border:1px solid rgba(255,255,255,.4);border-radius:12px}
.login-screen{background:linear-gradient(115deg,rgba(7,20,36,.98),rgba(18,43,71,.96)),radial-gradient(circle at 80% 20%,rgba(199,53,43,.35),transparent 34%)}
.login-card{border-top:4px solid var(--red);border-radius:14px;box-shadow:0 30px 90px rgba(0,0,0,.36)}
.login-card h1{color:var(--navy);letter-spacing:-.035em}
.login-card:after{content:"Protected enterprise environment • Activity is recorded";display:block;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);color:#8b95a5;font-size:.59rem;text-align:center}
@media(max-width:1150px){
  :root{--sidebar:226px}.app-topbar{padding-inline:1rem}.enterprise-portal main,.system-strip{padding-inline:1rem}.global-search{width:min(310px,30vw)}
}
@media(max-width:900px){
  .enterprise-portal{display:block}.app-shell{margin:0}.app-sidebar{transform:translateX(-102%);transition:transform .2s}.app-sidebar.open{transform:none}.mobile-menu{display:grid}.app-topbar{min-height:70px}.global-search{display:none}.topbar-title{min-width:0}.app-topbar .user-panel{min-width:auto;grid-template-columns:36px 32px}.app-topbar .user-panel>div:not(.user-menu){display:none}.topbar-actions{margin-left:auto}
}
.finance-table-wrap{max-height:58vh}.vertical-actions{align-items:flex-start;flex-direction:column}.vertical-actions small{white-space:normal}.finance-filters input{flex:1 1 280px}.finance-filters select{flex:0 1 220px}
.project-action-command{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:1.25rem 1.4rem;border-radius:14px;background:linear-gradient(120deg,#17233a,#2d3442);color:#fff}.project-action-command h2{margin-bottom:.35rem}.project-action-command p:last-child{margin:0;color:#d3d9e3}#projectActionCards{grid-template-columns:repeat(4,minmax(155px,1fr))}.project-action-table-wrap{max-height:60vh}.project-action-filters input{flex:1 1 280px}.project-action-filters select{flex:0 1 190px}.priority{display:inline-block;padding:.3rem .55rem;border-radius:99px;background:#eef1f5;font-size:.68rem;font-weight:900}.priority-high{background:#fff1cf;color:#8a5300}.priority-critical{background:#fee4e2;color:#a52320}@media(max-width:700px){.project-action-command{align-items:flex-start;flex-direction:column}.project-action-command .button{width:100%}#projectActionCards{grid-template-columns:1fr 1fr}}
.compact-detail{min-width:120px;margin-top:.35rem}.compact-detail summary{color:#9e2922;font-weight:850;cursor:pointer;white-space:nowrap}.compact-detail p{min-width:220px;max-width:360px;margin:.5rem 0 0;padding:.6rem;border-radius:7px;background:#f7f8fa;color:#344054;line-height:1.45;white-space:normal;overflow-wrap:anywhere}.compact-detail small{display:block;max-width:360px;margin-top:.35rem;white-space:normal}
@media(max-width:700px){
  .enterprise-portal main{padding:.9rem .75rem 3rem}.app-topbar{padding:.65rem .75rem}.system-strip{padding:.45rem .75rem}.system-strip span:first-child{display:none}.topbar-title h1{font-size:.95rem}.topbar-title p{display:none}.page-head{align-items:flex-start;flex-direction:column}.page-head .page-context{justify-content:flex-start}.kpi-grid{grid-template-columns:1fr 1fr}.panel{padding:.9rem}.user-menu{right:-5px}.chart-grid{grid-template-columns:1fr}
}

/* V2.7 secure corporate sign-in */
.login-screen{
  position:relative;isolation:isolate;overflow:hidden;padding:clamp(1.2rem,4vw,4rem);
  background:
    radial-gradient(circle at 50% 42%,rgba(40,68,108,.48),transparent 38%),
    linear-gradient(118deg,#071329 0%,#0d1d38 52%,#071329 100%);
}
.login-screen:before,.login-screen:after{content:"";position:absolute;z-index:-1;width:34vw;height:34vw;opacity:.24;background:repeating-linear-gradient(135deg,transparent 0 13px,rgba(134,161,196,.28) 14px 15px,transparent 16px 27px);clip-path:polygon(0 30%,100% 0,100% 100%,0 72%)}
.login-screen:before{left:-5vw;bottom:-10vw}.login-screen:after{right:-7vw;bottom:-12vw;transform:scaleX(-1)}
.login-card{width:min(600px,100%);padding:2.45rem 3.4rem 1.45rem;border:1px solid rgba(255,255,255,.72);border-top:5px solid #c8221f;border-radius:17px;background:rgba(255,255,255,.99);box-shadow:0 30px 90px rgba(0,0,0,.38)}
.login-brand{display:flex;align-items:center;gap:1.3rem;margin-bottom:2.25rem}.login-logo-crop{position:relative;display:block;flex:0 0 92px;width:92px;height:92px;margin:0!important;overflow:hidden}.login-logo-crop img{position:absolute;left:-89px;top:-33px;width:280px;height:auto;max-width:none}.login-brand-copy{min-width:0}.login-brand-copy strong{display:block;color:#0d1d38;font-size:1.58rem;line-height:1.12;letter-spacing:-.03em}.login-brand-copy>span{display:block;margin-top:.55rem;color:#738098;font-size:1rem;font-weight:600;letter-spacing:0}
.login-eyebrow{position:relative;margin-bottom:1.65rem;color:#0d1d38}.login-eyebrow:after{content:"";position:absolute;left:0;bottom:-.75rem;width:38px;height:3px;background:#cf241f}
.login-card h1{font-size:2.3rem;margin-bottom:.4rem}.login-card>.muted{font-size:.95rem;margin-bottom:1.55rem}.login-card .stack{gap:1.08rem}.login-card .stack>label:not(.remember-row){font-size:.78rem;color:#18243a}.login-card input{min-height:52px;border-color:#c9d1de;border-radius:7px}.login-card .button.primary{min-height:52px;background:linear-gradient(90deg,#b80f0d,#d62b25);box-shadow:0 7px 15px rgba(186,29,24,.18)}.login-card .text-button{color:#0b3264;font-size:.78rem}.login-security{display:flex;align-items:center;gap:.65rem;margin-top:.35rem;padding:1rem 0 .85rem;border-top:1px solid #dce1e8;color:#344054}.login-security span{display:grid;place-items:center;width:24px;height:24px;border:1px solid #9ba8b9;border-radius:50%;font-weight:900}.login-security small{font-size:.72rem}.login-card:after{margin-top:0;padding-top:.85rem;border-color:#dce1e8;color:#8792a4}
@media(max-width:700px){.login-card{padding:2rem 1.35rem 1.15rem}.login-brand{margin-bottom:1.6rem}.login-logo-crop{flex-basis:68px;width:68px;height:68px}.login-logo-crop img{left:-66px;top:-25px;width:207px}.login-brand-copy strong{font-size:1.2rem}.login-brand-copy>span{font-size:.85rem}.login-card h1{font-size:1.85rem}}

/* V2.9 controlled Engineer-to-Finance actions */
.row-highlight{animation:finance-highlight 2.2s ease both}
@keyframes finance-highlight{0%,55%{background:#fff0bf}100%{background:transparent}}
#financeActionTable td small,#engineerFinanceActionTable td small{display:inline-block;margin-top:.18rem;color:var(--muted);line-height:1.35}
#financeActionTable .status,#engineerFinanceActionTable .status{white-space:nowrap}
.engineer-grid-wrap .engineer-finance-action{min-width:108px}

/* V2.9.5 compact identity and direct-entry Engineer task register */
.sidebar-brand.sidebar-brand-compact{justify-items:start;gap:.12rem;padding:1.15rem 1.35rem 1rem;border-top:4px solid var(--red)}
.sidebar-brand-compact>strong{display:block;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:1.28rem;line-height:1.1;letter-spacing:-.02em}
.sidebar-brand-compact>span{color:#aebed1;font-size:.62rem;letter-spacing:.16em}

.engineer-grid-wrap{position:relative;max-width:100%;max-height:62vh;overflow:auto;overscroll-behavior:contain;border:1px solid #d7dde6;border-radius:11px;background:#fff}
.engineer-table{width:max-content;min-width:2075px;table-layout:fixed;border-collapse:separate;border-spacing:0}
.engineer-table th,.engineer-table td{box-sizing:border-box;background:#fff;vertical-align:middle}
.engineer-table th{position:sticky;top:0;z-index:5;background:#121c30;color:#fff;white-space:nowrap}
.engineer-table th:nth-child(1),.engineer-table td:nth-child(1){width:150px;min-width:150px;max-width:150px}
.engineer-table th:nth-child(2),.engineer-table td:nth-child(2){width:190px;min-width:190px;max-width:190px}
.engineer-table th:nth-child(3),.engineer-table td:nth-child(3){width:180px;min-width:180px;max-width:180px}
.engineer-table th:nth-child(4),.engineer-table td:nth-child(4){width:250px;min-width:250px;max-width:250px}
.engineer-table th:nth-child(5),.engineer-table td:nth-child(5){width:350px;min-width:350px;max-width:350px}
.engineer-table th:nth-child(6),.engineer-table td:nth-child(6){width:245px;min-width:245px;max-width:245px}
.engineer-table th:nth-child(7),.engineer-table td:nth-child(7){width:160px;min-width:160px;max-width:160px}
.engineer-table th:nth-child(8),.engineer-table td:nth-child(8){width:145px;min-width:145px;max-width:145px}
.engineer-table th:nth-child(9),.engineer-table td:nth-child(9){width:125px;min-width:125px;max-width:125px}
.engineer-table th:nth-child(10),.engineer-table td:nth-child(10){width:150px;min-width:150px;max-width:150px}
.engineer-table th:nth-child(11),.engineer-table td:nth-child(11){width:145px;min-width:145px;max-width:145px}
.engineer-table th:nth-child(1),.engineer-table td:nth-child(1){position:sticky;left:0;z-index:4;box-shadow:8px 0 12px -12px rgba(15,23,42,.75)}
.engineer-table th:nth-child(1){z-index:8;background:#121c30}
.engineer-table tbody tr:hover td,.engineer-table tbody tr:focus-within td{background:#f8fafc}
.engineer-table input,.engineer-table select,.engineer-table textarea{width:100%;min-width:0}
.engineer-table td:nth-child(10) input{text-align:right;font-weight:800;font-variant-numeric:tabular-nums}
.engineer-table td:nth-child(11){text-align:center}
.engineer-table.view-task{min-width:1510px}.engineer-table.view-review{min-width:1220px}.engineer-table.view-financial{min-width:1090px}.engineer-table.view-all{min-width:2075px}
.engineer-table.view-task th:nth-child(n+7):nth-child(-n+10),.engineer-table.view-task td:nth-child(n+7):nth-child(-n+10){display:none}
.engineer-table.view-review th:nth-child(4),.engineer-table.view-review td:nth-child(4),.engineer-table.view-review th:nth-child(5),.engineer-table.view-review td:nth-child(5),.engineer-table.view-review th:nth-child(9),.engineer-table.view-review td:nth-child(9),.engineer-table.view-review th:nth-child(10),.engineer-table.view-review td:nth-child(10){display:none}
.engineer-table.view-financial th:nth-child(4),.engineer-table.view-financial td:nth-child(4),.engineer-table.view-financial th:nth-child(5),.engineer-table.view-financial td:nth-child(5),.engineer-table.view-financial th:nth-child(6),.engineer-table.view-financial td:nth-child(6),.engineer-table.view-financial th:nth-child(7),.engineer-table.view-financial td:nth-child(7){display:none}
.engineer-status-select{border-left:4px solid #94a3b8!important;font-weight:900}
.engineer-status-select.is-neutral{border-left-color:#64748b!important;background:#f1f5f9!important;color:#334155!important}
.engineer-status-select.is-warning{border-left-color:#d99000!important;background:#fff5d6!important;color:#7c4a03!important}
.engineer-status-select.is-success{border-left-color:#2f7d55!important;background:#e8f6ee!important;color:#215d40!important}
.engineer-status-select.is-danger{border-left-color:#b42318!important;background:#fff0ef!important;color:#92201e!important}
.engineer-actions-cell{position:relative}.action-menu-trigger{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;width:100%;padding:.62rem .7rem;border:1px solid #ccd4df;border-radius:7px;background:#fff;color:#14213a;font-weight:850}.action-menu-trigger:hover{border-color:#9e2922;color:#9e2922;background:#fff8f7}.action-menu-trigger b{font-size:1.05rem;line-height:.7}
.task-actions-popover{position:fixed;position-area:block-end span-inline-start;inset:auto;min-width:205px;margin:.35rem 0 0;padding:.45rem;border:1px solid #d5dae2;border-radius:10px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.22)}.task-actions-popover:popover-open{display:grid;gap:.15rem}.task-actions-popover button{width:100%;padding:.7rem .8rem;border:0;border-radius:7px;background:transparent;color:#17233a;text-align:left;font:inherit;font-size:.78rem;font-weight:800}.task-actions-popover button:hover{background:#f1f4f8}.task-actions-popover button.danger{color:#a32620}.task-actions-popover button:disabled{color:#a5adba;background:transparent;opacity:1;cursor:not-allowed}
.side-drawer{width:min(520px,92vw);height:100vh;max-height:100vh;margin:0 0 0 auto;padding:0;border:0;border-left:1px solid #d8dee8;border-radius:0;background:#fff;box-shadow:-20px 0 60px rgba(15,23,42,.23)}.side-drawer::backdrop{background:rgba(15,23,42,.35)}.side-drawer .drawer-card{display:flex;flex-direction:column;min-height:100%;padding:1.6rem}.side-drawer .dialog-actions{margin-top:auto}.task-detail-grid{display:grid;grid-template-columns:140px 1fr;gap:.25rem 1rem;margin:1rem 0}.task-detail-grid dt,.task-detail-grid dd{margin:0;padding:.72rem 0;border-bottom:1px solid #e5e9ef}.task-detail-grid dt{color:#6b778b;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.task-detail-grid dd{color:#17233a;font-weight:750;overflow-wrap:anywhere}.task-detail-grid .detail-wide{grid-column:2}.detail-status{display:inline-block;padding:.28rem .55rem;border-radius:99px;background:#edf1f5;font-size:.72rem}.detail-status.is-warning{background:#fff3cd;color:#7c4a03}.detail-status.is-success{background:#e6f5ec;color:#215d40}.detail-status.is-danger{background:#feeceb;color:#92201e}
.finance-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:1rem 1.1rem;border:1px solid #f2c6a2;border-left:5px solid #c53529;border-radius:10px;background:#fff7ee;color:#4c2a18}.finance-alert-banner div{display:grid;gap:.18rem}.finance-alert-banner b{font-size:.9rem}.finance-alert-banner span{font-size:.75rem;color:#73523f}.nav-alert-badge{display:grid;place-items:center;min-width:22px;height:22px;margin-left:auto;padding:0 .35rem;border-radius:99px;background:#c53529;color:#fff;font-size:.68rem}.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.9rem 1rem;border:1px solid #dde2e9;border-radius:10px;background:#fff}.report-toolbar>div:first-child{display:grid;gap:.18rem}.report-toolbar>div:first-child span{color:#687487;font-size:.7rem}.report-toolbar .eyebrow{margin:0}.link-button{text-decoration:none}

@media(max-width:900px){
  .engineer-table th:nth-child(n),.engineer-table td:nth-child(n){position:static;box-shadow:none}
  .engineer-table th{position:sticky;top:0;z-index:5}
}
