:root{--green:#174f35;--green2:#0e3926;--orange:#ef7b23;--cream:#f7f3e9;--ink:#17231c;--muted:#647069;--line:#d9ded9;--white:#fff;--shadow:0 18px 60px #173c2a1c}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}header{height:76px;padding:0 max(22px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;background:var(--green);color:#fff}.brand{display:flex;align-items:center;gap:12px}.brand strong,.brand small{display:block;letter-spacing:.08em}.brand small{font-size:9px;color:#d6e3db}.mark{display:grid;place-items:center;width:42px;height:42px;border:2px solid var(--orange);font-weight:900;color:var(--orange)}button,select,input,textarea{font:inherit}button{cursor:pointer}.ghost{border:0;background:transparent;color:inherit;padding:10px}.hero,main>section{max-width:1160px;margin:auto}.hero{min-height:calc(100vh - 76px);padding:12vh 22px 60px;background:radial-gradient(circle at 88% 25%,#ef7b2320 0 10%,transparent 31%)}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.16em;color:var(--orange);margin:0 0 12px}.hero h1{font-family:Georgia,serif;font-size:clamp(54px,9vw,108px);line-height:.88;letter-spacing:-.05em;margin:0 0 30px;color:var(--green2)}.hero h1 em{color:var(--orange);font-weight:400}.hero>p:not(.eyebrow){max-width:580px;font-size:20px;color:var(--muted)}.hero-actions{display:flex;gap:12px;margin:34px 0}.primary,.secondary{border:0;border-radius:6px;padding:13px 20px;font-weight:800}.primary{background:var(--orange);color:#fff}.primary:hover{background:#d96715}.secondary{background:#fff;color:var(--green);border:1px solid var(--line)}.trust{display:flex;gap:26px;color:var(--green);font-size:13px;font-weight:700}.hidden{display:none!important}#app,#pricebook{padding:42px 22px 100px}.topline{display:flex;justify-content:space-between;gap:25px;align-items:start}.topline h2{font:700 clamp(32px,5vw,52px)/1 Georgia,serif;color:var(--green2);margin:0 0 10px}.topline p{color:var(--muted);margin:0}.total{min-width:190px;background:var(--green);color:#fff;padding:18px;border-radius:8px;box-shadow:var(--shadow)}.total small,.total strong{display:block}.total strong{font-size:27px}.total select{width:100%;margin-top:8px;padding:6px;background:#ffffff18;border:1px solid #ffffff40;color:#fff}.total option{color:#111}.progress{height:6px;background:#dfe5df;margin:30px 0;border-radius:9px;overflow:hidden}.progress i{display:block;height:100%;background:var(--orange);transition:.2s}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;margin:14px 0;box-shadow:0 5px 20px #173c2a0b}.fields{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field label{font-size:12px;font-weight:800;color:var(--green);display:block;margin-bottom:5px}.field input,.field textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:5px;background:#fafbf9}.repair{display:grid;grid-template-columns:auto 1fr 96px 98px;gap:12px;align-items:center}.repair input[type=checkbox]{width:20px;height:20px;accent-color:var(--orange)}.repair .name{font-weight:750}.repair small{display:block;color:var(--muted)}.repair input[type=number]{width:100%;padding:9px;border:1px solid var(--line);border-radius:5px}.cost{text-align:right;font-weight:800;color:var(--green)}nav{display:flex;justify-content:space-between;gap:10px;position:sticky;bottom:10px;margin-top:30px;padding:12px;background:#f7f3e9e8;backdrop-filter:blur(10px)}#saveToast{position:fixed;top:88px;right:20px;background:var(--green);color:#fff;padding:10px 16px;border-radius:5px;opacity:0;transform:translateY(-8px);transition:.2s;z-index:9}#saveToast.show{opacity:1;transform:none}aside{position:fixed;right:0;top:0;bottom:0;width:min(390px,90vw);background:#fff;z-index:20;padding:22px;transform:translateX(105%);transition:.25s;overflow:auto}aside.open{transform:none}.drawer-head{display:flex;justify-content:space-between;align-items:center;font-size:20px}.drawer-link{display:block;width:100%;text-align:left;padding:13px 10px;border:0;border-bottom:1px solid #eee;background:none;color:var(--green);font-weight:700}.drawer-link.active{border-left:4px solid var(--orange);background:#fff7ef}.danger{color:#a23b28}#shade{position:fixed;inset:0;background:#0007;z-index:15;display:none}#shade.show{display:block}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.summary-stat{background:var(--green);color:#fff;padding:18px;border-radius:8px}.summary-stat strong{display:block;font-size:25px}.summary-list{width:100%;border-collapse:collapse}.summary-list th,.summary-list td{text-align:left;border-bottom:1px solid var(--line);padding:10px}.summary-list td:last-child{text-align:right;font-weight:800}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.table-wrap{overflow:auto;background:#fff;margin-top:25px}table{border-collapse:collapse;width:100%}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}td input{width:92px;padding:7px;border:1px solid var(--line)}@media(max-width:700px){.trust{flex-direction:column;gap:8px}.hero-actions,.topline{flex-direction:column}.total{width:100%}.repair{grid-template-columns:auto 1fr 82px}.cost{grid-column:2/4}.fields,.summary-grid{grid-template-columns:1fr}header{padding:0 14px}.brand strong{font-size:13px}}@media print{header,nav,.actions,.progress,#menuBtn{display:none!important}body{background:#fff}#app{padding:10px}.card{box-shadow:none;break-inside:avoid}}
.full-field{grid-column:1/-1}.field select{width:100%;padding:12px;border:1px solid var(--line);border-radius:5px;background:#fafbf9}.field small{display:block;color:var(--muted);margin-top:5px}.room-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0}.room-toolbar h3{font:700 30px/1 Georgia,serif;color:var(--green2);margin:0 0 6px}.room-toolbar p{margin:0;color:var(--muted)}.room-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.room-row>div:first-child{display:grid;gap:2px}.room-row small,.room-row span{color:var(--muted)}.room-row strong{font-size:20px;color:var(--green2)}.room-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.move-room{font-size:20px;color:var(--green)}.move-room:disabled{opacity:.25;cursor:not-allowed}.room-detail{background:#e8efe9;border-radius:10px;padding:14px 18px}.room-detail>div:first-child{display:grid;gap:6px}.type-chip{color:var(--green);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.empty-state{text-align:center;padding:45px}.summary-group th{padding-top:20px;color:var(--green);font-size:17px}.summary-subtotal td{font-weight:800;background:#f6f8f5}dialog{width:min(520px,calc(100vw - 32px));border:0;border-radius:12px;padding:0;box-shadow:0 25px 80px #0005}dialog::backdrop{background:#102219aa}dialog form{padding:24px}dialog .field{margin:16px 0}.dialog-head{display:flex;align-items:start;justify-content:space-between}.dialog-head h2{font:700 34px/1 Georgia,serif;color:var(--green2);margin:0}.dialog-head .ghost{color:var(--green)}
@media(max-width:700px){.room-toolbar,.room-row{align-items:stretch;flex-direction:column}.room-actions{width:100%}.room-actions .secondary{flex:1}.full-field{grid-column:auto}}
.repair-info{min-width:0}.action-field{display:flex!important;align-items:center;gap:8px;margin-top:9px;color:var(--green);font-size:12px;font-weight:900}.action-field select{min-height:42px;padding:8px 34px 8px 10px;border:2px solid var(--orange);border-radius:6px;background:#fff;color:var(--ink);font-weight:800}.action-badge,.action-summary{display:inline-block;border-radius:999px;background:#e5eee8;color:var(--green);padding:4px 9px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.price-needed{color:#9a551f!important;margin-top:5px}.action-summary.standard{background:#eee;color:#555}.price-table{min-width:1120px}.price-table thead tr:first-child th{text-align:center;background:var(--green);color:#fff}.price-table thead tr:first-child th:first-child,.price-table thead tr:first-child th:nth-child(2){text-align:left}.price-table thead tr:nth-child(2) th{background:#edf3ee;color:var(--green)}.not-applicable{text-align:center;color:#a5ada7}
.legacy-key{display:block;color:var(--muted);font-weight:400;white-space:nowrap}.price-table input::placeholder{color:#9a551f;opacity:1;font-style:italic}
@media(max-width:700px){.action-field{align-items:stretch;flex-direction:column;gap:4px}.action-field select{width:100%;font-size:16px}.repair-info{grid-column:2/4}.repair input[type=number]{grid-column:2}.cost{grid-column:3}}
.legacy-action{margin-top:9px;padding:10px;border-left:4px solid #a23b28;background:#fff4ef;color:#7c2c20}.legacy-action strong,.legacy-action small{display:block}.legacy-action small{color:#7c2c20!important}.action-price-list{display:flex;gap:12px;flex-wrap:wrap;min-width:430px}.action-price-group{display:grid;grid-template-columns:repeat(3,minmax(82px,1fr));gap:7px;border:1px solid var(--line);border-radius:7px;padding:8px}.action-price-group legend{padding:0 5px;color:var(--green);font-weight:900}.action-price-group label{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase}.action-price-group input{display:block;width:100%;margin-top:3px}.standard-price{color:var(--muted);white-space:nowrap}.price-table{min-width:980px}.price-table thead th{background:var(--green)!important;color:#fff!important;text-align:left!important}
.existing-action{display:block;background:#edf3ee;min-width:220px}.existing-action span{display:block;color:var(--green);font-size:12px;font-weight:700}.action-price-list:has(.existing-action:only-child){min-width:240px}
.override-control{margin-top:10px;padding-top:9px;border-top:1px dashed var(--line)}.override-toggle{display:flex;align-items:center;gap:7px;color:var(--green);font-size:12px;font-weight:900}.override-toggle input{width:18px!important;height:18px}.override-fields{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:8px;padding:10px;background:#fff8f1;border:1px solid #f0c69e;border-radius:7px}.override-fields>span{color:var(--muted);font-size:12px}.override-fields label{color:var(--green);font-size:11px;font-weight:900}.override-fields input{display:block;width:120px!important;margin-top:3px;padding:8px!important}.override-fields input.invalid{border:2px solid #a23b28!important;background:#fff1ee}.reset-override{color:#a23b28}.override-active{display:block;margin-top:6px;color:#a23b28;font-size:12px}.summary-override,.summary-list td small{display:block;color:#a23b28;font-size:11px;font-weight:700}.summary-list td:nth-child(3) small{color:var(--muted)}
@media(max-width:700px){.override-fields{align-items:stretch;flex-direction:column}.override-fields input{width:100%!important}.reset-override{text-align:left}}
.room-measurements{background:#f8fbf8}.measurement-inputs{grid-template-columns:repeat(3,1fr)}.measurement-results{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}.measurement-results span{padding:12px;background:#edf3ee;border-radius:7px}.measurement-results small,.measurement-results strong{display:block}.measurement-results small{color:var(--muted);font-size:11px}.measurement-results strong{color:var(--green);margin-top:3px}.quantity-control{min-width:130px}.quantity-control label,.quantity-control>span{display:block;color:var(--green);font-size:11px;font-weight:900}.quantity-control input[type=number]{margin-top:4px}.auto-quantity{display:grid;gap:7px}.quantity-toggle{display:flex!important;align-items:center;gap:5px}.quantity-toggle input{width:17px!important;height:17px!important}.reset-quantity{padding:3px 0;text-align:left;color:#a23b28;font-size:11px}.measurement-reference{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:11px}.measurement-reference strong{color:var(--green)}input.invalid{border:2px solid #a23b28!important;background:#fff1ee!important}.summary-quantity{color:var(--green)!important}
@media(max-width:700px){.measurement-inputs,.measurement-results{grid-template-columns:1fr 1fr}.repair{grid-template-columns:auto 1fr}.repair-info,.quantity-control,.cost{grid-column:2}.quantity-control{width:100%}.cost{text-align:left}.quantity-control input[type=number]{width:100%}}
.project-meta{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:16px}.project-meta>div:first-child{display:grid}.project-meta>div:first-child small{color:var(--muted);font-weight:800}.project-meta>div:first-child strong{font-size:22px;color:var(--green)}.revision-heading,.revision-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.revision-heading h3{margin:0;color:var(--green)}.revision-heading p{margin:3px 0;color:var(--muted)}.revision-row{padding:12px 0;border-top:1px solid var(--line)}.revision-row span{display:grid}.revision-row small{color:var(--muted)}.revision-row em{color:var(--green);font-weight:800}.pdf-options{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-top:20px;padding:14px;background:#edf3ee;border-radius:8px}.pdf-options label{display:grid;gap:4px;color:var(--green);font-size:12px;font-weight:900}.pdf-options select{padding:9px;border:1px solid var(--line);border-radius:5px;background:#fff}.pdf-options small{color:var(--muted)}.print-estimate{display:none}
@media(max-width:700px){.project-meta{grid-template-columns:1fr}.revision-heading{align-items:stretch;flex-direction:column}.revision-heading button{width:100%}}
@media print{.print-room h2{break-after:avoid}.print-room thead{display:table-header-group}.print-room tr{break-inside:avoid}}
.exterior-measurements{background:#f8fbf8}.exterior-inputs{grid-template-columns:1fr 1fr}.exterior-results{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.exterior-results span{display:grid;padding:12px;background:#edf3ee;border-radius:7px}.exterior-results small{color:var(--muted);font-size:11px}.exterior-results strong{color:var(--green);font-size:18px}.area-override-toggle{margin-top:14px;color:var(--green);font-size:12px;font-weight:900}.area-override-fields{display:flex;align-items:end;gap:12px;margin-top:10px;padding:12px;background:#fff8f1;border:1px solid #f0c69e;border-radius:7px}.area-override-fields label{color:var(--green);font-size:11px;font-weight:900}.area-override-fields input{display:block;width:180px;margin-top:4px;padding:9px;border:1px solid var(--line);border-radius:5px}
@media(max-width:700px){.exterior-inputs,.exterior-results{grid-template-columns:1fr}.area-override-fields{align-items:stretch;flex-direction:column}.area-override-fields input{width:100%}}
@page{size:Letter;margin:.55in}
@media print{body.printing-estimate>*:not(#printEstimateDocument){display:none!important}body.printing-estimate #printEstimateDocument{display:block!important;color:#17231c;font:10pt/1.35 Arial,sans-serif}body.printing-estimate{background:#fff}.print-header{display:flex;justify-content:space-between;align-items:start;border-bottom:3px solid #174f35;padding-bottom:14px}.print-header p{margin:0;color:#174f35;font-size:12pt;font-weight:900;letter-spacing:.08em}.print-header h1{margin:2px 0 0;font:700 25pt Georgia,serif}.print-estimate-meta{display:grid;text-align:right;gap:2px}.print-estimate-meta strong{font-size:13pt;color:#174f35}.print-details{display:grid;grid-template-columns:2fr 2fr 1fr 1fr;gap:12px;margin:18px 0;padding:12px;background:#edf3ee}.print-details div{display:grid;align-content:start}.print-details small{color:#647069;font-size:7pt;font-weight:900;letter-spacing:.08em}.print-details strong{font-size:9.5pt}.print-details span{font-size:8.5pt}.print-room{break-inside:avoid;margin:0 0 18px}.print-room h2,.print-notes h2,.print-approval h2{margin:0;padding:7px 9px;background:#174f35;color:#fff;font-size:12pt}.print-room table{width:100%;table-layout:fixed}.print-room th,.print-room td{padding:6px;border-bottom:1px solid #d9ded9;font-size:8.5pt;overflow-wrap:anywhere}.print-room th:first-child{width:34%}.print-room th:last-child,.print-room td:last-child{text-align:right}.print-room tfoot th{background:#f3f5f2;color:#174f35}.print-total{display:grid;grid-template-columns:1fr auto;gap:5px 20px;margin-left:auto;width:44%;padding:14px;border-top:2px solid #174f35}.print-total span:nth-of-type(2),.print-total strong:last-child{font-size:14pt;font-weight:900;color:#174f35}.print-notes,.print-approval{break-inside:avoid;margin-top:18px}.print-notes p{margin:0;padding:12px;border:1px solid #d9ded9}.print-approval p{margin:18px 0}.print-approval p span{display:inline-block;width:55%;border-bottom:1px solid #17231c}.print-estimate.simplified .print-room th:first-child{width:42%}}
