:root{font-family:"Segoe UI",Arial,sans-serif;color:#14243b;background:#f3f6fa;font-synthesis:none;--teal:#008879;--muted:#62748b;--line:#e1e8f0;--shadow:0 6px 24px #1c365907}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}button,a,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.table-wrap:focus-visible{outline:3px solid #16aa9b;outline-offset:3px}button{transition:background .15s,box-shadow .15s,transform .15s}.sidebar{position:fixed;inset:0 auto 0 0;width:204px;background:linear-gradient(170deg,#10253f,#101d32);color:white;padding:30px 14px;display:flex;flex-direction:column;z-index:10}.brand{font-size:22px;letter-spacing:-.7px;font-weight:800;color:#fff;text-decoration:none;border-left:4px solid #14b8a6;padding-left:12px;margin:0 5px 38px;white-space:nowrap}.brand small{display:block;font-size:12px;letter-spacing:0;font-weight:400;color:#c3d4e4;margin-top:6px}nav{display:grid;gap:7px}nav button{border:0;background:none;color:#c5d4e5;padding:14px 12px;border-radius:9px;text-align:left;display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.4}nav button:hover{background:#223650}nav button.active{background:#00897e;color:#fff;box-shadow:0 5px 16px #0002}.icon{display:inline-flex;width:22px;height:22px;flex-shrink:0}.icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar-foot{margin-top:auto;padding:22px 12px 0;color:#9db3ca;font-size:12px;line-height:2}.sidebar-foot small{font-size:11px}.live-dot{display:inline-block;background:#4bd4b5;width:7px;height:7px;border-radius:50%;margin-right:8px}main{margin-left:204px;padding:24px 28px 18px;max-width:2100px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:var(--teal);margin-bottom:9px}h1{font-size:28px;line-height:1.25;letter-spacing:-1px;margin:0;color:#102239}header p{color:var(--muted);margin:9px 0 0;font-size:14px}.user-tools{display:flex;gap:12px;align-items:center;white-space:nowrap;font-size:13px}.language{display:flex;border:1px solid #cfdae6;border-radius:8px;overflow:hidden;margin-right:8px}.language button{border:0;background:#fff;color:#50627a;padding:9px 14px;font-size:13px}.language button.active{background:var(--teal);color:#fff}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e2eaf2;color:#506780;font-size:11px;font-weight:700}.demo-banner{padding:9px 13px;background:#eaf6f2;color:#35645b;border:1px solid #d2e9e2;border-radius:8px;font-size:13px;line-height:1.5;margin-bottom:18px}.filters{display:flex;gap:14px;align-items:end;margin-bottom:18px}.filters label{display:grid;gap:7px;flex:1;min-width:0}.filters label span{font-size:14px;font-weight:600;color:var(--muted)}input,select{background:#fff;border:1px solid #d3deea;border-radius:8px;color:#203750;font-size:15px;padding:9px 12px;min-width:0}select{width:100%}.reset{padding:12px 6px;background:none;border:0;color:var(--teal);font-size:13px}.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.kpi{display:flex;flex-direction:column;align-items:stretch;text-align:left;background:#fff;border:1px solid #dce6ed;border-radius:10px;padding:15px 18px;min-height:0;color:#15283f;box-shadow:var(--shadow)}.kpi:hover{transform:translateY(-2px);box-shadow:0 10px 25px #18385212}.kpi:first-child{background:linear-gradient(120deg,#e6f6f0,#f6fcfa);border-color:#cae8dc}.kpi:last-child{background:#fff9ed;border-color:#f0dfba}.kpi-label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:650;line-height:1.4}.kpi-label .icon{color:var(--teal);width:23px;height:23px}.kpi:last-child .icon,.kpi:last-child .amount-value{color:#aa6509}.kpi-amount{display:block;margin:8px 0 0}.amount-value{display:block;font-size:28px;line-height:1.2;letter-spacing:-.8px;font-weight:750;font-variant-numeric:tabular-nums;color:#10243c;white-space:nowrap}.amount-note{display:block;margin-top:6px;font-size:13px;line-height:1.4;font-weight:400;letter-spacing:0;color:#52667d}.kpi small{display:block;font-size:12px;line-height:1.4;margin-top:8px;color:#62748b}.scope{font-size:13px;line-height:1.5;color:#566b82;margin:13px 0 18px}.main-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.panel{background:white;border:1px solid var(--line);border-radius:10px;min-width:0;overflow:hidden;box-shadow:var(--shadow)}.panel-head{padding:15px 18px;display:flex;justify-content:space-between;align-items:center;gap:16px}h2{font-size:19px;line-height:1.35;letter-spacing:-.5px;margin:0}.panel-head input{width:250px;font-size:14px;padding:8px 12px}.count{background:#fff0d4;color:#a76d1b;border-radius:6px;font-size:12px;font-weight:700;padding:5px 9px}#alerts{padding:0 14px 14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alert{width:100%;text-align:left;display:flex;align-items:start;gap:12px;border:1px solid #f0dfbf;background:#fffaf0;border-radius:7px;padding:12px;color:#20354b}.alert:hover{box-shadow:0 4px 12px #203c5110}.alert .icon{color:#b47b1c;margin-top:2px;width:21px;height:21px}.alert strong{display:block;font-size:14px;font-weight:700}.alert small{display:block;font-size:14px;line-height:1.45;margin-top:4px;color:#50647c}.alert.overdue{background:#fff5f3;border-color:#f4d9d3}.alert.overdue .icon{color:#c54c43}.alert.act{background:#f0f7ff;border-color:#d5e6f5}.alert.act .icon{color:#4b7daf}.arrow{margin-left:auto;color:var(--teal);font-size:18px;flex-shrink:0}.table-wrap{width:100%;max-width:100%;overflow:visible}table{border-collapse:collapse;width:100%;table-layout:fixed;text-align:left;font-size:14px}th{background:#f3f6fa;font-size:13px;font-weight:650;color:#4f627a;line-height:1.5;white-space:normal;vertical-align:top;padding:11px 14px;border-top:1px solid #edf1f6;border-bottom:1px solid #e1e8f0}td{padding:10px 14px;border-bottom:1px solid #edf1f6;vertical-align:middle;line-height:1.5;overflow-wrap:anywhere}th:nth-child(1){width:21%}th:nth-child(2){width:18%}th:nth-child(3){width:15%}th:nth-child(4){width:22%}th:nth-child(5){width:12%}th:nth-child(6){width:12%}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f9fcfd}.project-link{border:0;background:none;padding:0;color:#182e46;font-size:14px;font-weight:700;text-align:left;line-height:1.4;white-space:normal;max-width:100%}.project-link:hover{color:var(--teal)}.manager{display:block;color:#5e7188;font-size:13px;margin-top:3px;line-height:1.4}.muted{color:#596e85;font-size:13px}.progress-label{display:flex;gap:7px;flex-wrap:wrap;font-size:14px;align-items:baseline}.progress-label span{font-size:13px;color:#5e7188}.track{width:100%;max-width:120px;height:5px;margin-top:6px;border-radius:7px;background:#e8eef2;overflow:hidden}.track b{display:block;height:100%;background:linear-gradient(90deg,#00a28c,#008879);border-radius:7px}.pill{display:inline-block;background:#e9f6ef;color:#248563;font-size:11px;font-weight:600;padding:1px 5px;margin:0 0 0 5px;border-radius:4px;vertical-align:1px}.pill.warn{background:#fff0da;color:#b16f16}.red{color:#c04c42;font-weight:700}.missing{font-size:13px;color:#8e7554}.panel footer{padding:11px 18px;border-top:1px solid #edf1f6;display:flex;justify-content:space-between;gap:16px;font-size:12px;color:var(--muted)}.show-all{border:0;background:none;color:var(--teal);font-size:12px}.bottom-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(330px,1fr);gap:16px;margin-top:16px;align-items:stretch}#bars{padding:0 18px}.bar-row{display:grid;grid-template-columns:125px minmax(30px,1fr) 150px;gap:12px;align-items:center;margin:13px 0;font-size:14px}.bar-track{height:12px;border-radius:5px;background:#f0f5f5;overflow:hidden}.bar-fill{height:100%;border-radius:5px;background:#077f89}.bar-row:nth-child(2) .bar-fill{background:#26a694}.bar-row:nth-child(3) .bar-fill{background:#88cfb8}.bar-value{text-align:right;min-width:0}.bar-value .amount-value{font-size:18px;letter-spacing:-.5px}.bar-value .amount-note{font-size:13px;margin-top:4px;text-align:left}.chart-note{font-size:13px;line-height:1.45;color:#596e85;margin:12px 18px 15px}#quality{padding:0 18px}.quality-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid #edf1f6;padding:10px 0;font-size:14px}.quality-row .icon{width:19px;color:var(--teal)}.quality-row strong{margin-left:auto;color:var(--teal);font-size:13px;white-space:nowrap}.quality-row:last-child strong{color:#ae7518}.quality-note{margin:13px 18px;font-size:13px;color:var(--muted)}.page-foot{font-size:12px;text-align:right;color:#8b9aad;margin:20px 0 0}.empty{text-align:center;color:var(--muted);padding:25px;font-size:13px}dialog{width:min(900px,94vw);max-height:min(88vh,1000px);padding:0;border:1px solid #d9e3ed;border-radius:15px;overflow:hidden;color:#20344b;box-shadow:0 30px 90px #0c1d3a44}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#142a4790;backdrop-filter:blur(3px)}.modal-head{display:flex;justify-content:space-between;align-items:start;gap:18px;padding:21px 24px;flex:0 0 auto;background:#fff;border-bottom:1px solid var(--line);z-index:5}.modal-head h2{overflow-wrap:anywhere}.modal-head button{border:0;border-radius:50%;background:#edf2f6;color:#6b7d92;width:35px;height:35px;flex:0 0 35px;font-size:26px;line-height:1}#detailBody{padding:0 24px 24px;overflow-y:auto;min-height:0;overscroll-behavior:contain}.project-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:17px 0}.project-tabs button{background:#fff;border:1px solid #cfdae6;border-radius:7px;color:#50637a;padding:10px 15px;font-size:14px}.project-tabs button[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:white}.demo-notice{font-size:12px;line-height:1.7;color:#36685d;background:#edf8f3;border-radius:8px;padding:12px 15px}.detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.detail-cell{padding:15px;background:#f2f6fa;border-radius:9px;font-size:12px;color:#61758c}.detail-cell strong{display:block;color:#1d344d;font-size:21px;margin-top:8px;line-height:1.4}.detail-cell .amount-note{font-size:13px}.detail-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:13px}.detail-row>span{min-width:0;overflow-wrap:anywhere}.detail-row button{flex-shrink:0;background:#eaf7f1;border:0;border-radius:6px;color:var(--teal);padding:8px 10px;font-size:12px}.source{border:1px solid var(--line);border-radius:9px;padding:15px 18px;margin:17px 0;font-size:13px;line-height:1.7}.record-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 22px;margin:0;font-size:13px}.record-fields div{min-width:0}.record-fields dt{font-size:11px;line-height:1.4;color:#77879b;margin-bottom:4px}.record-fields dd{font-weight:600;line-height:1.55;margin:0;overflow-wrap:anywhere}.reconciliation-record{padding:18px;border:1px solid var(--line);border-radius:9px;margin:15px 0}.reconciliation-record h3{font-size:16px;margin:0 0 16px}.reconciliation-record h3 small{display:block;color:#7c8ca1;font-size:11px;font-weight:400;margin-top:4px}.financial-record{padding:14px 16px;border:1px solid var(--line);border-radius:8px;margin:10px 0;font-size:12px}.financial-record .record-fields{grid-template-columns:1fr 2fr 1.1fr 1fr 1fr;gap:12px;font-size:12px}.financial-record .record-fields dt{font-size:10px}.financial-record details{margin-top:9px;color:#61768c;font-size:12px}.financial-record summary{cursor:pointer;color:var(--teal);padding:3px 0}.financial-record details p{line-height:1.6}.repeat-note{background:#f4f7fa;color:#76869b;border-radius:5px;font-size:11px;line-height:1.5;padding:6px 9px;margin:9px 0 5px}.selected-record{border:2px solid var(--teal);background:#f5fbf8}
@media(min-width:1800px){.kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.amount-value{font-size:28px}#alerts{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1150px){.sidebar{width:180px}.brand{font-size:19px}.sidebar nav button{font-size:13px;padding:13px 10px}main{margin-left:180px;padding:24px 20px}.user-tools #role{display:none}h1{font-size:28px}.kpi{padding:15px}.amount-value{font-size:27px}.kpi-label{font-size:14px}#alerts{grid-template-columns:repeat(2,minmax(0,1fr))}th,td{padding:13px 10px}table{font-size:12px}.project-link{font-size:14px}.bottom-grid{grid-template-columns:1fr}.bar-row{grid-template-columns:130px 1fr 210px}}
@media(max-width:900px){.projects table,.projects tbody{display:block}.projects thead{display:none}.projects tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:15px;border-bottom:1px solid var(--line);gap:18px}.projects td{display:block;border:0;padding:0;min-width:0;font-size:13px}.projects td::before{content:attr(data-label);display:block;font-size:10px;font-weight:600;color:#7a899d;margin-bottom:6px}.projects td[colspan]{grid-column:1/-1}.projects td[colspan]::before{display:none}.kpis{gap:12px}.amount-value{font-size:27px}.filters{flex-wrap:wrap}.filters label{flex-basis:calc(50% - 10px)}.financial-record .record-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.sidebar{position:static;width:100%;padding:17px 20px}.brand{display:block;font-size:21px;margin:0}.brand small,.sidebar nav,.sidebar-foot{display:none}main{margin:0;padding:23px 14px}header{align-items:start;gap:12px}h1{font-size:26px}.user-tools{gap:0}.avatar{display:none}.language{margin:0}.language button{padding:8px 10px}.eyebrow{font-size:9px}header p{font-size:12px}.filters{gap:12px}.filters label{min-width:calc(50% - 12px)}.filters label span{font-size:14px}.reset{padding:0}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:14px 13px;min-height:0;border-radius:10px}.kpi-label{font-size:12px;gap:7px}.kpi-label .icon{width:18px;height:18px}.amount-value{font-size:clamp(21px,5.3vw,27px);letter-spacing:-.8px}.amount-note{font-size:13px}.scope{font-size:13px}.panel-head{padding:17px 16px;flex-wrap:wrap}h2{font-size:19px}.panel-head input{width:100%}#alerts{grid-template-columns:1fr;padding:0 12px 12px}.alert{padding:13px}.projects tr{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:16px}.projects td:first-child{grid-column:1/-1}.bar-row{grid-template-columns:85px minmax(20px,1fr) 140px;gap:8px;font-size:11px}.bar-value .amount-value{font-size:17px}.bar-value .amount-note{font-size:12px}#bars{padding:0 16px}.finance .panel-head{display:block}.financeNote{display:block}.chart-note{margin:15px 16px}.detail-grid{grid-template-columns:1fr 1fr}.modal-head{padding:18px 16px}#detailBody{padding:0 16px 20px}.record-fields{gap:13px 16px}.project-tabs button{font-size:12px;padding:9px 10px}.detail-row{flex-wrap:wrap}.reconciliation-record{padding:14px}.page-foot{text-align:left;line-height:1.6}}
@media(prefers-reduced-motion:reduce){button{transition:none}}

.finance .panel-head{align-items:baseline}.finance .panel-head .muted{font-size:13px}.bar-value{position:relative}.bar-row:has(.amount-note){padding-bottom:40px}.bar-value .amount-note{position:absolute;right:0;width:min(430px,70vw);margin-top:6px;text-align:right;line-height:1.4}.schedule-date{display:inline-block;font-variant-numeric:tabular-nums}.schedule-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px}.schedule-meta .pill{margin-left:0}.kpi .amount-note{color:#53687f}.alert .icon{width:19px;height:19px}.quality-row:last-child{border-bottom:0}
.login-page{margin:0;max-width:800px;padding:40px 24px;margin-inline:auto}.login-panel{padding:28px;line-height:1.7}.login-panel h1{font-size:25px}.login-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f1f5f9;padding:12px;border-radius:6px}.project-editor{margin-top:24px;padding-top:16px;border-top:1px solid var(--line)}.project-editor h3{font-size:15px}.project-editor form{display:grid;gap:10px;margin:18px 0}.project-editor label{font-size:13px}.project-editor textarea{font:inherit;min-height:90px;border:1px solid #cbd9e6;border-radius:7px;padding:10px;resize:vertical}.project-editor button{justify-self:start;padding:9px 15px;background:var(--teal);color:white;border:0;border-radius:6px}.project-editor button:disabled{opacity:.5;cursor:wait}.project-editor [role=status]{font-size:13px;color:#52667d}
.work-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px}.work-heading h3{font-size:16px}.work-heading button,[data-work-refresh]{border:1px solid #cbd8e5;background:white;color:var(--teal);border-radius:6px;padding:8px 11px}.work-table-wrap{max-width:100%;overflow-x:auto;margin:12px 0}.work-table{table-layout:auto;font-size:13px;min-width:560px}.work-table th{font-size:12px;width:auto}.work-table td,.work-table th{padding:10px;vertical-align:top}.work-table small{display:block;font-size:11px;overflow-wrap:anywhere;color:#65788e;margin-top:4px}.work-table td{max-width:240px;overflow-wrap:anywhere}.work-table details{margin-top:5px}.work-table summary{color:var(--teal);cursor:pointer}.work-form-box{border:1px solid var(--line);border-radius:8px;padding:12px;margin:14px 0}.work-form-box>summary{font-weight:600;color:var(--teal);cursor:pointer;font-size:14px}.work-form-box form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.work-form-box label{display:grid;gap:7px;font-size:13px}.work-form-box textarea{font:inherit;border:1px solid #cfdae6;border-radius:7px;padding:10px;min-height:65px}.work-form-box .full-field,.work-form-box [role=status]{grid-column:1/-1}.work-form-box button{justify-self:start;background:var(--teal);color:white;border:0;border-radius:6px;padding:10px 13px}.work-form-box [role=status]{font-size:13px;margin:0;color:#9c4a35}.work-form-box button:disabled{opacity:.5}@media(max-width:600px){.work-form-box form{grid-template-columns:1fr}.work-heading{flex-wrap:wrap}}

.metrics-title{font-size:18px;font-weight:650;line-height:1.4;margin:0 0 12px;color:#1d344e}

/* Summary KPI values: user-selected desktop size. */
@media(min-width:701px){.kpis .amount-value{font-size:24px}}

.metrics-panel{padding:18px;margin-bottom:18px}.metrics-panel .scope{margin:12px 0 0}.metrics-panel .kpi{box-shadow:none}.metrics-panel .kpis .amount-value{font-size:24px}@media(max-width:700px){.metrics-panel{padding:13px}.metrics-panel .kpis{grid-template-columns:1fr}.metrics-panel .kpis .amount-value{font-size:24px}}
.allocation-form{display:grid;gap:14px}.allocation-form>label,.allocation-crew-row>label{display:grid;gap:7px;font-size:13px}.allocation-crew-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--line);padding:14px 0}.allocation-crew-row .allocation-guarantee,.allocation-check{display:flex!important;align-items:start;gap:9px;font-size:13px;line-height:1.5}.allocation-guarantee input,.allocation-check input{width:auto;flex-shrink:0;margin-top:4px}.allocation-form button{justify-self:start}.allocation-preview:empty{display:none}@media(max-width:650px){.allocation-crew-row{grid-template-columns:1fr}}

[data-work-section][hidden]{display:none!important}.work-sections{margin:14px 0;gap:6px}.work-sections button{padding:8px 10px;font-size:13px}

.allocation-table th:not(:first-child),.allocation-table td:not(:first-child){text-align:center}

.rates-table :is(th,td):nth-child(2),.reports-table :is(th,td):nth-child(3),.reports-table :is(th,td):nth-child(5),.acceptance-table :is(th,td):nth-child(3),.crew-table :is(th,td):nth-child(2){text-align:center}
@media(min-width:701px){.projects table :is(th,td):nth-child(3),.projects table :is(th,td):nth-child(5){text-align:center}}

.accrual-summary{background:#f0f8f6}.accrual-summary h4{margin:0}.accrual-total{font-size:24px;font-weight:700;margin:10px 0}.accrual-summary-table th:nth-child(2),.accrual-summary-table td:nth-child(2){text-align:center}

.bar-row:nth-child(4) .bar-fill{background:#d7a34b}

.accrual-ledger :is(th,td):nth-child(n+5){text-align:center}.accrual-filters{flex-wrap:wrap;margin-top:16px}.accrual-filters input{width:100%}.accrual-filters button,[data-accrual-refresh]{border:1px solid #cbd8e5;background:white;color:var(--teal);border-radius:6px;padding:9px 11px}

.registry-filters{flex-wrap:wrap;margin-top:16px}.registry-filters input{width:100%}.registry-filters button,[data-registry-back]{border:1px solid #cbd8e5;background:white;color:var(--teal);border-radius:6px;padding:9px 11px}

.wage-form{display:grid;gap:14px}.wage-form>label{display:grid;gap:7px;font-size:13px}.wage-form button{justify-self:start}.wage-form button:disabled{opacity:.5}.hourly-rate-table :is(th,td):nth-child(2){text-align:center}

.contractor-decision{display:grid;gap:12px}.contractor-decision label{display:grid;gap:7px;font-size:13px}.contractor-decision textarea{font:inherit;min-height:60px;border:1px solid #cfdae6;border-radius:7px;padding:10px}.contractor-decision button{justify-self:start}

[data-project-approvals],[data-approval-refresh]{border:1px solid #cbd8e5;background:white;color:var(--teal);border-radius:6px;padding:9px 11px;margin-bottom:10px}

.costs-table th:last-child,.costs-table td:last-child{text-align:center}.cost-summary{margin:16px 0}[data-cost-refresh]{border:1px solid #cbd8e5;background:white;color:var(--teal);border-radius:6px;padding:9px 11px}

.cost-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.cost-summary .amount-value{font-size:24px}@media(max-width:600px){.cost-summary{grid-template-columns:1fr}}

/* Seven portfolio metrics: three primary cards followed by four payment cards. */
@media(min-width:1101px){.metrics-panel .kpis{grid-template-columns:repeat(12,minmax(0,1fr))}.metrics-panel .kpi{grid-column:span 3}.metrics-panel .kpi:nth-child(-n+3){grid-column:span 4}}
@media(min-width:701px) and (max-width:1100px){.metrics-panel .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics-panel .kpi:last-child{grid-column:span 2}}
.filters input[type=date]{min-width:0;width:100%;padding:11px 14px;border:1px solid var(--line,#d4dfec);border-radius:8px;background:white;color:inherit;font:inherit}
.sidebar{overflow-y:auto}
@media(max-width:700px){.sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:14px}.sidebar nav button{min-width:0;padding:9px 8px;font-size:12px;gap:7px}.sidebar nav .icon{width:18px;height:18px}.sidebar nav button:last-child{grid-column:1/-1}}
.metrics-heading,.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.metrics-heading .metrics-title{margin:0}.metrics-heading button{border:0;border-radius:7px;padding:10px 14px;background:var(--teal);color:white}.dashboard-jump{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.dashboard-jump button,.dashboard-heading button{border:1px solid var(--line);background:white;border-radius:7px;padding:9px 12px;color:var(--teal)}.dashboard-section{padding:18px 0;border-bottom:1px solid var(--line);scroll-margin-top:12px}.dashboard-heading h3{margin:0 0 8px}.dashboard-bars{display:grid;gap:12px;margin:18px 0}.dashboard-bar-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(60px,2fr) minmax(110px,1fr);gap:12px;align-items:center;font-size:13px}.dashboard-track{height:12px;background:#edf3f5;border-radius:4px;position:relative}.dashboard-track span{display:block;height:100%;background:var(--teal);border-radius:4px;min-width:0}.dashboard-track .negative{background:#bc5349}.dashboard-track i{position:absolute;top:-3px;height:18px;border-left:2px solid #243b53}.dashboard-value{text-align:right;font-variant-numeric:tabular-nums}.dashboard-value small{display:block;color:var(--muted);margin-top:3px}.dashboard-bar-row .project-link{font-size:13px;overflow-wrap:anywhere}
@media(max-width:600px){.metrics-heading,.dashboard-heading{align-items:start;flex-direction:column}.dashboard-bar-row{grid-template-columns:1fr 1fr}.dashboard-track{grid-row:2;grid-column:1/-1}.dashboard-value{grid-column:2}.dashboard-section{padding:14px 0}}
/* Full portfolio dashboard: presentation only; domain and access rules are shared. */
.metrics-actions{display:flex;justify-content:flex-end;margin-top:16px}
.metrics-actions button{border:0;border-radius:8px;padding:12px 18px;background:var(--teal);color:white;font-weight:600}
dialog.dashboard-full{inset:0;margin:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;--line:#26354e;--muted:#a0afc5;--teal:#39cbd1;background:#070f20;color:#e6eef9}
.dashboard-full .modal-head{background:#0b1529;border-bottom-color:#22324b;align-items:center;padding:18px 24px}
.dashboard-full .modal-head h2{color:#eef5ff;font-size:22px;letter-spacing:-.4px}
.dashboard-full .modal-head .eyebrow{color:#52d3d3}
.dashboard-full .modal-head button{background:#1e3049;color:#d3e6fb}
.dashboard-full #detailBody{padding:18px 24px 28px;flex:1;background:radial-gradient(ellipse at top right,#14264288,transparent 55%),#070f20}
.dashboard-full #detailBody>.demo-notice{margin:0 0 18px;background:#102238;border:1px solid #243a50;color:#afc5da;font-size:12px;line-height:1.6}
.dashboard-stat-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:20px}
.dashboard-stat{border:1px solid #26354e;border-radius:12px;background:linear-gradient(145deg,#14223b,#0f1b30);padding:16px;text-align:left;color:#c2d0e3;display:flex;flex-direction:column;gap:10px;min-width:0;border-top:3px solid var(--chart-color,#39cbd1)}
.dashboard-stat:hover{background:#192d48}
.dashboard-stat span{font-size:12px;line-height:1.4;min-height:34px}
.dashboard-stat strong{font-size:clamp(18px,1.7vw,26px);font-variant-numeric:tabular-nums;letter-spacing:-.7px;color:#f4f8ff;white-space:normal;overflow-wrap:anywhere}
.dashboard-stat small{font-size:10px;color:#92a7c1;line-height:1.4}
[data-tone=active]{--chart-color:#39cbd1}[data-tone=profit]{--chart-color:#62d7a4}[data-tone=costs]{--chart-color:#9c8bff}[data-tone=claimed]{--chart-color:#55aaff}[data-tone=certified]{--chart-color:#35cbca}[data-tone=received]{--chart-color:#71d6bc}[data-tone=overdue]{--chart-color:#f3bb59}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.dashboard-full .dashboard-section,.dashboard-mix{border:1px solid #23334d;border-radius:14px;background:linear-gradient(145deg,#122039,#0d182c);padding:20px;min-width:0;box-shadow:0 10px 28px #0002}
.dashboard-full .dashboard-section:first-child{grid-column:span 2}
.dashboard-full .dashboard-heading{gap:12px;align-items:start}
.dashboard-full .dashboard-heading h3{color:#c7d6e9;font-size:14px;font-weight:500;line-height:1.4;letter-spacing:0}
.dashboard-full .amount-value{color:var(--chart-color,#eaf2ff);font-size:28px}
.dashboard-full .dashboard-heading button,.dashboard-mix>button{padding:7px 9px;background:#1a2c45;color:#afc5e1;border:1px solid #304561;border-radius:6px;font-size:10px;white-space:normal;overflow-wrap:anywhere}
.dashboard-full .muted{color:#9aadc6;font-size:11px;line-height:1.55}
.dashboard-full .dashboard-bars{max-height:245px;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#385273 #122039;padding-right:5px;margin-bottom:0}
.dashboard-full .dashboard-bar-row{grid-template-columns:minmax(78px,1fr) minmax(45px,1.25fr) minmax(80px,1fr);font-size:11px;gap:9px}
.dashboard-full .dashboard-bar-row .project-link{color:#c7d9ee;font-size:11px;text-align:left}
.dashboard-full .dashboard-value{color:#dce8f8}
.dashboard-full .dashboard-track{height:8px;background:#25334a}
.dashboard-full .dashboard-track span{background:var(--chart-color,#39cbd1)}
.dashboard-full .dashboard-track .negative{background:#f57884}
.dashboard-full .dashboard-track i{border-color:#d5e1f5;height:14px}
.dashboard-full .dashboard-section>.demo-notice{background:#1a2b42;color:#bacfe7}
.dashboard-mix-body{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:22px 0}
.dashboard-donut{width:160px;height:160px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.dashboard-donut>div{width:126px;height:126px;border-radius:50%;background:#101c31;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.dashboard-donut span{color:#96aac6;font-size:10px;letter-spacing:2px}
.dashboard-donut strong{font-size:18px;color:#eef5ff;letter-spacing:-.5px}
.dashboard-legend{display:grid;gap:16px;flex:1;min-width:140px;font-size:11px}
.dashboard-legend>div{display:grid;gap:6px}
.dashboard-legend span{color:#aebfd6;display:flex;align-items:center;gap:7px}
.dashboard-legend i{width:7px;height:7px;display:inline-block;border-radius:50%;flex-shrink:0}
.dashboard-legend strong{color:#e2ecf9;font-size:14px}
.dashboard-return{margin:16px 0;border:1px solid #cad8e6;background:#eef6f4;color:#007e73;border-radius:7px;padding:9px 12px}
@media(min-width:1700px){.dashboard-full .dashboard-bars{max-height:290px}}
@media(max-width:1200px){.dashboard-stat-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dashboard-full .modal-head{padding:16px}.dashboard-full .modal-head h2{font-size:18px}.dashboard-full #detailBody{padding:14px}.dashboard-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dashboard-stat{padding:12px}.dashboard-stat strong{font-size:21px}.dashboard-stat:last-child{grid-column:1/-1}.dashboard-grid{grid-template-columns:1fr;gap:14px}.dashboard-full .dashboard-section:first-child{grid-column:auto}.dashboard-full .dashboard-section,.dashboard-mix{padding:16px}.dashboard-full .dashboard-heading{flex-direction:row}.dashboard-full .dashboard-bar-row{grid-template-columns:1fr 1fr}.dashboard-full .dashboard-track{grid-row:2;grid-column:1/-1}.dashboard-full .dashboard-value{grid-column:2}.dashboard-mix-body{justify-content:center}}
/* A single portfolio composition: money, outcome, costs and delivery. */
.dashboard-full #detailBody{padding:14px 22px 12px;background:radial-gradient(ellipse at 70% 0,#29243b77,transparent 65%),#10111c}
.dashboard-full .modal-head{padding:13px 22px;background:#151623;border-bottom-color:#303246}
.dashboard-full .modal-head h2{font-size:20px}
.portfolio-overview{max-width:1700px;margin:0 auto}
.portfolio-context{display:flex;justify-content:space-between;gap:20px;color:#9c9eb8;font-size:11px;line-height:1.5;margin-bottom:14px;flex-wrap:wrap}
.portfolio-canvas{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:260px 260px;gap:16px}
.portfolio-panel{min-width:0;border:1px solid #3a3b52;background:linear-gradient(120deg,#1d2031,#1b1c2d);border-radius:13px;padding:19px 20px;box-shadow:0 7px 12px #0003;display:flex;flex-direction:column;overflow:hidden}
.portfolio-payments{grid-column:span 5;grid-row:span 2}
.portfolio-profit{grid-column:span 7}
.portfolio-costs{grid-column:span 4}
.portfolio-progress{grid-column:span 3}
.portfolio-panel-title{display:flex;justify-content:space-between;gap:12px;align-items:start}
.portfolio-kicker{display:block;color:#878ca9;font-size:9px;letter-spacing:1.5px;margin-bottom:7px}
.portfolio-panel h3{font-size:16px;letter-spacing:-.3px;line-height:1.3;font-weight:500;margin:0;color:#e9e9f5}
.portfolio-unit{font-size:10px;color:#9396ad;letter-spacing:2px}
.portfolio-panel button[data-dashboard-source]{border:1px solid #45465f;border-radius:5px;background:#282b40;color:#c0c3e1;font-size:10px;padding:6px 9px;white-space:normal;overflow-wrap:anywhere}
.portfolio-panel button[data-dashboard-source]:hover{background:#3d3b5b;color:white}
.portfolio-stages{display:grid;gap:20px;margin-top:30px}
.portfolio-stage{position:relative}
.portfolio-stage>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px}
.portfolio-stage>div:first-child>span{display:flex;align-items:center;gap:9px;color:#bdc0d8;font-size:12px}
.portfolio-stage i{font-size:9px;font-style:normal;color:#8086a5}
.portfolio-stage>strong{display:block;font-size:30px;font-weight:600;letter-spacing:-.8px;margin:5px 0 9px;color:#f2f2fb;font-variant-numeric:tabular-nums}
.portfolio-stage-track{height:12px;border-radius:4px;background:#2c2d44;overflow:hidden}
.portfolio-stage-track span{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#42cde0,#707ce9)}
.portfolio-stage[data-tone=certified] .portfolio-stage-track span{background:linear-gradient(90deg,#4bb9de,#a17be7)}
.portfolio-stage[data-tone=received] .portfolio-stage-track span{background:linear-gradient(90deg,#3cc3bc,#64d5c6)}
.portfolio-stage small{display:block;color:#898eaa;font-size:10px;margin-top:5px}
.portfolio-overdue{margin-top:auto;padding:16px 0 0;border-top:1px solid #36374f;display:flex;align-items:center;justify-content:space-between;gap:12px}
.portfolio-overdue span,.portfolio-overdue small{display:block;font-size:11px;color:#a49cb0}
.portfolio-overdue strong{display:block;color:#f0b75e;font-size:25px;margin:5px 0}
.portfolio-overdue small{font-size:10px}
.portfolio-footnote{font-size:10px;line-height:1.5;color:#9295ae;margin:13px 0 0}
.portfolio-total{text-align:right}
.portfolio-total strong{font-size:26px;font-weight:600;letter-spacing:-.7px;color:#d7d0ff}
.portfolio-total small{display:block;font-size:10px;color:#8d90ac;margin-top:3px}
.portfolio-profit-chart{display:flex;align-items:stretch;gap:14px;flex:1;min-height:0;padding:15px 0 0;border-bottom:1px solid #45465e}
.portfolio-column{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:end;min-width:0;background:none;border:0;padding:0;color:#aeb2cd}
.portfolio-column>strong{font-size:11px;font-weight:500;white-space:normal;overflow-wrap:anywhere}
.portfolio-column>span:last-child{font-size:10px;max-width:100%;white-space:normal;overflow-wrap:anywhere;padding:8px 0}
.portfolio-column-track{display:flex;align-items:end;width:min(56px,80%);flex:1;min-height:0;padding-top:8px}
.portfolio-column-track i{width:100%;min-height:0;background:linear-gradient(0deg,#5752b6,#51cde3);border-radius:5px 5px 0 0}
.portfolio-column-track .negative{background:linear-gradient(0deg,#a4486d,#e0849d)}
.portfolio-column:hover{color:white}
.portfolio-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px}
.portfolio-card-bottom small{font-size:10px;color:#8e91ac}
.portfolio-cost-body{display:flex;gap:18px;align-items:center;flex:1;min-height:0;padding-top:12px}
.portfolio-ring{width:142px;height:142px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;transform:rotate(-90deg)}
.portfolio-ring>div{width:112px;height:112px;background:#1d1e30;border-radius:50%;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center;transform:rotate(90deg)}
.portfolio-ring small{color:#898da8;font-size:9px;letter-spacing:1px}
.portfolio-ring strong{font-size:19px;color:#f1efff;font-weight:500;letter-spacing:-.5px}
.portfolio-cost-legend{flex:1;min-width:0;display:grid;gap:13px}
.portfolio-cost-legend>div{display:grid;gap:4px;font-size:10px}
.portfolio-cost-legend span{color:#a9adc7;display:flex;align-items:center;gap:6px}
.portfolio-cost-legend i{height:6px;width:6px;border-radius:50%;flex-shrink:0}
.portfolio-cost-legend strong{color:#e5e4f6;font-size:14px;font-weight:500;white-space:nowrap}
.portfolio-progress h3 b{font-size:15px;color:#65d3da;background:#2a3547;padding:2px 7px;border-radius:5px;margin-left:5px;font-weight:500}
.portfolio-progress-list{display:grid;gap:12px;margin-top:17px;flex:1}
.portfolio-progress-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px;font-size:10px}
.portfolio-progress-list .project-link{font-size:11px;color:#c5c6de;text-align:left;white-space:normal;overflow-wrap:anywhere}
.portfolio-progress-list span{color:#deddf2}
.portfolio-progress-list small{color:#858aa6}
.portfolio-progress-track{position:relative;grid-column:1/-1;height:5px;background:#303248;border-radius:3px}
.portfolio-progress-track i{display:block;height:100%;background:linear-gradient(90deg,#7773d7,#53c6dc);border-radius:3px}
.portfolio-progress-track b{position:absolute;top:-2px;height:9px;border-left:1px solid #e7defc}
.portfolio-disclosure{font-size:10px;color:#9295af;line-height:1.5;margin:12px 0 0}
.portfolio-no-data{color:#b6b2ce;font-size:12px;line-height:1.6;margin:auto 0}
@media(min-width:1500px) and (min-height:850px){.portfolio-canvas{grid-template-rows:300px 300px}.portfolio-panel{padding:24px}.portfolio-stages{gap:28px}.portfolio-ring{width:170px;height:170px}.portfolio-ring>div{width:135px;height:135px}}
@media(max-width:1100px){.portfolio-canvas{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto}.portfolio-payments{grid-column:1;grid-row:span 2;min-height:540px}.portfolio-profit{grid-column:2;min-height:250px}.portfolio-costs{grid-column:2;min-height:250px}.portfolio-progress{grid-column:1/-1;min-height:230px}.portfolio-cost-body{gap:12px}.portfolio-ring{width:125px;height:125px}.portfolio-ring>div{width:98px;height:98px}.portfolio-ring strong{font-size:16px}}
@media(max-width:700px){.dashboard-full #detailBody{padding:12px}.portfolio-context{gap:6px}.portfolio-canvas{display:flex;flex-direction:column;gap:12px}.portfolio-panel{padding:18px}.portfolio-payments{min-height:570px}.portfolio-profit{height:270px;flex:none}.portfolio-costs{min-height:270px}.portfolio-progress{min-height:290px}.portfolio-stages{gap:22px}.portfolio-stage>strong{font-size:29px}.portfolio-total strong{font-size:23px}.portfolio-profit-chart{gap:7px}.portfolio-column>strong{font-size:9px}.portfolio-column>span:last-child{font-size:8px}.portfolio-card-bottom small{font-size:9px}.portfolio-cost-body{justify-content:center;gap:25px}.portfolio-ring{width:150px;height:150px}.portfolio-ring>div{width:118px;height:118px}.portfolio-ring strong{font-size:18px}.portfolio-cost-legend{flex:0 1 130px}}
@media(min-width:1101px) and (max-height:849px){.portfolio-stages{gap:14px;margin-top:20px}.portfolio-stage>strong{font-size:28px;margin:4px 0 6px}.portfolio-stage-track{height:10px}.portfolio-stage small{font-size:9px;margin-top:3px}.portfolio-stage button[data-dashboard-source]{padding:4px 7px}}
@media(min-width:1101px) and (max-height:849px){.portfolio-stages{gap:12px;margin-top:20px}.portfolio-stage>strong{font-size:26px;margin:3px 0}.portfolio-ring{width:120px;height:120px}.portfolio-ring>div{width:94px;height:94px}.portfolio-ring strong{font-size:17px}.portfolio-footnote{font-size:9px;margin-top:10px}}
.customer-totals{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}
.customer-totals .amount-value,.customer-totals strong{font-size:20px}
.customer-for-kind[hidden]{display:none!important}
@media(max-width:800px){.customer-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-totals>div:last-child{grid-column:1/-1}}
/* Align working screens without changing labels or hiding content. */
.overview-filters{display:grid;grid-template-columns:100px 160px minmax(180px,1fr) minmax(200px,1fr);gap:12px 16px;align-items:end;background:#fff;padding:16px 18px;border:1px solid var(--line);border-radius:10px}
.overview-filters label{min-width:0;gap:5px}.overview-filters label span{font-size:12px;line-height:1.4;min-height:17px}
.overview-filters label:has(#asOf){grid-column:1/3}.overview-filters label:has(#customerSource){grid-column:3}
.overview-filters #asOf,.overview-filters select{width:100%;height:40px;font-size:14px}
.overview-filters .reset{justify-self:end;align-self:center}
.summary-help{color:var(--muted);font-size:12px;margin-top:8px;line-height:1.6}
.summary-help summary{cursor:pointer;width:fit-content;color:#527183}
.summary-help p{max-width:900px;margin:8px 0 0}
.metrics-panel .kpi-label{min-height:40px;align-items:start}
.metrics-panel .kpi .amount-value{font-size:24px}
.metrics-panel .kpi .amount-note{font-size:12px}
.customer-heading{margin:18px 0 14px;align-items:center}
.customer-heading h3{margin:0;font-size:17px}
.customer-date{margin:5px 0 0;color:var(--muted);font-size:12px}
.customer-totals{gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#f7fafb;margin:14px 0 10px}
.customer-totals .detail-cell{border-radius:0;background:none;padding:16px 14px;border-right:1px solid var(--line)}
.customer-totals .detail-cell:last-child{border-right:0}
.customer-totals .detail-cell>span{display:block;font-size:12px;line-height:18px;min-height:36px;white-space:normal}
.customer-totals .detail-cell strong{font-size:23px;margin-top:7px;font-weight:700}
.customer-totals [data-customer-metric=remaining]{background:#edf8f5}
.customer-totals [data-customer-metric=overdue]{background:#fff8eb}
.customer-totals [data-customer-metric=overdue] strong{color:#ab6807}
.customer-totals small{font-size:10px}
.customer-coverage{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.customer-help{margin:10px 0 18px;color:var(--muted);font-size:12px}
.customer-help summary,.customer-obligations summary{cursor:pointer;color:#4a6475}
.customer-help .muted{font-size:12px;line-height:1.6}
.customer-section-title{font-size:15px;margin:22px 0 12px}
.customer-obligations{border-top:1px solid var(--line);padding-top:16px;margin-top:20px}
.customer-obligations>summary{font-weight:600;font-size:14px;margin-bottom:12px}
.customer-obligations>summary span{font-size:11px;background:#edf2f6;padding:2px 7px;border-radius:10px;margin-left:7px}
[data-project-approvals]{border:1px solid #cbd8e5;border-radius:7px;background:#fff;color:var(--teal);padding:9px 12px;font-size:13px}
.customer-entry-action{font-weight:600}
@media(max-width:1100px){.overview-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-filters label:has(#asOf){grid-column:auto}.overview-filters label:has(#customerSource){grid-column:auto}.overview-filters .reset{grid-column:2}}
@media(max-width:600px){.overview-filters{padding:14px;gap:12px}.overview-filters label{min-width:0}.overview-filters #asOf,.overview-filters select{font-size:13px}.customer-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-totals .detail-cell{border-bottom:1px solid var(--line)}.customer-totals .detail-cell:nth-child(2n){border-right:0}.customer-totals .detail-cell:last-child{border-bottom:0}.customer-heading h3{font-size:16px}.customer-totals .detail-cell strong{font-size:22px}}
.customer-form-help{font-size:12px;color:var(--muted);line-height:1.6}
.customer-form-help summary{cursor:pointer}
/* Full labels and always-visible guidance; only spacing and alignment change. */
.overview-filters label span{min-height:34px;display:flex;align-items:flex-end}
.overview-filters .reset{align-self:end;height:40px}
.customer-totals .detail-cell{display:flex;flex-direction:column}
.customer-totals .detail-cell strong{margin-top:10px;line-height:28px}
.customer-totals .detail-cell small{margin-top:6px;line-height:15px}
[data-customer-form]>label:not(.full-field):not(.allocation-check){display:flex;flex-direction:column;justify-content:flex-end}
[data-customer-form]>label>input,[data-customer-form]>label>select{min-height:40px}
.contractor-decision button[type=submit]{min-height:38px;border:1px solid var(--teal);border-radius:6px;padding:9px 14px;background:var(--teal);color:#fff;font:inherit;font-size:13px}
.contractor-decision button[value=RETURNED]{background:#fff;color:var(--teal)}
.contractor-decision button:disabled{opacity:.5;cursor:default}
@media(max-width:600px){.customer-totals .detail-cell>span{min-height:36px}.overview-filters label span{min-height:34px}}
.contractor-decision button[type=submit]{min-width:min(220px,100%);max-width:100%}
.customer-records :is(th,td):nth-child(3),.customer-obligations-table :is(th,td):nth-child(n+3){text-align:right}
/* Shared compact controls for all working forms, without changing their behaviour. */
:root{--control-height:36px;--control-font:13px;--control-radius:7px;--control-gap:10px}
main :is(input:not([type=checkbox]):not([type=radio]),select),
#detailBody :is(input:not([type=checkbox]):not([type=radio]),select){height:var(--control-height);min-height:var(--control-height);max-height:var(--control-height);padding:7px 10px;border:1px solid #d3deea;border-radius:var(--control-radius);font-family:inherit;font-size:var(--control-font);line-height:20px;box-sizing:border-box;min-width:0;max-width:100%}
main input[type=date],#detailBody input[type=date]{font-size:13px;line-height:20px;padding:7px 10px;font-variant-numeric:tabular-nums}
input[type=date]::-webkit-calendar-picker-indicator{width:16px;height:16px;padding:0;margin:0 0 0 6px;flex-shrink:0}
#detail:not(.dashboard-full) #detailBody .filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px var(--control-gap);align-items:end}
#detail:not(.dashboard-full) #detailBody .filters label{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-width:0;font-size:13px;line-height:18px}
#detailBody .filters label>input,#detailBody .filters label>select{width:100%}
.filter-actions{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;min-width:0}
#detail:not(.dashboard-full) #detailBody .filter-actions button{flex:1 0 auto;min-width:min(100%,140px);max-width:100%;margin:0;white-space:normal;overflow-wrap:anywhere;padding:7px 10px;min-height:36px;height:auto;align-self:stretch}
#detail:not(.dashboard-full) #detailBody :is(button:not(.project-link):not([data-remove-crew]),.project-tabs button){min-height:36px;border-radius:7px;font-family:inherit;font-size:13px;line-height:20px}
#detailBody :is([data-work-refresh],[data-cost-refresh],[data-cost-overview-refresh],[data-customer-refresh],[data-accrual-refresh],[data-approval-refresh],[data-registry-back],[data-project-approvals]){padding:7px 11px;border:1px solid #cbd8e5;background:#fff;color:var(--teal);border-radius:7px;font-size:13px}
#detailBody .filters button{border:1px solid #cbd8e5;background:#fff;color:var(--teal);border-radius:7px;padding:7px 11px}
#detailBody :is(.work-form-box,.allocation-form,.allocation-crew-row,.contractor-decision) label{font-size:13px;line-height:18px}
#detailBody textarea{font-family:inherit;font-size:13px;line-height:20px;padding:8px 10px;border:1px solid #d3deea;border-radius:7px;max-width:100%;box-sizing:border-box}
#detailBody :is(.work-form-box button,.allocation-form button,.contractor-decision button[type=submit]){padding:7px 12px;font-size:13px;line-height:20px}
#detailBody .project-tabs{display:flex;flex-wrap:wrap;gap:8px;border:0;margin:14px 0 18px;padding:0}
#detailBody .project-tabs button{appearance:none;border:1px solid #cbd8e5;border-radius:7px;background:#fff;color:#50637a;padding:7px 12px;min-height:36px;line-height:20px;font-size:13px;font-weight:500;text-decoration:none}
#detailBody .project-tabs button[aria-pressed=true]{background:#008879;border:1px solid #008879;color:#fff;font-weight:600}
#detailBody .work-sections{display:flex;flex-wrap:wrap;gap:8px}
#detailBody .work-sections button{border:1px solid #cbd8e5;border-radius:7px;background:#fff;color:#50637a;padding:7px 10px;font-size:13px}
#detailBody .work-sections button[aria-pressed=true]{background:#008879;border-color:#008879;color:#fff}
.overview-filters{gap:12px 14px;padding:14px 16px}
.overview-filters label span{min-height:18px;font-size:12px;line-height:18px}
.overview-filters :is(select,input[type=date]){height:36px;min-height:36px;max-height:36px;padding:7px 10px;font-size:13px}
.overview-filters .reset{height:36px;min-height:36px;padding:7px 10px}
#detailBody .work-table :is(th,td){padding:10px 12px}
@media(max-width:600px){#detail:not(.dashboard-full) #detailBody .filters{grid-template-columns:minmax(0,1fr)}.filter-actions{flex-wrap:nowrap}#detailBody .project-tabs button{font-size:12px;padding:7px 10px}}
main .user-tools .reset,main .metrics-actions button{min-height:36px;height:auto;padding:7px 12px;font-size:13px;line-height:20px;box-sizing:border-box}
.overview-filters #asOf,.overview-filters select{height:36px;min-height:36px;max-height:36px;font-size:13px;line-height:20px;padding:7px 10px}
#detail:not(.dashboard-full) #detailBody .filters{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:800px){#detail:not(.dashboard-full) #detailBody .filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#detail:not(.dashboard-full) #detailBody .filters{grid-template-columns:minmax(0,1fr)}}
/* Independent inclusive date range; demo snapshot selectors do not clamp it. */
.overview-filters{grid-template-columns:repeat(4,minmax(0,1fr))}
.overview-filters label:has(#reportFrom),.overview-filters label:has(#asOf),.overview-filters label:has(#customerSource){grid-column:auto}
.range-hint{font-size:12px;line-height:1.6;color:var(--muted);margin:-8px 0 16px}
.range-error{border:1px solid #efb8af;background:#fff4f1;color:#a64131;border-radius:7px;padding:10px 12px;font-size:13px;line-height:1.5;margin:0 0 16px}
.range-error[hidden]{display:none}
@media(max-width:1100px){.overview-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.overview-filters{grid-template-columns:minmax(0,1fr)}.overview-filters .reset{grid-column:1;justify-self:start}}

/* Manager approval status totals; director summary retains its existing layout. */
.approval-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px;margin:16px 0 8px}
.approval-counts div{min-width:0}.approval-counts dt{font-size:13px;line-height:1.4}.approval-counts dd{margin:6px 0 0;font-size:20px;font-weight:700;line-height:1.3}
@media(max-width:600px){.approval-counts{grid-template-columns:1fr;gap:12px}.approval-counts div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.approval-counts dd{margin:0;flex-shrink:0}}

.receipt-allocation-lines{display:grid;gap:12px}.receipt-allocation-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,180px) auto;gap:12px;align-items:end}.receipt-allocation-line>*{min-width:0}.receipt-allocation-line select,.receipt-allocation-line input{width:100%;min-width:0}.receipt-allocation-review .record-fields{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0}.receipt-allocation-review .work-table{font-size:13px}
@media(max-width:600px){.receipt-allocation-line{grid-template-columns:minmax(0,1fr)}.receipt-allocation-review .record-fields{grid-template-columns:minmax(0,1fr)}.receipt-allocation-review .work-table{min-width:500px}}

[data-customer-allocation-form]>*{min-width:0}[data-receipt-allocation-preview]{max-width:100%}
@media(max-width:600px){.work-form-box form[data-customer-allocation-form]{grid-template-columns:minmax(0,1fr)}}

[hidden]{display:none!important}.sync-status{font-size:12px;color:#536b80;line-height:1.5;padding:0 2px 12px}.sync-status.error{color:#a13c2e}.draft-indicator{color:#62748b;font-size:12px;line-height:1.5;margin:0}.workflow-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.workflow-tabs button{border:1px solid #cbd8e5;border-radius:7px;background:white;color:#405b72;padding:8px 12px;font-size:13px;min-height:36px}.workflow-tabs button[aria-pressed=true]{background:#008879;color:white;border-color:#008879}.workflow-tabs strong{margin-left:6px}.record-notice{background:#edf7f3;padding:14px;border-radius:8px;font-size:13px;line-height:1.6}.posting-result{background:#edf7f3;padding:10px 12px;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.request-conflict{background:#fff1dd;color:#89510c;padding:10px 12px;border-radius:6px;font-size:13px;line-height:1.6}.control-task{line-height:1.6}.financial-record [data-close-request]{display:grid;gap:8px;margin:12px 0}.financial-record [data-close-request] label{display:grid;gap:6px;font-size:13px}.financial-record [data-close-request] button{justify-self:start}[data-source-id]:target,.source-highlight{outline:2px solid #1eaa94;outline-offset:-2px;background:#f0faf7}select[multiple]{height:auto!important;min-height:100px!important;max-height:180px!important}.overview-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.project-settings{display:grid;gap:12px;margin-top:18px}.project-settings label{display:grid;gap:6px;font-size:13px}.workflow-tabs+[data-workflow-filters]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;gap:10px}
@media(max-width:600px){.overview-filters{grid-template-columns:minmax(0,1fr)}.workflow-tabs+[data-workflow-filters]{grid-template-columns:minmax(0,1fr)}.workflow-tabs button{flex:1 1 44%;font-size:12px}.financial-record{min-width:0}.financial-record .record-fields>*{min-width:0;overflow-wrap:anywhere}}

.overview-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.overview-filters input[type=number]{width:100%;min-width:0}.filters .filter-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.filter-error{grid-column:1/-1;color:#a13c2e;font-size:13px;margin:0}.registry-table{min-width:780px}.registry-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.registry-filters .filter-actions{grid-column:1/-1}.filters input[type=number]{min-width:0;width:100%}
@media(max-width:850px){.overview-filters,.registry-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.overview-filters,.registry-filters{grid-template-columns:minmax(0,1fr)}.filters .filter-actions{align-items:stretch;flex-direction:column}.filters .filter-actions button{width:100%}}

.scope-error{color:#9a4b12;background:#fff5e5;border:1px solid #edd6ac;border-radius:7px;padding:12px 14px;font-size:13px;line-height:1.6}.report-scope{background:#edf7f3;border:1px solid #d8e9e5;border-radius:7px;padding:12px 14px;margin:0 0 14px;color:#234358;font-size:13px;line-height:1.7;overflow-wrap:anywhere}.report-scope button{margin:5px 0 0 8px}.filters .filter-actions{grid-column:1/-1}.workflow-tabs+[data-workflow-filters]{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){.workflow-tabs+[data-workflow-filters]{grid-template-columns:minmax(0,1fr)}.report-scope button{display:block;margin:8px 0 0}}
.report-scope button{border:1px solid #bfd4e7;border-radius:7px;background:#fff;color:#087e78;padding:7px 11px;margin:5px 0 0 8px;font:inherit;cursor:pointer}.report-scope button:hover{background:#f0fbf8}.report-scope button:focus-visible{outline:2px solid #00a99c;outline-offset:2px}

/* Full labels stay within their controls. */
button>*,button .amount-value{min-width:0;max-width:100%;overflow-wrap:anywhere}button .amount-value{white-space:normal}
@media(max-width:600px){#detail:not(.dashboard-full) #detailBody .filter-actions button{flex:none;width:100%;height:auto}.report-scope button{margin-left:0}}
/* Dashboard uses the remaining viewport rather than a guessed pixel height. */
.dashboard-full .modal-head{padding:8px 14px;gap:12px}
.dashboard-full .modal-head>div{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;min-width:0}
.dashboard-full .modal-head .eyebrow{margin:0;font-size:9px;letter-spacing:1px}
.dashboard-full .modal-head h2{font-size:18px}
.dashboard-full .modal-sync{margin:0;font-size:11px}
.dashboard-full #detailBody{display:flex;flex-direction:column;gap:8px;padding:8px 14px;overflow:hidden;min-height:0}
.dashboard-full #detailBody>.report-scope{flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0;padding:6px 10px;font-size:11px;line-height:16px}
.dashboard-full .report-scope br{display:none}
.dashboard-full .report-scope button{margin:0 0 0 auto;font-size:11px}
.dashboard-full .report-scope .source-status{flex-basis:100%;margin:0}
.dashboard-full .portfolio-overview{display:flex;flex-direction:column;flex:1;gap:8px;min-height:0;width:100%}
.dashboard-full .portfolio-context{flex:none;margin:0;gap:4px 12px;font-size:10px;line-height:14px}
.dashboard-full .portfolio-canvas{display:grid;flex:1;height:auto;max-height:none;min-height:0;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:12px}
.dashboard-full .portfolio-panel{padding:12px 14px;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#555a77 transparent}
.dashboard-full .portfolio-payments{grid-column:span 5;grid-row:span 2}
.dashboard-full .portfolio-profit{grid-column:span 7;height:auto}
.dashboard-full .portfolio-costs{grid-column:span 4}
.dashboard-full .portfolio-progress{grid-column:span 3}
.dashboard-full .portfolio-panel h3{font-size:14px}
.dashboard-full .portfolio-kicker{font-size:8px;letter-spacing:1px;margin-bottom:4px}
.dashboard-full .portfolio-stages{gap:8px;margin-top:8px}
.dashboard-full .portfolio-stage{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px}
.dashboard-full .portfolio-stage>div:first-child{display:contents}
.dashboard-full .portfolio-stage>div:first-child>span{grid-column:1;grid-row:1;font-size:11px}
.dashboard-full .portfolio-stage>div:first-child>button{grid-column:2;grid-row:1/span 2;align-self:center}
.dashboard-full .portfolio-stage>strong{grid-column:1;grid-row:2;font-size:26px;line-height:30px;margin:0}
.dashboard-full .portfolio-stage-track{grid-column:1/-1;grid-row:3;height:6px}
.dashboard-full .portfolio-stage small{grid-column:1/-1;grid-row:4;margin:0;font-size:9px;line-height:12px}
.dashboard-full .portfolio-overdue{padding-top:8px;gap:8px}
.dashboard-full .portfolio-overdue strong{font-size:23px;line-height:26px;margin:2px 0}
.dashboard-full .portfolio-footnote{font-size:9px;line-height:13px;margin:6px 0 0}
.dashboard-full .portfolio-total strong{font-size:22px}
.dashboard-full .portfolio-total small{font-size:9px}
.dashboard-full .portfolio-profit-chart{padding-top:8px;min-height:0;overflow:auto;gap:10px}
.dashboard-full .portfolio-column{flex:1 0 80px;min-height:min-content}
.dashboard-full .portfolio-column>span:last-child{font-size:10px;padding:6px 0;overflow-wrap:break-word}
.dashboard-full .portfolio-card-bottom{flex:none;margin-top:6px}
.dashboard-full .portfolio-card-bottom small{font-size:9px}
.dashboard-full .portfolio-cost-body{gap:12px;padding-top:8px;min-height:100px}
.dashboard-full .portfolio-ring{width:clamp(100px,12vh,135px);height:clamp(100px,12vh,135px)}
.dashboard-full .portfolio-ring>div{width:78%;height:78%;gap:4px}
.dashboard-full .portfolio-ring strong{font-size:15px}
.dashboard-full .portfolio-cost-legend{gap:8px;flex:1;min-width:90px}
.dashboard-full .portfolio-progress-list{gap:7px;margin-top:8px;min-height:0}
.dashboard-full .portfolio-disclosure{flex:none;margin:0;font-size:10px;line-height:14px}
@media(max-width:899px){
 .dashboard-full .portfolio-canvas{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dashboard-full .portfolio-payments,.dashboard-full .portfolio-profit,.dashboard-full .portfolio-costs,.dashboard-full .portfolio-progress{grid-column:auto;grid-row:auto}
 .dashboard-full .portfolio-panel{padding:10px}
 .dashboard-full .portfolio-cost-body{flex-direction:column;min-height:min-content;align-items:center}
 .dashboard-full .portfolio-cost-legend{width:100%;min-width:0}
}
@media(max-width:599px){
 .dashboard-full .portfolio-canvas{grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(4,minmax(0,1fr));gap:8px}
 .dashboard-full .modal-head .eyebrow{display:none}
 .dashboard-full .portfolio-context{flex-wrap:nowrap;overflow:auto}
 .dashboard-full .portfolio-context>span{flex:0 0 auto}
 .dashboard-full .portfolio-panel-title{flex:none}
 .dashboard-full .portfolio-panel>*{flex-shrink:0}
 .dashboard-full .portfolio-cost-body{flex-direction:row;min-height:100px}
 .dashboard-full .portfolio-disclosure{font-size:9px;line-height:12px}
}
.dashboard-full .portfolio-panel button[data-dashboard-source]{flex-shrink:0;min-width:max-content}
.dashboard-full .report-scope-period{border-left:1px solid #bfd4d0;padding-left:8px}
@media(max-width:899px){
 .dashboard-full .portfolio-profit-chart{flex:0 0 auto;min-height:120px}
 .dashboard-full .portfolio-progress-list{flex:0 0 auto;min-height:min-content}
 .dashboard-full .portfolio-cost-body{flex:0 0 auto}
}
@media(min-width:900px) and (max-height:550px){
 .dashboard-full .portfolio-panel{padding:8px 10px}
 .dashboard-full .portfolio-panel h3{font-size:13px}
 .dashboard-full .portfolio-kicker{font-size:7px;margin-bottom:3px}
 .dashboard-full .portfolio-stages{gap:6px;margin-top:6px}
 .dashboard-full .portfolio-stage{gap:2px 8px}
 .dashboard-full .portfolio-stage>div:first-child>span{font-size:10px;line-height:12px}
 .dashboard-full .portfolio-stage>strong{font-size:22px;line-height:24px}
 .dashboard-full .portfolio-stage-track{height:4px}
 .dashboard-full .portfolio-stage small{font-size:8px;line-height:10px}
 .dashboard-full .portfolio-overdue{padding-top:6px}
 .dashboard-full .portfolio-overdue span,.dashboard-full .portfolio-overdue small{font-size:9px;line-height:10px}
 .dashboard-full .portfolio-overdue strong{font-size:21px;line-height:23px;margin:1px 0}
 .dashboard-full .portfolio-footnote{font-size:8px;line-height:10px;margin-top:4px}
 .dashboard-full .portfolio-ring{width:80px;height:80px}
 .dashboard-full .portfolio-ring strong{font-size:13px}
 .dashboard-full .portfolio-cost-body{min-height:80px;gap:6px;padding-top:6px}
 .dashboard-full .portfolio-cost-legend{gap:5px}
 .dashboard-full .portfolio-cost-legend strong{font-size:12px}
 .dashboard-full .portfolio-progress-list{gap:5px;margin-top:6px}
}

/* All ordinary action controls share one height, including wrapped labels. */
:where(main,.sidebar) button:not(.kpi):not(.alert):not(.project-link),
#detail:not(.dashboard-full) #detailBody button:not(.project-link):not(.portfolio-column):not(.dashboard-stat),
#detail.dashboard-full #detailBody button:not(.project-link):not(.portfolio-column):not(.dashboard-stat){
 height:var(--control-height);min-height:var(--control-height);max-height:var(--control-height);
 line-height:16px;padding-block:1px;box-sizing:border-box;white-space:normal;
}
.modal-head button{width:36px;height:36px;min-height:36px;max-height:36px;flex-basis:36px}

#detailBody .workflow-tabs button{flex:1 0 auto}
.source-status{border:1px solid #c6ded8;background:#eef8f5;color:#365f58;border-radius:7px;padding:9px 12px;margin:12px 0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.source-status.error{border-color:#e5cfa8;background:#fff7e9;color:#82551b}.source-status button{margin:4px 0 0 8px;max-width:100%;border:1px solid #cbd8e5;border-radius:7px;padding-inline:11px;background:white;color:#087e78;font:inherit}@media(max-width:600px){.source-status button{display:block;margin:8px 0 0}}
.modal-sync{margin:6px 0 0;font-size:12px;line-height:1.4;color:#62748b;overflow-wrap:anywhere}.modal-sync.error{color:#9a5b16}.dashboard-full .modal-sync{color:#a5c0d5}.dashboard-full .modal-sync.error{color:#f0bf76}

/* Size table columns from whole words; keep row actions readable. */
.work-table :is(th,td),.work-table small,.work-table button{overflow-wrap:break-word;word-break:normal}
.registry-table{min-width:960px}
.registry-table :is(th,td):first-child{min-width:140px}
.registry-table :is(th,td):last-child{min-width:90px}
.registry-table :is(th,td):nth-child(6){min-width:110px}
.registry-table [data-registry-project]{white-space:nowrap;overflow-wrap:normal}
#detail:has(.registry-table){width:min(1100px,94vw)}

/* Familiar report controls: presets first, exact dates only when requested. */
.report-caption{margin:10px 0 14px;color:#62748b;font-size:12px;line-height:1.5;overflow-wrap:break-word}
.report-help{margin:14px 0;font-size:12px;line-height:1.6;color:#62748b}.report-help summary{cursor:pointer;color:#087e78}.report-help p{margin:8px 0}
#detailBody :is(.report-filters,.registry-filters,.accrual-filters,[data-workflow-filters]){margin-top:14px}
#detailBody :is(.report-filters,.registry-filters,.accrual-filters,[data-workflow-filters]) .filter-actions button{flex:0 0 auto;min-width:112px}
#detailBody .filter-actions .filter-check{display:flex;align-items:center;justify-content:flex-start;flex:1 1 auto;gap:7px;font-size:12px;line-height:16px;margin:0}
.filter-check input{width:14px;height:14px;padding:0;flex:none}
.dashboard-full #detailBody>.source-status{flex:none;margin:0}
@media(min-width:1250px){.overview-filters{grid-template-columns:minmax(75px,.6fr) minmax(150px,1.2fr) minmax(150px,1fr) minmax(180px,1.3fr) minmax(150px,1fr) auto}.overview-filters .custom-date-range{order:1}}
@media(max-width:600px){#detailBody :is(.report-filters,.registry-filters,.accrual-filters,[data-workflow-filters]) .filter-actions{flex-direction:row;flex-wrap:wrap}#detailBody :is(.report-filters,.registry-filters,.accrual-filters,[data-workflow-filters]) .filter-actions button{flex:1 1 100px;width:auto;min-width:0}.filter-actions .filter-check{flex-basis:100%!important}}
#detail:not(.dashboard-full) #detailBody .filters .filter-actions button{flex:0 0 auto;min-width:112px}
#detail:not(.dashboard-full) #detailBody .filters .filter-actions .filter-check{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;flex:1 1 auto;gap:7px;margin:0;font-size:12px;line-height:16px}
@media(max-width:600px){#detail:not(.dashboard-full) #detailBody .filters .filter-actions button{flex:1 1 100px;min-width:0;width:auto}}
#detail:not(.dashboard-full) #detailBody .filters .filter-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
#detail:not(.dashboard-full) #detailBody .filters .filter-check input[type=checkbox]{width:14px;min-width:14px;max-width:14px;height:14px;min-height:14px;max-height:14px;flex:0 0 14px;padding:0}
.custom-date-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1/-1;gap:12px;width:100%;max-width:520px;min-width:0}
.custom-date-range>label{min-width:0}
.custom-date-range input[type=date]{width:100%;min-width:0}
@media(max-width:600px){.custom-date-range{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}}
.access-page{margin:0 auto;max-width:1040px;padding:32px 20px}.access-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.access-form{display:grid;gap:14px;max-width:520px;margin:20px 0}.access-form label,#invitationResult label{display:grid;gap:6px;font-size:13px;min-width:0}.access-form :is(input,select),#invitationLink{width:100%;min-width:0;height:36px;border:1px solid #cbd8e5;border-radius:6px;padding:7px 10px;background:white;color:inherit}.access-form button,.access-page [data-account],#copyInvitation,.start-guide button,.project-setup button,.action-link{height:36px;min-height:36px;border:1px solid #cbd8e5;border-radius:6px;padding:0 12px;background:white;color:var(--teal);font:inherit;line-height:16px;text-align:center;overflow-wrap:normal;word-break:normal;white-space:normal;cursor:pointer}.access-form button{justify-self:start}.access-form[hidden]{display:none}.action-link{display:inline-flex;align-items:center;text-decoration:none}.start-guide{margin:16px 0}.start-guide h2{font-size:18px}.project-setup{padding:16px;border:1px solid var(--line);border-radius:8px;margin:18px 0}.project-setup h3{margin-top:0}.setup-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.setup-steps>div{min-width:0;padding:12px;background:#f5f8fb;border-radius:6px}.setup-steps p{overflow-wrap:anywhere}.setup-steps button{max-width:100%;width:max-content}.project-setup .filter-actions{display:flex;flex-wrap:wrap;gap:8px}.access-form .muted{margin:0}#invitationResult{margin:18px 0;padding:16px;background:#ecf7f3;border-radius:8px}.access-page .work-table td{overflow-wrap:anywhere}.access-page .work-table{min-width:620px}@media(max-width:700px){.access-page{padding:16px 12px}.setup-steps{grid-template-columns:1fr}.login-panel{padding:20px}.access-page h1{font-size:24px}}
.access-page>.panel{padding:24px}.access-form button,.access-page [data-account],#copyInvitation,.start-guide button,.project-setup button{font-size:13px;max-width:100%}@media(max-width:700px){.access-page>.panel{padding:16px}}
