:root{--background:#f6f4ef;--surface:#ffffff;--surface-warm:#fffaf1;--foreground:#17202a;--muted:#667085;--subtle:#8a9483;--line:#d9d5ca;--line-strong:#bbb4a5;--primary:#126454;--primary-strong:#0c4b3f;--primary-soft:#e4f1ec;--danger:#b53b34;--danger-soft:#fae8e6;--warning:#a86616;--warning-soft:#fff0cf;--info:#245d8f;--info-soft:#e3eef9;--success:#1d6b3a;--success-soft:#e4f3e9;--shadow:0 16px 40px rgba(23,32,42,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--background);color:var(--foreground);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-header{align-items:center;background:rgba(246,244,239,.96);border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;min-height:74px;padding:14px 16px;position:-webkit-sticky;position:sticky;top:0;z-index:20}.app-header h1{font-size:1.08rem;line-height:1.15;margin:3px 0 0}.eyebrow{color:var(--primary);font-size:.72rem;font-weight:800;letter-spacing:0;margin:0;text-transform:uppercase}.app-frame{min-height:calc(100vh - 74px)}.app-content{min-width:0}.page-shell{display:grid;grid-gap:18px;gap:18px;margin:0 auto;max-width:1180px;padding:18px 14px 104px}.page-title{align-items:flex-start;display:flex;gap:14px;justify-content:space-between}.page-title h2{font-size:1.72rem;line-height:1.04;margin:5px 0 8px}.page-title p:not(.eyebrow){color:var(--muted);font-size:.96rem;line-height:1.45;margin:0}.page-action{flex:0 0 auto}.primary-button,.secondary-button{align-items:center;border-radius:7px;display:inline-flex;gap:8px;font-weight:800;justify-content:center;min-height:42px;padding:0 14px;white-space:nowrap}.primary-button{background:var(--primary);border:1px solid var(--primary);color:#ffffff}.primary-button:hover{background:var(--primary-strong)}.primary-button:disabled{opacity:.7}.secondary-button{background:var(--surface);border:1px solid var(--line-strong);color:var(--foreground)}.metric-grid{display:grid;grid-gap:10px;gap:10px}.metric-grid,.metric-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:8px;display:grid;grid-gap:8px;gap:8px;min-height:92px;padding:13px}.metric-card span{color:var(--muted);font-size:.82rem;line-height:1.25}.metric-card strong{font-size:1.42rem;letter-spacing:0}.metric-card.tone-success{border-left-color:var(--success)}.metric-card.tone-warning{border-left-color:var(--warning)}.metric-card.tone-danger{border-left-color:var(--danger)}.metric-card.tone-info{border-left-color:var(--info)}.quick-actions,.upload-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr}.panel-section{display:grid;grid-gap:12px;gap:12px}.section-heading{align-items:center;display:flex;justify-content:space-between}.section-heading h2{font-size:1rem;margin:0}.alert-stack,.ledger-list,.report-grid,.settings-groups,.settings-list{display:grid;grid-gap:10px;gap:10px}.alert-banner{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:9px;gap:9px;grid-template-columns:auto minmax(0,1fr) auto;min-height:58px;padding:12px}.alert-banner svg{color:var(--warning)}.status-chip{align-items:center;background:#eef0ec;border:1px solid transparent;border-radius:999px;color:#3f453f;display:inline-flex;font-size:.73rem;font-weight:800;line-height:1;min-height:24px;padding:0 9px;white-space:nowrap}.tone-success{background:var(--success-soft);color:var(--success)}.tone-warning{background:var(--warning-soft);color:var(--warning)}.tone-danger{background:var(--danger-soft);color:var(--danger)}.tone-info{background:var(--info-soft);color:var(--info)}.ledger-row{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;padding:13px;position:relative}.ledger-row.linked{padding-right:36px}.ledger-row-main{align-items:flex-start;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto}.ledger-row h3{font-size:.98rem;line-height:1.22;margin:0 0 4px}.ledger-row p{color:var(--muted);font-size:.82rem;line-height:1.35;margin:0}.ledger-row-side{align-items:flex-end;display:grid;grid-gap:7px;gap:7px;justify-items:end}.ledger-row-side strong{font-size:1rem}.ledger-row-detail{color:var(--muted);display:grid;grid-gap:7px;gap:7px;font-size:.85rem;line-height:1.42}.ledger-row-detail span{align-items:center;display:inline-flex;gap:5px}.row-chevron{color:var(--subtle);position:absolute;right:12px;top:21px}.search-filter{display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto}.search-box{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:flex;gap:9px;min-height:44px;padding:0 12px}.search-box input{background:transparent;border:0;color:var(--foreground);min-width:0;outline:0;width:100%}.icon-button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--foreground);display:inline-flex;height:44px;justify-content:center;width:44px}.filter-pills{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.form-page{padding-bottom:132px}.form-grid{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:13px;gap:13px;padding:14px}.field{display:grid;grid-gap:6px;gap:6px}.field span{color:var(--muted);font-size:.8rem;font-weight:800}.field input,.field select,.field textarea{background:#fffdfa;border:1px solid var(--line);border-radius:7px;color:var(--foreground);min-height:44px;padding:10px 11px;width:100%}.field textarea{resize:vertical}.form-error{background:var(--danger-soft);border:1px solid rgba(181,59,52,.28);border-radius:8px;color:var(--danger);font-size:.9rem;font-weight:800;padding:11px 12px}.form-actions{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr}.file-upload{align-items:center;background:#fffdfa;border:1px dashed var(--line-strong);border-radius:8px;color:var(--foreground);cursor:pointer;display:grid;grid-gap:5px;gap:5px;justify-items:center;min-height:132px;padding:16px;text-align:center}.file-upload svg{color:var(--primary)}.file-upload strong{color:var(--foreground);font-size:.98rem}.file-upload small{color:var(--muted);font-size:.82rem}.file-upload input{border:0;min-height:auto;padding:8px 0 0}.two-col{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.segmented-control{background:#ece8dd;border-radius:8px;display:grid;grid-gap:4px;gap:4px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.segmented-control button{background:transparent;border:0;border-radius:6px;color:var(--muted);font-weight:800;min-height:38px}.segmented-control button.active{background:var(--surface);box-shadow:0 1px 5px rgba(23,32,42,.1);color:var(--foreground)}.confirmation-text,.review-card{background:var(--surface-warm);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:9px;gap:9px;padding:14px}.review-card{grid-template-columns:minmax(0,1fr) auto}.confirmation-text,.review-card span{color:var(--muted)}.review-card strong{justify-self:end}.report-actions button,.row-actions button,.upload-grid button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--foreground);display:inline-flex;gap:7px;justify-content:center;min-height:42px;padding:0 12px}.sticky-actions{background:rgba(246,244,239,.94);border-top:1px solid var(--line);bottom:72px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 1fr;left:0;padding:10px 14px;position:fixed;right:0;z-index:18}.sticky-actions.single-action{grid-template-columns:1fr}.contractor-entries-page,.contractor-submit-page{max-width:760px}.compact-form{padding:12px}.success-panel{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr);padding:16px}.success-panel svg{color:var(--success)}.success-panel div{display:grid;grid-gap:4px;gap:4px}.success-panel strong{font-size:1.35rem}.success-panel span{color:var(--muted)}.allocation-list{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid}.allocation-row{align-items:center;border-bottom:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) 78px auto;padding:12px}.allocation-row:last-child{border-bottom:0}.allocation-row div{display:grid;grid-gap:3px;gap:3px}.allocation-row span{color:var(--muted);font-size:.8rem}.allocation-row input{border:1px solid var(--line);border-radius:7px;min-height:38px;padding:8px;width:100%}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.more-grid{display:grid;grid-gap:10px;gap:10px}.more-item,.report-card,.settings-group,.settings-list div{background:var(--surface);border:1px solid var(--line);border-radius:8px}.more-item{align-items:center;display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr);min-height:72px;padding:14px}.more-item svg{color:var(--primary)}.more-item div{display:grid;grid-gap:3px;gap:3px}.more-item span,.report-card p{color:var(--muted);font-size:.86rem;line-height:1.35}.report-card{display:grid;grid-gap:14px;gap:14px;padding:14px}.report-card h3{font-size:.98rem;margin:0 0 5px}.report-card p{margin:0}.report-actions{align-items:center;display:flex;gap:8px;justify-content:space-between}.settings-list div,.settings-row{align-items:center;display:flex;gap:9px;min-height:48px;padding:12px}.settings-list svg,.settings-row svg{color:var(--primary);flex:0 0 auto}.settings-group{display:grid;grid-gap:6px;gap:6px;padding:14px}.settings-group-title{align-items:center;display:grid;grid-gap:8px;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;margin-bottom:4px}.settings-group-title h3{font-size:1rem;margin:0}.review-page{max-width:1320px}.group-controls,.review-toolbar{display:grid;grid-gap:10px;gap:10px}.group-controls{grid-template-columns:1fr}.group-controls .field{background:var(--surface)}.group-controls .field,.review-actions{border:1px solid var(--line);border-radius:8px;padding:10px}.review-actions{background:rgba(246,244,239,.94);display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr;position:-webkit-sticky;position:sticky;top:86px;z-index:10}.empty-panel{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr);padding:16px}.empty-panel svg{color:var(--success)}.empty-panel div{display:grid;grid-gap:4px;gap:4px}.empty-panel span{color:var(--muted);font-size:.9rem}.review-group,.review-ledger,.review-site-group{display:grid;grid-gap:12px;gap:12px}.review-group{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px}.review-group-header,.review-site-header{align-items:start;display:grid;grid-gap:8px;gap:8px}.review-group-header h2{font-size:1.05rem;margin:0 0 3px}.review-group-header span,.review-site-header span{color:var(--muted);font-size:.82rem}.review-group-totals{display:flex;flex-wrap:wrap;gap:8px}.review-site-header{background:var(--primary-soft);border-radius:7px;color:var(--primary);padding:10px}.review-table{border:1px solid var(--line);border-radius:8px;overflow:hidden}.review-table-head{display:none}.review-row{background:#fffdfa;border-bottom:1px solid var(--line);display:grid;grid-gap:8px;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;padding:12px}.review-row:last-child{border-bottom:0}.review-row>span,.review-row>strong{align-items:center;display:inline-flex;min-width:0}.review-row>strong{grid-column:2/-1;line-height:1.35}.review-row input[type=checkbox]{height:18px;width:18px}.side-nav{display:none}.bottom-nav{background:rgba(255,255,255,.96);border-top:1px solid var(--line);bottom:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));left:0;min-height:72px;padding:7px 5px 8px;position:fixed;right:0;z-index:30}.bottom-nav-link{align-items:center;border-radius:7px;color:var(--muted);display:grid;font-size:.68rem;font-weight:800;grid-gap:4px;gap:4px;justify-items:center;min-width:0;padding:6px 2px}.bottom-nav-link.active{background:var(--primary-soft);color:var(--primary)}@media (min-width:620px){.quick-actions,.report-grid,.upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:920px){.app-header{padding:14px 28px}.app-frame{display:grid;grid-template-columns:236px minmax(0,1fr)}.side-nav{align-content:start;border-right:1px solid var(--line);display:grid;grid-gap:6px;gap:6px;min-height:calc(100vh - 74px);padding:18px 12px;position:-webkit-sticky;position:sticky;top:74px}.nav-link{align-items:center;border-radius:7px;color:var(--muted);display:flex;gap:10px;font-weight:800;min-height:42px;padding:0 12px}.nav-link.active{background:var(--primary-soft);color:var(--primary)}.bottom-nav{display:none}.page-shell{padding:28px 28px 60px}.page-title h2{font-size:2.12rem}.quick-actions,.review-actions,.upload-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid,.group-controls,.ledger-list{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .field:has(textarea),.form-grid .form-actions,.form-grid .form-error,.form-grid .segmented-control{grid-column:1/-1}.form-actions{grid-template-columns:1fr 1fr;justify-self:end;min-width:320px}.sticky-actions{border:0;bottom:24px;box-shadow:var(--shadow);left:auto;max-width:420px;right:28px}}@media (min-width:1100px){.review-group-header{align-items:center;grid-template-columns:minmax(0,1fr) auto}.review-table{overflow-x:auto}.review-row,.review-table-head{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:36px 118px minmax(320px,1fr) 72px 96px 140px 150px 126px;min-width:1040px}.review-table-head{background:#f0eee7;border-bottom:1px solid var(--line);color:var(--muted);font-size:.76rem;font-weight:800;padding:10px 12px}.review-row>strong{grid-column:auto}}