:root {
  --navy:#172B27;
  --gold:#B9935A;
  --offwhite:#FBF8F0;
  --paper:#FFFEFA;
  --ink:#202728;
  --muted:#66716F;
  --rule:rgba(23,43,39,.14);
  --bg:#ECEBE6;
  --green:#3E6F64;
  --sage:#DCE5DF;
  --stone:#F4F1EA;
  --danger:#9B2F2F;
}
* { box-sizing:border-box; }
html, body { margin:0; min-height:100%; font-family:Aptos, Calibri, "Segoe UI", system-ui, sans-serif; color:var(--ink); background:var(--bg); }
body { display:grid; grid-template-columns:510px 1fr; height:100vh; overflow:hidden; }
body.locked .left, body.locked .right { filter:blur(8px); pointer-events:none; user-select:none; }
.login-gate { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:24px; background:linear-gradient(135deg, rgba(23,43,39,.88), rgba(185,147,90,.44)); }
body:not(.locked) .login-gate { display:none; }
.login-card { width:min(390px, 100%); display:grid; gap:10px; padding:28px; border:1px solid rgba(185,147,90,.34); border-radius:14px; background:var(--paper); box-shadow:0 28px 90px rgba(0,0,0,.28); }
.login-logo { margin-bottom:6px; font-size:30px; }
.login-logo .zuildup-house { width:48px; height:48px; stroke-width:6; }
.login-card h1 { margin:0; color:var(--navy); font-family:Georgia, "Times New Roman", serif; font-size:28px; line-height:1.1; }
.login-card p { margin:0 0 8px; color:var(--muted); font-size:13px; }
.login-card button { margin-top:8px; min-height:42px; border-radius:8px; }
.login-error { min-height:16px; color:var(--danger); font-size:12px; font-weight:800; }
.left { background:var(--paper); border-right:1px solid var(--rule); overflow:auto; padding:26px 26px 80px; }
.right { overflow:auto; }
.brand { display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.zuildup-logo { display:inline-flex; align-items:center; gap:10px; color:#111; font-family:Aptos, Calibri, "Segoe UI", sans-serif; font-weight:900; letter-spacing:-.01em; line-height:1; text-transform:none; }
.zuildup-house { flex:0 0 auto; width:36px; height:36px; fill:none; stroke:var(--gold); stroke-width:6.5; stroke-linecap:round; stroke-linejoin:round; }
.zuildup-logo span { color:#111; }
.editor-logo { font-size:21px; color:#111; }
.editor-logo .zuildup-house { width:34px; height:34px; }
.brand-tag { margin-left:auto; color:var(--muted); font-size:10px; letter-spacing:.18em; text-transform:uppercase; }
fieldset { border:0; padding:0; margin:0 0 20px; }
legend { margin-bottom:10px; padding:0; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); font-weight:700; }
label { display:block; margin:0 0 4px; color:var(--muted); font-size:11.5px; font-weight:600; }
input[type=text], input[type=number], input:not([type]), select, textarea {
  width:100%; padding:9px 11px; border:1px solid var(--rule); border-radius:7px; background:#fff; color:var(--ink); font:inherit; font-size:13px; outline:0;
}
input:focus, select:focus, textarea:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(62,111,100,.13); }
textarea { resize:vertical; min-height:60px; }
.row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.compact { align-items:end; }
.row.three { grid-template-columns:1fr 1fr 1fr; }
.input-note { margin-top:4px; min-height:14px; color:var(--muted); font-size:10.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.checkrow { display:flex; flex-wrap:wrap; gap:14px; padding:8px 0; }
.checkrow label, .draft, .charge-row { display:flex; align-items:center; gap:6px; color:var(--ink); font-size:12px; cursor:pointer; }
.toggle { display:inline-flex; padding:3px; border:1px solid var(--rule); border-radius:7px; background:#fff; }
.toggle button { border:0; border-radius:5px; padding:6px 12px; background:transparent; color:var(--muted); font:inherit; font-size:11.5px; cursor:pointer; }
.toggle button.active { background:var(--navy); color:#fff; }
details { margin-top:10px; }
summary { cursor:pointer; color:var(--muted); font-size:12px; font-weight:700; }
.charge-row { margin-top:10px; }
.text-btn, .spec-actions button, .toolbar button, dialog button {
  border:1px solid var(--rule); border-radius:6px; background:#fff; color:var(--ink); padding:7px 11px; font:inherit; font-size:12px; cursor:pointer; font-weight:700;
}
.primary, .spec-actions .primary { background:var(--navy); color:#fff; border-color:var(--navy); }
dialog.hard-quote-dialog { width:min(980px, calc(100vw - 40px)); max-height:90vh; padding:0; border:0; border-radius:12px; background:var(--paper); color:var(--ink); box-shadow:0 24px 70px rgba(23,43,39,.28); }
.hard-quote-dialog header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 18px; border-bottom:1px solid var(--rule); background:#FFFEFB; }
.hard-quote-dialog h3 { margin:0; color:var(--navy); font-size:18px; }
.hard-quote-chooser, .hard-quote-editor { padding:18px; }
.hard-quote-chooser p { margin:0 0 14px; color:var(--muted); font-size:13px; }
.hard-tier-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.hard-tier-grid button { min-height:94px; display:grid; align-content:center; gap:6px; text-align:left; border:1px solid #DCC8AE; border-radius:10px; padding:16px; background:linear-gradient(180deg, #FDFBF7, #fff); }
.hard-tier-grid b { color:var(--navy); font-size:18px; }
.hard-tier-grid span { color:var(--muted); font-size:12px; }
.hard-editor-head { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px; margin-bottom:14px; padding:12px; border:1px solid #E8D9C8; border-radius:10px; background:var(--stone); }
.hard-editor-head h4 { margin:0; color:var(--navy); font-size:18px; }
.hard-editor-head p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.hard-quote-editor fieldset { margin-bottom:18px; }
.hard-quote-dialog .spec-list { max-height:52vh; overflow:auto; padding-right:4px; }
.spec-actions { display:flex; gap:8px; justify-content:flex-end; margin-bottom:10px; }
.spec-tools { margin-bottom:9px; }
#specSearch { background:#FFFDF8; }
#undoSpecDelete { color:var(--danger); border-color:#EACBC5; background:#FFF8F4; }
.spec-list { display:grid; gap:8px; }
.spec-category { border:1px solid var(--rule); border-radius:8px; background:#fff; overflow:hidden; box-shadow:0 8px 22px rgba(23,43,39,.035); }
.spec-category > summary { display:flex; align-items:center; gap:8px; padding:8px 10px; background:var(--stone); color:var(--navy); font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; box-shadow:inset 3px 0 0 var(--gold); }
.spec-category > summary small { margin-left:0; color:var(--muted); font-size:10px; letter-spacing:.08em; white-space:nowrap; }
.spec-category[open] > summary { background:var(--navy); color:#fff; box-shadow:inset 4px 0 0 var(--gold); }
.spec-category[open] > summary small { color:rgba(255,255,255,.75); }
.category-title { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.category-title-input { flex:1; min-width:110px; max-width:210px; height:25px; padding:3px 7px!important; border-radius:5px!important; font-size:11px!important; font-weight:800!important; text-transform:uppercase!important; letter-spacing:.05em!important; }
.category-drag-handle { flex:0 0 auto; color:currentColor; opacity:.55; font-size:13px; line-height:1; cursor:grab; padding:3px 1px; }
.category-drag-handle:active { cursor:grabbing; }
.category-copy-btn { margin-left:auto; border:1px solid currentColor; border-radius:999px; background:rgba(255,255,255,.86); color:var(--navy); padding:3px 8px; font:inherit; font-size:9.5px; line-height:1; font-weight:800; cursor:pointer; letter-spacing:.04em; text-transform:uppercase; }
.category-edit-btn { flex:0 0 auto; width:20px; height:20px; display:grid; place-items:center; border:1px solid currentColor; border-radius:999px; background:rgba(255,255,255,.86); color:var(--navy); padding:0; font:inherit; font-size:10px; line-height:1; font-weight:800; cursor:pointer; }
.spec-category[open] .category-copy-btn, .spec-category[open] .category-edit-btn { background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.35); }
.category-copy-btn:hover, .category-edit-btn:hover { background:#fff; color:var(--navy); }
.spec-category.is-dragging { opacity:.55; }
.spec-category.is-drop-target { outline:2px solid rgba(185,147,90,.70); outline-offset:2px; }
.spec-item-list { display:grid; gap:5px; padding:7px; background:#f8f6f1; }
.spec-item { border:1px solid #E4DDD0; border-radius:8px; background:#fff; overflow:hidden; }
.spec-item > summary { display:flex; align-items:center; gap:7px; min-height:36px; padding:6px 8px; cursor:pointer; list-style:none; }
.spec-item > summary::-webkit-details-marker { display:none; }
.spec-item[open] { border-color:rgba(185,147,90,.55); box-shadow:inset 3px 0 0 var(--gold); }
.spec-item[open] > summary { border-bottom:1px solid #E8E1D5; background:#FFFCF6; }
.drag-handle { flex:0 0 auto; color:#9AA39F; font-size:13px; line-height:1; cursor:grab; padding:4px 2px; opacity:.75; }
.spec-item > summary:hover .drag-handle { opacity:1; color:var(--gold); }
.drag-handle:active { cursor:grabbing; }
.spec-item-title { display:grid; gap:3px; min-width:0; flex:1; }
.spec-item-title b { color:var(--navy); font-size:13.5px; line-height:1.25; white-space:normal; overflow:visible; text-overflow:clip; }
.spec-copy-btn { flex:0 0 auto; border:1px solid #DFD3C6; border-radius:999px; background:#fff; color:var(--muted); padding:3px 7px; font:inherit; font-size:9.5px; line-height:1; font-weight:800; cursor:pointer; letter-spacing:.04em; text-transform:uppercase; }
.spec-copy-btn:hover { color:var(--navy); border-color:var(--gold); }
.spec-edit-btn { flex:0 0 auto; width:20px; height:20px; display:grid; place-items:center; border:1px solid #DFD3C6; border-radius:999px; background:#fff; color:var(--muted); padding:0; font:inherit; font-size:10px; line-height:1; font-weight:800; cursor:pointer; }
.spec-edit-btn:hover { color:var(--navy); border-color:var(--gold); }
.spec-remove-btn { flex:0 0 auto; width:20px; height:20px; display:grid; place-items:center; border:1px solid #EACBC5; border-radius:999px; background:#fff; color:var(--danger); font-size:13px; line-height:1; cursor:pointer; }
.spec-remove-btn:hover { background:#FFF6F2; border-color:#DFAEA5; }
.spec-item.is-dragging { opacity:.5; }
.spec-item.is-drop-target { outline:2px solid rgba(201,162,77,.65); outline-offset:2px; }
.spec-item-editor { display:grid; gap:10px; padding:10px; background:#FFFDF8; min-width:0; overflow:hidden; }
.spec-row-main { display:grid; grid-template-columns:minmax(0,1fr) minmax(88px,112px); gap:8px; align-items:end; }
.brand-line { display:block; width:100%; min-width:0; }
.spec-row-main label { min-width:0; }
.spec-row-main label, .brand-line, .category-hidden { margin:0; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.spec-row-main input, .brand-line input, .category-hidden input { margin-top:4px; padding:8px 9px; font-size:12.5px; letter-spacing:0; text-transform:none; font-weight:500; min-width:0; max-width:100%; }
.category-hidden { display:none; }
.spec-desc-edit { display:grid; gap:5px; }
.rich-toolbar { display:flex; align-items:center; gap:4px; }
.rich-toolbar span { margin-right:auto; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.rich-toolbar button { min-width:25px; height:25px; border:1px solid var(--rule); border-radius:5px; background:#fff; color:var(--navy); padding:0 6px; font-size:11px; font-weight:800; cursor:pointer; }
.rich-toolbar button[data-remove-spec] { margin-left:auto; color:#9b1c1c; font-weight:700; }
.rich-editor { min-height:136px; max-height:320px; overflow:auto; padding:10px 11px; border:1px solid var(--rule); border-radius:7px; background:#fff; font-size:13px; line-height:1.5; outline:0; }
.rich-editor:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(62,111,100,.13); }
.spec-row { border:1px solid var(--rule); border-radius:7px; padding:9px; background:#fffdf8; display:grid; gap:6px; }
.floor-summary-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; color:var(--muted); font-size:11.5px; line-height:1.35; }
.floor-summary-head span { flex:1; }
.floor-summary-head button { padding:5px 9px; border:1px solid var(--rule); border-radius:6px; background:#fff; color:var(--navy); font-size:11px; font-weight:800; cursor:pointer; }
.floor-summary-editor { display:grid; gap:8px; }
.floor-edit-row { border:1px solid #E5D4BF; border-radius:8px; background:#fff; padding:8px; }
.floor-name-input { height:34px; margin-bottom:6px; font-weight:800!important; color:var(--navy)!important; background:var(--paper)!important; }
.floor-area-inputs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
.floor-area-inputs label { margin:0; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.floor-area-inputs input { margin-top:3px; padding:6px 7px!important; font-size:12px!important; }
.floor-edit-total { display:grid; grid-template-columns:1.35fr repeat(4,1fr); gap:6px; align-items:center; border:1px solid rgba(185,147,90,.34); background:var(--offwhite); border-radius:8px; padding:9px; color:var(--navy); font-size:11.5px; font-weight:800; }
.floor-edit-total span { text-align:right; white-space:nowrap; }
.zone-override-editor { display:grid; gap:10px; }
.zone-edit-group { border:1px solid #E2CFB8; border-radius:8px; background:#fff; overflow:hidden; }
.zone-edit-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; background:var(--stone); color:var(--navy); font-size:11.5px; }
.zone-edit-head b { letter-spacing:.08em; text-transform:uppercase; }
.zone-edit-head span { color:var(--muted); font-size:10.5px; font-weight:800; }
.zone-edit-line { display:grid; grid-template-columns:1fr 1.25fr 190px; gap:6px; align-items:center; padding:7px 8px; border-top:1px solid rgba(185,147,90,.15); }
.zone-edit-line input { padding:7px 8px!important; font-size:12px!important; }
.zone-edit-qty { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,70px) auto; gap:5px; align-items:center; }
.zone-edit-qty span { color:var(--muted); font-size:10.5px; font-weight:800; }
.zone-edit-qty button { width:22px; height:22px; border:1px solid #EACBC5; border-radius:999px; background:#fff; color:var(--danger); cursor:pointer; line-height:1; }
.zone-add-line { width:100%; border:0; border-top:1px dashed rgba(185,147,90,.30); background:#fffdf8; color:var(--navy); padding:8px; font-size:11.5px; font-weight:900; cursor:pointer; }
.pricing-fieldset { border:1px solid #E5D4BF; border-radius:9px; padding:12px; background:linear-gradient(180deg, #FDFBF7, #fff); }
.pricing-fieldset legend { padding:0 4px; }
.pricing-note { margin:-2px 0 10px; color:var(--muted); font-size:11.5px; line-height:1.45; }
.pricing-fieldset details { border:1px solid rgba(185,147,90,.18); border-radius:8px; background:#fff; padding:9px; }
.pricing-fieldset summary { color:var(--navy); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.spec-empty { border:1px dashed #D7C8B4; border-radius:8px; padding:14px; background:#FFFDF8; color:var(--muted); font-size:12px; text-align:center; }
.notes-counter { color:var(--muted); font-size:11px; text-align:right; margin-top:4px; }
.toolbar { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:center; gap:10px; padding:12px 16px 12px 150px; background:rgba(236,235,230,.96); border-bottom:1px solid var(--rule); backdrop-filter:blur(8px); }
.toolbar .title { position:absolute; left:16px; width:118px; color:var(--navy); font-size:12px; font-weight:800; letter-spacing:.12em; line-height:1.15; text-transform:uppercase; }
.inline-label { display:flex; align-items:center; gap:6px; margin:0; white-space:nowrap; }
.toolbar button { min-height:38px; padding:8px 14px; }
.toolbar select { width:auto; min-height:38px; padding:7px 10px; }
.theme-label { color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.theme-label select { min-width:176px; background:var(--paper); color:var(--ink); border-color:var(--rule); text-transform:none; letter-spacing:0; font-weight:700; }
.user-badge { min-height:38px; display:grid; align-content:center; padding:7px 12px; border:1px solid #DCC8AE; border-radius:6px; background:var(--paper); color:var(--navy); font-size:11px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.gold { background:var(--gold)!important; color:#fff!important; border-color:var(--gold)!important; }
.navy { background:var(--navy)!important; color:#fff!important; border-color:var(--navy)!important; }
.download { background:var(--gold)!important; color:#fff!important; border-color:var(--gold)!important; }
.preview-stack { display:grid; gap:28px; padding:28px 0 70px; }
.pdf-page { position:relative; width:794px; height:1123px; margin:0 auto; padding:54px 58px 64px; background:var(--paper); box-shadow:0 18px 42px rgba(23,43,39,.16); overflow:hidden; font-family:Aptos, Calibri, "Segoe UI", Arial, sans-serif; }
.email-pdf-export-host { position:fixed; left:-10000px; top:0; width:794px; background:#fff; pointer-events:none; z-index:-1; }
.email-pdf-export { display:block; padding:0; gap:0; background:#fff; }
.email-pdf-export .pdf-page { width:794px!important; height:1123px!important; min-height:1123px!important; margin:0; padding:54px 58px 64px!important; box-shadow:none; break-after:page; page-break-after:always; }
.email-pdf-export .pdf-page:last-child { break-after:auto; page-break-after:auto; }
.email-pdf-export *, .email-pdf-export *::before, .email-pdf-export *::after { box-shadow:none!important; text-shadow:none!important; }
.email-pdf-export .page-foot { left:58px!important; right:58px!important; bottom:28px!important; }
.email-pdf-export .area-facts { grid-template-columns:repeat(5,1fr)!important; }
.email-pdf-export .zone-pdf-grid { grid-template-columns:1fr 1fr!important; }
.email-pdf-export .zone-table-head, .email-pdf-export .zone-table-row { grid-template-columns:1fr 1.25fr 120px!important; }
.email-pdf-export .price-hero { grid-template-columns:1.35fr 1fr 1fr!important; }
.email-pdf-export .price-table-head, .email-pdf-export .price-line { grid-template-columns:1fr 100px 88px 112px!important; }
.email-pdf-export .price-table-head span:not(:first-child), .email-pdf-export .price-line em, .email-pdf-export .price-line strong { text-align:right!important; }
.email-pdf-export .price-summary { grid-template-columns:repeat(4,1fr)!important; }
.email-pdf-export .price-summary.has-discount { grid-template-columns:repeat(5,1fr)!important; }
.email-pdf-export .floor-pdf-head, .email-pdf-export .floor-pdf-row { grid-template-columns:1.25fr repeat(4,1fr)!important; }
.email-pdf-export .house-line-art { left:76px!important; right:76px!important; height:284px!important; overflow:hidden!important; color:rgba(49, 25, 34, .18)!important; }
.email-pdf-export .house-line-art svg { max-width:100%!important; }
.preview-stack.draft .pdf-page::before { content:"DRAFT"; position:absolute; inset:220px 0 auto 0; transform:rotate(-28deg); text-align:center; font-size:96px; font-weight:900; letter-spacing:.2em; color:rgba(201,162,77,.14); pointer-events:none; z-index:0; }
.pdf-page > * { position:relative; z-index:1; }
.page-brand { display:flex; align-items:center; justify-content:space-between; margin-bottom:30px; color:var(--navy); text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.page-logo { font-size:20px; letter-spacing:-.01em; }
.page-logo .zuildup-house { width:30px; height:30px; stroke-width:6.8; }
.page-foot { position:absolute; left:58px; right:58px; bottom:28px; display:flex; justify-content:space-between; gap:16px; color:var(--muted); border-top:1px solid #e2e6ec; padding-top:10px; font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.cover-page { display:grid; place-items:center; text-align:center; background:
  radial-gradient(circle, rgba(23,43,39,.10) 1px, transparent 1.3px) 0 0/31px 31px,
  linear-gradient(180deg,var(--paper) 0%,var(--offwhite) 100%); border:1px solid rgba(185,147,90,.36); }
.ornate-frame { position:absolute; inset:28px; border:1px solid rgba(185,147,90,.54); pointer-events:none; }
.ornate-frame::before { content:""; position:absolute; inset:11px; border:1px solid rgba(185,147,90,.20); }
.ornate-frame::after { content:""; position:absolute; inset:28px; border:1px solid rgba(23,43,39,.11); box-shadow:inset 0 0 0 7px rgba(255,254,250,.48); }
.house-line-art { position:absolute; inset:128px 45px auto; height:320px; display:grid; place-items:center; color:rgba(23,43,39,.15); opacity:.95; }
.house-line-art svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.cover-content { position:relative; z-index:2; display:grid; justify-items:center; gap:13px; max-width:680px; margin-top:184px; }
.cover-page .cover-logo { position:absolute; top:92px; left:78px; right:auto; z-index:3; justify-content:flex-start; font-size:43px; gap:15px; }
.cover-page .cover-logo .zuildup-house { width:66px; height:66px; stroke-width:5.8; }
.cover-page .cover-logo span { color:#111; }
.cover-kicker { color:var(--gold); font-size:12px; font-weight:900; letter-spacing:.24em; text-transform:uppercase; }
.cover-divider { width:64px; height:1px; margin:14px 0 26px; background:var(--gold); box-shadow:0 5px 0 rgba(185,147,90,.34); }
.cover-page h1 { margin:0; max-width:720px; color:var(--navy); font-family:Georgia, "Times New Roman", serif; font-size:43px; line-height:1.08; font-weight:800; letter-spacing:0; text-shadow:0 1px 0 rgba(255,255,255,.72); white-space:nowrap; }
.cover-client { margin-top:2px; color:var(--gold); font-family:Georgia, "Times New Roman", serif; font-size:50px; line-height:1.04; font-weight:800; letter-spacing:0; text-shadow:0 1px 0 rgba(255,255,255,.62); }
.cover-ampersand { display:inline-block; color:inherit; font-family:inherit; font-weight:inherit; font-size:1.08em; line-height:.82; transform:translateY(.04em); }
.cover-address { max-width:520px; color:var(--muted); font-family:Georgia, "Times New Roman", serif; font-size:15px; line-height:1.55; }
.cover-badges { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:44px; width:min(560px,100%); }
.cover-badges span { border:1px solid rgba(185,147,90,.30); background:rgba(255,255,255,.58); padding:11px 12px; color:var(--navy); font-size:10px; font-weight:900; letter-spacing:.1em; box-shadow:inset 0 3px 0 rgba(185,147,90,.64); }
.pdf-page h1 { margin:0 0 12px; color:var(--navy); font-family:"Aptos Display", Aptos, Calibri, "Segoe UI", sans-serif; font-size:32px; font-weight:800; }
.pdf-page.cover-page h1 { margin:0; max-width:720px; color:var(--navy); font-family:Georgia, "Times New Roman", serif; font-size:43px; line-height:1.08; font-weight:800; letter-spacing:0; text-shadow:0 1px 0 rgba(255,255,255,.72); white-space:nowrap; }
.pdf-page h2 { color:var(--navy); margin:20px 0 10px; font-size:17px; }
.pdf-page h3 { margin:0 0 6px; color:var(--gold); font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
.step-label { width:max-content; padding:6px 10px; margin-bottom:14px; background:var(--gold); color:#fff; border-radius:999px; font-size:11px; font-weight:900; letter-spacing:.12em; }
.page-lede { color:var(--muted); font-size:13px; line-height:1.6; max-width:620px; }
.royal-page { background:var(--paper); border:0; padding-top:62px; }
.about-page { color:var(--ink); }
.about-brand { align-items:center; margin-bottom:18px; padding-bottom:22px; border-bottom:1px solid #dfe4ea; }
.about-brand > span { color:var(--navy); font-weight:900; letter-spacing:.32em; }
.about-hero { margin-bottom:20px; }
.about-hero h1 { margin:7px 0 12px; max-width:660px; color:var(--navy); font-family:Georgia, "Times New Roman", serif; font-size:27px; line-height:1.08; font-weight:800; letter-spacing:0; }
.about-hero p { max-width:660px; margin:0; color:var(--muted); font-size:12.8px; line-height:1.42; }
.about-belief { display:grid; grid-template-columns:1fr 1fr; gap:38px; margin:0 0 19px; }
.about-belief h2 { margin:0 0 5px; color:var(--navy); font-family:Georgia, "Times New Roman", serif; font-size:17px; line-height:1.1; }
.about-belief p { margin:0; color:var(--ink); font-size:12.2px; line-height:1.34; }
.about-belief strong { display:block; margin-top:4px; color:var(--navy); font-size:10.8px; letter-spacing:.05em; text-transform:uppercase; }
.about-columns { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-bottom:22px; }
.about-columns h3,
.about-warranty h3 { margin:0 0 10px; color:var(--gold); font-size:11.2px; font-weight:900; letter-spacing:.32em; }
.about-process ol,
.about-choose ul { margin:0; padding:0; list-style:none; }
.about-process li,
.about-choose li { position:relative; min-height:43px; padding:0 0 6px 26px; border-bottom:1px dashed #dbe1e6; color:var(--muted); font-size:11.2px; line-height:1.25; }
.about-process li + li,
.about-choose li + li { padding-top:6px; }
.about-process li::before { counter-increment:about-step; content:"0" counter(about-step); position:absolute; left:0; top:0; color:var(--gold); font-weight:900; }
.about-process ol { counter-reset:about-step; }
.about-process li + li::before { top:6px; }
.about-process b,
.about-choose b { display:block; margin-bottom:2px; color:var(--navy); font-size:12px; line-height:1.1; }
.about-process span,
.about-choose span { display:block; }
.about-choose li { padding-left:0; }
.about-warranty { margin-top:0; }
.about-warranty-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:6px; }
.about-warranty-grid div { min-height:64px; padding:8px 10px; border:1px solid #dbe1e6; border-radius:5px; background:rgba(255,255,255,.62); box-shadow:inset 0 2px 0 rgba(185,147,90,.20); }
.about-warranty-grid b { display:block; color:var(--navy); font-size:11.5px; line-height:1.08; }
.about-warranty-grid em { display:block; margin:3px 0 2px; color:var(--gold); font-style:normal; font-size:10.6px; font-weight:900; line-height:1.05; }
.about-warranty-grid span { display:block; color:var(--muted); font-size:10.2px; line-height:1.18; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:20px 0; }
.about-grid div, .warranty-grid span { border:1px solid #E5DDD0; padding:14px; background:#FFFDF8; }
.process-list { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; padding:0; margin:10px 0 22px; list-style:none; counter-reset:step; }
.process-list li { border:1px solid #E5DDD0; padding:12px 10px; font-size:11px; color:var(--navy); font-weight:800; background:#FFFDF8; }
.process-list li::before { counter-increment:step; content:"0" counter(step); display:block; color:var(--gold); margin-bottom:6px; }
.warranty-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; font-size:11px; }
.quote-facts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:18px 0; }
.quote-facts span { border:1px solid #E5DDD0; padding:10px 12px; background:#FFFDF8; font-size:12px; }
.bylaw-facts { grid-template-columns:1fr 1fr; padding:12px; border:1px solid rgba(185,147,90,.28); background:#FDFBF7; }
.bylaw-facts span { border-color:rgba(185,147,90,.22); background:rgba(255,255,255,.62); }
.area-facts { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; margin:22px 0 18px; }
.area-facts span { display:grid; place-items:center; gap:3px; min-height:78px; padding:10px 9px; border:1px solid rgba(185,147,90,.24); background:linear-gradient(180deg, #F5EEE4, var(--paper)); text-align:center; box-shadow:inset 0 3px 0 rgba(185,147,90,.42); }
.area-facts small { color:var(--gold); font-size:9.5px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.area-facts b { color:var(--navy); font-size:12.5px; line-height:1.2; }
.area-facts em { color:var(--muted); font-size:9.7px; font-style:normal; line-height:1.25; }
.area-facts .bylaw-mini { background:linear-gradient(180deg, #F5EEE4, var(--paper)); }
.area-pdf-page h1 { font-size:30px; margin-bottom:8px; }
.area-pdf-page .page-lede { font-size:12px; line-height:1.45; margin:0; }
.area-pdf-page .area-facts { margin:16px 0 14px; }
.area-pdf-page .area-facts span { min-height:68px; padding:8px 8px; }
.area-pdf-page .floor-pdf-card { margin:14px 0 10px; }
.area-pdf-page .floor-pdf-title { margin-bottom:7px; }
.area-pdf-page .floor-pdf-title h2 { font-size:21px; }
.area-pdf-page .floor-pdf-head span, .area-pdf-page .floor-pdf-row > * { padding:7px 9px; }
.area-pdf-page .floor-pdf-row { min-height:32px; font-size:10.5px; }
.area-notes-block { margin:8px 0 0; padding:10px 12px; border:1px solid rgba(185,147,90,.24); border-left:4px solid var(--gold); border-radius:8px; background:#FDFBF7; }
.area-notes-block h2 { margin:0 0 5px; color:var(--gold); font-size:9.5px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.area-notes-block p { margin:0; color:var(--ink); font-size:10.8px; line-height:1.45; white-space:pre-wrap; }
.floor-pdf-card { margin:18px 0 14px; }
.floor-pdf-title { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:9px; }
.floor-pdf-title h2 { margin:0; color:var(--navy); font-family:Georgia, "Times New Roman", serif; font-size:23px; }
.floor-pdf-title span { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.floor-pdf-head, .floor-pdf-row { display:grid; grid-template-columns:1.25fr repeat(4,1fr); gap:0; align-items:center; text-align:center; }
.floor-pdf-head { background:var(--navy); color:#fff; border-radius:7px 7px 0 0; font-size:10px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.floor-pdf-head span, .floor-pdf-row > * { padding:9px 10px; }
.floor-pdf-row { min-height:39px; border-left:1px solid rgba(185,147,90,.22); border-right:1px solid rgba(185,147,90,.22); border-bottom:1px solid rgba(185,147,90,.18); background:#fff; font-size:11.5px; }
.floor-pdf-row:nth-child(odd) { background:var(--offwhite); }
.floor-pdf-row b { color:var(--navy); }
.floor-pdf-row span { text-align:center; white-space:nowrap; color:var(--ink); font-weight:700; }
.floor-pdf-total { background:#F4EDE1!important; border-top:2px solid var(--gold); border-radius:0 0 7px 7px; font-weight:900; }
.zone-pdf-card { margin:16px 0 12px; }
.zone-pdf-title { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:8px; }
.zone-pdf-title h2 { margin:0; color:var(--navy); font-family:Georgia, "Times New Roman", serif; font-size:21px; }
.zone-pdf-title span { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.zone-pdf-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.zone-pdf-mini { border:1px solid rgba(185,147,90,.20); border-radius:7px; overflow:hidden; background:#fff; }
.zone-pdf-row { display:grid; grid-template-columns:1fr 1.25fr .9fr; align-items:center; }
.zone-pdf-row > * { padding:6px 8px; }
.zone-pdf-row strong { text-align:right; }
.zone-pdf-zone { display:flex; align-items:center; gap:8px; padding:8px 9px; background:#F8F5F1; color:var(--navy); font-size:11.5px; font-weight:900; }
.zone-pdf-zone b { display:grid; place-items:center; width:22px; height:22px; border-radius:6px; background:var(--gold); color:#fff; font-size:12px; }
.zone-pdf-row { min-height:30px; border-top:1px solid rgba(185,147,90,.13); background:#fff; font-size:10.5px; }
.zone-pdf-row b { color:var(--navy); }
.zone-pdf-row span { color:var(--muted); line-height:1.25; }
.zone-pdf-row strong { color:var(--navy); white-space:nowrap; }
.zone-pdf-total { background:var(--offwhite); font-weight:900; }
.zone-pdf-grand { display:flex; justify-content:space-between; gap:16px; margin-top:8px; padding:9px 11px; background:#F4EDE1; color:var(--navy); border-radius:7px; border:1px solid rgba(185,147,90,.18); font-size:12px; font-weight:900; }
.area-zone-pdf-page h1 { font-size:30px; margin-bottom:8px; }
.area-zone-pdf-page .page-lede { font-size:12px; line-height:1.45; margin:0 0 18px; }
.zone-table-card { display:grid; gap:8px; margin-top:14px; }
.zone-table-head { display:grid; grid-template-columns:1fr 1.25fr 120px; padding:9px 12px; border-radius:7px; background:var(--navy); color:#fff; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.zone-table-head span:last-child { text-align:right; }
.zone-table-section { border:1px solid rgba(185,147,90,.22); border-radius:8px; overflow:hidden; background:#fff; }
.zone-table-zone { display:flex; align-items:center; gap:10px; padding:10px 12px; background:#F7F4EF; color:var(--navy); border-bottom:1px solid rgba(185,147,90,.18); font-weight:900; }
.zone-table-zone b { display:grid; place-items:center; width:23px; height:23px; border-radius:6px; background:var(--gold); color:#fff; font-size:12px; }
.zone-table-zone span { color:var(--navy); font-size:12px; }
.zone-table-row { display:grid; grid-template-columns:1fr 1.25fr 120px; min-height:34px; border-top:1px solid rgba(185,147,90,.12); font-size:11px; align-items:center; }
.zone-table-row:nth-child(odd) { background:#FEFCFA; }
.zone-table-row > * { padding:8px 12px; }
.zone-table-row b { color:var(--navy); }
.zone-table-row span { color:var(--muted); line-height:1.25; }
.zone-table-row strong { color:var(--navy); text-align:right; white-space:nowrap; }
.zone-table-total { background:var(--offwhite)!important; font-weight:900; border-top:1px solid rgba(185,147,90,.28); }
.zone-table-grand { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:2px; padding:12px 14px; background:#F4EDE1; color:var(--navy); border-radius:8px; border:1px solid rgba(185,147,90,.22); font-size:12px; font-weight:900; }
.zone-table-continued { margin-top:2px; padding:10px 14px; border:1px dashed rgba(185,147,90,.32); border-radius:8px; color:var(--muted); background:#FDFCF9; font-size:10px; font-weight:900; letter-spacing:.12em; text-align:right; text-transform:uppercase; }
.price-hero { display:grid; grid-template-columns:1.35fr 1fr 1fr; gap:9px; margin:22px 0 16px; }
.price-hero div { min-height:92px; display:grid; align-content:center; gap:6px; padding:14px 16px; border:1px solid rgba(185,147,90,.25); background:linear-gradient(180deg, #FDFBF8, var(--paper)); text-align:center; }
.price-hero div:first-child { background:linear-gradient(135deg, var(--navy), #2F332D); color:#fff; border-color:var(--navy); }
.price-hero small { color:var(--gold); font-size:9.5px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.price-hero div:first-child small, .price-hero div:first-child span { color:#EADFCB; }
.price-hero strong { color:var(--navy); font-size:18px; }
.price-hero div:first-child strong { color:#fff; font-size:23px; }
.price-hero span { color:var(--muted); font-size:10.5px; line-height:1.35; }
.price-card-list { display:grid; gap:9px; }
.price-table-head { display:grid; grid-template-columns:1fr 100px 88px 112px; padding:9px 12px; border-radius:7px; background:var(--navy); color:#fff; font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.price-table-head span:not(:first-child) { text-align:right; }
.price-zone-card, .price-extra-card { border:1px solid rgba(185,147,90,.22); border-radius:8px; overflow:hidden; background:#fff; }
.price-zone-head { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; background:#F7F4EF; color:var(--navy); border-bottom:1px solid rgba(185,147,90,.18); }
.price-zone-head span { color:var(--gold); font-size:10px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.price-zone-head b { font-size:15px; }
.price-zone-meta { display:flex; justify-content:space-between; gap:12px; padding:8px 12px; background:var(--offwhite); color:var(--muted); font-size:10.5px; }
.price-zone-meta strong { color:var(--navy); white-space:nowrap; }
.price-line { display:grid; grid-template-columns:1fr 100px 88px 112px; gap:0; align-items:center; min-height:38px; border-top:1px solid rgba(185,147,90,.13); font-size:11px; }
.price-line:nth-child(even) { background:#FEFCFA; }
.price-line > * { padding:7px 12px; }
.price-line b { display:block; color:var(--navy); font-size:11.5px; line-height:1.25; }
.price-line span { display:block; margin-top:2px; color:var(--muted); line-height:1.25; }
.price-line em, .price-line strong { text-align:right; font-style:normal; white-space:nowrap; }
.price-line em { color:var(--muted); font-weight:800; }
.price-line strong { color:var(--navy); font-weight:900; }
.price-zone-total { background:var(--offwhite)!important; border-top:1px solid rgba(185,147,90,.28); font-weight:900; }
.price-grand { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:12px; padding:15px 18px; border-radius:8px; background:var(--navy); color:#fff; box-shadow:inset 4px 0 0 var(--gold); }
.price-grand span { color:#EDE3D3; font-size:11px; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.price-grand strong { font-size:24px; }
.price-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; }
.price-summary.has-discount { grid-template-columns:repeat(5,1fr); }
.price-summary div { display:grid; align-content:center; gap:5px; min-height:66px; padding:10px 12px; border:1px solid rgba(185,147,90,.24); background:linear-gradient(180deg, #F6F0E8, var(--paper)); text-align:center; }
.price-summary span { color:var(--gold); font-size:9px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.price-summary strong { color:var(--navy); font-size:15px; white-space:nowrap; }
.price-summary .discount strong { color:var(--danger); }
.price-summary .final { background:linear-gradient(135deg, var(--navy), #34352D); border-color:var(--navy); box-shadow:inset 4px 0 0 var(--gold); }
.price-summary .final span { color:#E8DCC7; }
.price-summary .final strong { color:#fff; font-size:19px; }
.cost-pdf-page h1 { font-size:30px; margin-bottom:8px; }
.cost-pdf-page .page-lede { font-size:12px; line-height:1.45; margin:0; }
.cost-pdf-page .price-card-list { gap:6px; }
.cost-pdf-page .price-table-head { padding:7px 10px; font-size:9.5px; }
.cost-pdf-page .price-zone-head { padding:7px 10px; }
.cost-pdf-page .price-zone-head span { font-size:9px; }
.cost-pdf-page .price-zone-head b { font-size:13px; }
.cost-pdf-page .price-zone-meta { padding:6px 10px; font-size:9.5px; }
.cost-pdf-page .price-line { min-height:28px; font-size:9.5px; }
.cost-pdf-page .price-line > * { padding:5px 10px; }
.cost-pdf-page .price-line b { font-size:10px; }
.cost-pdf-page .price-line span { margin-top:1px; line-height:1.15; }
.cost-pdf-page .price-grand { margin-top:8px; padding:12px 15px; }
.cost-pdf-page .price-grand strong { font-size:21px; }
.cost-pdf-page .fineprint { margin-top:9px; font-size:9.8px; }
.cost-pdf-page .price-summary { margin-top:8px; gap:6px; }
.cost-pdf-page .price-summary div { min-height:55px; padding:8px 9px; }
.cost-pdf-page .price-summary strong { font-size:13px; }
.cost-pdf-page .price-summary .final strong { font-size:17px; }
.area-bylaw-strip { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0; }
.area-bylaw-strip span { padding:7px 10px; border:1px solid rgba(185,147,90,.22); background:rgba(255,255,255,.58); color:var(--muted); font-size:10.5px; }
.area-bylaw-strip b { color:var(--navy); }
.section-title { margin:28px 0 10px; color:var(--gold); font-size:12px; text-transform:uppercase; letter-spacing:.18em; }
.kv { display:grid; grid-template-columns:150px 1fr 150px 1fr; gap:7px 14px; font-size:13px; }
.kv b { color:var(--navy); }
table { width:100%; border-collapse:collapse; font-size:12px; }
th { background:var(--navy); color:#fff; text-align:left; font-size:11px; letter-spacing:.05em; text-transform:uppercase; }
th, td { padding:8px 9px; border:1px solid #E5DDD0; vertical-align:top; }
td.amount, th.amount { text-align:right; white-space:nowrap; }
.total-row td { font-weight:800; color:var(--navy); background:#F8F1E4; }
.quote-spec-section h2 { display:flex; align-items:baseline; gap:8px; margin:10px 0 8px; color:var(--navy); font-size:17px; }
.quote-spec-section h2 span { color:var(--muted); font-size:10px; letter-spacing:.14em; }
.quote-spec-table { table-layout:fixed; font-size:10.7px; border-collapse:separate; border-spacing:0 5px; }
.quote-spec-table th:nth-child(1), .quote-spec-table td:nth-child(1) { width:31%; }
.quote-spec-table th:nth-child(2), .quote-spec-table td:nth-child(2) { width:23%; }
.quote-spec-table th:nth-child(3), .quote-spec-table td:nth-child(3) { width:46%; }
.quote-spec-table th { border:0; padding:8px 10px; }
.quote-spec-table th:first-child { border-radius:7px 0 0 7px; }
.quote-spec-table th:last-child { border-radius:0 7px 7px 0; }
.quote-spec-table tbody tr:nth-child(odd) td { background:var(--paper); }
.quote-spec-table tbody tr:nth-child(even) td { background:var(--offwhite); }
.quote-spec-table td { border:0; border-top:1px solid rgba(185,147,90,.23); border-bottom:1px solid rgba(185,147,90,.23); padding:9px 10px; }
.quote-spec-table td:first-child { border-left:4px solid rgba(185,147,90,.60); border-radius:7px 0 0 7px; }
.quote-spec-table td:last-child { border-right:1px solid rgba(185,147,90,.23); border-radius:0 7px 7px 0; }
.quote-spec-table tr.spec-row-continues td { border-bottom-color:transparent; }
.quote-spec-table tr.spec-row-continues td:first-child { border-radius:7px 0 0 0; }
.quote-spec-table tr.spec-row-continues td:last-child { border-radius:0 7px 0 0; }
.quote-spec-table tr.spec-row-continued td { border-top-color:transparent; }
.quote-spec-table tr.spec-row-continued td:first-child { border-radius:0 0 0 7px; }
.quote-spec-table tr.spec-row-continued td:last-child { border-radius:0 0 7px 0; }
.quote-spec-table .item-cell { color:var(--navy); font-weight:800; vertical-align:middle; }
.quote-spec-table .rate-cell { color:var(--ink); font-weight:700; white-space:normal; vertical-align:middle; }
.quote-spec-table .desc-cell { line-height:1.48; vertical-align:top; }
.quote-spec-table .desc-cell b { color:var(--navy); }
.continued-tag { display:block; margin-top:4px; color:var(--muted); font-size:8.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.fineprint { color:var(--muted); font-size:11px; line-height:1.6; margin-top:14px; }
.spec-table td:first-child { width:160px; font-weight:700; color:var(--navy); }
.spec-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.spec-card { border:1px solid #dfe3ea; border-radius:7px; padding:10px; font-size:12px; }
.spec-card b { color:var(--navy); display:block; margin-bottom:3px; }
dialog { width:min(760px, calc(100vw - 36px)); border:0; border-radius:8px; padding:18px; box-shadow:0 24px 70px rgba(10,31,68,.3); }
dialog::backdrop { background:rgba(10,31,68,.35); }
dialog header { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
dialog h3 { margin:0; color:var(--navy); }
dialog header button { margin-left:auto; }
.catalog-items, .saved-quotes { max-height:430px; overflow:auto; display:grid; gap:8px; margin-top:12px; }
.catalog-item, .saved-item { display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; border:1px solid var(--rule); border-radius:7px; padding:10px; }
.catalog-item small, .saved-item small { color:var(--muted); }
.saved-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; flex-wrap:wrap; }
.saved-actions button { padding:6px 9px; font-size:11px; }
.saved-actions button[data-cloud-delete] { color:var(--danger); border-color:#EACBC5; background:#FFF8F4; }
.save-dialog-note { margin:0 0 12px; color:var(--muted); font-size:13px; }
.save-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:14px; }
.save-grid label { margin:0; }
.save-grid input { margin-top:4px; }
.save-grid .span2 input { font-weight:800; color:var(--navy); background:var(--offwhite); }
.send-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:12px; }
.send-grid label { margin:0; }
.send-grid input, .send-grid textarea { margin-top:4px; }
.send-grid textarea { min-height:160px; resize:vertical; }
.send-status { min-height:18px; margin:8px 0 12px; color:var(--muted); font-size:12px; font-weight:700; }
.wizard-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.span2 { grid-column:1/-1; }
.tiers { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:14px 0; }
.tiers label { border:2px solid #d0d4dc; border-radius:8px; padding:12px; color:var(--ink); }
.tiers span { display:block; color:var(--muted); font-size:12px; margin-top:6px; }
.wiz-summary { padding:10px; background:#f6f7f9; border-radius:6px; color:var(--navy); font-size:13px; margin:10px 0; }
@media screen and (max-width:1050px) {
  body { grid-template-columns:1fr; height:auto; overflow:auto; }
  .left { border-right:0; border-bottom:1px solid var(--rule); }
  .right { overflow:visible; }
  .pdf-page { width:calc(100vw - 28px); min-height:900px; padding:30px 24px 60px; }
  .page-foot { left:24px; right:24px; }
  .toolbar { flex-wrap:wrap; }
  .spec-row-main, .row.three, .area-facts, .zone-pdf-grid, .price-hero { grid-template-columns:1fr; }
  .price-table-head, .price-line { grid-template-columns:1fr; }
  .price-table-head span, .price-line em, .price-line strong { text-align:left!important; }
  .process-list, .warranty-grid, .about-grid, .quote-facts { grid-template-columns:1fr; }
  .floor-area-inputs, .floor-edit-total, .zone-edit-line { grid-template-columns:1fr 1fr; }
  .zone-edit-qty { grid-column:1/-1; }
}
@media print {
  @page { size:A4; margin:0; }
  * { -webkit-print-color-adjust:exact!important; print-color-adjust:exact!important; }
  html, body { width:210mm; margin:0; background:#fff; }
  body { display:block; height:auto; overflow:visible; }
  .left, .toolbar, dialog { display:none!important; }
  .right { overflow:visible; }
  .preview-stack { display:block; padding:0; }
  .pdf-page { width:794px; height:1123px; margin:0; padding:54px 58px 64px; box-shadow:none; page-break-after:always; break-after:page; }
  .pdf-page:last-child { page-break-after:auto; break-after:auto; }
  .page-foot { left:58px; right:58px; bottom:28px; }
  .area-facts { grid-template-columns:repeat(5,1fr)!important; }
  .zone-pdf-grid { grid-template-columns:1fr 1fr!important; }
  .zone-table-head, .zone-table-row { grid-template-columns:1fr 1.25fr 120px!important; }
  .price-hero { grid-template-columns:1.35fr 1fr 1fr!important; }
  .price-table-head, .price-line { grid-template-columns:1fr 100px 88px 112px!important; }
  .price-table-head span:not(:first-child), .price-line em, .price-line strong { text-align:right!important; }
  .price-summary { grid-template-columns:repeat(4,1fr)!important; }
  .price-summary.has-discount { grid-template-columns:repeat(5,1fr)!important; }
  .floor-pdf-head, .floor-pdf-row { grid-template-columns:1.25fr repeat(4,1fr)!important; }
}
