:root{--gold:#f4bf00;--black:#111;--paper:#fff;--line:#e8b400;--muted:#6a6a6a}*{box-sizing:border-box}body{margin:0;background:#ececec;color:#111;font-family:Arial,Helvetica,sans-serif}.builder{max-width:1500px;margin:auto;padding:20px}.toolbar{position:sticky;top:0;z-index:20;background:#111;color:#fff;border-radius:14px;padding:14px 18px;margin-bottom:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:0 8px 25px #0003}.toolbar strong{margin-right:auto}.btn{appearance:none;border:0;border-radius:9px;padding:11px 16px;font-weight:800;cursor:pointer}.btn-gold{background:var(--gold);color:#111}.btn-white{background:#fff;color:#111}.btn-dark{background:#292929;color:#fff}.workspace{display:grid;grid-template-columns:minmax(360px,520px) minmax(720px,1fr);gap:22px;align-items:start}.editor{background:#fff;border-radius:14px;padding:18px;box-shadow:0 5px 22px #0002;max-height:calc(100vh - 105px);overflow:auto}.editor h2{margin:0 0 8px}.editor h3{background:#111;color:#fff;padding:9px 11px;border-radius:8px;margin:20px 0 10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.editor label{display:block}.editor label.wide{grid-column:1/-1}.editor label span{display:block;font-size:12px;font-weight:800;margin:0 0 4px}.editor input,.editor textarea{width:100%;border:1px solid #bbb;border-radius:7px;padding:9px;font:inherit}.editor textarea{resize:vertical}.sheet-wrap{overflow:auto}.sheet{width:8.5in;min-height:11in;margin:0 auto;background:#fff;padding:.22in;box-shadow:0 8px 28px #0003}.contract{height:10.56in;border:3px solid var(--gold);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}.contract-top{display:grid;grid-template-columns:46% 54%;gap:8px;padding:14px 18px 6px;align-items:center}.brand{text-align:center}.brand img{display:block;width:80%;max-height:150px;object-fit:contain;margin:auto}.company-meta{font-size:10px;font-weight:700;line-height:1.35}.estimate-title{background:var(--gold);font-size:18px;font-weight:900;text-align:center;padding:9px;border-radius:6px;margin-bottom:8px}.customer-box{border:3px solid var(--gold);border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.45}.customer-box b{display:inline-block;min-width:78px;font-size:11px}.bar{background:var(--gold);font-weight:900;text-align:center;padding:5px 8px;font-size:14px}.project-bar{display:grid;grid-template-columns:1fr 2fr 1fr}.project-bar span:first-child{text-align:left}.project-grid{display:grid;grid-template-columns:1fr 4px 1fr;gap:12px;padding:6px 16px 8px;min-height:144px}.divider{background:#111}.project-col{text-align:center;font-size:8.4px;line-height:1.25}.project-col h4{font-size:11px;margin:0 0 2px}.project-col .sub{margin-top:9px}.package{padding:8px 14px 5px;flex:1}.package-grid{display:grid;grid-template-columns:58% 42%;gap:14px;font-size:8.5px;line-height:1.35}.package h4{margin:0 0 8px;font-size:11px}.pkg-row{margin:5px 0}.line-value{display:inline-block;min-width:70px;border-bottom:1px solid #555;padding:0 3px;font-size:12px}.misc{font-size:12px;line-height:1.25;margin-top:5px}.misc b{font-size:9px;margin-right:6px}.payment-terms{font-size:11px;margin-top:4px}.warranty-table{display:grid;grid-template-columns:65px 1fr 105px;gap:4px 8px;align-items:center;margin-top:7px;font-size:8.5px}.warranty-table strong{font-size:12px}.flat-note{text-align:center;font-size:7px;margin-top:4px}.total-row{display:grid;grid-template-columns:1fr 245px}.wind{background:var(--gold);font-weight:900;text-align:center;padding:8px;font-size:14px}.total{background:var(--gold);font-weight:900;padding:5px 8px;display:flex;align-items:center;gap:10px;font-size:16px}.total-amount{background:#fff;border:1px solid #777;padding:4px 8px;flex:1;text-align:right;font-size:16px}.signature-finance{display:grid;grid-template-columns:1fr 245px;min-height:72px;border-bottom:3px solid var(--gold)}.signatures{padding:10px 18px;display:grid;grid-template-columns:1fr 90px;gap:4px 14px;align-items:end;font-size:7px}.sig-line{border-bottom:1px solid #777;height:28px}.finance{background:#111;color:#fff;padding:8px;text-align:center;font-size:7px}.finance strong{display:block;margin-bottom:4px}.monthly{border:2px solid var(--gold);background:#fff;color:#111;height:19px;margin-top:4px}.contractor-sign{display:grid;grid-template-columns:1fr 110px;gap:12px;padding:5px 35px;border-bottom:3px solid var(--gold);font-size:7px}.signature-name{font-family:"Brush Script MT","Segoe Script",cursive;font-size:18px;border-bottom:1px solid #777;min-height:24px}.terms{padding:10px 14px;font-size:6.3px;line-height:1.25;font-weight:700}.blank-line{display:block;min-height:1em}.empty-note{color:#888;font-style:italic}.no-print{}@media(max-width:1150px){.workspace{grid-template-columns:1fr}.editor{max-height:none}.sheet-wrap{padding-bottom:20px}}.email-modal{position:fixed;inset:0;z-index:1000;background:#000b;display:none;place-items:center;padding:18px}.email-modal.show{display:grid}.email-card{width:min(520px,100%);background:#fff;border-radius:14px;box-shadow:0 20px 70px #0008;overflow:hidden}.email-card-head{background:#111;color:#fff;padding:16px 18px;font-weight:900}.email-card-body{padding:18px}.email-card label span{display:block;font-size:12px;font-weight:800;margin-bottom:5px}.email-card input{width:100%;border:1px solid #aaa;border-radius:8px;padding:11px;font:inherit}.email-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.email-status{max-width:1500px;margin:0 auto 16px;padding:12px 16px;border-radius:10px;font-weight:700}.email-status.success{background:#e8f7ec;color:#145c2b;border:1px solid #9fd4ac}.email-status.error{background:#fff0f0;color:#8b1f1f;border:1px solid #e4aaaa}@media print{body{background:#fff}.no-print{display:none!important}.builder{padding:0;max-width:none}.workspace{display:block}.sheet-wrap{overflow:visible}.sheet{box-shadow:none;margin:0;width:8.5in;height:11in;padding:.22in;page-break-after:avoid}.contract{height:10.56in}@page{size:Letter;margin:0}}


body{background:#f5f4f0}.builder{max-width:1600px;padding:24px}.toolbar{border-radius:12px}.toolbar a{color:#fff}.workspace{grid-template-columns:minmax(300px,440px) minmax(0,1fr)}.editor{max-height:calc(100vh - 170px);padding:22px}.editor h3{grid-column:1/-1;background:#faf3d1;color:#26220c;margin-top:24px;padding:12px}.editor input,.editor textarea{font-size:14px;border-color:#d4d2c8;line-height:1.4}.editor input:focus,.editor textarea:focus{outline:3px solid #f4bf0055;border-color:#bd9300}.wide{grid-column:1/-1}.sheet{padding:22px;width:816px;min-height:1056px}.contract{height:auto;min-height:1012px;overflow:visible;border:0}.contract-top{padding:0 0 8px;grid-template-columns:46% minmax(0,1fr);gap:14px}.brand img{width:200px;height:180px;max-height:180px}.company-meta{font-size:10px}.project-bar{border-radius:3px 3px 0 0}.project-grid,.package,.signature-finance,.contractor-sign,.terms{border-left:3px solid var(--gold);border-right:3px solid var(--gold)}.package{min-height:315px}.project-grid{padding:9px 20px;min-height:192px;gap:14px}.project-col{font-size:10px;line-height:1.3}.project-col h4{font-size:12px}.package-grid{grid-template-columns:minmax(0,58fr) minmax(0,42fr);gap:16px;font-size:10px}.package{padding:12px 16px}.package h4{font-size:12px}.pkg-row{margin:7px 0}.customer-box{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.multiline{white-space:pre-line}.bar{font-size:14px}.misc{font-size:13px;line-height:1.4}.warranty-table{font-size:10px}.terms{font-size:9px;line-height:1.4;padding:18px 14px;border-bottom:3px solid var(--gold);border-radius:0 0 3px 3px}.signature-finance{min-height:83px}.signatures{font-size:8px}.contractor-sign{font-size:8px}.sig-line{font-size:13px}.finance{font-size:9px}.flat-note{font-size:8px}.package-grid>div,.project-col{min-width:0;overflow-wrap:anywhere}[data-bind]{overflow-wrap:anywhere}[hidden]{display:none!important}.save-row{display:flex;align-items:center;gap:10px;margin:0 0 16px;flex-wrap:wrap}.save-row select{flex:1;min-width:180px;padding:10px;border:1px solid #cbc8ba;border-radius:8px;font:inherit}.notice{font-size:13px;color:#666;line-height:1.5}.preview-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.preview-head h2{font-size:16px;margin:0}.status{font-size:13px;padding:8px 0;color:#46643a}.status.error{color:#a22}.preview-viewport{overflow:auto;padding:3px 4px 20px}.btn:focus-visible,a:focus-visible{outline:3px solid #dfb516;outline-offset:3px}.btn:disabled{opacity:.6;cursor:wait}.email-modal input{margin-top:8px}.email-actions{flex-wrap:wrap}.sheet-wrap{overflow:visible}.login{max-width:410px;margin:10vh auto;background:white;padding:32px;border-radius:16px;box-shadow:0 8px 32px #0001}.login img{display:block;width:170px;margin:auto}.login label{display:block;font-weight:bold;margin:20px 0 7px}.login input{width:100%;padding:14px;font:inherit;border:1px solid #aaa;border-radius:8px}.login .btn{width:100%;margin-top:16px}.login h1{font-size:24px;text-align:center}.login p{line-height:1.5}.login a{color:#534512}.busy{cursor:progress} @media(max-width:1200px){.workspace{grid-template-columns:350px minmax(0,1fr)}} @media(max-width:850px){.workspace{grid-template-columns:1fr}.editor{max-height:none}.builder{padding:12px}.toolbar{position:static}.toolbar strong{width:100%}.btn{padding:12px}.form-grid{gap:12px}.preview-viewport{overflow:auto}}@media(max-width:420px){.form-grid{grid-template-columns:1fr}.login{margin:24px 12px}}@media print{.builder{padding:0}.sheet{height:auto;min-height:0;width:816px}.contract{height:auto;min-height:1012px}.sheet-wrap,.preview-viewport{overflow:visible;padding:0}.project-grid,.total-row,.signature-finance,.contractor-sign{break-inside:avoid}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}} 

.preview-paper{width:816px;transform-origin:top left}.preview-viewport{overflow:hidden;padding:3px 0 0}.brand img{height:150px;max-height:150px}.project-col{font-size:9px}.project-grid{min-height:192px}.package{min-height:280px}.terms{font-size:8px;padding:12px 14px}.signature-finance{min-height:72px}.contractor-sign{padding:4px 24px}.warranty-table{grid-template-columns:50px minmax(0,1fr) 120px;gap:10px;font-size:9px}.warranty-label{font-size:9px;margin-top:12px}.warranty-table strong{font-size:12px}@media print{.preview-paper{transform:none!important}.preview-viewport{height:auto!important}}
.sheet{padding:18px;min-height:1048px}
.workspace>*{min-width:0}.sheet-wrap{max-width:100%}.preview-viewport{width:100%}.editor input,.editor textarea{min-width:0}.form-grid>*{min-width:0}
