:root{--bg:#f2f5f8;--surface:#ffffff;--surface-sunken:#f7f9fb;--border:#d9e0e8;--border-strong:#aebccc;--text:#091727;--text-muted:#5a6b7e;--text-faint:#728196;--accent:#57a14c;--accent-hover:#3e7d36;--accent-soft:#edf7eb;--project-folder-green:#3e7d36;--project-folder-green-hover:#468a3d;--ok:#1c7c4a;--ok-soft:#e6f4ec;--warn:#9a6400;--warn-soft:#fdf3e0;--danger:#b3261e;--danger-soft:#fceceb;--info:#1f4e8c;--info-soft:#e8eff8;--muted-soft:#eef1f5;--radius:10px;--radius-sm:7px;--control-h:34px;--shadow:0 1px 2px rgba(22,32,46,0.04),0 6px 18px rgba(22,32,46,0.05);--font-sans:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"Archivo",ui-sans-serif,system-ui,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;--sidebar-width:232px;--topbar-height:56px}@font-face{font-family:Inter;src:url(/brand/Inter.ttf) format("truetype");font-weight:400 800;font-display:swap}@font-face{font-family:Archivo;src:url(/brand/Archivo.ttf) format("truetype");font-weight:400 800;font-display:swap}@font-face{font-family:Archivo;src:url(/brand/Archivo-Italic.ttf) format("truetype");font-weight:800;font-style:italic;font-display:swap}*{box-sizing:border-box}body,html{margin:0;padding:0;background:radial-gradient(circle at 88% -8%,rgba(66,121,185,.1),transparent 30rem),var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh}.nav-toggle.mobile-nav-toggle{display:none}:root{--nav-rail:56px}html[data-nav=collapsed] .shell{grid-template-columns:var(--nav-rail) 1fr}html[data-nav=collapsed] .nav-count,html[data-nav=collapsed] .nav-label,html[data-nav=collapsed] .sidebar-brand-text,html[data-nav=collapsed] .sidebar-job,html[data-nav=collapsed] .sidebar-section{display:none}html[data-nav=collapsed] .sidebar-brand{justify-content:center;padding:12px 0}html[data-nav=collapsed] .sidebar-nav a{justify-content:center;padding:9px 0;gap:0}html[data-nav=collapsed] nav>div+div{border-top:1px solid rgba(255,255,255,.08);margin-top:6px;padding-top:6px}.nav-icon{flex:0 0 auto;display:block}.nav-toggle{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#c9d3e0;border-radius:var(--radius-sm);padding:0;width:30px;height:30px;line-height:1;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center}.nav-toggle:hover{background:rgba(255,255,255,.14);color:#fff}.sidebar{background:linear-gradient(180deg,#122a4a,#091727);color:#c9d3e0;padding:0;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar-brand{padding:12px 10px 12px 16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:6px}.sidebar-brand-text{flex:1 1;min-width:0}.sidebar-brand-text img{display:block;width:112px;height:auto;object-fit:contain}.sidebar-brand strong{display:block;color:#fff;font-size:16px;letter-spacing:-.01em}.sidebar-brand span{font-size:11px;color:#8b98a9;text-transform:uppercase;letter-spacing:.06em}.sidebar-section{padding:18px 18px 7px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8796aa;font-weight:600}.sidebar-nav{display:flex;flex-direction:column;padding-bottom:20px}.sidebar-nav a{color:#c9d3e0;padding:7px 18px;font-size:13px;display:flex;align-items:center;gap:10px;border-left:3px solid transparent}.nav-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav a:hover{background:rgba(255,255,255,.05);text-decoration:none;color:#fff}.sidebar-nav a[data-active=true]{background:linear-gradient(90deg,rgba(58,129,207,.24),rgba(58,129,207,.06));border-left-color:#72b0ec;color:#fff;font-weight:500}.nav-count{font-size:11px;background:rgba(255,255,255,.12);border-radius:10px;padding:1px 7px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.main{display:flex;flex-direction:column;min-width:0}.topbar{min-height:var(--topbar-height);background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;flex-wrap:nowrap;gap:24px;padding:10px 28px;box-shadow:0 1px 0 rgba(22,32,46,.02);position:-webkit-sticky;position:sticky;top:0;z-index:20}.topbar,.topbar-lead{display:flex;align-items:center}.topbar-lead{gap:10px;min-width:0}.topbar-titles{min-width:0}.topbar-subtitle,.topbar-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar>.row{flex-wrap:nowrap;min-width:0;justify-content:flex-end}.topbar-title{font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:-.01em}.topbar-workspace{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-width:0}.topbar-actions{min-width:0}.topbar-actions>.row{flex-wrap:nowrap;gap:8px!important}.topbar-actions .combo{flex:0 1 340px;max-width:340px}.topbar-actions .btn{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 4px 10px rgba(62,125,54,.22)}.topbar-actions .btn:hover{background:var(--accent-hover);color:#fff}.topbar-subtitle{font-size:12px;color:var(--text-muted)}.topbar-user{display:flex;align-items:center;gap:12px;font-size:12px;flex:0 0 auto}.content{padding:30px 32px 44px;max-width:1600px;width:100%;min-width:0}.page-header{margin-bottom:24px}.page-header h1{font-family:var(--font-display);margin:0 0 4px;font-size:26px;letter-spacing:-.035em;line-height:1.12}.page-header p{margin:0;color:var(--text-muted);font-size:14px}.page-header-actions{justify-content:flex-end}.row,.row-between{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row-between{justify-content:space-between}.spacer{flex:1 1}.grid{display:grid;grid-gap:16px;gap:16px}.grid,.grid>*{min-width:0}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:12px}.mono{font-family:var(--font-mono)}.mono,.numeric{font-feature-settings:tabular-nums slashed-zero;font-variant-numeric:tabular-nums slashed-zero}.numeric{text-align:right}.nowrap,.numeric{white-space:nowrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;min-width:0}.card-header{padding:14px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#fff,#fbfcfe);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-header h2,.card-header h3{margin:0;font-size:14px;font-weight:700}.card-body{padding:18px}.card-body.flush{padding:0}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:17px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden}.metric:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent);opacity:.85}.metric:hover{border-color:#bdceb9}.metric-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:600;margin-bottom:6px}.metric-value{font-size:clamp(20px,2vw,26px);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.metric-note{font-size:11px;color:var(--text-muted);margin-top:4px}.table-wrap{overflow-x:auto;max-width:100%;min-width:0;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.attachment-list{list-style:none;margin:4px 0 0;padding:0}.attachment-list li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--border)}.attachment-list li:last-child{border-bottom:none}.attachment-name{font-weight:500}.attach-form{display:block;min-width:320px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);text-align:left}.cash-chart>svg{width:100%;height:auto;display:block;print-color-adjust:exact;-webkit-print-color-adjust:exact}.cash-axis-label{font-size:10px;fill:var(--text-faint)}.cash-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;padding-top:8px}.cash-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.revision-list{margin:4px 0 0;padding-left:18px;line-height:1.7}.revision-list li{margin-bottom:4px}.revision-current{font-weight:500}.revision-comment{font-style:italic;max-width:62ch}.budget-amend{white-space:nowrap;vertical-align:top}.amend-form{display:block;min-width:300px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);text-align:left}.retention-row-action{white-space:nowrap}.retention-row-action form{justify-content:flex-end}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--border-strong);background:#f4f7fa;white-space:normal}table.data td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.ts-grid-wrap{max-height:62vh;overflow:auto}.ts-grid{table-layout:auto}.ts-grid td,.ts-grid th{padding:4px 6px;vertical-align:middle}.ts-grid thead th{top:0;background:#f4f7fa;border-bottom:1px solid var(--border-strong)}.ts-grid tfoot td,.ts-grid thead th{position:-webkit-sticky;position:sticky;z-index:2}.ts-grid tfoot td{bottom:0;background:var(--surface);border-top:1px solid var(--border-strong);border-bottom:none}.ts-grid input,.ts-grid select{width:100%;min-width:0}.ts-grid .ts-line{width:1%}table.data.bill-lines th{color:var(--text);font-size:11.5px;font-weight:700}table.data.bill-lines td{font-size:13.5px;color:var(--text)}table.data tbody tr:hover{background:#f5f8fc}table.data tfoot td{padding:10px;font-weight:600;border-top:2px solid var(--border-strong);background:var(--surface-sunken);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.aia-col-letter{color:var(--text-faint)}.aia-col-letter,.th-hint{display:block;font-size:10px;font-weight:500}.th-hint{text-transform:none;letter-spacing:0;color:var(--text-muted)}table.data tr.subtotal td{background:var(--surface-sunken);font-weight:600}table.data tr.grand-total td{background:var(--accent-soft);font-weight:700;border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}table.data tr.exempt td{color:var(--text-muted)}table.data tr.over-billed td{background:var(--warn-soft)}.chips{display:flex;flex-wrap:wrap}.chip,.chips{gap:6px;align-items:center}.chip{display:inline-flex;font-size:12px;padding:3px 10px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);text-decoration:none;white-space:nowrap}.chip:hover{border-color:var(--border-strong);color:var(--text)}.chip.current{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover);font-weight:600}.chip .chip-count{font-size:11px;font-feature-settings:tabular-nums slashed-zero;font-variant-numeric:tabular-nums slashed-zero;color:var(--text-faint)}.chip.current .chip-count{color:var(--accent)}.chip.empty{opacity:.9}.pager{flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:4px}.pager,.pager-pages{display:flex;align-items:center}.pager-pages{gap:2px}.pager-page,.pager-step{display:inline-block;min-width:26px;text-align:center;font-size:12px;padding:3px 7px;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--text-muted);text-decoration:none;font-feature-settings:tabular-nums slashed-zero;font-variant-numeric:tabular-nums slashed-zero}.pager-page:hover,.pager-step:hover{background:var(--surface-sunken);color:var(--text)}.pager-page.current{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:700}.pager-step.disabled{color:var(--text-faint);opacity:.5}.pager-gap{color:var(--text-faint);padding:0 2px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:11px;white-space:nowrap;border:1px solid transparent}.badge-ok{background:var(--ok-soft);color:var(--ok);border-color:#bfe0cd}.badge-warn{background:var(--warn-soft);color:var(--warn);border-color:#edd9ac}.badge-danger{background:var(--danger-soft);color:var(--danger);border-color:#f0c4c1}.badge-info{background:var(--info-soft);color:var(--info);border-color:#c3d5ec}.badge-muted{background:var(--muted-soft);color:var(--text-muted);border-color:var(--border)}.btn,button{font-family:inherit;font-size:13px;font-weight:600;padding:7px 13px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.2;min-height:var(--control-h);white-space:nowrap}.btn:hover,button:hover:not(:disabled){background:var(--surface-sunken);text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary,.topbar-actions .btn,button.primary{box-shadow:0 3px 8px rgba(62,125,54,.18)}.btn.primary:hover,button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{border-color:transparent;background:transparent}button.small{font-size:12px;padding:4px 9px;min-height:28px}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:var(--text-muted)}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],select,textarea{font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);width:100%}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],select{min-height:var(--control-h)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}input[type=search]::-webkit-search-cancel-button{cursor:pointer}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.combo{position:relative;flex:1 1 460px;min-width:380px}.combo.compact{flex:0 1 auto;min-width:300px}.combo-field{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 6px;min-height:var(--control-h);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);cursor:text}.combo-field:focus-within,.combo.open .combo-field{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.combo-field input{flex:1 1;min-width:220px;width:auto;border:none;background:transparent;padding:4px;min-height:0;font-size:13px}.combo-field input:focus{outline:none;border-color:transparent}.combo-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:2px 4px 2px 8px;border-radius:11px;background:var(--accent-soft);border:1px solid #c3d4ea;color:var(--accent);white-space:nowrap;max-width:100%}.combo-chip .combo-chip-label{overflow:hidden;text-overflow:ellipsis;max-width:360px}.combo-chip .combo-chip-x,.combo-chip button{border:none;background:transparent;color:inherit;padding:0 4px;min-height:0;font-size:13px;line-height:1;opacity:.65;border-radius:8px;text-decoration:none}.combo-chip .combo-chip-x:hover,.combo-chip button:hover{opacity:1;background:rgba(0,0,0,.07);text-decoration:none}.card:has(.combo){overflow:visible}.combo-panel{top:calc(100% + 4px);z-index:60;width:max-content;max-width:min(880px,calc(100vw - 40px));background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 10px 28px rgba(0,0,0,.16);overflow:hidden}.combo-panel,.search-select-menu{position:absolute;left:0;min-width:100%}.search-select-menu{z-index:20;top:100%;margin-top:2px;max-width:360px;background:var(--surface,#fff);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:4px}.combo-list{max-height:320px;overflow-y:auto;margin:0;padding:4px;list-style:none}.combo-option{display:flex;align-items:baseline;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent}.combo-option.active{background:var(--surface-sunken)}.project-crumb{color:var(--accent-hover);display:inline-flex;align-items:center;gap:5px;font-weight:650;text-decoration:none;-webkit-text-decoration-color:rgba(62,125,54,.35);text-decoration-color:rgba(62,125,54,.35);text-underline-offset:3px}.project-crumb:before{content:"←";font-size:14px;font-weight:700;line-height:1}.project-crumb:hover{color:var(--accent);text-decoration:underline}.project-crumb:hover:before{transform:translateX(-2px)}.project-crumb:before{transition:transform .14s ease}.qbo-job-search{flex:1 1 240px;min-width:200px}.qbo-job-toggle{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;cursor:pointer}.qbo-job-contract{max-width:340px}.qbo-job-fee{display:inline-flex;align-items:center;gap:6px}.qbo-job-fee input{width:72px}.qbo-job-bar{gap:10px;padding-top:4px;border-top:1px solid var(--border)}.qbo-job-bar-end{margin-left:auto}.qbo-job-hint{margin:0;max-width:78ch}.data tbody tr.selected{background:var(--surface-2,rgba(0,0,0,.04))}.combo-option.selected{background:var(--accent-soft);border-color:#c3d4ea}.combo-option .combo-option-main{flex:1 1;min-width:0}.combo-option .combo-option-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-option .combo-option-sub{font-size:11px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-option .combo-option-check{color:var(--accent);font-size:13px}.combo-mark{background:#fdf0c8;border-radius:2px;padding:0 1px}.combo-empty{padding:10px 12px;font-size:12px;color:var(--text-muted)}.combo-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-top:1px solid var(--border);background:var(--surface-sunken);font-size:11px;color:var(--text-muted)}.combo-footer button{font-size:11px;padding:3px 8px;min-height:24px}.combo-hint{font-size:11px;color:var(--text-faint);padding:8px 12px}.filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.filter-row .combo{flex:1 1 520px;max-width:680px}.filter-actions{display:flex;align-items:center;gap:8px}.topbar .combo{flex:0 1 340px;min-width:300px;max-width:340px}.topbar .combo-field input{min-width:0}.topbar .combo-panel{left:auto;right:0}.filter-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.filter-hint{margin:10px 0 0;font-size:12px;color:var(--text-faint)}.filter-chips{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.notice{padding:10px 14px;border-radius:var(--radius-sm);border:1px solid;font-size:13px;display:flex;gap:10px;align-items:flex-start}.notice strong{font-family:var(--font-display);letter-spacing:-.01em}.notice-danger{background:var(--danger-soft);border-color:#f0c4c1;color:#7d1a15}.notice-warn{background:var(--warn-soft);border-color:#edd9ac;color:#6b4500}.notice-info{background:var(--info-soft);border-color:#c3d5ec;color:#16395f}.notice-ok{background:var(--ok-soft);border-color:#bfe0cd;color:#145c37}.redacted{color:var(--text-faint);font-style:italic;font-size:12px;cursor:help}.empty-state{padding:52px 24px;text-align:center;color:var(--text-muted)}.empty-state h3{margin:0 0 6px;font-family:var(--font-display);font-size:18px;color:var(--text)}.empty-state:before{content:"";display:block;width:32px;height:4px;margin:0 auto 16px;border-radius:4px;background:var(--accent)}.login-page{min-height:100vh;display:grid;place-items:center;background:#16202e;padding:24px}.login-card{width:100%;max-width:400px;background:var(--surface);border-radius:10px;padding:28px;box-shadow:0 10px 40px rgba(0,0,0,.35)}.login-card h1{margin:0 0 4px;font-size:20px;letter-spacing:-.02em}.demo-accounts{margin-top:20px;border-top:1px solid var(--border);padding-top:14px}.demo-accounts table{width:100%;font-size:12px;border-collapse:collapse}.demo-accounts td{padding:3px 4px;color:var(--text-muted)}.demo-accounts button{font-size:11px;padding:2px 7px}.card,.card-body,.content>*,.table-wrap{max-width:100%}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #5f9ed9;outline-offset:2px}@media (max-width:1100px){.content{padding:24px}.topbar{padding-inline:24px}.topbar-user>div{display:none}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){:root{--topbar-height:54px}.shell,html[data-nav=collapsed] .shell{display:block}.sidebar{position:fixed;z-index:100;inset:0 auto 0 0;width:min(290px,calc(100vw - 56px));max-width:none;box-shadow:18px 0 38px rgba(12,22,35,.28);transform:translateX(0);transition:transform .18s ease}html[data-nav=collapsed] .sidebar{transform:translateX(-105%)}html[data-nav=collapsed] .sidebar .nav-count,html[data-nav=collapsed] .sidebar .nav-label,html[data-nav=collapsed] .sidebar .sidebar-brand-text,html[data-nav=collapsed] .sidebar .sidebar-section{display:initial}html[data-nav=collapsed] .sidebar .sidebar-brand{justify-content:space-between;padding:12px 10px 12px 16px}html[data-nav=collapsed] .sidebar .sidebar-nav a{justify-content:flex-start;padding:9px 18px;gap:10px}html[data-nav=collapsed] .sidebar nav>div+div{border-top:0;margin-top:0;padding-top:0}.nav-toggle.mobile-nav-toggle{display:inline-flex;color:var(--text);background:var(--surface-sunken);border-color:var(--border)}html:not([data-nav=collapsed]) .nav-toggle.mobile-nav-toggle,html[data-nav=collapsed] .sidebar .nav-toggle{display:none}.main{width:100%;overflow:hidden}.topbar{position:-webkit-sticky;position:sticky;gap:10px;padding:8px 14px}.topbar-lead{flex:1 1}.topbar-title{font-size:14px}.topbar-subtitle{display:none}.topbar-workspace{gap:6px}.topbar .combo,.topbar-actions{display:none}.topbar-user{gap:0}.content{padding:20px 14px 32px}.page-header{margin-bottom:18px;align-items:flex-start}.page-header h1{font-size:23px;line-height:1.2}.page-header p{font-size:14px}.page-header-actions{width:100%;justify-content:stretch}.page-header-actions>.btn,.page-header-actions>button{flex:1 1 auto}.card-body,.card-header{padding-inline:14px}.grid,.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr);gap:12px}.metric{padding:15px}.metric-value{font-size:24px}.combo,.combo.compact,.filter-row .combo{min-width:0;flex-basis:100%;max-width:100%}.filter-actions{width:100%}.filter-actions .btn{flex:1 1}.combo-panel{width:100%;max-width:100%}table.data{font-size:13px;min-width:max-content}table.data td,table.data th{padding:9px 10px}.table-wrap:after{content:"Swipe to see more columns";display:block;position:-webkit-sticky;position:sticky;left:0;width:-moz-fit-content;width:fit-content;margin:8px 10px 10px;color:var(--text-faint);font-size:12px}.login-page{place-items:start center;padding:14px}.login-card{padding:22px 18px;border-radius:var(--radius)}table.data.invoice-lines{display:block;min-width:0}table.data.invoice-lines thead{display:none}table.data.invoice-lines tbody,table.data.invoice-lines tfoot{display:block}table.data.invoice-lines tbody tr{display:block;margin-bottom:12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);overflow:hidden}table.data.invoice-lines tbody td{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border)}table.data.invoice-lines tbody tr td:last-child{border-bottom:0}table.data.invoice-lines tbody td:before{content:attr(data-label);text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}table.data.invoice-lines tbody td:not([data-label]):before{content:none}table.data.invoice-lines tbody td:not([data-label]){grid-template-columns:minmax(0,1fr);justify-items:end}table.data.invoice-lines tbody td.line-desc{grid-template-columns:minmax(0,1fr);gap:6px}table.data.invoice-lines tfoot{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-sunken);overflow:hidden}table.data.invoice-lines tfoot tr{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 12px;border-bottom:1px solid var(--border)}table.data.invoice-lines tfoot tr:last-child{border-bottom:0}table.data.invoice-lines tfoot td{padding:0;border:0;background:transparent}table.data.invoice-lines tfoot td:empty{display:none}table.data.invoice-lines tfoot td[colspan]{flex:1 1 auto;text-align:left!important}table.data.invoice-lines tfoot tr:last-child td{font-weight:700}}@media (max-width:1100px){table.data.bill-lines{display:block;min-width:0}table.data.bill-lines thead{display:none}table.data.bill-lines tbody,table.data.bill-lines tfoot{display:block}table.data.bill-lines tbody tr{display:block;margin-bottom:12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);overflow:hidden}table.data.bill-lines tbody td{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:6px;gap:6px;padding:9px 12px;border-bottom:1px solid var(--border);text-align:left!important}table.data.bill-lines tbody tr td:last-child{border-bottom:0}table.data.bill-lines tbody td:before{content:attr(data-label);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}table.data.bill-lines tbody td input[type=text]{width:100%}table.data.bill-lines .search-select-menu{position:static;max-width:100%;margin-top:6px}table.data.bill-lines tfoot{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-sunken);overflow:hidden}table.data.bill-lines tfoot tr{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 12px;border-bottom:1px solid var(--border)}table.data.bill-lines tfoot tr:last-child{border-bottom:0}table.data.bill-lines tfoot td{padding:0;border:0;background:transparent}table.data.bill-lines tfoot td[colspan]{flex:1 1 auto;text-align:left!important}table.data.bill-lines tfoot tr:last-child td{font-weight:700}}.create-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.create-panel>summary{cursor:pointer;padding:11px 16px;font-size:13px;font-weight:600;color:var(--text);list-style:none;display:flex;align-items:center;gap:8px}.create-panel>summary::-webkit-details-marker{display:none}.create-panel>summary:before{content:"";width:0;height:0;border-left:5px solid var(--text-faint);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .12s ease}.create-panel[open]>summary:before{transform:rotate(90deg)}.create-panel>summary:hover{color:var(--accent)}.create-panel[open]>summary{border-bottom:1px solid var(--border)}.create-panel-body{padding:16px;max-width:1100px}.create-panel-body>*+*{margin-top:4px}tr.row-open>td{background:var(--info-soft);border-bottom-color:transparent}tr.row-detail>td{padding:0;background:var(--surface-sunken);border-bottom:2px solid var(--border-strong)}.row-detail-panel{display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);grid-gap:20px;gap:20px;padding:16px 18px 20px;text-align:left;white-space:normal}@media (max-width:1000px){.row-detail-panel{grid-template-columns:minmax(0,1fr)}}.row-detail-aside{display:flex;flex-direction:column;gap:10px;border-right:1px solid var(--border);padding-right:18px}@media (max-width:1000px){.row-detail-aside{border-right:none;border-bottom:1px solid var(--border);padding-right:0;padding-bottom:14px}}.row-detail-main{min-width:0}.detail-form{display:block;min-width:0}.detail-form>*+*{margin-top:14px}.row-detail-heading{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 2px}.row-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end;white-space:nowrap}.row-order{gap:4px}.row-exclude,.row-order{display:inline-flex;align-items:center;white-space:nowrap}.row-exclude{gap:6px;cursor:pointer}.btn.tiny{height:26px;min-height:26px;padding:0 10px;font-size:12px;border-radius:var(--radius-sm)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn.ghost:hover{background:var(--muted-soft);border-color:var(--border);color:var(--text)}.btn.ghost[aria-expanded=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.btn.destructive{color:var(--danger)}.btn.destructive:hover{background:var(--danger-soft);border-color:var(--danger)}td.nowrap,th.nowrap{white-space:nowrap}table.data.fixed{table-layout:fixed}table.data.fixed td,table.data.fixed th{overflow:hidden}table.data.fixed td .faint,table.data.fixed td .muted,table.data.fixed td .small,table.data.fixed td small{white-space:normal;overflow-wrap:anywhere}.cell-clip{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-clip.wide{max-width:20ch}.photo-thumb{flex:0 0 auto;width:56px;height:42px;object-fit:cover;border-radius:4px;border:1px solid var(--border);background:var(--surface-sunken);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-muted);text-decoration:none}.row-inline{flex-wrap:wrap;gap:4px;margin-top:2px}.cell-inline,.row-inline{display:flex;align-items:center}.cell-inline{gap:6px;min-width:0}.row-flag{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--warn);white-space:nowrap}.stack{display:grid;grid-gap:6px;gap:6px;align-content:start;min-width:0}.stack.tight{gap:4px}.dir-search{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.dir-search input[type=text]{min-width:260px}.coverage-summary{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.coverage-line{display:flex;gap:10px;align-items:baseline;padding:8px 12px;border-radius:var(--radius-sm);border-left:3px solid var(--border-strong);background:var(--surface);font-size:13px;line-height:1.45}.coverage-line.danger{border-left-color:var(--danger);background:var(--danger-soft)}.coverage-line.warn{border-left-color:var(--warn);background:var(--warn-soft)}.coverage-line.info{border-left-color:var(--info);background:var(--info-soft)}.coverage-line.ok{border-left-color:var(--ok);background:var(--ok-soft)}.coverage-count{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.coverage-actions{margin-left:auto;white-space:nowrap}.cell-gaps{display:flex;flex-direction:column;gap:3px;font-size:12px;line-height:1.4}.cell-gaps .gap-kind{font-weight:600}.cell-gaps .gap-why{color:var(--text-muted)}.inspection-item{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;background:var(--surface)}.inspection-item>summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;list-style:none}.inspection-item>summary::-webkit-details-marker{display:none}.inspection-item[open]>summary{border-bottom:1px solid var(--border);background:var(--surface-sunken)}.inspection-code{font-family:var(--font-mono);font-size:12px;color:var(--text-muted);min-width:3ch}.inspection-prompt{flex:1 1;min-width:260px;font-size:13px}.inspection-item-body{padding:10px 12px 12px}.inspection-item-body input[type=date],.inspection-item-body input[type=text],.inspection-item-body select{width:100%}.invite-shell{max-width:560px;margin:0 auto;padding:40px 20px 60px}.invite-form{border-top:1px solid var(--border);padding-top:10px;margin-top:4px}.invite-form .row-detail-heading{margin-bottom:6px}.look-list{list-style:none;margin:4px 0 0;padding:0}.look-list li{padding:5px 0;border-bottom:1px solid var(--border);line-height:1.5}.look-list li:last-child{border-bottom:none}table.data.aia-grid td,table.data.aia-grid th{padding-left:8px;padding-right:8px}table.data.fixed td:not(.nowrap){white-space:normal;overflow-wrap:anywhere}table.data.fixed td,table.data.fixed th{padding-left:10px;padding-right:10px}.project-stages{--folder-line:2.5px;display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;align-items:flex-end;gap:0;margin:0 14px;padding:14px 0 0;background:transparent}.project-stages::-webkit-scrollbar{display:none}.project-stage-tab{position:relative;flex-shrink:0;display:inline-flex;align-items:center;padding:11px 38px 12px 18px;margin-right:-22px;border:0;background:none;color:#fff;font-family:inherit;font-size:13px;font-weight:650;text-decoration:none;white-space:nowrap}.project-stage-tab:first-child{z-index:18}.project-stage-tab:nth-child(2){z-index:17}.project-stage-tab:nth-child(3){z-index:16}.project-stage-tab:nth-child(4){z-index:15}.project-stage-tab:nth-child(5){z-index:14}.project-stage-tab:nth-child(6){z-index:13}.project-stage-tab:nth-child(7){z-index:12}.project-stage-tab:nth-child(8){z-index:11}.project-stage-tab:after,.project-stage-tab:before{content:"";position:absolute;top:0;bottom:0;z-index:-1;background:var(--project-folder-green);border:var(--folder-line) solid var(--text);border-bottom:0;transition:background-color .15s ease}.project-stage-tab:before{left:0;right:24px;border-right:0;border-radius:12px 0 0 0}.project-stage-tab:after{right:0;width:46px;border-left:0;border-radius:0 14px 0 0;transform:skewX(24deg);transform-origin:bottom right}.project-stage-tab:hover{text-decoration:none}.project-stage-tab:not(.current):hover:after,.project-stage-tab:not(.current):hover:before{background:var(--project-folder-green-hover)}.project-stage-tab.current{z-index:30;font-weight:800}.project-stage-tab-label{white-space:nowrap}.project-stage-body{position:relative;z-index:20;margin:calc(-1 * 2.5px) 14px 14px;padding:22px 18px 18px;border:2.5px solid var(--text);border-radius:0 12px 12px 12px;background:var(--project-folder-green)}.project-stage-note{margin:0 0 12px 2px;font-size:12.5px;color:rgba(255,255,255,.85)}.project-tab{display:inline-flex;flex-direction:column;gap:2px;padding:10px 14px;border:2px solid var(--text);border-radius:var(--radius);background:#fff;text-decoration:none;color:var(--text);min-width:0;transition:background-color .12s ease,transform .08s ease,box-shadow .12s ease}.project-tab:hover{background:var(--accent-soft);box-shadow:2px 2px 0 0 var(--text);text-decoration:none;transform:translateY(-1px)}.project-tab-label{font-size:13px;font-weight:600;white-space:nowrap}.project-tab-count{font-size:11px;color:var(--text-faint);white-space:nowrap}.project-tabs{display:flex;flex-wrap:wrap;gap:8px}