:root{--navy:#0a2262;--navy-700:#122b72;--navy-50:#eef1f8;--orange:#e87033;--orange-600:#c55a22;--orange-50:#fdf1ea;--ink:#1c1b17;--ink-soft:#5b5748;--line:#dcdfe8;--bg:#f6f7fa;--surface:#fff;--ok:#1f7a4d;--warn:#9a5b00;--warn-bg:#fff6e0;--radius:8px;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Roboto", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5}a{color:var(--navy)}a:hover{color:var(--orange-600)}.brandbar{background:var(--surface);border-bottom:1px solid var(--line)}.brandbar-inner,.nav-inner,main,.footer-inner{max-width:1200px;margin:0 auto;padding:0 16px}.brandbar-inner{justify-content:space-between;align-items:center;gap:16px;padding-top:10px;padding-bottom:10px;display:flex}.brandbar img{width:auto;height:52px;display:block}.brandbar .contact{text-align:right;color:var(--ink-soft);font-size:13px}.brandbar .contact strong{color:var(--navy);font-size:15px}nav.primary{background:var(--navy);border-bottom:3px solid var(--orange);z-index:20;position:relative}.nav-inner{align-items:stretch;gap:4px;display:flex}.nav-links{scrollbar-width:none;flex:auto;gap:4px;min-width:0;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}nav.primary a{color:#fff;white-space:nowrap;border-bottom:3px solid #0000;margin-bottom:-3px;padding:12px 14px;font-weight:500;text-decoration:none}nav.primary a:hover{color:#fff;background:var(--navy-700)}nav.primary a.active,nav.primary a[aria-current=page]{box-shadow:inset 0 -4px 0 var(--orange);background:#ffffff29;font-weight:700}nav.primary a:focus-visible,.user-menu-button:focus-visible,.user-menu-list [role=menuitem]:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}nav.primary a.soon{color:#ffffff73;pointer-events:none}main{padding-top:24px;padding-bottom:48px}h1{color:var(--navy);margin:0 0 4px;font-size:26px}h2{color:var(--navy);margin:32px 0 8px;font-size:18px}.lede{color:var(--ink-soft);max-width:760px;margin:0 0 20px}.cards{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:16px 0 24px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.card .value{font-family:var(--mono);color:var(--navy);font-size:26px;font-weight:600}.card .label{color:var(--ink-soft);font-size:13px}.card.accent{border-top:3px solid var(--orange)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{background:var(--navy);color:#fff;text-align:left;white-space:nowrap;padding:9px 12px;font-size:13px;font-weight:500}td{border-top:1px solid var(--line);vertical-align:top;padding:8px 12px}tr.group td{background:var(--navy-50);color:var(--navy);font-size:13px;font-weight:600}th.num{text-align:right}td.num{text-align:right;font-family:var(--mono);white-space:nowrap}td.nowrap{white-space:nowrap}td.muted,.muted{color:var(--ink-soft)}.small{font-size:12.5px}.badge{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;vertical-align:middle;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.badge.quote{background:var(--navy);color:#fff}.badge.estimate{background:var(--orange-50);color:var(--orange-600);border:1px dashed var(--orange)}.badge.labor{color:var(--ok);background:#e8f3ec}.badge.review{background:var(--warn-bg);color:var(--warn)}.badge.confirmed{color:var(--ok);background:#e8f3ec}.badge.verify{background:var(--warn-bg);color:var(--warn)}.estimate-cell{background:repeating-linear-gradient(135deg,#0000 0 8px,#e870330d 8px 16px)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.filters input,.filters select,.calc input,.calc select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;min-width:0;padding:7px 10px}.filters input[type=search]{flex:240px}button,.button{font:inherit;background:var(--orange);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:7px 14px;font-weight:500;text-decoration:none;display:inline-block}button:hover,.button:hover{background:var(--orange-600);color:#fff}.button.secondary{color:var(--navy);border:1px solid var(--line);background:0 0}.callout{border-left:4px solid var(--orange);background:var(--orange-50);border-radius:0 6px 6px 0;margin:12px 0;padding:10px 14px}.callout.info{border-color:var(--navy);background:var(--navy-50)}.warnings{color:var(--warn);margin:6px 0 0;padding-left:18px;font-size:13.5px}.recommend{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.recommend .price{font-family:var(--mono);color:var(--navy);font-size:28px;font-weight:600}.calc{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:10px;display:grid}.calc label{color:var(--ink-soft);gap:4px;font-size:13px;display:grid}.calc .result{font-family:var(--mono);color:var(--navy);font-size:18px}footer{border-top:1px solid var(--line);background:var(--surface)}.footer-inner{color:var(--ink-soft);flex-wrap:wrap;gap:6px 16px;padding-top:14px;padding-bottom:14px;font-size:13px;display:flex}@media (max-width:640px){.brandbar img{height:40px}.brandbar .contact{display:none}h1{font-size:22px}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.head-actions{align-items:center;gap:8px;display:flex}a.card{color:inherit;text-decoration:none;display:block}a.card:hover{border-color:var(--navy)}.card.alert{border-top:3px solid #c1553f}.card.alert .value{color:#c1553f}.card.warn{border-top:3px solid #d9a441}.cards.compact .value{font-size:20px}.two-col{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:0 20px;display:grid}.detail-grid{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.panel h3,.checklist h3{color:var(--navy);margin:0 0 8px;font-size:15px}dl{grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;display:grid}dt{color:var(--ink-soft);font-size:13px}dd{margin:0}.prewrap{white-space:pre-wrap;margin-top:0}.pill{white-space:nowrap;background:var(--navy-50);color:var(--navy);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.status-lead{background:var(--orange-50);color:var(--orange-600)}.status-bidding{color:#8a5a00;background:#fff6e0}.status-quoted{color:#1e5f8a;background:#e6f1fa}.status-on_hold{color:#8a5a00;background:#f1f1f1}.status-awarded,.status-in_progress{color:var(--ok);background:#e8f3ec}.status-complete{background:var(--navy-50);color:var(--navy)}.status-lost,.status-cancelled{color:#6b6b6b;background:#f1f1f1}.status-select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:7px 10px;font-weight:600}.due-overdue{color:#c1553f;font-weight:600}.due-due_soon{color:#8a5a00;font-weight:600}.due-rel{font-weight:400}.progress{vertical-align:middle;align-items:center;gap:6px;display:inline-flex}.progress .bar{background:var(--line);border-radius:3px;width:64px;height:6px;display:inline-block;overflow:hidden}.progress .bar span{background:var(--orange);height:100%;display:block}h2 .progress{margin-left:8px;font-size:13px;font-weight:400}.form{gap:16px;max-width:900px;display:grid}fieldset{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;margin:0;padding:12px 16px 16px}legend{color:var(--navy);padding:0 6px;font-weight:600}.grid-2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 16px;display:grid}.field{color:var(--ink-soft);align-content:start;gap:4px;margin-top:10px;font-size:13px;display:grid}.field input,.field select,.field textarea,.add-item input,.add-item select,.check-controls textarea{font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;min-width:0;padding:8px 10px;font-size:15px}.field textarea{resize:vertical}.req{color:var(--orange-600)}.hint{color:var(--ink-soft);font-size:12px}.error{color:#c1553f;font-size:12.5px}.has-error input,.has-error select,.has-error textarea{border-color:#c1553f}.form-actions{align-items:center;gap:12px;display:flex}.saved{color:var(--ok);font-size:14px}button:disabled{opacity:.6;cursor:default}.segmented{border:1px solid var(--line);background:#fff;border-radius:6px;display:inline-flex;overflow:hidden}.segmented label{cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:14px;display:flex}.segmented label:has(input:checked){background:var(--navy);color:#fff}.segmented label input{accent-color:var(--orange)}.segmented button{color:var(--ink-soft);border-left:1px solid var(--line);background:#fff;border-radius:0;padding:5px 10px;font-size:13px}.segmented button:first-child{border-left:0}.segmented button:hover{background:var(--navy-50);color:var(--navy)}.checklist section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding:12px 16px}.checklist ul{margin:0;padding:0;list-style:none}.check-item{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 16px;padding:10px 0;display:grid}.check-item:first-child{border-top:0}.check-prompt{font-size:14px}.check-done .check-prompt{color:var(--ink-soft)}.check-done .check-prompt:before{content:"✓ ";color:var(--ok);font-weight:700}.check-not_applicable .check-prompt{color:var(--ink-soft);text-decoration:line-through}.check-controls{justify-items:start;gap:6px;display:grid}.check-controls textarea{resize:vertical;min-height:36px;font-size:14px}.add-item{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.add-item input{flex:2 260px;width:auto}.add-item select{flex:180px;width:auto}.secondary-solid{background:var(--navy)}.secondary-solid:hover{background:var(--navy-700)}.quote-settings .calc label{font-size:13px}.margin-field.unset input{border:2px solid var(--orange);background:var(--orange-50)}.crew-math{margin:12px 0 4px;font-size:14px}.crew-math strong{font-family:var(--mono);color:var(--navy)}.activity{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:0;padding:0;list-style:none}.activity li{border-top:1px solid var(--line);padding:8px 12px;font-size:14px}.activity li:first-child{border-top:0}@media (max-width:800px){.two-col,.detail-grid{grid-template-columns:minmax(0,1fr)}.check-item{grid-template-columns:1fr}}.quote-draft{background:var(--navy-50);color:var(--navy)}.quote-sent{color:#8a5a00;background:#fff6e0}.quote-accepted{color:var(--ok);background:#e8f3ec}.quote-rejected,.quote-superseded{color:#6b6b6b;background:#f1f1f1}h1 .pill{vertical-align:middle;text-transform:capitalize;font-size:13px}td .pill{text-transform:capitalize}.badge.manual{color:#5b3d8a;background:#efeaf6}.readiness{gap:8px;margin:12px 0;display:grid}.callout ul{margin:4px 0 0;padding-left:18px}.callout.blockers{background:#fbeeea;border-color:#c1553f}.callout.warn{background:var(--warn-bg);border-color:#d9a441}.builder{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;display:grid}.builder-side{gap:12px;margin-top:32px;display:grid;position:sticky;top:12px}.totals dl{grid-template-columns:1fr auto;row-gap:6px}.totals dd{text-align:right;font-family:var(--mono)}.totals .strong{border-top:1px solid var(--line);padding-top:6px;font-weight:600}.totals .grand{color:var(--navy);border-top:2px solid var(--navy);padding-top:8px;font-size:18px;font-weight:700}.calc.two{grid-template-columns:1fr 1fr}table.lines td{vertical-align:top}table.lines tr.line.saving{opacity:.55}.cell-input{font:inherit;background:0 0;border:1px solid #0000;border-radius:4px;min-width:0;padding:4px 6px;font-size:14px}.cell-input:hover,.cell-input:focus{border-color:var(--line);background:#fff}.cell-input.wide{width:100%;font-weight:500}.cell-input.qty{text-align:right;width:88px;font-family:var(--mono)}.source-select{border-color:var(--line);background:#fff;max-width:100%;margin-top:4px;font-size:12.5px}.line-meta{flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:2px;display:flex}.confirm{color:var(--orange-600);align-items:center;gap:6px;margin-top:6px;font-size:12.5px;font-weight:600;display:flex}.confirm.on{color:var(--ok)}.joints{margin-top:2px}.linklike{color:var(--navy);background:0 0;padding:0 0 0 6px;font-size:12px;font-weight:400;text-decoration:underline}.linklike:hover{color:var(--orange-600);background:0 0}.row-actions{white-space:nowrap}button.icon{color:var(--ink-soft);background:0 0;padding:2px 6px;font-size:14px}button.icon:hover{background:var(--navy-50);color:var(--navy)}button.icon.danger:hover{color:#c1553f;background:#fbeeea}.add-line{margin-top:14px}.tabs button{color:var(--ink-soft);background:0 0;border-bottom:3px solid #0000;border-radius:6px 6px 0 0;padding:7px 12px}.tabs button:hover{background:var(--navy-50);color:var(--navy)}.tabs button.on{color:var(--navy);border-bottom-color:var(--orange);font-weight:600}.add-line .search{width:100%;font:inherit;border:1px solid var(--line);border-radius:6px;padding:9px 12px}.results{border:1px solid var(--line);border-radius:6px;max-height:320px;margin:6px 0 0;padding:0;list-style:none;overflow-y:auto}.results li+li{border-top:1px solid var(--line)}.results button{text-align:left;width:100%;color:var(--ink);background:#fff;border-radius:0;justify-content:space-between;gap:12px;padding:8px 12px;font-weight:400;display:flex}.results button:hover{background:var(--navy-50);color:var(--ink)}.add-row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:10px;display:flex}.add-row label{color:var(--ink-soft);gap:4px;font-size:13px;display:grid}.add-row label.grow{flex:280px}.add-row input,.add-row select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;min-width:0;padding:7px 10px}.add-row input[name=quantity],.add-row input[name=unitCost]{width:110px}.add-row .picked{flex:100%}.add-row .full{flex-basis:100%;margin:0}.form-compact{gap:10px;display:grid}.form-compact label{color:var(--ink-soft);gap:4px;font-size:13px;display:grid}.form-compact textarea,.form-compact input{font:inherit;border:1px solid var(--line);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.form-compact input[name=validDays]{width:100px}.send{flex-direction:column;gap:4px;max-width:360px;display:inline-flex}.segmented a{color:var(--ink-soft);padding:5px 10px;font-size:13px;text-decoration:none}.segmented a.on{background:var(--navy);color:#fff}@media (max-width:1000px){.builder{grid-template-columns:minmax(0,1fr)}.builder-side{margin-top:0;position:static}}.doc-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.quote-doc{color:#1c1b17;border:1px solid var(--line);border-radius:var(--radius);background:#fff;max-width:850px;margin:0 auto;padding:40px 48px;position:relative}.quote-doc.is-draft:before{content:"DRAFT";color:#e870331f;pointer-events:none;font-size:120px;font-weight:800;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)rotate(-24deg)}.doc-head{border-bottom:3px solid var(--orange);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:16px;display:flex}.doc-head img{width:auto;height:64px}.doc-company{text-align:right;font-size:13px;line-height:1.5}.doc-company strong{color:var(--navy);font-size:14px}.doc-title{justify-content:space-between;align-items:flex-start;margin:20px 0;display:flex}.doc-title h1{letter-spacing:.04em;text-transform:uppercase;font-size:30px}.doc-title dl{font-size:14px}.doc-parties{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:16px;font-size:14px;display:grid}.quote-doc h4{color:var(--navy);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px;font-size:12px}.quote-doc section{margin:16px 0;font-size:14px}.doc-lines{margin:16px 0}.doc-lines th{background:var(--navy)}.doc-lines td{padding:6px 12px;font-size:13.5px}.doc-lines td.num{font-family:var(--sans)}.doc-lines tr.doc-section td{background:var(--navy-50);color:var(--navy);font-weight:600}.doc-lines tfoot td{border-top:2px solid var(--navy);color:var(--navy);font-size:16px;font-weight:700}.doc-terms{color:var(--ink-soft);font-size:12.5px}.signatures{grid-template-columns:1fr 1fr;gap:40px;margin-top:40px;display:grid}.signatures div{gap:4px;font-size:12px;display:grid}.signatures span{border-bottom:1px solid #1c1b17;height:32px}@media (max-width:640px){.quote-doc{padding:20px 16px}.doc-head,.doc-title{flex-direction:column}.doc-company{text-align:left}.doc-parties,.signatures{grid-template-columns:1fr}.quote-doc.is-draft:before{font-size:64px}}@media print{.brandbar,nav.primary,footer,.no-print{display:none!important}body{background:#fff}main{max-width:none;padding:0}.quote-doc{border:0;max-width:none;padding:0}.doc-lines th,.doc-lines tr.doc-section td,.doc-head{-webkit-print-color-adjust:exact;print-color-adjust:exact}tr{break-inside:avoid}@page{margin:.6in}}.customer-wording{flex-wrap:wrap;align-items:center;gap:2px 6px;margin-top:4px;display:flex}.cell-input.customer{width:auto;color:var(--ink-soft);flex:220px;font-size:13px;font-weight:400}.leak{color:var(--warn)}.taxable{color:var(--ink-soft);align-items:center;gap:5px;margin-top:4px;display:inline-flex}.detail-row{flex-wrap:wrap;align-items:flex-start;gap:12px 20px;display:flex}.detail-row label{flex:0 220px}.form-compact select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:14px}.form-compact input[name=salesTaxPct]{width:100px}.doc-lines tfoot tr.sub td{border-top:1px solid var(--line);color:var(--ink);font-size:13.5px;font-weight:500}.doc-lines tfoot tr.sub+tr:not(.sub) td{border-top:2px solid var(--navy)}table.lines th,table.lines td{padding-left:8px;padding-right:8px}table.lines .cell-input.qty{width:72px}table.lines .joints{white-space:normal;max-width:120px;margin-left:auto}table.lines .row-actions{width:1%}table.lines button.icon{padding:2px 4px}.badge.takeoff{color:#1e5f8a;text-transform:none;letter-spacing:0;background:#e6f1fa}.takeoff{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;margin-top:8px;display:grid}.takeoff-side{gap:12px;display:grid}.takeoff-side section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.takeoff-side h3{color:var(--navy);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px;font-size:14px}.doc+.doc{margin-top:8px}.doc-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sheet-list{margin:4px 0 0;padding:0;list-style:none}.sheet-list button{width:100%;color:var(--ink);text-align:left;background:0 0;border-radius:6px;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;font-size:13.5px;font-weight:400;display:flex}.sheet-list button:hover{background:var(--navy-50);color:var(--ink)}.sheet-list button.on{background:var(--navy);color:#fff}.sheet-list .badge{flex-shrink:0}.plan-upload{margin-top:10px}.plan-upload label.button{cursor:pointer}.plan-upload label.button.disabled{opacity:.6;pointer-events:none}.conditions{margin:0 0 8px;padding:0;list-style:none}.condition{border:1px solid var(--line);border-radius:6px;grid-template-columns:minmax(0,1fr) auto;margin-bottom:6px;display:grid}.condition.active{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}.condition.saving{opacity:.6}.condition-main{color:var(--ink);text-align:left;background:0 0;border-radius:6px 0 0 6px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;font-weight:400;display:grid}.condition-main:hover{background:var(--navy-50);color:var(--ink)}.swatch{border-radius:3px;width:14px;height:14px;display:inline-block}.condition-name{font-size:13.5px;line-height:1.3}.condition-total{font-family:var(--mono);color:var(--navy);white-space:nowrap;font-size:13px}.condition-detail{border-top:1px solid var(--line);grid-column:1/-1;padding:8px}.condition-detail p{margin:0 0 6px}.condition-edit{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.condition-edit label{color:var(--ink-soft);gap:2px;display:grid}.condition-edit input{width:72px;font:inherit;border:1px solid var(--line);border-radius:4px;padding:4px 6px;font-size:13px}.danger-text{color:#c1553f}.measurement-list{margin:8px 0 0;padding:0;font-size:13px;list-style:none}.measurement-list li{justify-content:space-between;align-items:center;display:flex}.measurement-list li.selected{background:#fff6e0;border-radius:4px}.condition-form{border:1px dashed var(--line);border-radius:6px;gap:8px;padding:10px;display:grid}.condition-form label{color:var(--ink-soft);gap:3px;font-size:12.5px;display:grid}.condition-form input,.condition-form select{font:inherit;border:1px solid var(--line);border-radius:6px;width:100%;min-width:0;padding:6px 8px;font-size:14px}.condition-form .row{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px;display:grid}.colors{gap:6px;display:flex}.colors button{width:22px;height:22px;box-shadow:0 0 0 1px var(--line);border:2px solid #fff;border-radius:50%;padding:0}.colors button.on{box-shadow:0 0 0 2px var(--ink)}.picked-item{color:var(--ink);font-size:13.5px}.results.compact button{padding:6px 8px;font-size:13px}.send-takeoff{gap:6px;display:grid}.send-takeoff select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 8px}.takeoff-main{min-width:0}.takeoff-toolbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:10px 16px;padding:8px 10px;display:flex}.takeoff-toolbar .segmented button{white-space:nowrap;text-overflow:ellipsis;max-width:260px;overflow:hidden}.scale-select{color:var(--ink-soft);align-items:center;gap:6px;display:flex}.scale-select select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:13px}.zoom{align-items:center;gap:4px;margin-left:auto;display:flex}.calibrate-bar form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.calibrate-bar input{font:inherit;border:1px solid var(--line);border-radius:6px;width:130px;padding:5px 8px}.hint-bar,.takeoff-msg{margin:6px 2px}.plan-scroller{border-radius:var(--radius);background:#d9dce4;height:calc(100vh - 260px);min-height:420px;margin-top:8px;padding:12px;overflow:auto}.plan-page{background:#fff;position:relative;box-shadow:0 1px 4px #00000040}.plan-page canvas{display:block}.plan-overlay{width:100%;height:100%;position:absolute;inset:0}.plan-overlay.drawing{cursor:crosshair}.plan-overlay .shape{cursor:pointer}.plan-overlay.drawing .shape{pointer-events:none}.plan-status{color:var(--ink-soft);place-items:center;display:grid;position:absolute;inset:0}.plan-empty{height:100%;color:var(--ink-soft);place-items:center;display:grid}.sheet-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:8px;display:flex}.sheet-meta input{font:inherit;border:1px solid var(--line);border-radius:4px;padding:4px 8px;font-size:13px}@media (max-width:900px){.takeoff{grid-template-columns:minmax(0,1fr)}.plan-scroller{height:70vh}}main:has(.takeoff){max-width:none}.doc-head-row{justify-content:space-between;align-items:center;gap:6px;display:flex}.checkbox-label{color:var(--ink-soft);align-self:center;gap:4px;font-size:13px;display:grid}.checkbox-label input{width:auto}.flags{border-radius:var(--radius);background:#fbeeea;border:1px solid #e8b6a8;border-left:4px solid #c1553f;margin:12px 0;padding:10px 14px}.flags.all-resolved{background:var(--surface);border-color:var(--line);border-left-color:var(--ok)}.flags h3{color:#8d2f1c;margin:0 0 6px;font-size:15px}.flags.all-resolved h3{color:var(--ok)}.flags ul{margin:0;padding:0;list-style:none}.flags li{border-top:1px solid #c1553f33;justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 0;font-size:14px;display:flex}.flags li:first-child{border-top:0}.flags li.resolved span{color:var(--ink-soft);text-decoration:line-through}.flags li .button{white-space:nowrap;padding:4px 10px;font-size:13px}.alerts{gap:6px;margin:8px 0;display:grid}.alerts .callout{margin:0}.sub-h{color:var(--navy);margin:14px 0 6px;font-size:15px}.pm-grid{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:start;gap:12px;display:grid}.pm-form fieldset{background:0 0;border:0;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 12px;margin:0 0 10px;padding:0;display:grid}.pm-form legend{margin-bottom:4px;padding:0;font-size:13px}.pm-form label{color:var(--ink-soft);gap:3px;font-size:12.5px;display:grid}.pm-form input,.pm-form select,.pm-form textarea,.followup input{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;min-width:0;padding:6px 8px;font-size:14px}.pm-form .row,.followup .row{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.pm-form .row label{flex:120px}.followup .row input[name=note]{flex:2 260px;width:auto}.followup .row label{color:var(--ink-soft);gap:3px;display:grid}.task-actions{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:8px;display:flex}.task-table td{vertical-align:middle;padding:5px 6px}.task-table .cell-input{width:100%;min-width:80px}.task-table input[type=date].cell-input{min-width:128px}.task-title{font-size:14px}.task-done .task-title{color:var(--ink-soft);text-decoration:line-through}.task.overdue .task-title{color:#c1553f;font-weight:500}.task.saving{opacity:.6}.log-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:8px;padding:12px;display:grid}.log-list{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.log-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.log-head{align-items:center;gap:10px;display:flex}.log-head .icon{margin-left:auto}.log-list p{margin:6px 0 0;font-size:14px}.log-list .issues{color:var(--warn)}.links ul{margin:0 0 4px;padding:0;list-style:none}.links li{align-items:center;gap:4px;padding:2px 0;font-size:14px;display:flex}details.section{margin-top:8px}details.section>summary{cursor:pointer;list-style:none}details.section>summary::-webkit-details-marker{display:none}details.section>summary h2{align-items:center;gap:8px;display:inline-flex}details.section>summary h2:before{content:"▸";color:var(--orange);font-size:14px}details.section[open]>summary h2:before{content:"▾"}.legacy-notes{white-space:pre-wrap;font-family:var(--mono);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);margin:0;padding:12px;font-size:13px}@media (max-width:900px){.pm-grid{grid-template-columns:minmax(0,1fr)}}.attention{gap:6px;margin:0;padding:0;list-style:none;display:grid}.attention li{background:var(--warn-bg);border-left:4px solid #d9a441;border-radius:0 6px 6px 0;padding:8px 12px;font-size:14px}.attention li.danger{background:#fbeeea;border-left-color:#c1553f}table.gantt{table-layout:fixed;min-width:900px}.gantt th.gantt-job,.gantt td.gantt-job{width:230px}.gantt th.gantt-day{text-align:center;padding:6px 0;font-size:11px;font-weight:500}.gantt th.gantt-day.weekend{background:var(--navy-700)}.gantt th.gantt-day.today{background:var(--orange)}.gantt td{border-top:1px solid var(--line)}.gantt td.gantt-cell{border-left:1px solid #eef0f4;padding:0}.gantt td.gantt-cell.today{box-shadow:inset 2px 0 0 var(--orange)}.gantt td.gantt-cell.on{background:var(--navy)}.gantt td.gantt-cell.on.status-awarded{background:#7f93c4}.gantt td.gantt-cell.on.status-on_hold{background:repeating-linear-gradient(135deg,#b9b9b9 0 4px,#e0e0e0 4px 8px)}.overdue-row td{color:#c1553f}.task-table td.due-cell{width:150px}.task-table td.due-cell .badge{width:max-content;margin-top:2px;display:block}.task-table td:first-child,.task-table td:last-child{width:1%}.task-table td:nth-child(3){width:96px}.task-table td:nth-child(4){width:110px}.rfq-items td,.quote-lines td{vertical-align:top}.rfq-items tr.muted input.cell-input,.quote-lines tr.muted input.cell-input{color:var(--ink-soft)}.supplier-picks{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:8px;margin-bottom:12px;display:grid}.supplier-pick{border:1px solid var(--line);background:#fff;border-radius:6px;gap:6px;padding:8px 10px;display:grid}.supplier-pick.on{border-color:var(--navy);background:var(--navy-50)}.supplier-pick input[type=email]{font:inherit;border:1px solid var(--line);border-radius:6px;min-width:0;padding:6px 8px}.pill.rfq-draft{color:var(--ink-soft);background:#f1f1f1}.pill.rfq-sent{background:var(--warn-bg);color:var(--warn)}.pill.rfq-replied{color:var(--ok);background:#e5f4ec}.pill.rfq-declined{color:#c1553f;background:#fbeeea}td .pill+.pill{margin-left:4px}td .pill.rfq-draft,td .pill.rfq-sent,td .pill.rfq-replied,td .pill.rfq-declined{text-transform:none}.inline-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline-form input[type=email]{font:inherit;border:1px solid var(--line);border-radius:6px;width:220px;min-width:0;max-width:100%;padding:5px 8px}.catalog-picker{gap:4px;display:grid}.catalog-picker input{font:inherit;border:1px solid var(--line);border-radius:6px;min-width:0;padding:6px 8px}.catalog-picker .results{max-height:220px;margin:0}.catalog-picker .results button{padding:6px 8px;font-size:13px;text-decoration:none}.warn-text{color:var(--warn)}.email-preview{border:1px solid var(--line);font-family:var(--mono);white-space:pre-wrap;background:#fff;border-radius:6px;padding:12px;font-size:12.5px}.send-all{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.quote-header{margin-bottom:12px}.rfq-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.picked-item.has-error{border-radius:4px;outline:1px solid #c1553f;padding:2px 4px}.rfq-form,.quote-review{max-width:1100px}.rfq-form>label,.rfq-form .grid-2 label,.quote-review .quote-header label{color:var(--ink-soft);gap:4px;font-size:13px;display:grid}.rfq-form .grid-2 input,.rfq-form>label textarea,.quote-review .quote-header input,.quote-review .quote-header select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;min-width:0;padding:8px 10px;font-size:14px}.quote-review .quote-header input[readonly]{background:var(--navy-50)}.rfq-items .cell-input,.quote-lines .cell-input{width:100%}.quote-lines select,.rfq-items select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:4px;padding:4px;font-size:13px}.supplier-pick .checkbox-label{color:var(--ink);align-items:center;gap:8px;font-size:14px;display:flex}.inline-form .checkbox-label{align-items:center;gap:4px;display:flex}.comparison td.lowest{background:#e5f4ec}.comparison td.lowest:first-line{font-weight:600}.cell-meta{color:var(--ink-soft);justify-content:flex-end;font-size:12px;font-weight:400}.comparison tfoot th{background:var(--navy-50);color:var(--navy)}.followup-settings{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:8px;font-size:13.5px;display:flex}.followup-settings label{align-items:center;gap:6px;display:inline-flex}.followup-settings input{width:4.5em;font:inherit;border:1px solid var(--line);border-radius:6px;padding:4px 6px}.followup-list{border:1px solid var(--line);border-radius:var(--radius);background:#fff;margin:0;padding:0;list-style:none}.followup-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 12px;display:flex}.followup-list li+li{border-top:1px solid var(--line)}.note-input{font:inherit;border:1px solid var(--line);border-radius:6px;width:150px;min-width:0;padding:5px 8px;font-size:13px}.new-item{gap:4px;display:grid}.new-item input,.new-item select{font:inherit;border:1px solid var(--line);border-radius:6px;min-width:0;padding:5px 8px;font-size:13px}.supplier-choice{margin-top:6px;font-size:13px}.choice-summary{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.choice-summary .badge,.supplier-choice .badge{margin-left:4px}.badge.cheapest{color:var(--ok);background:#e5f4ec}.badge.dearer{background:var(--warn-bg);color:var(--warn)}.badge.unpriced{color:#c1553f;background:#fbeeea}.terms{color:var(--ink-soft);margin-left:4px}.unpriced-help{color:var(--ink-soft);gap:4px;margin-top:4px;display:grid}.estimate-warning{color:var(--warn)}.supplier-table{border-collapse:collapse;background:#fff;width:100%;margin-top:6px;font-size:12.5px}.supplier-table th{background:var(--navy-50);color:var(--navy);text-align:left;padding:4px 6px;font-weight:600}.supplier-table th.num,.supplier-table td.num{text-align:right}.supplier-table td{border-top:1px solid var(--line);vertical-align:top;padding:5px 6px}.supplier-table tr.cheapest td{background:#e5f4ec}.supplier-table tr.chosen td:first-child{box-shadow:inset 3px 0 0 var(--navy)}.supplier-table tr.muted td{color:var(--ink-soft)}.supplier-table button.secondary{padding:3px 10px;font-size:12px}.pack-size{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.pack-size input{width:5em;font:inherit;border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-size:12.5px}.terms-editor{flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px;display:flex}.terms-editor input,.terms-editor select{font:inherit;border:1px solid var(--line);border-radius:4px;min-width:0;padding:3px 6px;font-size:12px}.supplier-summary{margin-top:12px}.supplier-summary dl{grid-template-columns:1fr auto;row-gap:4px;margin:0 0 8px;display:grid}.supplier-summary dd{text-align:right;font-family:var(--mono);margin:0}.supplier-choice .badge.cheapest,.supplier-choice .badge.dearer,.supplier-choice .badge.unpriced,.badge.unpriced{text-transform:none;letter-spacing:0}.danger-zone{background:#fdf6f4;border:1px solid #e3b3a8;border-radius:8px;margin-top:48px;padding:4px 18px 16px}.danger-zone h2{color:#a3341f}button.danger{background:#b4381f}button.danger:hover{background:#8e2a16}.danger-confirm{max-width:640px}.danger-confirm ul{margin:4px 0 10px;padding-left:20px}.danger-confirm label{flex-direction:column;gap:4px;max-width:320px;margin:10px 0;font-weight:500;display:flex}.danger-confirm input{font:inherit;border:1px solid var(--line);border-radius:6px;padding:6px 8px}.danger-buttons{align-items:center;gap:10px;margin-top:8px;display:flex}.flash{border-left:4px solid var(--ok);background:#e8f3ec;border-radius:0 6px 6px 0;margin:12px 0;padding:10px 14px}.nav-user{align-items:center;gap:4px;margin-left:auto;display:flex}.user-menu{flex:none;position:relative}.user-menu-button{color:#fff;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:0;min-height:44px;padding:12px 14px;font-size:15px;font-weight:600}.user-menu-button:hover,.user-menu-button[aria-expanded=true]{background:var(--navy-700)}.user-menu-button.active{box-shadow:inset 0 -4px 0 var(--orange);background:#ffffff29}.user-menu-list{border:1px solid var(--line);z-index:50;background:#fff;border-radius:10px;flex-direction:column;min-width:240px;padding:6px;display:flex;position:absolute;top:calc(100% + 3px);right:0;box-shadow:0 12px 32px #0a226238}.user-menu-list form{border-top:1px solid var(--line);margin:4px 0 0;padding-top:4px}nav.primary .user-menu-list [role=menuitem]{text-align:left;width:100%;color:var(--ink);box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:44px;margin:0;padding:11px 12px;font-size:15px;font-weight:500;display:block}nav.primary .user-menu-list [role=menuitem]:hover,nav.primary .user-menu-list [role=menuitem]:focus-visible{background:var(--navy-50);color:var(--navy)}nav.primary .user-menu-list [aria-current=page]{background:var(--navy-50);color:var(--navy);box-shadow:inset 4px 0 0 var(--orange);font-weight:700}.user-menu-hint{color:var(--ink-soft);font-size:12px;font-weight:400;display:block}.user-menu-logout{color:#b42318!important}@media (max-width:640px){nav.primary a{padding:12px 11px}.user-menu-button{text-overflow:ellipsis;max-width:42vw;padding:12px 10px;overflow:hidden}.user-menu-list{min-width:min(260px,100vw - 24px)}}.nav-user form{margin:0}button.nav-logout{color:#fff;background:0 0;border:1px solid #fff6;padding:5px 10px;font-size:13px}button.nav-logout:hover{background:var(--orange);border-color:var(--orange)}.auth-page{max-width:380px;margin:32px auto}.auth-form,.state-form{flex-direction:column;gap:10px;display:flex}.auth-form label,.state-form label{flex-direction:column;gap:4px;font-weight:500;display:flex}.auth-form input,.state-form input,.state-form select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:7px 9px}.state-form.inline-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;display:grid}.state-form.inline-grid>.one-time,.state-form.inline-grid>p{grid-column:1/-1}.state-form>button{align-self:flex-start}.account-section{max-width:560px;margin-top:18px}.account-section h2{margin-top:4px}.ok-text{color:var(--ok);font-size:13.5px}.one-time{border:2px dashed var(--orange);background:var(--orange-50);border-radius:6px;padding:10px 14px}.one-time p{margin:0 0 6px}code.secret{font-family:var(--mono);border:1px solid var(--line);-webkit-user-select:all;user-select:all;background:#fff;border-radius:4px;padding:2px 6px;font-size:15px}ol.codes{columns:2;font-family:var(--mono);margin:0}img.qr{border:1px solid var(--line);border-radius:6px;margin:8px 0;display:block}.user-edit summary{cursor:pointer;color:var(--navy);font-size:13px}.user-edit{margin-top:6px}.user-buttons{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.user-buttons .state-form{flex-direction:row;align-items:center}.idle-warning{z-index:1000;border:2px solid var(--orange);background:#fff;border-radius:8px;max-width:340px;padding:12px 16px;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 24px #0a226240}.idle-warning p{margin:0 0 8px}.last-changed{color:var(--ink-soft);font-size:12.5px}table.audit td{font-size:13px}.integration{max-width:760px}.integration h2{margin-top:4px}dl.kv{grid-template-columns:140px 1fr;row-gap:6px;margin:10px 0;display:grid}dl.kv dt{color:var(--ink-soft)}dl.kv dd{margin:0}.integration-buttons{flex-wrap:wrap;align-items:flex-start;gap:10px;margin:10px 0;display:flex}.qbo-panel{margin-top:12px}.qbo-panel ul{margin:6px 0 0;padding-left:18px;font-size:13px}table.trash td{vertical-align:top}table.trash ul{margin:4px 0 0;padding-left:18px}.trash-actions{min-width:210px}.trash-actions details{margin-top:8px}.ai-check{align-items:center;gap:6px;margin-top:6px;display:flex}.plan-summary{margin-top:14px}.plan-summary h3{margin:0 0 6px}.plan-summary .tag{white-space:nowrap;border-radius:10px;margin-left:4px;padding:1px 6px;font-size:11px}.plan-summary .tag.read{color:var(--ok);background:#e8f3ec}.plan-summary .tag.inferred{background:var(--warn-bg);color:var(--warn)}.plan-summary .tag.not_shown{color:var(--ink-soft);background:#eef0f4}.plan-summary dl.kv{grid-template-columns:110px 1fr}.plan-summary ul{margin:4px 0 10px;padding-left:18px}.plan-summary h4{color:var(--navy);margin:12px 0 4px;font-size:14px}.plan-summary .advisory{border-left:4px solid var(--navy);background:var(--navy-50);margin:8px 0;padding:6px 10px;font-size:12.5px}.plan-summary .ps-actions{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:8px;display:flex}.plan-summary .ps-actions input{width:70px}.plan-summary .progress{color:var(--navy);font-weight:500}.legal{max-width:760px;margin:24px auto;line-height:1.6}.legal h2{margin:22px 0 6px;font-size:17px}.signature-preview{border:1px dashed var(--line,#d7dbe6);background:var(--panel-2,#fafbfd);border-radius:8px;grid-column:1/-1;padding:12px 14px}.signature-preview .small{margin-bottom:8px}.email-quote{margin-top:12px}.email-quote>summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:10px;list-style:none;display:flex}.email-quote>summary::-webkit-details-marker{display:none}.email-quote>summary:before{content:"▸";color:var(--navy);font-size:14px;transition:transform .15s}.email-quote[open]>summary:before{transform:rotate(90deg)}.email-quote>summary h3{color:var(--navy);margin:0;font-size:16px;font-weight:700;display:inline}.email-quote[open]>summary{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:10px}.schedule-send{margin-top:12px}.schedule-send>summary{cursor:pointer;color:var(--navy);margin-bottom:8px;font-weight:600}.when-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.scheduled-sends{margin-top:14px}.scheduled-sends h4{color:var(--navy);margin:0 0 6px}.scheduled-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.scheduled-send{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 10px;display:flex}.scheduled-send.status-cancelled,.scheduled-send.status-sent{opacity:.75}.scheduled-actions{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.scheduled-actions>.state-form{flex-direction:row}.pill.send-failed{color:#9b1c1c;background:#fde2e1}.co-draft{background:var(--navy-50);color:var(--navy)}.co-sent{color:#8a5a00;background:#fff6e0}.co-approved{color:var(--ok);background:#e8f3ec}.co-rejected{color:#b42318;background:#fbeaea}.preview-banner{color:#fff;text-align:center;background:#7a1fa2;padding:6px 12px;font-size:14px;font-weight:600}.pill.inv-draft{background:var(--navy-50);color:var(--navy)}.pill.inv-issued{color:#1d4ed8;background:#e6f0ff}.pill.inv-void{color:#666;background:#eee;text-decoration:line-through}.pill.pay-open{color:#b45309;background:#fff3e0}.pill.pay-partial{color:#854d0e;background:#fef9c3}.pill.pay-paid{color:#166534;background:#dcfce7}label.check{align-items:center;gap:8px;font-weight:600;display:flex}.row-actions .state-form{align-items:end;gap:6px;margin:0 4px 0 0;display:inline-flex}.row-actions .state-form input{min-width:140px}.report-form{gap:12px;width:100%;max-width:560px;display:grid}.report-form label,.report-row>*{min-width:0}.report-form input:not([type=file]),.report-form textarea{box-sizing:border-box;width:100%}.report-form label{gap:4px;font-weight:600;display:grid}.report-form input,.report-form textarea,.report-form select{padding:10px;font-size:16px}.report-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.report-form button.big{padding:14px;font-size:18px}.daily-report .queue{padding-left:18px}.daily-report .queue li{margin-bottom:8px}.log-photos{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}@media (max-width:640px){.page-head{flex-direction:column;align-items:stretch;gap:10px}.head-actions{flex-wrap:wrap}.grid-2,.two-col{grid-template-columns:1fr!important}.cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.table-wrap{overflow-x:auto}}a.card{border-left:4px solid var(--navy);background:linear-gradient(180deg, var(--surface) 55%, var(--navy-50));transition:border-color .15s,box-shadow .15s,transform .15s;position:relative}a.card.accent{border-left-color:var(--orange)}a.card:hover,a.card:focus-visible{border-color:var(--orange);border-left-color:var(--orange);transform:translateY(-1px);box-shadow:0 4px 14px #0a22621f}a.card:after{content:"→";color:var(--orange);opacity:.35;font-weight:700;transition:opacity .15s;position:absolute;top:10px;right:12px}a.card:hover:after,a.card:focus-visible:after{opacity:1}a.card:hover .value{color:var(--orange-600)}.panel h2{border-bottom:2px solid var(--orange);padding-bottom:2px;display:inline-block}@media (prefers-reduced-motion:reduce){a.card{transition:none}a.card:hover{transform:none}}.list-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:8px 0;display:flex}.segmented form{margin:0;display:flex}.segmented button{color:var(--navy);background:0 0;border:0;border-radius:0;padding:7px 12px;font-size:14px}.segmented button.on{background:var(--navy);color:#fff}.segmented button:hover:not(.on){background:var(--navy-50);color:var(--navy)}.job-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.job-card{color:inherit;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:var(--radius);gap:6px;padding:12px 14px;text-decoration:none;display:grid}.job-card:hover{border-color:var(--orange);border-left-color:var(--orange);box-shadow:0 4px 14px #0a22621f}.job-card-head,.job-card-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.job-card-name{color:var(--navy);font-size:16px}.job-card.status-edge-in_progress,.job-card.status-edge-awarded{border-left-color:var(--orange)}.gantt-day .day-link{color:inherit;border-radius:4px;padding:2px 0;text-decoration:none;display:block}.gantt-day .day-link:hover,.gantt-day .day-link.picked{background:var(--orange);color:#fff}.gantt-cell{cursor:pointer;position:relative}.gantt-cell .cell-link{position:absolute;inset:0}.gantt-cell:hover{outline:2px solid var(--orange);outline-offset:-2px}.gantt-cell.picked{box-shadow:inset 0 0 0 2px var(--orange)}.day-panel{border-left:4px solid var(--orange);margin:12px 0 18px}.day-panel h3{color:var(--navy);margin:12px 0 4px}.tabs{border-bottom:2px solid var(--line);gap:4px;margin:0 0 14px;display:flex}.tabs a{color:var(--navy);border-bottom:3px solid #0000;margin-bottom:-2px;padding:8px 14px;font-weight:500;text-decoration:none}.tabs a.on{border-bottom-color:var(--orange);font-weight:700}.tabs a:hover{background:var(--navy-50)}.site-link{color:var(--orange-600);font-weight:600;text-decoration:none}.site-link:hover{text-decoration:underline}.job-drive{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.job-drive-buttons{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.state-form.inline-action{flex-direction:row}.job-drive details>summary{cursor:pointer;color:var(--navy)}.setup-steps{flex-direction:column;gap:12px;padding-left:20px;display:flex}.setup-steps .state-form{margin-top:6px}.state-form.review-form{flex-flow:wrap;align-items:center;gap:12px}.state-form.review-form label.check{flex-direction:row;align-items:center;gap:8px;font-weight:600}.work-type-form fieldset{border:0;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;display:flex}.work-type-form legend{margin-bottom:6px;padding:0}.state-form.work-type-form{flex-flow:wrap;align-items:flex-end;gap:12px}.earlier-plan{border-top:1px solid var(--line);margin-top:8px;padding-top:8px}.work-type-form label.check{flex-direction:row;align-items:center;gap:6px;font-weight:600}.state-form.job-add-row,.add-item{flex-flow:wrap;align-items:flex-end;gap:8px 10px;display:flex}.state-form.job-add-row{margin-top:10px}.state-form.job-add-row fieldset label.check{flex-direction:row;align-items:center;gap:8px}.state-form.job-add-row>label{flex:170px;min-width:0}.state-form.job-add-row>label.grow{flex:100 280px}.state-form.job-add-row input:not([type=checkbox]):not([type=radio]),.state-form.job-add-row select,.add-item input:not([type=checkbox]):not([type=radio]),.add-item select{box-sizing:border-box;width:100%;height:38px}.state-form.job-add-row>input,.state-form.job-add-row>select{flex:140px;width:auto;min-width:0}.state-form.job-add-row>button,.add-item>button{box-sizing:border-box;white-space:nowrap;flex:none;align-self:flex-end;height:38px}.state-form.job-add-row>fieldset,.state-form.job-add-row>p,.state-form.job-add-row>.one-time,.add-item>.error{flex-basis:100%}.state-form.job-add-row.compact{flex-wrap:nowrap}.add-item>input.add-who{flex:0 140px}.add-item>input.add-date{flex:0 160px}@media (max-width:640px){.state-form.job-add-row,.add-item{flex-direction:column;align-items:stretch}.state-form.job-add-row>label,.state-form.job-add-row>label.grow,.state-form.job-add-row>input,.state-form.job-add-row>select,.add-item>input,.add-item>input.add-who,.add-item>input.add-date,.add-item>select{flex:none;width:100%}.state-form.job-add-row>button,.add-item>button{align-self:stretch;width:100%}}.state-form.inline-grid>button{align-self:end}.gantt th.gantt-day{line-height:1.15;overflow:hidden}.gantt .gantt-month{text-transform:uppercase;letter-spacing:.02em;opacity:.85;font-size:9px;display:block}.progress.reading{align-items:center;gap:8px;display:flex}.spinner{border:2px solid var(--navy-50);border-top-color:var(--orange);border-radius:50%;flex:none;width:14px;height:14px;animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.locked-action{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.continue-bar{z-index:20;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface,#fff);border-top:3px solid var(--orange);border-radius:8px 8px 0 0;margin:24px 0 0;position:sticky;bottom:0;box-shadow:0 -4px 14px #0a226214}.continue-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.continue-form label{flex-direction:column;gap:4px;display:flex}.continue-form select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;height:44px;padding:0 10px}.continue-main{min-height:44px;padding:10px 20px;font-size:16px;font-weight:600}.continue-warning{background:var(--orange-50);border-left:4px solid var(--orange);border-radius:0 6px 6px 0;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 12px;display:flex}.continue-buttons{gap:8px;display:flex}.continue-buttons button{min-height:44px}.continue-note{margin:6px 0 0}@media (max-width:640px){.continue-form{flex-direction:column;align-items:stretch}.continue-main,.continue-buttons,.continue-buttons button{width:100%}.continue-buttons button{flex:1 1 0}.continue-warning{flex-direction:column;align-items:stretch}}.takeoff-card>summary{cursor:pointer;justify-content:space-between;align-items:baseline;gap:8px;list-style:none;display:flex}.takeoff-card>summary::-webkit-details-marker{display:none}.takeoff-card>summary h3{margin:0;display:inline}.takeoff-card>summary h3:before{content:"▸ ";color:var(--orange)}.takeoff-card[open]>summary h3:before{content:"▾ "}.takeoff-card[open]>summary{margin-bottom:8px}.takeoff-card-note{background:var(--orange-50);border-left:3px solid var(--orange);border-radius:0 4px 4px 0;margin:0 0 6px;padding:4px 8px}.takeoff-card-list{border-top:1px solid var(--line);max-height:196px;margin:0;padding:0;font-size:12.5px;list-style:none;overflow-y:auto}.takeoff-card-list li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;column-gap:8px;padding:4px 0;line-height:1.3;display:grid}.takeoff-card-list .tk-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);overflow:hidden}.takeoff-card-list .tk-qty{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.takeoff-card-list .tk-status{grid-column:1/-1;font-size:11.5px}.tk-status.in_quote{color:#1f7a45}.tk-status.not_in_quote{color:var(--ink-soft)}.tk-status.differs{color:#a3460f;font-weight:600}.takeoff-card-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.payment-schedule{margin-top:12px}.payment-schedule h3{margin-top:0}.ps-rows{counter-reset:ps;flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.ps-row{border:1px solid var(--line);background:#fff;border-radius:6px;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) 96px 110px auto;align-items:end;gap:8px;padding:8px;display:grid}.ps-row label{color:var(--ink-soft);flex-direction:column;gap:3px;min-width:0;font-size:12px;display:flex}.ps-row input{font:inherit;color:var(--ink);border:1px solid var(--line);box-sizing:border-box;border-radius:6px;width:100%;min-width:0;height:36px;padding:6px 8px;font-size:14px}.ps-pct-input{color:var(--ink);align-items:center;gap:4px;display:flex}.ps-pct-input input{text-align:right}.ps-amount{text-align:right;font-variant-numeric:tabular-nums;color:var(--navy);padding-bottom:8px;font-weight:600}.ps-row-actions{gap:2px;padding-bottom:4px;display:flex}.ps-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.ps-total{font-variant-numeric:tabular-nums;font-weight:600}.ps-errors{margin:8px 0 0;padding-left:18px}.ps-note{background:var(--navy-50);border-radius:6px;padding:6px 10px}.ps-table{width:100%}.ps-table td{border-bottom:1px solid var(--line);padding:4px 0}@media (max-width:640px){.ps-row{grid-template-columns:1fr 1fr}.ps-row label:first-child,.ps-row .ps-trigger{grid-column:1/-1}.ps-amount{align-self:end}.ps-row-actions{grid-column:1/-1;justify-content:flex-end}.ps-foot{flex-direction:column;align-items:stretch}.ps-foot button{width:100%;min-height:44px}}.terms-doc{color:#1c1b17;margin-top:28px;font-size:11px;line-height:1.45}.terms-part{break-before:page;page-break-before:always;border-top:2px solid var(--orange);margin-top:28px;padding-top:18px}.terms-head{text-align:right;margin-bottom:14px}.terms-head h2{color:var(--navy);letter-spacing:.02em;margin:0;font-size:16px}.terms-sub{color:var(--orange);font-size:11px;font-weight:700}.terms-hline{color:#5b5748;font-size:10.5px}.terms-cols{column-count:2;column-gap:24px}.terms-section{break-inside:avoid-column}.terms-section h3,.terms-warning h3{color:var(--navy);margin:10px 0 4px;font-size:11px}.terms-section p,.terms-warning p{text-align:justify;margin:0 0 6px}.terms-banner{text-align:center;color:var(--navy);background:var(--navy-50);margin:6px 0;padding:4px;font-weight:700}.terms-schedule{border-collapse:collapse;width:100%;margin:4px 0 8px}.terms-schedule td{border-bottom:1px solid var(--line);padding:4px 8px}.terms-schedule td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.terms-wire{border:1px solid var(--line);border-radius:4px;margin:6px 0 8px;padding:8px 10px}.terms-wire-head{color:var(--navy);margin-bottom:6px;font-weight:700}.terms-wire dl{grid-template-columns:1fr 1fr;gap:6px 18px;margin:0;display:grid}.terms-wire dt{color:#5b5748;font-size:9px;font-weight:700}.terms-wire dd{margin:0}.terms-closing{text-align:center;color:var(--navy);margin-top:10px;font-weight:700}.terms-warning{border:1px solid var(--navy);margin-bottom:12px;padding:8px 12px}.terms-signatures{color:#5b5748;grid-template-columns:1fr 1fr;gap:36px 28px;margin-top:36px;font-size:9.5px;font-weight:700;display:grid}.terms-signatures span{border-top:1px solid #5b5748;margin-bottom:4px;display:block}.terms-foot{text-align:center;color:#5b5748;margin-top:18px;font-size:9px}@media (max-width:640px){.terms-cols{column-count:1}.terms-wire dl,.terms-signatures{grid-template-columns:1fr}}.quote-doc .terms-part{margin:28px 0 0;font-size:11px}.terms-doc .terms-schedule td{font-family:inherit;font-size:11px}.profit-toggle{color:var(--ink-soft);cursor:pointer;align-items:center;gap:6px;margin-top:10px;display:inline-flex}table.lines tr.profit-row td{background:#f6f8fc;border-top:0;padding-top:4px;padding-bottom:6px;font-size:12.5px}table.lines tr.profit-row.section td{background:#eef2f9}.profit-row-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;display:flex}.pf-margin{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:4px 6px;display:inline-flex}.profit-figures{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 14px;display:inline-flex}.pf-label{color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.margin-input{flex-wrap:wrap;align-items:center;gap:2px 6px;display:inline-flex}.margin-field{align-items:center;gap:2px;display:inline-flex}.margin-field input{width:64px;font:inherit;border:1px solid var(--line);text-align:right;border-radius:5px;padding:3px 6px;font-size:13px}.badge.override{text-transform:none;letter-spacing:0;color:#5b3d8a;background:#efeaf6}.badge.override.section{color:#1e5f8a;background:#e6f1fa}.profit-totals{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px}.profit-totals h4{margin:0 0 6px;font-size:13px}.profit-totals .profit-figures{display:flex}.profit-crew{flex-direction:column;gap:4px;margin:8px 0;font-size:12.5px;display:flex}@media (max-width:640px){.profit-row-inner{flex-direction:column;align-items:flex-start}.profit-figures{gap:2px 10px}.profit-figures,.pf-margin{min-width:0;max-width:100%}.profit-row-inner{width:calc(100vw - 72px);max-width:calc(100vw - 72px);position:sticky;left:8px}}.takeoff-ai-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;display:flex}.takeoff-ai-head h2{margin-bottom:0}.ai-skip-confirm{background:var(--warn-bg);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.takeoff-ai.skipped{padding-top:10px;padding-bottom:10px}.ai-skipped-line{margin:0}.ai-skipped-line .linklike{font-size:inherit;padding:0 2px}.ai-skipped-summary{margin-top:8px}.continue-pick{flex:100%}.continue-pick ul,.send-pick{gap:4px;max-height:180px;margin:6px 0;padding:0;list-style:none;display:grid;overflow-y:auto}.continue-form .continue-pick label,.send-pick label{flex-direction:row;display:inline}.continue-warning.light{border-left-color:var(--navy);background:#f3f6fb}.continue-empty{color:var(--ink-soft)}
