:root{--ink:#172e42;--muted:#637486;--bg:#f3f6f9;--paper:#fff;--nav:#112c40;--line:#dce5eb;--accent:#087a79;--warn:#915719;--danger:#a3313d;--shadow:0 12px 42px #1c36481c}*{box-sizing:border-box}body{margin:0;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid #cbd8e2;background:#fff;color:var(--ink);padding:8px 13px;border-radius:7px;font-weight:600}button:hover{background:#edf4f7}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.danger{background:var(--danger);color:white;border-color:var(--danger)}button.ghost{background:transparent;border-color:transparent;padding:5px 8px;color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{width:100%;background:#fff;border:1px solid #c6d3dd;border-radius:6px;padding:9px 10px;color:var(--ink);min-height:39px}input:focus,select:focus,textarea:focus{outline:2px solid #4ca5a255;outline-offset:1px}input:disabled,select:disabled{background:#edf1f4;color:#89949c}input[type=checkbox]{width:17px;min-height:17px;height:17px;vertical-align:middle;accent-color:var(--accent)}label{display:block;font-size:12px;font-weight:650;color:#415c70}label input,label select,label textarea{margin-top:5px;font-size:14px;font-weight:400}textarea{resize:vertical}a{color:var(--accent)}h1,h2,h3,p{margin:0}h1{font-size:26px;letter-spacing:-.6px}h2{font-size:20px;letter-spacing:-.25px}h3{font-size:16px}small,.muted{color:var(--muted)}.loading{padding:60px}.shell{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:white;padding:27px 17px;position:fixed;inset:0 auto 0 0;width:222px;display:flex;flex-direction:column;z-index:5}.brand{padding:0 10px 28px}.brand-mark{font-size:24px;font-weight:800;letter-spacing:2px}.brand small{display:block;color:#a7c2d2;font-size:11px;letter-spacing:1px;margin-top:5px}.nav-label{font-size:10px;letter-spacing:1.3px;color:#84a2b8;margin:21px 11px 8px}.nav-btn{display:block;text-align:left;color:#c6d8e4;background:transparent;border:0;width:100%;padding:10px 12px;margin:3px 0;font-weight:500}.nav-btn:hover,.nav-btn.active{background:#24465d;color:#fff}.nav-btn.active{box-shadow:inset 3px 0 #5ccbc0}.sidebar-footer{margin-top:auto;padding:25px 10px 0;font-size:11px;color:#99b4c8}.main{grid-column:2;min-width:0}.topbar{background:white;border-bottom:1px solid var(--line);padding:14px 27px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:4}.topbar select{max-width:340px;font-weight:600}.topbar .account{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px}.content{padding:25px 27px 40px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:21px}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:1.6px;color:var(--accent);font-weight:800;margin-bottom:6px}.subtitle{color:var(--muted);margin-top:6px;max-width:890px}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.panel{background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:18px;overflow:hidden}.panel-pad{padding:20px}.panel-heading{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{background:#fff;border:1px solid var(--line);border-radius:9px;padding:17px 20px;text-align:left;display:block}.kpi .label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}.kpi .value{font-size:30px;font-weight:700;line-height:1.2;margin:7px 0}.kpi .hint{font-size:11px;color:var(--muted)}.kpi.warn{border-left:4px solid #d0a362}.badge{display:inline-block;border-radius:5px;padding:3px 7px;font-size:10px;font-weight:700;background:#e4f4ed;color:#176247;white-space:nowrap}.badge.warn{background:#fcf0dc;color:#80521b}.badge.gray{background:#edf1f5;color:#657582}.badge.red{background:#fce8ea;color:#9a3442}.notice{border:1px solid #dfd5bf;background:#fff9ed;color:#73572a;border-radius:7px;padding:12px 15px;font-size:12px;margin:14px 0}.notice.info{background:#edf7f7;border-color:#c1dddd;color:#306261}.filters{display:flex;align-items:center;gap:10px;padding:14px 17px;background:#fbfcfd;border-bottom:1px solid var(--line);flex-wrap:wrap}.filters input{max-width:340px}.filters select{max-width:230px}.table-wrap{overflow:auto;max-height:65vh}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;position:sticky;top:0;z-index:1;background:#f2f6f8;color:#456175;font-size:10px;letter-spacing:.4px;text-transform:uppercase;padding:12px 10px;border-bottom:1px solid #d6e1e8;white-space:nowrap}td{padding:11px 10px;border-bottom:1px solid #eaf0f3;vertical-align:top}tbody tr:hover{background:#f4fafa}.tight td{padding:8px 9px}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.model{min-width:180px;max-width:260px;overflow-wrap:anywhere}.item{min-width:160px;max-width:240px}.nowrap{white-space:nowrap}.ell{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{display:flex;align-items:center;gap:9px;padding:12px 17px}.pagination .count{margin-right:auto;font-size:12px;color:var(--muted)}.empty{padding:42px;text-align:center;color:var(--muted)}.section-space{margin-top:22px}.row-edit{cursor:pointer}.row-edit:hover{text-decoration:underline}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-aside{background:var(--nav);color:#fff;padding:11vh 9vw;display:flex;flex-direction:column;justify-content:center}.login-aside h1{font-size:40px;line-height:1.15;margin:25px 0}.login-aside p{color:#b2cbdc;font-size:16px}.login-panel{display:flex;align-items:center;justify-content:center;padding:45px}.login-card{width:400px}.login-card h2{font-size:27px}.login-card form{margin-top:26px}.login-card label{margin:16px 0}.login-card button{width:100%;padding:11px}.error{color:var(--danger);font-size:13px;padding:10px 0}.small-line{margin-top:20px;font-size:11px;color:var(--muted)}dialog{border:1px solid #d0dce4;border-radius:13px;padding:0;width:min(950px,94vw);max-height:92vh;box-shadow:var(--shadow);color:var(--ink)}dialog::backdrop{background:#0d253870;backdrop-filter:blur(2px)}.modal-head{position:sticky;top:0;background:white;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:20px 25px;border-bottom:1px solid var(--line)}.modal-body{padding:22px 25px}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:17px 25px;border-top:1px solid var(--line);background:#f8fafc;position:sticky;bottom:0;z-index:2}.modal-foot .error{margin-right:auto}.form-note{font-size:11px;color:var(--muted);margin-top:5px}.full{grid-column:1/-1}.checkrow{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:400}.checkrow input{margin:0}.history-card{padding:17px;border:1px solid var(--line);border-radius:8px;margin-bottom:15px}.history-card summary{cursor:pointer;font-weight:650}.history-meta{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.history-card table{margin-top:12px}.history-card pre{white-space:pre-wrap;word-break:break-word;background:#f1f5f8;padding:13px;max-height:300px;overflow:auto;font-size:11px}.tag-list{display:flex;gap:6px;flex-wrap:wrap}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.access-row{display:grid;grid-template-columns:1fr 135px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.access-row select{padding:5px;min-height:31px}.modal-body h3{margin:17px 0 10px}.view-tabs{display:flex;gap:5px;padding:11px 17px;background:#fff;border-bottom:1px solid var(--line)}.view-tabs .chosen{background:#e7f4f2;color:#14685f;border-color:#bcded8}#toast{position:fixed;right:25px;bottom:25px;background:#173b46;color:#fff;max-width:450px;padding:13px 18px;border-radius:8px;box-shadow:var(--shadow);z-index:100;display:none}#toast.bad{background:#a3313d}.step{font-size:10px;text-transform:uppercase;color:var(--accent);font-weight:800;letter-spacing:1px;margin-bottom:8px}.progress-track{height:7px;background:#e9eff3;border-radius:5px;overflow:hidden;margin-top:9px}.progress-track span{display:block;height:100%;background:var(--accent)}.doc-copy h3{margin:18px 0 7px}.doc-copy p{margin-bottom:10px;max-width:960px}.doc-copy code{background:#eef2f5;padding:2px 4px;border-radius:3px;font-size:12px}.review-list{font-size:11px;color:#8b5d21}.project-card{padding:20px}.project-card .code{color:var(--accent);font-size:11px;letter-spacing:1px;font-weight:800}.project-card h3{margin:6px 0 12px}.project-card .actions{margin-top:18px}.disabled-note{font-size:11px;color:#929ba3}@media(max-width:1050px){.shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{width:180px;padding:20px 10px}.content{padding:20px}.topbar{padding:12px 20px}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head{flex-wrap:wrap}.topbar select{max-width:270px}}@media(max-width:700px){.shell{display:block}.sidebar{position:static;width:auto;padding:15px;display:block}.brand{padding:0 0 12px}.sidebar nav{display:flex;overflow:auto}.nav-label,.sidebar-footer{display:none}.nav-btn{white-space:nowrap}.topbar{flex-wrap:wrap;position:static}.main{width:100%}.content{padding:16px}.grid.three,.grid.two,.check-grid{grid-template-columns:1fr}.grid.four{gap:8px}.login-wrap{grid-template-columns:1fr}.login-aside{display:none}.login-panel{padding:30px}.account{flex-wrap:wrap}.modal-body{padding:16px}.model{min-width:150px}.table-wrap{max-height:60vh}}

/* Rev1.2: readable quantity workflow and permanent left-hand BOQ identity. */
.boq-grid{table-layout:fixed;min-width:1142px}.boq-grid td{font-size:11px;overflow-wrap:anywhere;padding:8px 6px}.boq-grid th{font-size:9px;padding:11px 6px;letter-spacing:0}.boq-grid .num{white-space:normal}.boq-grid .mono{font-size:10px}.boq-grid .tool-text{font-size:10px;line-height:1.3;margin-top:3px}.boq-grid .version-note{font-size:9px}.boq-grid button.ghost{font-size:10px;padding:3px 4px}.boq-grid .computed{background:#f0f8f6}.boq-grid td:first-child{position:sticky;left:0;background:#fff;z-index:1}.boq-grid th:first-child{left:0;z-index:3}.wide-workspace .sidebar{display:none}.wide-workspace .shell{grid-template-columns:minmax(0,1fr)}.wide-workspace .main{grid-column:1}.wide-workspace .content{padding:20px 18px}.qty-input-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.quantity-section{padding:18px;background:#f6fafb;border:1px solid var(--line);border-radius:9px}.quantity-method{display:flex;align-items:center;gap:22px;margin:10px 0 18px;flex-wrap:wrap}.quantity-method strong{font-size:12px}.quantity-method label{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:13px}.quantity-method input[type=radio]{width:17px;height:17px;min-height:17px;margin:0;accent-color:var(--accent)}input.calculated-field{background:#e8f5ef;color:#145d48;border-color:#bdddd0;font-weight:700}.calculation-strip{margin-top:14px;background:#e6f3ef;color:#245d4e;padding:10px 13px;border-radius:6px;font-size:13px;font-weight:600}.calculation-strip.invalid{background:#fff3e0;color:#80551d}#modal:has(.boq-grid){width:min(1460px,97vw)}.quantity-section input:disabled{background:#e9eff3} @media(max-width:800px){.qty-input-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Rev1.5 compact BOQ editor */
dialog:has(.boq-compact){width:min(1180px,96vw)}
.boq-compact .compact-grid{gap:9px 11px}
.boq-compact label{margin:0;font-size:11px}
.boq-compact input,.boq-compact select{min-height:34px;padding:6px 8px}
.boq-compact .compact-step{margin-top:12px}
.boq-compact .quantity-section{padding:12px 14px}
.boq-compact .qty-input-grid{gap:8px;grid-template-columns:repeat(6,minmax(0,1fr))}
.boq-compact .calculation-strip{margin-top:8px;padding:8px 10px;font-size:12px}
.boq-compact .compact-method{margin:0;gap:9px;align-self:end;min-height:34px}
.boq-compact .compact-method strong{width:100%;font-size:10px;color:var(--muted)}
.catalogue-ref{border:1px solid var(--line);background:#f7fafb;border-radius:6px;padding:6px 8px;min-height:50px;display:flex;flex-direction:column;justify-content:center;gap:2px;font-size:11px}
.catalogue-ref strong{font-size:12px;line-height:1.35}
@media(max-width:900px){.boq-compact .grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.boq-compact .qty-input-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Rev1.6 Project BOQ Reset */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.kpis .kpi{padding:13px 15px}.kpis .kpi b{display:block;font-size:22px}.kpis .kpi span{font-size:11px;color:var(--muted)}
.notice.danger-note{background:#fff0f1;border-color:#e7bdc2;color:#7f2632}
@media(max-width:850px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Rev1.23 navigation + access editor; Rev1.24 extends top bar/project context */
.nav-groups{display:flex;flex-direction:column;gap:5px;min-height:0;overflow-y:auto;padding-right:2px}
.nav-group{border-radius:8px}
.nav-group-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;border:0;color:#84a2b8;padding:10px 11px 6px;font-size:10px;font-weight:800;letter-spacing:1.3px;text-align:left}
.nav-group-head:hover{color:#b7d0df;background:#18394d}
.nav-chevron{font-size:14px;line-height:1;transition:transform .15s ease}.nav-group.open .nav-chevron{transform:rotate(180deg)}
.nav-group-items{display:none;padding-bottom:4px}.nav-group.open .nav-group-items{display:block}
.nav-group .nav-btn{padding-left:17px;margin:1px 0}
.permission-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f3f8fa;border:1px solid var(--line);border-radius:8px;padding:10px 13px;margin-bottom:12px;font-size:12px}
.perm-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.perm-card{border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}
.perm-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:#f7fafb;border-bottom:1px solid var(--line)}
.perm-card-head h3{margin:0 0 2px;font-size:14px}.perm-card-head .muted{font-size:10px}
.perm-tools{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.perm-tools button{padding:4px 7px;font-size:10px}
.perm-grid{padding:12px 14px;gap:8px 14px}.perm-grid .checkrow{min-height:25px;line-height:1.25}
.access-context{position:sticky;top:-22px;z-index:2;background:white;padding:4px 0 12px;border-bottom:1px solid var(--line)}
#modal:has(.perm-cards){width:min(1180px,96vw)}
@media(max-width:900px){.perm-cards{grid-template-columns:1fr}}
@media(max-width:700px){.nav-groups{display:flex;flex-direction:row;overflow-x:auto;gap:6px}.nav-group{min-width:max-content}.nav-group-head{display:none}.nav-group-items,.nav-group.open .nav-group-items{display:flex;gap:4px}.nav-group .nav-btn{padding:9px 11px}.perm-card-head{align-items:flex-start;flex-direction:column}.permission-summary{align-items:flex-start;flex-direction:column}}

/* Rev1.24 top bar + dashboard project context */
.topbar-spacer{flex:1}
.topbar .account{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px}
.account-user{border:0;background:transparent;padding:5px 8px;color:var(--ink);font-weight:650;display:flex;align-items:center;gap:6px}
.account-user:hover{background:#edf4f7}
.alert-btn{width:36px;height:36px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:17px;background:#fff}
.project-context{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#f8fbfc;border:1px solid var(--line);border-radius:9px;padding:9px 13px;margin:-9px 0 18px}
.project-context>div:first-child{display:flex;align-items:center;gap:9px;min-width:0}.project-context strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.project-context-label{text-transform:uppercase;font-size:9px;letter-spacing:1.1px;color:var(--muted);font-weight:800}
.dashboard-project-picker select{font-weight:650}
.project-switch-card{border:1px solid var(--line);border-radius:9px;padding:15px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:112px}
.project-switch-card.selected{border-color:#9ccfc9;background:#f4fbfa;box-shadow:inset 3px 0 var(--accent)}
.project-switch-card .code{color:var(--accent);font-size:11px;letter-spacing:.8px;font-weight:800;margin-bottom:5px}
@media(max-width:700px){.topbar-spacer{display:none}.topbar .account{margin-left:0;width:100%;justify-content:flex-end}.project-context{align-items:flex-start}.project-context>div:first-child{display:block}.project-context-label{display:block;margin-bottom:3px}.project-switch-card{align-items:flex-start;flex-direction:column}}

/* Rev1.26 compact Project BOQ workspace */
.boq-compact-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-4px 0 8px}
.boq-compact-title{min-width:0}.boq-compact-title .eyebrow{margin-bottom:2px;font-size:9px;letter-spacing:1.45px}
.boq-title-line{display:flex;align-items:baseline;gap:10px;min-width:0}.boq-title-line h1{font-size:24px;line-height:1.08;white-space:nowrap}.boq-project-name{color:var(--muted);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.boq-head-note{color:var(--muted);font-size:10.5px;margin-top:2px}.boq-head-actions{gap:6px;flex-wrap:nowrap}.boq-head-actions button{padding:6px 10px;min-height:34px;white-space:nowrap}
.boq-workspace-panel{margin-bottom:8px;border-radius:9px;overflow:visible}
.boq-controls{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:57px;z-index:3}
.boq-view-row{display:flex;align-items:center;padding:7px 10px 5px;border-bottom:1px solid #eef3f6}
.boq-view-toggle{display:flex;gap:5px}.boq-view-toggle button{padding:5px 9px;min-height:32px;font-size:11px}.boq-view-toggle .chosen{background:#e7f4f2;color:#14685f;border-color:#bcded8}
.boq-filter-row{display:grid;grid-template-columns:minmax(250px,1.7fr) 128px 90px 124px 72px 106px 102px 122px auto auto;align-items:center;gap:6px;padding:6px 10px;background:#fbfcfd}
.boq-filter-row input,.boq-filter-row select{min-height:32px;height:32px;padding:4px 7px;font-size:11px;border-radius:6px}.boq-filter-row .boq-search{min-width:0}.boq-filter-row button{padding:4px 6px;font-size:10.5px;white-space:nowrap}.boq-filter-count{font-size:10.5px;color:var(--muted);white-space:nowrap;font-weight:650;text-align:right}
.boq-workspace-panel .table-wrap{max-height:calc(100vh - 245px)}.boq-workspace-panel .table-wrap thead th{top:0}.boq-workspace-panel .pagination{padding:7px 10px}.boq-rule-note{margin:3px 1px 0;font-size:9.5px}
.wide-workspace .boq-workspace-panel .table-wrap{max-height:calc(100vh - 225px)}
@media(max-width:1550px){.boq-filter-row{grid-template-columns:minmax(240px,1.6fr) 120px 86px 116px 68px 100px 96px 116px auto}.boq-filter-count{grid-column:1/-1;text-align:left;padding-top:1px}.boq-workspace-panel .table-wrap{max-height:calc(100vh - 270px)}}
@media(max-width:1100px){.boq-filter-row{display:flex;flex-wrap:wrap}.boq-filter-row>*{flex:1 1 120px}.boq-filter-row .boq-search{flex:1 1 100%}.boq-filter-row button,.boq-filter-count{flex:0 0 auto}.boq-workspace-panel .table-wrap{max-height:calc(100vh - 300px)}}
@media(max-width:900px){.boq-compact-head{align-items:flex-start;flex-direction:column}.boq-head-actions{flex-wrap:wrap}.boq-title-line{align-items:flex-start;flex-direction:column;gap:2px}.boq-controls{position:static}.boq-workspace-panel{overflow:hidden}.boq-workspace-panel .table-wrap{max-height:60vh}}

/* Rev1.27 permission-aware segmented project dashboard */
.dash-segment{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin-top:16px}.dash-segment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dash-segment-head h2{margin:2px 0 4px}.dash-stage-grid{display:grid;grid-template-columns:repeat(6,minmax(145px,1fr));gap:10px;margin-top:14px}.dash-stage{appearance:none;text-align:left;background:#f8fbfc;border:1px solid #dbe6ea;border-radius:12px;padding:14px;min-height:112px;color:var(--ink);cursor:pointer}.dash-stage:hover{border-color:#82b9b6;background:#f2fbfa}.dash-stage.warn{background:#fff9eb;border-color:#ead9a4}.dash-stage-label{display:block;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#60788b}.dash-stage strong{display:block;font-size:27px;line-height:1.1;margin:9px 0 7px}.dash-stage small{display:block;color:#6a7f91;line-height:1.25}.dash-segment.future{background:#fbfcfd}.dash-future-copy{margin-top:14px;padding:14px;border-radius:10px;background:#f2f5f7;color:#667b8c}.empty-inline{color:#6b7f90;padding:12px 0}@media(max-width:1450px){.dash-stage-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:820px){.dash-stage-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.dash-stage-grid{grid-template-columns:1fr}}

/* Rev1.28 procurement item progress - horizontal progress bars */
.dash-progress-panel{margin-top:15px;border:1px solid #dce7ec;border-radius:13px;background:#fbfdfe;padding:14px 16px 12px}
.dash-progress-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:10px}.dash-progress-title>div{min-width:0}.dash-progress-title strong{display:block;font-size:14px}.dash-progress-title span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.dash-progress-title .dash-progress-unit{white-space:nowrap;margin-top:0;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.7px;color:#5f7888;background:#edf4f6;border-radius:999px;padding:4px 8px}
.dash-progress-list{display:flex;flex-direction:column;gap:5px}.dash-progress-row{display:grid;grid-template-columns:minmax(145px,190px) minmax(180px,1fr) 72px 54px;gap:10px;align-items:center;width:100%;border:0;border-radius:8px;background:transparent;padding:7px 8px;text-align:left;color:var(--ink)}.dash-progress-row:hover{background:#f0f7f7}.dash-progress-label{font-size:11.5px;font-weight:700;white-space:nowrap}.dash-progress-track{display:block;height:10px;border-radius:999px;background:#e7edf1;overflow:hidden}.dash-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#159e99,#55b9b3);min-width:0}.dash-progress-row strong{font-size:13px;text-align:right;font-variant-numeric:tabular-nums}.dash-progress-pct{font-size:11px;font-weight:750;color:#537186;text-align:right;font-variant-numeric:tabular-nums}.dash-progress-note{font-size:10px;color:var(--muted);margin:8px 8px 0}.dash-kpi-caption{margin:14px 1px 0;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#60788b}
@media(max-width:850px){.dash-progress-row{grid-template-columns:125px minmax(110px,1fr) 58px 46px;gap:7px}.dash-progress-label{white-space:normal}.dash-progress-title{align-items:flex-start}.dash-progress-title .dash-progress-unit{display:none}}
@media(max-width:560px){.dash-progress-panel{padding:12px}.dash-progress-row{grid-template-columns:1fr 54px 44px}.dash-progress-label{grid-column:1/-1}.dash-progress-track{grid-column:1/2}.dash-progress-note{margin-left:0}}


/* Rev1.48 login-screen branding controls */
.branding-divider{border:0;border-top:1px solid var(--line);margin:28px 0 22px}
.branding-login-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:22px;align-items:start}
.login-brand-preview{background:var(--nav);color:#fff;border-radius:12px;padding:35px 34px;min-height:330px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}
.login-brand-preview .brand-mark{font-size:18px}.login-brand-preview h2{font-size:31px;line-height:1.16;margin:22px 0 18px;letter-spacing:-.5px}.login-brand-preview p{color:#b2cbdc;font-size:14px}.login-brand-preview .small-line{color:#8eb4ca}
@media(max-width:980px){.branding-login-grid{grid-template-columns:1fr}.login-brand-preview{min-height:260px}}

/* Rev1.49 compact BOQ engineering references */
.boq-grid .engineering-ref-cell{padding-top:7px;padding-bottom:7px}.boq-grid .engineering-ref-primary{font-weight:650;line-height:1.25}.boq-grid .engineering-ref-secondary{font-size:9.5px;line-height:1.25;margin-top:4px}.boq-grid .engineering-ref-cell .row-edit{cursor:pointer}.boq-grid .engineering-ref-cell .row-edit:hover{text-decoration:underline}

/* Rev1.51 - compact executive-style Payment KPI cards */
.payment-kpi-grid{gap:12px;margin-top:16px}
.payment-kpi-grid .dash-stage{position:relative;min-height:126px;padding:16px 16px 14px;background:linear-gradient(180deg,#fbfdfd 0%,#f7fafb 100%);border-color:#d8e3e7;box-shadow:0 1px 2px rgba(15,42,61,.035);overflow:hidden}
.payment-kpi-grid .dash-stage:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#bdd8d6}
.payment-kpi-grid .dash-stage:hover{transform:translateY(-1px);box-shadow:0 5px 16px rgba(15,42,61,.07)}
.payment-kpi-grid .dash-stage-label{font-size:11px;letter-spacing:.075em;color:#5d7384}
.payment-kpi-grid .dash-stage strong{font-size:24px;line-height:1.08;margin:12px 0 8px;letter-spacing:-.025em;white-space:normal;overflow-wrap:anywhere}
.payment-kpi-grid .dash-stage small{font-size:12px;line-height:1.3;color:#718493}
.payment-kpi-grid .dash-stage.warn{background:linear-gradient(180deg,#fffdf7 0%,#fff9eb 100%)}
.payment-kpi-grid .dash-stage.warn:before{background:#d4b55f}
@media(max-width:1450px){.payment-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.payment-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.payment-kpi-grid{grid-template-columns:1fr}}

/* Rev1.52 installable PWA */
.pwa-install-action[hidden]{display:none!important}
.pwa-login-action{margin-top:12px}.pwa-login-action .pwa-install-action{width:100%}
.pwa-offline-pill{display:none;padding:5px 9px;border-radius:999px;background:#fff1cf;color:#7b5a06;border:1px solid #e7cf8d;font-size:11px;font-weight:800;letter-spacing:.03em}
.app-offline .pwa-offline-pill{display:inline-flex}
@media(max-width:700px){.topbar .pwa-install-action{padding:6px 8px;font-size:11px}.pwa-offline-pill{font-size:10px}}
