:root{color-scheme:dark;--bg: #020617;--panel: rgba(15, 23, 42, .82);--panel-strong: #020617;--line: #1e293b;--line-bright: rgba(103, 232, 249, .34);--text: #f8fafc;--muted: #cbd5e1;--quiet: #94a3b8;--cyan: #67e8f9;--cyan-strong: #22d3ee;--amber: #fcd34d;--amber-bg: rgba(251, 191, 36, .08);--shadow: 0 22px 70px rgba(0, 0, 0, .34);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 0%,rgba(34,211,238,.18),transparent 32rem),radial-gradient(circle at 90% 20%,rgba(14,116,144,.34),transparent 34rem),var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.app-shell{margin:0 auto;max-width:1280px;padding:2rem clamp(1rem,3vw,2.5rem)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:0;padding:1.5rem}.hero{align-items:center;background:linear-gradient(135deg,#0f172a,#020617 55%,#0891b242);border-color:#67e8f938;display:flex;gap:2rem;justify-content:space-between;margin-bottom:1.25rem;padding:clamp(1.5rem,4vw,2.5rem)}.hero-actions{align-items:flex-end;display:flex;flex-direction:column;gap:.75rem}.save-state{color:var(--quiet);font-size:.85rem;white-space:nowrap}.pill,.warning-pill{align-items:center;border:1px solid rgba(103,232,249,.22);border-radius:999px;color:#a5f3fc;display:inline-flex;font-size:.88rem;gap:.45rem;padding:.35rem .7rem}.pill{background:#67e8f91a;margin-bottom:1rem}.warning-pill{background:var(--amber-bg);border-color:#fcd34d33;color:#fde68a;white-space:nowrap}.icon{color:var(--cyan)}h1,h2,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;margin-bottom:1rem;max-width:58rem}h2{font-size:1.2rem;margin:0}p{color:var(--muted);font-size:1.05rem;line-height:1.55;margin-bottom:0;max-width:52rem}.button{align-items:center;border:0;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;min-height:2.75rem;padding:.72rem 1rem}.button.accent{background:var(--cyan-strong);color:#082f49;min-width:9rem}.hero-actions .button{width:10rem}.button.accent:hover{background:var(--cyan)}.button.light{background:#f8fafc;color:#020617}.button.light:hover{background:#e2e8f0}.button.full{margin-top:1.25rem;width:100%}.button.small{min-height:2.4rem;padding:.55rem .8rem}.top-grid,.split-grid{display:grid;gap:1.25rem;margin-top:1.25rem}.top-grid{grid-template-columns:minmax(18rem,1fr) minmax(0,2fr)}.split-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-title,.matrix-header{align-items:center;display:flex;gap:.55rem}.section-title{margin-bottom:1rem}.section-title.spaced,.matrix-header{justify-content:space-between}.section-title.spaced{margin-bottom:1rem}.section-title.spaced>.section-title{margin-bottom:0}.section-icon{color:var(--cyan);font-weight:900}.section-icon.amber{color:var(--amber)}label{color:var(--muted);display:grid;font-size:.9rem;gap:.5rem;margin-bottom:1rem}.project-picker{background:#67e8f90f;border:1px solid rgba(103,232,249,.18);border-radius:8px;gap:.55rem;margin-bottom:1.15rem;padding:.85rem}.project-picker select{min-height:2.75rem}.inline-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}input,select,textarea{background:var(--panel-strong);border:1px solid #334155;border-radius:8px;color:var(--text);min-height:3rem;padding:.78rem 1rem;width:100%}textarea{line-height:1.5;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--cyan);outline:none}.upload-box{align-items:center;background:#67e8f90d;border:1px dashed var(--line-bright);border-radius:8px;cursor:pointer;justify-content:center;margin:0;min-height:11rem;padding:1.5rem;text-align:center}.upload-box:hover{background:#67e8f91a}.upload-box input{display:none}.upload-icon{color:var(--cyan);font-size:2rem;line-height:1}.upload-box small{color:var(--quiet)}.document-list{display:grid;gap:.5rem;margin-top:1rem}.document-item,.addendum-card{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;padding:.85rem}.document-item strong{display:block}.document-item span{color:var(--quiet);font-size:.86rem;overflow-wrap:anywhere}.empty-state{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;color:var(--quiet);padding:2rem;text-align:center}.empty-state.compact,.table-empty{padding:1rem}.table-empty{color:var(--quiet);text-align:center}.hidden{display:none}.requirements-table{border:1px solid var(--line);border-radius:8px;overflow:hidden}.requirements-head,.requirement-row{display:grid;gap:.75rem;grid-template-columns:5fr 2fr 2fr 2fr 1fr}.requirements-head{background:var(--panel-strong);color:var(--muted);font-size:.86rem;font-weight:800;padding:.9rem 1rem}.requirement-row{border-top:1px solid var(--line);color:var(--muted);font-size:.9rem;padding:1rem}.requirement-row strong{color:var(--text);font-weight:500}.requirement-row select{min-height:2.5rem;padding:.45rem .65rem}.risk{color:#fde68a}.stack{display:grid;gap:.75rem}.addendum-card input{margin-bottom:.75rem}.addendum-fields{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.risk-card{align-items:flex-start;background:var(--amber-bg);border:1px solid rgba(252,211,77,.22);border-radius:8px;color:#fef3c7;display:flex;gap:.75rem;padding:1rem}.risk-card span{color:var(--amber);font-weight:900}.ai-panel{border-color:#67e8f947;margin-top:1.25rem}.ai-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-start}.ai-actions .button{min-width:8rem}.ai-actions .save-state{flex:1 1 16rem;min-width:0;white-space:normal}.button:disabled{cursor:wait;opacity:.65}.ai-result{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;color:var(--text);display:grid;font-family:inherit;gap:1rem;line-height:1.5;margin:1rem 0 0;max-width:100%;min-height:10rem;min-width:0;overflow-x:hidden;overflow-y:auto;overflow-wrap:anywhere;padding:1rem;white-space:normal}.ai-result.plain{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;overflow-x:auto;white-space:pre-wrap}.analysis-section{border-bottom:1px solid var(--line);display:grid;gap:.55rem;padding-bottom:1rem}.analysis-section:last-child{border-bottom:0;padding-bottom:0}.analysis-section h3{color:var(--cyan);font-size:.82rem;letter-spacing:.08em;margin:0;text-transform:uppercase}.analysis-section p,.analysis-section ul{margin:0}.analysis-section p{color:var(--muted);max-width:none}.analysis-section ul{display:grid;gap:.5rem;list-style:none;padding:0}.analysis-section li{background:#67e8f90f;border:1px solid rgba(103,232,249,.14);border-radius:8px;color:var(--muted);display:grid;gap:.2rem;padding:.75rem}.analysis-section li small{color:var(--quiet)}.analysis-section li em{color:var(--quiet);font-style:normal}.analysis-badge{background:#fcd34d1f;border:1px solid rgba(252,211,77,.2);border-radius:999px;color:#fde68a;font-size:.72rem;font-weight:800;justify-self:start;padding:.15rem .45rem}.analysis-empty{color:var(--quiet)}.rate-note{background:#67e8f90f;border:1px solid rgba(103,232,249,.14);border-radius:8px;color:var(--muted);display:grid;gap:.25rem;margin-bottom:1rem;padding:.85rem}.rate-note strong{color:var(--text)}.rate-note span{font-size:.88rem;line-height:1.4}.number-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.table-wrap{overflow-x:auto}.takeoff-table{border-collapse:collapse;min-width:980px;width:100%}.takeoff-table th{color:var(--quiet);font-size:.78rem;padding:0 .45rem .55rem;text-align:left;text-transform:uppercase}.takeoff-table td{border-top:1px solid var(--line);padding:.55rem .45rem}.takeoff-table input,.takeoff-table select{min-height:2.5rem;min-width:6rem;padding:.5rem .65rem}.takeoff-table small{color:var(--quiet);display:block;font-size:.72rem;margin-top:.3rem;max-width:9rem}.takeoff-table td:first-child input{min-width:12rem}.row-action{background:transparent;border:1px solid var(--line);border-radius:8px;color:#fca5a5;cursor:pointer;min-height:2.5rem;padding:.45rem .7rem}.row-action:hover{border-color:#fca5a5}.affix-field{align-items:center;background:var(--panel-strong);border:1px solid #334155;border-radius:8px;display:flex;min-height:3rem;padding:0 .8rem}.affix-field:focus-within{border-color:var(--cyan)}.affix-field input{background:transparent;border:0;min-height:2.75rem;padding:.5rem}.affix-field span{color:var(--quiet)}.summary-card{background:#67e8f91a;border:1px solid rgba(103,232,249,.22);border-radius:8px;margin-top:1.25rem;padding:1.2rem}.summary-row,.grand-total{align-items:center;display:flex;justify-content:space-between}.summary-row{color:var(--muted);font-size:.94rem;margin-bottom:.65rem}.grand-total{border-top:1px solid rgba(103,232,249,.24);font-size:1.45rem;font-weight:900;margin-top:1rem;padding-top:1rem}.estimate-review,.detail-table-wrap{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;margin-top:1rem;padding:1rem}.estimate-review.alert{border-color:#fcd34d73}.estimate-status-row{align-items:center;display:flex;gap:1rem;justify-content:space-between}.estimate-status-row span,.market-range span{color:var(--quiet);font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.estimate-status-row strong{color:#fde68a;text-align:right}#marketWarning{color:var(--muted);font-size:.92rem;margin-top:.75rem;max-width:none}.estimate-review.alert #marketWarning{color:#fef3c7}.market-range{display:grid;gap:.6rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:.9rem}.market-range div{background:#67e8f90f;border:1px solid rgba(103,232,249,.12);border-radius:8px;display:grid;gap:.25rem;padding:.75rem}.market-range strong{color:var(--text)}.review-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.estimate-review h3{color:var(--cyan);font-size:.78rem;letter-spacing:.08em;margin:1rem 0 .5rem;text-transform:uppercase}.review-grid h3{margin-top:0}.estimate-review ul,.proposal-sheet ul{color:var(--muted);line-height:1.45;margin:0;padding-left:1.1rem}.estimate-review p,.estimate-review li{font-size:.9rem}.estimate-detail-table{border-collapse:collapse;width:100%}.estimate-detail-table th{color:var(--quiet);font-size:.78rem;padding:0 .5rem .55rem;text-align:left;text-transform:uppercase}.estimate-detail-table td{border-top:1px solid var(--line);color:var(--muted);padding:.55rem .5rem}.estimate-detail-table td:last-child{color:var(--text);font-weight:800;text-align:right;white-space:nowrap}.proposal-panel{margin-top:1.25rem}.proposal-sheet{background:#f8fafc;border-radius:8px;color:#0f172a;display:grid;gap:1.25rem;padding:1.4rem}.proposal-sheet p{color:#334155}.proposal-label{color:#64748b;font-size:.78rem;font-weight:800;letter-spacing:.08em;margin-bottom:.3rem;text-transform:uppercase}.proposal-sheet h3{font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 .35rem}.proposal-price{background:#0f172a;border-radius:8px;color:#f8fafc;display:grid;gap:.25rem;padding:1rem}.proposal-price span{color:#a5f3fc;font-weight:800;text-transform:uppercase}.proposal-price small{color:#fde68a;font-weight:800}.proposal-price strong{font-size:2.3rem}.proposal-columns{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.proposal-columns h4{margin:0 0 .4rem}.proposal-sheet ul{color:#334155;padding-left:1.2rem}@media (max-width: 980px){.hero,.matrix-header{align-items:flex-start;flex-direction:column}.top-grid,.split-grid,.review-grid{grid-template-columns:1fr}.hero-actions{align-items:stretch;width:100%}.hero-actions .button{width:100%}.requirements-head{display:none}.requirement-row{grid-template-columns:1fr}}@media (max-width: 620px){.app-shell{padding-inline:.85rem}.number-grid,.addendum-fields,.inline-grid,.market-range,.proposal-columns{grid-template-columns:1fr}.hero .button{width:100%}}@media print{:root{color-scheme:light}body{background:#fff;color:#0f172a}.app-shell{max-width:none;padding:0}.hero,.top-grid,.ai-panel,.split-grid,.takeoff-panel{display:none}.proposal-panel{border:0;box-shadow:none;display:block;margin:0;padding:0}.proposal-panel>.section-title{display:none}.proposal-sheet{border-radius:0;min-height:100vh;padding:.5in}}
