:root{--ink:#172033;--muted:#526174;--surface:#fff;--canvas:#f7f7f5;--line:#d8e1ea;--primary:#334155;--accent:#c2410c;--accent-hover:#9a3412;--danger:#b42318;--success:#176a42;--focus:#1d4ed8;color:var(--ink);background:var(--canvas);font-family:Arial,Helvetica,sans-serif}.lifecycle-actions{padding:12px 0}.section-nav button[aria-pressed=true]{background:var(--primary);color:#fff}*{box-sizing:border-box}body{background:var(--canvas);min-width:320px;margin:0}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.skip-link{background:var(--ink);color:#fff;z-index:20;padding:10px 14px;text-decoration:none;position:fixed;top:-60px;left:12px}.skip-link:focus{top:12px}.app-nav{border-bottom:1px solid var(--line);z-index:2;background:#fff;align-items:center;gap:28px;min-height:68px;padding:0 clamp(16px,4vw,56px);display:flex;position:relative}.app-brand{color:var(--ink);letter-spacing:.03em;white-space:nowrap;font-weight:800;text-decoration:none}.app-brand span{color:var(--accent)}.app-nav-links{align-items:center;gap:20px;display:flex}.app-nav-links a,.app-nav-account>a{color:var(--primary);font-weight:700;text-decoration:none}.app-nav-links a:hover,.app-nav-account>a:hover{color:var(--accent)}.app-nav-account{align-items:center;gap:12px;margin-left:auto;display:flex}.app-nav-account button{border:1px solid var(--line);color:var(--primary);background:#fff;border-radius:7px;min-height:36px;padding:6px 10px;font-weight:700}.session-loading{color:var(--muted);font-size:14px}.nav-error{z-index:5;color:#7a1510;background:#fff1f0;border:1px solid #f3b5ae;border-radius:8px;max-width:320px;margin:0;padding:10px 12px;position:absolute;top:72px;right:16px}.shell{width:min(1440px,100%);margin:auto;padding:32px clamp(16px,4vw,56px) 56px}.page-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;padding-bottom:24px;display:flex}.page-header h1{margin:0;font-size:clamp(28px,4vw,42px)}.page-header p:not(.eyebrow){color:var(--muted);max-width:760px;margin:10px 0 0;line-height:1.5}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:700}.role-chip{border:1px solid var(--line);color:var(--primary);white-space:nowrap;background:#fff;border-radius:999px;padding:8px 12px;font-size:14px;font-weight:700;display:inline-block}.page-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.section-nav{scrollbar-width:thin;gap:8px;margin:-8px 0 24px;padding:4px 0 8px;display:flex;overflow:auto}.section-nav a{border:1px solid var(--line);color:var(--primary);white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:14px;font-weight:700;text-decoration:none}.section-nav a:hover{border-color:var(--accent);color:var(--accent)}.workspace{grid-template-columns:minmax(0,1fr) 292px;align-items:start;gap:24px;display:grid}.editor{gap:16px;display:grid}.card,.empty-state{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:0 1px 2px #0f172a0a}.card h1,.card h2,.empty-state h1,.empty-state h2{margin:0 0 18px}.empty-state{max-width:680px}.empty-state p{color:var(--muted);margin:0 0 20px;line-height:1.55}.page-state{color:var(--muted);padding:32px 0}.field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.field{color:var(--primary);gap:7px;font-size:14px;font-weight:700;display:grid}.field input,.field select{width:100%;min-height:44px;color:var(--ink);background:#fff;border:1px solid #9aa9b8;border-radius:7px;padding:9px 11px}.field small{color:var(--muted);font-size:12px;font-weight:400;line-height:1.4}.check-field{min-height:44px;color:var(--primary);align-self:center;align-items:center;gap:10px;font-size:14px;font-weight:700;display:flex}.check-field input{width:18px;height:18px;accent-color:var(--accent)}.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--danger);background:snow}.field-error{color:var(--danger)!important;font-weight:700!important}.section-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.section-heading h2{margin-bottom:6px}.section-heading .subtle{margin:0}.read-only-label,.owner-label{white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:700}.read-only-label{color:var(--primary);background:#eef3f7}.owner-label{color:#1e3a8a;background:#eff6ff}.calculation-results{border-left:4px solid #7b8b9d}.owner-section{border-left:4px solid #2563eb}.primary,.secondary{border-radius:7px;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;font-weight:700;text-decoration:none;display:inline-flex}.primary{background:var(--accent);color:#fff;border:0}.primary:hover{background:var(--accent-hover)}.primary:disabled{cursor:wait;opacity:.65}.secondary{border:1px solid var(--primary);color:var(--primary);background:#fff}.button-link{width:max-content}.notice{border-radius:8px;margin:0 0 16px;padding:14px 16px;line-height:1.5}.notice p{margin:6px 0 0}.notice ul{margin:8px 0 0;padding-left:20px}.neutral{border:1px solid var(--line);background:#f8fafc}.error{color:#7a1510;background:#fff1f0;border:1px solid #f3b5ae}.success{color:#14532d;background:#eefbf3;border:1px solid #9cd6b2}.inline-error{color:var(--danger);font-weight:700}.muted,.subtle{color:var(--muted)}.result-grid,.summary dl{grid-template-columns:1fr auto;gap:10px 16px;margin:0;display:grid}.result-grid dt,.summary dt{color:var(--muted)}.result-grid dd,.summary dd{font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:700}.summary{position:sticky;top:16px}.summary p{border-top:1px solid var(--line);color:var(--muted);margin:18px 0 0;padding-top:18px;font-size:13px;line-height:1.5}.restricted,.owner-only{color:#7c2d12;background:#fff7ed;border-left:4px solid #d97706;padding:12px;line-height:1.45}.owner-only{color:#1e3a8a;background:#eff6ff;border-color:#2563eb}.commercial-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.commercial-row{border:1px solid var(--line);border-radius:8px;gap:12px;padding:16px;display:grid}.commercial-row h3{margin:0;font-size:15px}.version-list{gap:10px;display:grid}.current-version{border-color:var(--accent)}.calculation-list{gap:12px;display:grid}.calculation-card{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;grid-template-columns:minmax(180px,1.3fr) minmax(260px,1fr) auto;align-items:center;gap:24px;padding:20px 22px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.calculation-card:hover{border-color:#a8b5c3;transform:translateY(-1px);box-shadow:0 10px 24px #0f172a14}.calculation-card h2{margin:0 0 6px;font-size:18px}.calculation-card p{color:var(--muted);margin:0}.calculation-card dl{grid-template-columns:repeat(3,1fr);gap:12px;margin:0;display:grid}.calculation-card dl div{gap:4px;display:grid}.calculation-card dt{color:var(--muted);font-size:12px}.calculation-card dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}.calculation-card-status{text-align:right;justify-items:end;gap:12px;display:grid}.status-chip{border-radius:999px;padding:6px 9px;font-size:13px;font-weight:700}.status-chip.draft{color:#815400;background:#fff7e6}.status-chip.approved{color:#176a42;background:#eefbf3}.review-layout{grid-template-columns:minmax(0,1fr) 292px;align-items:start;gap:24px;display:grid}.review-decision{border:2px solid #94a3b8}.review-checklist{grid-template-columns:1fr auto;gap:10px 16px;margin:0 0 18px;display:grid}.review-checklist dt{color:var(--muted)}.review-checklist dd{text-align:right;margin:0;font-weight:700}.review-issues{border-left:4px solid var(--danger);color:#7a1510;background:#fff1f0;margin:0 0 18px;padding:12px 16px}.review-issues.warning{color:#7c4a03;background:#fff7e6;border-color:#d97706}.review-issues ul{margin:8px 0 0;padding-left:20px}.review-issues li+li{margin-top:4px}.version-card{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.version-card a{color:var(--ink);font-weight:700}.version-card p{color:var(--muted);margin:5px 0 0;font-size:13px}.version-card-status{text-align:right;justify-items:end;gap:6px;display:grid}.comparison-table{overflow-x:auto}.comparison-table table{border-collapse:collapse;width:100%;min-width:580px}.comparison-table th,.comparison-table td{border-bottom:1px solid var(--line);text-align:left;padding:12px}.comparison-table td{font-variant-numeric:tabular-nums}.comparison-table th:first-child{width:42%}.proposal-shell{width:min(1040px,100%);margin:auto;padding:24px clamp(16px,4vw,48px) 56px}.proposal-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.proposal-toolbar>a{color:var(--primary);font-weight:700}.proposal-sheet{border:1px solid var(--line);background:#fff;border-radius:14px;padding:clamp(24px,5vw,56px);overflow:hidden;box-shadow:0 12px 40px #0f172a14}.proposal-head{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:28px;display:flex}.proposal-head h1{letter-spacing:-.025em;margin:0;font-size:clamp(30px,5vw,48px)}.proposal-head p:not(.eyebrow){color:var(--muted);margin:10px 0 0;font-size:16px}.proposal-head dl{gap:10px;min-width:150px;margin:2px 0 0;display:grid}.proposal-head dt{color:var(--muted);text-transform:uppercase;font-size:12px}.proposal-head dd{margin:2px 0 0;font-weight:700}.proposal-project{border-bottom:1px solid var(--line);background:#f8fafc;grid-template-columns:1fr 1fr;gap:16px;padding:18px 0;display:grid}.proposal-project div{gap:5px;display:grid}.proposal-project span,.proposal-specs dt{color:var(--muted);font-size:13px}.proposal-section{border-bottom:1px solid var(--line);padding:28px 0}.proposal-section h2{margin:0 0 16px;font-size:18px}.proposal-specs{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0;display:grid}.proposal-specs div{gap:5px;display:grid}.proposal-specs dd{margin:0;font-size:16px;font-weight:700}.proposal-lines{border-top:1px solid var(--line)}.proposal-line{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 150px 150px;align-items:center;gap:16px;padding:14px 0;display:grid}.proposal-line>span,.proposal-line>strong:last-child{text-align:right;font-variant-numeric:tabular-nums}.proposal-line-head{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.proposal-total{justify-content:flex-end;align-items:baseline;gap:32px;padding-top:20px;display:flex}.proposal-total span{color:var(--muted)}.proposal-total strong{font-variant-numeric:tabular-nums;font-size:26px}.proposal-notice{border-left:4px solid var(--accent);color:#7c2d12;background:#fff7ed;margin-top:28px;padding:16px 18px}.proposal-notice p{margin:6px 0 0;line-height:1.5}.proposal-footer{color:var(--muted);justify-content:space-between;padding-top:28px;font-size:13px;display:flex}.proposal-footer p{margin:0}@media (max-width:960px){.workspace,.review-layout{grid-template-columns:1fr}.summary{position:static}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calculation-card{grid-template-columns:1fr auto}.calculation-card dl{grid-column:1/-1}.calculation-card-status{grid-area:1/2}}@media (max-width:600px){.app-nav{flex-wrap:wrap;gap:10px 18px;min-height:64px;padding-top:12px;padding-bottom:12px}.app-nav-links{order:3;width:100%}.shell{padding-top:20px}.page-header{display:block}.page-header .primary,.page-header .role-chip{margin-top:16px}.card,.empty-state{padding:18px}.field-grid,.commercial-grid{grid-template-columns:1fr}.calculation-card{grid-template-columns:1fr;gap:16px;padding:18px}.calculation-card dl{grid-template-columns:repeat(2,1fr)}.calculation-card-status{text-align:left;grid-area:auto;justify-items:start}.proposal-toolbar,.proposal-head,.proposal-footer{flex-direction:column;align-items:flex-start}.proposal-project,.proposal-specs{grid-template-columns:1fr}.proposal-line{grid-template-columns:1fr auto}.proposal-line-head{display:none}.proposal-line>strong:first-child{grid-column:1/-1}.proposal-line>strong:last-child{text-align:right}.proposal-total{flex-direction:column;align-items:flex-end;gap:4px}}@media print{.app-nav,.proposal-toolbar{display:none}.proposal-shell{width:100%;padding:0}.proposal-sheet{box-shadow:none;border:0;padding:28px}.proposal-notice{break-inside:avoid}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.password-control{align-items:center;gap:8px;min-width:0;display:flex}.password-control input{min-width:0}.password-toggle{flex:0 0 44px;min-width:44px;padding:10px}
