/*
 * Door Quoting — ?page=fire-doors and /demo/fire-doors.
 * docs/features/2026-09-16-door-quoting-rebuild-plan.md
 *
 * ⛔ THE PROTOTYPE IS THE SPECIFICATION (docs/prototypes/door-quoting/prototype.css). Section 2 below
 * is that stylesheet copied VERBATIM, with four mechanical changes and nothing else:
 *   1. every selector is scoped under .dq-page (the prototype styles bare label, input, h2, dl,
 *      .card, .badge and .button, which would otherwise hit, and be hit by, style.css);
 *   2. the prototype's own chrome (fake sidebar, "Design preview" bar, its page header) is not
 *      copied — the app shell and our ipi-page-header replace them;
 *   3. breakpoints that were tuned against the prototype's sidebar (220/208/178/64/0px) are
 *      re-expressed as container queries on .dq-page, so the columns change at the SAME CONTENT
 *      WIDTH as the prototype. Device rules (44px touch targets, 16px inputs, type steps) stay
 *      viewport media queries, as in the prototype.
 *   4. (2026-09-30, owner-approved) every warm grey reads the palette tokens -- var(--canvas), or a
 *      color-mix() of tokens that reproduces the prototype's value in the Warm palette to within 3/255 --
 *      so the page follows the Theme picker. The local --ink is gone: it shadowed the global token.
 * Fix a fidelity difference by changing a value here to the prototype's, never by adding a
 * look the prototype does not have. e2e/door-quoting/fidelity.mjs measures it.
 *
 * Section 1 neutralises the global rules that share a name with a prototype class or element.
 * Section 3 is what the prototype does not have: the real product's controls (plan §13 register).
 *
 * ⚠ Dark mode is out of scope (css-standards.md). The page is light-locked like every surface.
 */

/* ── 1. Shell and collisions ─────────────────────────────────────────────── */
.content--fire-doors { padding-bottom: 0; }
.content--fire-doors .page-layout--fire-doors { flex: 1 1 auto; min-height: 100%; align-items: stretch; }
.content--fire-doors .page-main--fire-doors { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.dq-page-section { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.dq-page { container: dq / inline-size; --sidebar: 0px; letter-spacing: normal; flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; padding-top: 26px; }
@media (min-width: 1367px) { .dq-page { --sidebar: 220px; } }
/* style.css draws every bare <form> as a card. */
.dq-page form { background: none; padding: 0; border-radius: 0; display: block; gap: 0; box-shadow: none; margin: 0; }
/* style.css and desktop.css .card: padding, lift on hover, and a 20px gap between siblings. */
.dq-page .card { padding: 0; position: static; transition: none; }
.dq-page .card:hover, .dq-page .card:focus-within { transform: none; box-shadow: 0 2px 3px color-mix(in srgb, var(--ink) 0.8%, transparent); }
.dq-page .card + .card { margin-top: 0; }
.dq-page .section-heading { flex-wrap: nowrap; margin-bottom: 0; }
.dq-page .section-heading > * { min-width: auto; }
.dq-page .eyebrow { text-transform: none; margin: 0 0 8px; }
.dq-page h1, .dq-page h2, .dq-page h3 { color: inherit; text-transform: none; }
.dq-page .toast { opacity: 1; transition: none; }
.dq-page label { margin: 0; }
/* mobile.css restyles every single-choice select at <=768px (46px, 12px radius, its own arrow) with a
   higher specificity than the prototype's .dq-page select. Put the prototype's own values back. */
.dq-page select:not([multiple]):not([size]) { appearance: auto; -webkit-appearance: auto; min-height: 39px; padding: 9px 24px 9px 10px; border: 1px solid color-mix(in srgb, var(--surface-subtle) 75%, var(--ink-4)); border-radius: 6px; background-color: #fff; background-image: none; box-shadow: none; color: var(--ink); line-height: 1.45; }
.dq-page select:not([multiple]):not([size]):focus, .dq-page select:not([multiple]):not([size]):focus-visible { border-color: #b69439; box-shadow: none; }
@media (max-width: 900px) { .dq-page select:not([multiple]):not([size]) { min-height: 44px; } }
/* style.css .door-list is a column flexbox; the prototype's phone list is a horizontal row. */
.dq-page .door-list { flex-direction: row; }

/* ── 2. The prototype, verbatim (scoped) ─────────────────────────────────── */
.dq-page{--bg:var(--canvas);--card:#fff;--inset:var(--surface-subtle);--muted:var(--ink-3);--rule:color-mix(in srgb, var(--ink) 3%, var(--surface-inset));--gold:#c49510;--gold-text:#7a5c05;--gold-bg:color-mix(in srgb, var(--surface-card) 90%, var(--accent));--green:#1e7a45;--green-bg:#edf5ef;--display:'Space Grotesk',Inter,sans-serif;color-scheme:light;font-family:Inter,system-ui,sans-serif;color:var(--ink);font-size:13px;line-height:1.5;background:var(--bg)}
.dq-page,.dq-page *{box-sizing:border-box}
.dq-page [hidden]{display:none!important}
.dq-page button,.dq-page input,.dq-page textarea,.dq-page select{font:inherit;color:inherit}
.dq-page button{cursor:pointer}
.dq-page button:disabled{cursor:not-allowed;opacity:.5}
.dq-page button,.dq-page a,.dq-page input,.dq-page select,.dq-page textarea,.dq-page summary{-webkit-tap-highlight-color:transparent}
.dq-page :focus-visible{outline:2px solid var(--gold-text);outline-offset:4px}
.dq-page button{border:0;background:none}
.dq-page a{color:inherit}
.dq-page h1,.dq-page h2,.dq-page h3,.dq-page p{margin:0}
.dq-page h1,.dq-page h2,.dq-page h3{font-family:var(--display);font-weight:600;letter-spacing:-.035em}
.dq-page h1{font-size:34px;line-height:1.2}
.dq-page h2{font-size:19px;line-height:1.35}
.dq-page h3{font-size:16px}
.dq-page small{font-size:11px}
.dq-page svg.icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.65;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.dq-page i{display:inline-flex;font-style:normal}
.dq-page strong{font-weight:600}
.dq-page .muted{color:var(--muted)}
.dq-page .full{grid-column:1/-1}
.dq-page .eyebrow{font-size:10px;letter-spacing:.12em;font-weight:600;color:var(--muted);margin-bottom:8px}
.dq-page .eyebrow span{color:color-mix(in srgb, var(--canvas) 17%, var(--ink-4));margin:0 8px}
.dq-page .gold-dot{width:6px;height:6px;background:var(--gold);border-radius:50%;display:inline-block;flex:none}
.dq-page .card{background:var(--card);border:1px solid var(--rule);border-radius:12px;box-shadow:0 2px 3px color-mix(in srgb, var(--ink) 0.8%, transparent)}
.dq-page .section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dq-page .section-heading h2{font-family:Inter,sans-serif;font-size:12px;letter-spacing:0;font-weight:600}
.dq-page .button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid color-mix(in srgb, var(--surface-subtle) 75%, var(--ink-4));border-radius:7px;background:white;font-size:12px;font-weight:550;white-space:nowrap;transition:background .15s,box-shadow .15s}
.dq-page .button:hover{background:var(--inset);box-shadow:0 2px 5px color-mix(in srgb, var(--ink) 3.1%, transparent)}
.dq-page .button.primary{background:var(--ink);color:white;border-color:var(--ink)}
.dq-page .button.primary:hover{background:var(--ink-2)}
.dq-page .text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:11px;font-weight:550;min-height:40px;padding:4px 0}
.dq-page .text-button:hover{color:var(--ink)}
.dq-page .text-button svg{width:14px;height:14px}
.dq-page .icon-button{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:6px;color:var(--muted);flex:none}
.dq-page .icon-button:hover{background:var(--inset);color:var(--ink)}
.dq-page .danger-text:hover{color:#b03030;background:#fbefee}
.dq-page .badge{display:inline-flex;align-items:center;gap:4px;font:500 10px Inter,sans-serif;padding:4px 7px;border-radius:5px;white-space:nowrap;letter-spacing:0}
.dq-page .badge svg{height:12px;width:12px}
.dq-page .neutral{background:var(--inset);color:var(--muted)}
.dq-page .success{background:var(--green-bg);color:var(--green)}
.dq-page .project-bar{display:flex;align-items:center;gap:12px;border:1px solid var(--rule);background:color-mix(in srgb, var(--canvas) 51%, var(--surface-card));border-radius:9px;padding:12px 16px}
.dq-page .project-icon{width:35px;height:38px;display:grid;place-items:center;background:color-mix(in srgb, var(--ink) 1%, var(--surface-inset));border-radius:7px;color:#83734c;flex:none}
.dq-page .project-icon svg{width:20px;height:20px}
.dq-page .project-name{min-width:0}
.dq-page .project-name strong{font-size:12px}
.dq-page .project-name>span{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.dq-page .quote-ref{font-family:var(--display);font-size:10px;color:var(--muted);letter-spacing:.03em;margin-left:auto;white-space:nowrap}
.dq-page .project-bar>.text-button{margin-left:16px;flex:none}
.dq-page .view-tabs{display:flex;align-items:center;gap:27px;border-bottom:1px solid var(--rule);margin:16px 0 24px}
.dq-page .view-tabs>button{position:relative;min-height:48px;font-size:12px;padding:0 1px;color:var(--muted);font-weight:500}
.dq-page .view-tabs>button.active{color:var(--ink);font-weight:600}
.dq-page .view-tabs>button.active:after{content:'';height:2px;position:absolute;bottom:-1px;left:0;right:0;background:var(--gold)}
.dq-page .view-tabs>button span{padding:2px 6px;border-radius:4px;background:color-mix(in srgb, var(--ink-3) 4%, var(--surface-inset));color:#6b5b31;font-size:10px;margin-left:6px}
.dq-page .tabs-note{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}
.dq-page .tabs-note svg{width:12px;height:12px}
.dq-page .quote-workspace{display:grid;grid-template-columns:205px minmax(0,1fr) 248px;gap:20px;align-items:start;padding-bottom:24px}
.dq-page .door-schedule{min-width:0;position:sticky;top:20px}
.dq-page .door-schedule>.section-heading{margin-bottom:12px}
.dq-page .door-schedule h2 span{color:var(--muted);font-size:10px;font-weight:400;margin-left:6px}
.dq-page .door-schedule>.section-heading .icon-button{background:#fff;border:1px solid var(--rule);width:29px;height:29px}
.dq-page .search-box{display:flex;align-items:center;gap:8px;border:1px solid var(--rule);background:#fff;border-radius:7px;padding:0 10px;height:37px;margin-bottom:14px;color:var(--muted)}
.dq-page .search-box svg{width:15px;height:15px}
.dq-page .search-box input{width:100%;min-width:0;border:0!important;background:transparent;padding:8px 0!important;font-size:10px!important;height:35px!important;min-height:0!important;outline-offset:0}
.dq-page .door-list{display:grid;gap:9px;max-height:480px;overflow-y:auto;padding:2px}
.dq-page .door-item{width:100%;text-align:left;border:1px solid var(--rule);border-radius:9px;background:#fff;padding:14px 12px;position:relative;transition:border-color .15s}
.dq-page .door-item:hover{border-color:#bcb3a1}
.dq-page .door-item.selected{border-color:#ba952f;background:color-mix(in srgb, var(--accent) 4%, var(--surface-card));box-shadow:0 0 0 1px #ba952f12}
.dq-page .door-item-head{display:flex;align-items:center;gap:8px;margin-bottom:11px}
.dq-page .door-item-icon{width:29px;height:32px;background:var(--inset);border-radius:5px;display:grid;place-items:center;color:#8f8370}
.dq-page .selected .door-item-icon{background:#f4ead0;color:#927019}
.dq-page .door-item-icon svg{width:18px;height:22px}
.dq-page .door-item strong{display:block;font-size:11px;font-weight:600}
.dq-page .door-item .door-id{display:block;font-size:9px;color:var(--muted);margin-top:1px}
.dq-page .door-selected-icon{margin-left:auto;color:var(--gold-text)}
.dq-page .door-selected-icon svg{width:14px;height:14px}
.dq-page .door-item>p{font-size:10px;color:var(--muted);margin-bottom:12px;overflow-wrap:anywhere}
.dq-page .door-item-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px}
.dq-page .door-item-foot small{font-size:9px;color:var(--muted)}
.dq-page .door-item-foot b{font-weight:550;font-variant-numeric:tabular-nums}
.dq-page .empty-search{font-size:12px;color:var(--muted);padding:15px 5px}
.dq-page .add-door-button{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;border:1px dashed #cfc7b8;border-radius:7px;min-height:42px;margin-top:12px;font-size:11px;color:var(--muted)}
.dq-page .add-door-button:hover{background:var(--inset);color:var(--ink)}
.dq-page .add-door-button svg{width:15px;height:15px}
.dq-page .schedule-tip{display:flex;align-items:flex-start;gap:8px;color:var(--muted);margin:24px 6px;font-size:10px}
.dq-page .schedule-tip svg{width:15px;height:15px;margin-top:2px}
.dq-page .schedule-tip p{color:color-mix(in srgb, var(--ink) 26.2%, var(--ink-3));line-height:1.6}
.dq-page .schedule-tip span{color:var(--muted)}
.dq-page .schedule-total{display:flex;justify-content:space-between;border-top:1px solid var(--rule);padding:15px 2px;font-size:11px}
.dq-page .schedule-total strong{font-family:var(--display);font-size:17px}
.dq-page .editor{overflow:hidden;min-width:0}
.dq-page .editor-heading{padding:21px 22px 18px;border-bottom:1px solid var(--rule)}
.dq-page .editor-heading>.eyebrow{font-size:9px;color:var(--gold-text);margin-bottom:3px}
.dq-page .editor-title-row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.dq-page .editor-title-row h2{font-size:24px;overflow-wrap:anywhere;min-width:0}
.dq-page .editor-title-row>div{display:flex;flex:none}
.dq-page .editor-subline{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:8px;font-size:10px;color:var(--muted)}
.dq-page .identity-fields{display:grid;grid-template-columns:minmax(0,1fr) 85px;gap:13px;padding:20px 22px}
.dq-page .identity-fields .full{margin-top:0}
.dq-page label{display:grid;align-content:start;gap:6px;min-width:0;font-size:11px;font-weight:500;color:color-mix(in srgb, var(--ink) 33%, var(--ink-3))}
.dq-page input:not([type=checkbox]),.dq-page select,.dq-page textarea{display:block;width:100%;min-width:0;border:1px solid color-mix(in srgb, var(--surface-subtle) 75%, var(--ink-4));border-radius:6px;background:#fff;padding:9px 10px;font-size:12px;font-weight:400;color:var(--ink);min-height:39px;line-height:1.45}
.dq-page input::placeholder,.dq-page textarea::placeholder{color:color-mix(in srgb, var(--canvas) 22%, var(--ink-3))}
.dq-page textarea{resize:vertical}
.dq-page select{padding-right:24px}
.dq-page input:focus,.dq-page textarea:focus,.dq-page select:focus{border-color:#b69439;outline:2px solid #c495101c;outline-offset:1px}
.dq-page input[type=checkbox]{accent-color:var(--ink);width:16px;height:16px;flex:none}
.dq-page .spec-section{border-top:1px solid var(--rule)}
.dq-page .spec-section>summary{list-style:none;cursor:pointer;padding:17px 22px;display:flex;gap:12px;align-items:center;min-height:75px}
.dq-page .spec-section>summary::-webkit-details-marker{display:none}
.dq-page .section-number{align-self:flex-start;display:grid;place-items:center;width:23px;height:23px;border:1px solid color-mix(in srgb, var(--ink-3) 7%, var(--surface-inset));background:color-mix(in srgb, var(--canvas) 57%, var(--surface-card));border-radius:6px;font-family:var(--display);font-size:10px;color:var(--muted);margin-top:2px;flex:none}
.dq-page .spec-section[open] .section-number{background:var(--gold-bg);border-color:#e6d8ac;color:var(--gold-text)}
.dq-page .section-copy{flex:1;min-width:0}
.dq-page .section-copy strong{display:block;font-size:12px;color:var(--ink)}
.dq-page .section-copy small{display:block;margin-top:4px;font-size:10px;color:var(--muted);font-weight:400;line-height:1.5}
.dq-page .summary-chevron{color:color-mix(in srgb, var(--surface-inset) 16%, var(--ink-3))}
.dq-page .summary-chevron svg{width:14px;height:14px;transition:transform .15s}
.dq-page .spec-section[open] .summary-chevron svg{transform:rotate(180deg)}
.dq-page .spec-content{padding:0 22px 22px}
.dq-page .fields{display:grid;gap:14px}
.dq-page .fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.dq-page .field-label{display:block;font-size:11px;font-weight:500;color:color-mix(in srgb, var(--ink) 33%, var(--ink-3));margin-bottom:7px}
.dq-page .choice-group{display:flex;gap:8px}
.dq-page .choice-button{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-width:0;border:1px solid color-mix(in srgb, var(--surface-subtle) 75%, var(--ink-4));border-radius:6px;min-height:40px;background:white;font-size:11px;color:var(--muted)}
.dq-page .choice-button[aria-pressed=true]{border-color:#b69a54;background:color-mix(in srgb, var(--accent) 8.2%, var(--surface-card));color:var(--ink);box-shadow:0 0 0 1px #b69a5412;font-weight:550}
.dq-page .choice-button svg{width:15px;height:17px}
.dq-page .dimensions{display:grid;grid-template-columns:1fr 15px 1fr;align-items:end;gap:8px}
.dq-page .dimensions>span{padding-bottom:10px;color:var(--ink-4);text-align:center}
.dq-page .unit-field{position:relative}
.dq-page .unit-field input{padding-right:31px}
.dq-page .unit-field>span{position:absolute;right:10px;top:11px;color:var(--muted);font-size:10px;font-weight:400}
.dq-page .subdetails{grid-column:1/-1;margin-top:3px}
.dq-page .subdetails>summary{cursor:pointer;list-style:none;font-size:11px;display:flex;align-items:center;gap:7px;color:var(--muted);min-height:36px}
.dq-page .subdetails>summary::-webkit-details-marker{display:none}
.dq-page .subdetails>summary:before{content:'+';font-size:16px;color:var(--gold-text)}
.dq-page .subdetails[open]>summary:before{content:'−'}
.dq-page .subdetails>.fields{padding-top:12px}
.dq-page .finish-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.dq-page .finish-choice{padding:10px 7px;border:1px solid color-mix(in srgb, var(--surface-subtle) 75%, var(--ink-4));border-radius:7px;display:flex;gap:7px;align-items:center;font-size:10px;text-align:left;line-height:1.4}
.dq-page .finish-choice[aria-pressed=true]{background:color-mix(in srgb, var(--accent) 9%, var(--surface-card));border-color:#b69a54}
.dq-page .finish-swatch{height:28px;width:23px;border:1px solid #00000012;border-radius:4px;flex:none}
.dq-page .swatch-white{background:#f6f3eb}
.dq-page .swatch-oak{background:repeating-linear-gradient(92deg,#bf9460,#d4af7f 3px,#cba572 5px,#c39a66 7px)}
.dq-page .swatch-painted{background:#b0b7b0}
.dq-page .check-field{display:flex;align-items:center;gap:10px;border:1px solid var(--rule);border-radius:6px;padding:10px;font-size:11px;min-height:45px;cursor:pointer}
.dq-page .check-field span{margin-left:auto;font-size:10px;color:var(--muted);white-space:nowrap}
.dq-page .editor-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;background:color-mix(in srgb, var(--canvas) 37%, var(--surface-card));border-top:1px solid var(--rule);padding:9px 22px}
.dq-page .editor-footer>span{display:flex;gap:5px;align-items:center;font-size:9px;color:var(--muted)}
.dq-page .editor-footer>span svg{color:var(--green);width:13px;height:13px}
.dq-page .editor-footer>.text-button{font-size:10px;min-height:30px}
.dq-page .quote-rail{position:sticky;top:20px;display:grid;gap:15px;min-width:0}
.dq-page .preview-card{padding:16px}
.dq-page .preview-card .section-heading{margin-bottom:12px}
.dq-page .preview-card .badge{font-size:9px}
.dq-page .door-drawing{background:var(--canvas);border-radius:7px;height:237px;display:grid;place-items:center;overflow:hidden}
.dq-page .door-drawing svg{width:100%;height:100%}
.dq-page .drawing-caption{display:grid;gap:4px;text-align:center;margin-top:12px;font-size:10px;color:color-mix(in srgb, var(--ink-2) 59%, var(--ink-3))}
.dq-page .drawing-caption small{font-size:9px;color:var(--muted)}
.dq-page .price-card{padding:17px 16px 0}
.dq-page .price-card>.section-heading>i{color:#a29782}
.dq-page .price-card svg{width:15px;height:15px}
.dq-page dl{margin:15px 0}
.dq-page dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin:9px 0;font-size:11px}
.dq-page dt{color:var(--muted)}
.dq-page dd{margin:0;white-space:nowrap;font-variant-numeric:tabular-nums}
.dq-page .unit-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--rule);padding:14px 0;font-size:11px}
.dq-page .unit-total small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
.dq-page .unit-total strong{font-family:var(--display);font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.dq-page .line-total{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:0 -16px;padding:12px 16px;background:color-mix(in srgb, var(--canvas) 31%, var(--surface-subtle));border-top:1px solid var(--rule);border-radius:0 0 11px 11px;font-size:11px}
.dq-page .line-total strong{font-weight:600;font-variant-numeric:tabular-nums}
.dq-page .pricing-note{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:center;color:var(--muted);font-size:9px}
.dq-page .pricing-note .text-button{width:100%;min-height:22px;font-size:10px}
.dq-page .quote-bottom{position:sticky;bottom:0;background:color-mix(in srgb, var(--canvas) 96.1%, transparent);backdrop-filter:blur(10px);border-top:1px solid color-mix(in srgb, var(--surface-subtle) 83%, var(--ink-3));display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 0;margin-top:4px;z-index:5}
.dq-page .bottom-summary{display:flex;align-items:center;gap:10px}
.dq-page .bottom-icon{width:35px;height:39px;display:grid;place-items:center;background:color-mix(in srgb, var(--ink-3) 6%, var(--surface-subtle));border-radius:7px;color:#857656}
.dq-page .bottom-summary strong{font-size:11px}
.dq-page .bottom-summary strong>span{font-size:10px;font-weight:400;color:var(--muted);margin-left:10px}
.dq-page .bottom-summary small{display:block;font-size:10px;color:var(--muted);margin-top:4px}
.dq-page .bottom-right{display:flex;align-items:center;gap:9px}
.dq-page .bottom-price{font-family:var(--display);font-size:27px;letter-spacing:-.05em;font-weight:600;font-variant-numeric:tabular-nums}
.dq-page .bottom-right>.muted{font-size:9px;margin-right:10px}
.dq-page .bottom-right>.button{min-width:146px}
.dq-page .client-layout{display:grid;grid-template-columns:minmax(0,740px) minmax(240px,1fr);gap:24px;padding-bottom:28px}
.dq-page .client-card{padding:26px}
.dq-page .client-card>.section-heading{margin-bottom:28px}
.dq-page .client-card>.section-heading h2{font-family:var(--display);font-size:24px;letter-spacing:-.03em}
.dq-page .client-card>.section-heading>i{color:var(--muted)}
.dq-page .form-divider{display:flex;align-items:center;gap:10px;margin:28px 0 22px;padding-top:24px;border-top:1px solid var(--rule)}
.dq-page .form-divider i{color:var(--gold-text)}
.dq-page .client-summary{position:sticky;top:20px;align-self:start;padding:26px}
.dq-page .client-summary h2{margin-top:17px;font-size:23px}
.dq-page .client-summary p{font-size:12px;color:var(--muted);line-height:1.7;margin:12px 0;overflow-wrap:anywhere;white-space:pre-line}
.dq-page .client-summary hr{border:0;border-top:1px solid var(--rule);margin:24px 0}
.dq-page .client-summary h3{font-size:16px}
.dq-page .client-summary .button{margin-top:16px;width:100%}
.dq-page .review-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 24px}
.dq-page .review-header h2{font-size:28px}
.dq-page .review-header p{color:var(--muted);font-size:12px;margin-top:8px}
.dq-page .review-layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:24px;padding-bottom:32px}
.dq-page .review-project{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px;margin-bottom:20px}
.dq-page .review-project p{color:var(--muted);font-size:11px;white-space:pre-line;overflow-wrap:anywhere;margin-top:8px}
.dq-page .review-schedule{padding:22px}
.dq-page .review-schedule>.section-heading{margin-bottom:12px}
.dq-page .review-line{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;padding:20px 0;border-top:1px solid var(--rule)}
.dq-page .review-line h3{font-size:16px}
.dq-page .review-line p{color:var(--muted);font-size:11px;margin-top:5px;overflow-wrap:anywhere}
.dq-page .review-line .review-money{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px}
.dq-page .review-money small{display:block;color:var(--muted);font-size:10px;margin-top:5px}
.dq-page .review-line .text-button{min-height:30px;font-size:10px}
.dq-page .review-totals{padding:24px;align-self:start;position:sticky;top:20px}
.dq-page .review-totals h2{font-size:20px}
.dq-page .review-totals dl{margin:24px 0}
.dq-page .review-totals dl>div{font-size:12px;margin:12px 0}
.dq-page .review-grand{border-top:1px solid var(--rule);padding-top:20px}
.dq-page .review-grand>span{display:block;font-size:11px}
.dq-page .review-grand strong{display:block;font-size:33px;font-family:var(--display);letter-spacing:-.04em;margin-top:4px}
.dq-page .review-totals>.muted{font-size:10px;margin:5px 0 20px}
.dq-page .review-totals>.button{width:100%}
.dq-page .review-note{color:var(--muted);font-size:10px;text-align:center;line-height:1.65;margin-top:12px}
.dq-page dialog{border:1px solid var(--rule);border-radius:16px;padding:27px;background:var(--bg);width:min(610px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 25px 100px color-mix(in srgb, var(--ink) 16.9%, transparent);color:var(--ink)}
.dq-page dialog::backdrop{background:color-mix(in srgb, var(--ink) 34.1%, transparent);backdrop-filter:blur(3px)}
.dq-page .dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.dq-page .dialog-heading h2{font-size:25px}
.dq-page .dialog-heading .eyebrow{color:var(--gold-text)}
.dq-page dialog>.muted,.dq-page dialog>p{font-size:12px;line-height:1.7;margin-bottom:20px}
.dq-page .dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}
.dq-page .template-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dq-page .template-option{border:1px solid var(--rule);border-radius:10px;background:#fff;padding:18px;text-align:left;display:grid;grid-template-columns:36px 1fr;gap:8px 12px}
.dq-page .template-option:hover{border-color:var(--gold);background:color-mix(in srgb, var(--accent) 4%, var(--surface-card))}
.dq-page .template-option>i{grid-row:1/3;width:35px;height:44px;display:grid;place-items:center;background:var(--inset);border-radius:6px;color:var(--gold-text)}
.dq-page .template-option>i svg{height:28px;width:23px}
.dq-page .template-option strong{font-size:12px}
.dq-page .template-option small{font-size:10px;color:var(--muted);line-height:1.7}
.dq-page .rates-list>div{padding:7px 0;border-bottom:1px solid var(--rule);font-size:12px}
.dq-page .document-dialog{width:min(820px,calc(100% - 32px))}
.dq-page .document-sheet{padding:36px;background:#fff;border:1px solid var(--rule);font-size:12px}
.dq-page .document-mast{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid var(--gold);padding-bottom:24px;margin-bottom:24px}
.dq-page .document-mast h3{font-size:24px}
.dq-page .document-mast p{font-size:10px;color:var(--muted);margin-top:8px}
.dq-page .document-sheet>.eyebrow{margin-top:24px}
.dq-page .document-sheet>.review-project{padding:0;border:0;box-shadow:none;margin:24px 0}
.dq-page .document-sheet .review-line h3{font-size:14px}
.dq-page .document-sheet>.document-total{border-top:1px solid var(--rule);margin-left:auto;max-width:260px;padding-top:12px}
.dq-page .document-sheet>.document-total strong{font-size:20px}
.dq-page .document-disclaimer{font-size:10px;color:var(--muted);border-top:1px solid var(--rule);padding-top:20px;margin-top:26px}
.dq-page .toast{position:fixed;bottom:100px;left:calc(50% + var(--sidebar)/2);transform:translateX(-50%);max-width:calc(100vw - 32px);padding:13px 20px;border-radius:9px;background:var(--ink);color:white;font-size:12px;box-shadow:0 8px 25px #0002;z-index:50;width:max-content}
@container dq (min-width: 1272px){
.dq-page .quote-workspace{grid-template-columns:230px minmax(0,1fr) 290px;gap:24px}
.dq-page .door-drawing{height:270px}
.dq-page .editor-heading,.dq-page .identity-fields{padding-left:28px;padding-right:28px}
.dq-page .spec-section>summary{padding-left:28px;padding-right:28px}
.dq-page .spec-content{padding-left:28px;padding-right:28px}
}
@container dq (max-width: 999px){
.dq-page .quote-workspace{grid-template-columns:175px minmax(0,1fr) 215px;gap:15px}
.dq-page .editor-heading,.dq-page .identity-fields,.dq-page .spec-section>summary{padding-left:17px;padding-right:17px}
.dq-page .spec-content{padding-left:17px;padding-right:17px}
.dq-page .door-item{padding:12px 10px}
.dq-page .door-item-head{gap:7px}
.dq-page .door-item strong{font-size:10px}
.dq-page .door-item-foot{font-size:10px}
.dq-page .door-drawing{height:217px}
.dq-page .editor-subline{font-size:9px}
.dq-page .editor-title-row h2{font-size:22px}
.dq-page .door-schedule h2 span{display:block;margin:3px 0 0}
.dq-page .review-layout{grid-template-columns:minmax(0,1fr) 250px}
}
@container dq (max-width: 939px){
.dq-page .quote-workspace{grid-template-columns:180px minmax(0,1fr) 220px}
.dq-page .tabs-note{font-size:9px}
}
@container dq (max-width: 860px){
.dq-page .quote-workspace{grid-template-columns:185px minmax(0,1fr);gap:18px}
.dq-page .quote-rail{position:static;grid-column:2;grid-template-columns:1fr 1fr;gap:14px}
.dq-page .quote-rail .preview-card{grid-row:1/3}
.dq-page .price-card{align-self:start}
.dq-page .pricing-note{align-self:start}
.dq-page .door-drawing{height:190px}
.dq-page .door-schedule{grid-row:1/3}
.dq-page .tabs-note{display:none}
.dq-page .client-layout{grid-template-columns:1fr}
.dq-page .client-summary{display:none}
.dq-page .review-layout{grid-template-columns:minmax(0,1fr) 240px;gap:16px}
.dq-page .review-project{gap:18px;padding:20px}
.dq-page .bottom-summary strong>span{display:block;margin:2px 0 0}
.dq-page .bottom-summary small{display:none}
.dq-page .bottom-price{font-size:25px}
.dq-page .bottom-right>.button{min-width:120px}
.dq-page .bottom-right>.muted{margin-right:3px}
}
@media (max-width: 900px){
.dq-page .editor-heading{padding:22px}
.dq-page .identity-fields{padding:20px 22px}
.dq-page .spec-section>summary{padding:18px 22px}
.dq-page .spec-content{padding:0 22px 22px}
.dq-page .button{min-height:44px}
.dq-page .icon-button{width:44px;height:44px}
.dq-page .door-schedule>.section-heading .icon-button{width:40px;height:40px}
.dq-page .text-button{min-height:44px}
.dq-page .choice-button{min-height:44px}
.dq-page input:not([type=checkbox]),.dq-page select,.dq-page textarea{font-size:16px;min-height:44px}
.dq-page .search-box{height:44px}
.dq-page .search-box input{font-size:16px!important;min-height:40px!important}
.dq-page .search-box svg{width:14px}
.dq-page .editor-footer{padding-left:20px;padding-right:20px}
.dq-page .editor-footer>.text-button{min-height:44px}
}
@container dq (max-width: 608px){
.dq-page .project-bar{padding:12px;gap:10px;flex-wrap:wrap}
.dq-page .project-name{flex:1;min-width:180px}
.dq-page .project-name strong{font-size:11px}
.dq-page .project-name>span{font-size:10px;line-height:1.6}
.dq-page .quote-ref{display:none}
.dq-page .project-bar>.text-button{width:100%;justify-content:flex-start;min-height:30px;margin:0 0 -4px 45px;font-size:10px}
.dq-page .view-tabs{gap:25px;margin:10px 0 20px}
.dq-page .view-tabs>button{font-size:11px;min-height:48px}
.dq-page .quote-workspace{display:flex;flex-direction:column;gap:18px}
.dq-page .door-schedule{position:static;width:100%}
.dq-page .door-schedule>.section-heading{margin-bottom:8px}
.dq-page .door-schedule h2 span{display:inline;margin-left:6px}
.dq-page .search-box{margin-bottom:12px}
.dq-page .door-list{display:flex;gap:9px;overflow-x:auto;max-height:none;scroll-snap-type:x proximity;padding-bottom:7px}
.dq-page .door-item{flex:0 0 205px;scroll-snap-align:start;padding:13px}
.dq-page .door-item-head{margin-bottom:7px}
.dq-page .door-item strong{font-size:11px}
.dq-page .door-item>p{margin-bottom:8px;font-size:10px}
.dq-page .door-item-foot{font-size:11px}
.dq-page .door-selected-icon{margin-left:auto}
.dq-page .add-door-button,.dq-page .schedule-tip,.dq-page .schedule-total{display:none}
.dq-page .door-schedule>.section-heading .icon-button{width:44px;height:44px}
.dq-page .editor{width:100%}
.dq-page .editor-heading{padding:18px}
.dq-page .editor-title-row h2{font-size:25px}
.dq-page .identity-fields{padding:20px 18px;grid-template-columns:minmax(0,1fr) 78px}
.dq-page .spec-section>summary{padding:18px}
.dq-page .spec-content{padding:0 18px 20px}
.dq-page .editor-subline{font-size:10px}
.dq-page .section-copy strong{font-size:12px}
.dq-page .section-copy small{font-size:11px}
.dq-page .fields{gap:14px}
.dq-page label,.dq-page .field-label{font-size:12px}
.dq-page .section-number{width:24px;height:24px}
.dq-page .editor-footer{padding:8px 15px}
.dq-page .editor-footer>span{font-size:9px}
.dq-page .editor-footer>.text-button{font-size:9px}
.dq-page .quote-rail{width:100%;grid-template-columns:1fr 1fr;gap:12px}
.dq-page .preview-card{padding:13px}
.dq-page .door-drawing{height:190px}
.dq-page .preview-card .section-heading{gap:6px}
.dq-page .section-heading h2{font-size:11px}
.dq-page .preview-card .badge{font-size:8px}
.dq-page .price-card{padding:13px 12px 0}
.dq-page .price-card dl>div{font-size:10px;gap:5px}
.dq-page .price-card dl>div dt{max-width:100px}
.dq-page .unit-total strong{font-size:19px}
.dq-page .unit-total{gap:6px;font-size:10px}
.dq-page .line-total{margin:0 -12px;padding:12px;font-size:10px}
.dq-page .drawing-caption{font-size:9px}
.dq-page .drawing-caption small{font-size:8px}
.dq-page .pricing-note{font-size:8px}
.dq-page .quote-bottom{padding:12px 0;margin-top:8px;gap:8px;align-items:center}
.dq-page .bottom-icon,.dq-page .bottom-summary,.dq-page .bottom-right>.muted{display:none}
.dq-page .bottom-right{width:100%;justify-content:space-between;gap:10px}
.dq-page .bottom-price{font-size:26px;display:grid;line-height:1.2}
.dq-page .bottom-price:before{content:'QUOTE TOTAL · EXCL. VAT';font-family:Inter,sans-serif;font-size:8px;letter-spacing:.04em;color:var(--muted);font-weight:500;margin-bottom:5px}
.dq-page .bottom-right>.button{font-size:11px;min-width:130px;min-height:46px}
.dq-page .client-card{padding:20px}
.dq-page .client-card>.section-heading h2{font-size:24px}
.dq-page .client-card .fields.two{grid-template-columns:1fr}
.dq-page .review-header{align-items:flex-start;flex-direction:column;gap:18px}
.dq-page .review-header h2{font-size:26px}
.dq-page .review-header p{font-size:11px}
.dq-page .review-layout{grid-template-columns:1fr}
.dq-page .review-project{grid-template-columns:1fr;gap:20px}
.dq-page .review-totals{position:static}
.dq-page .review-schedule{padding:18px}
.dq-page .review-line{grid-template-columns:28px minmax(0,1fr);gap:10px}
.dq-page .review-line .review-money{grid-column:2;text-align:left;display:flex;gap:8px;align-items:center}
.dq-page .review-money small{margin:0}
.dq-page .review-line .door-item-icon{width:27px}
.dq-page .review-line h3{font-size:16px}
.dq-page .review-totals .button{min-height:46px}
.dq-page .review-grand strong{font-size:34px}
.dq-page .template-grid{grid-template-columns:1fr}
.dq-page .template-option{padding:15px}
.dq-page .template-option strong{font-size:13px}
.dq-page .template-option small{font-size:11px}
.dq-page dialog{padding:21px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
.dq-page .dialog-heading h2{font-size:23px}
.dq-page .document-sheet{padding:18px}
.dq-page .document-mast h3{font-size:20px}
.dq-page .document-mast{flex-wrap:wrap}
.dq-page .document-dialog{width:calc(100% - 16px);padding:16px}
.dq-page .toast{bottom:92px;text-align:center;white-space:normal;font-size:11px}
.dq-page .finish-choice{display:grid;justify-items:center;text-align:center}
.dq-page .check-field{font-size:11px}
.dq-page .check-field span{font-size:9px}
}
.dq-page .empty-doors{grid-column:2/-1;padding:65px 30px;text-align:center;min-height:390px;width:100%}
.dq-page .empty-doors>.project-icon{margin:0 auto 20px}
.dq-page .empty-doors h2{font-size:27px}
.dq-page .empty-doors p{color:var(--muted);margin:12px 0 24px;font-size:12px}
.dq-page .quote-bottom{margin-top:auto}
.dq-page .quote-workspace{flex:1}
.dq-page .spec-section>summary{min-height:65px;padding-top:13px;padding-bottom:13px}
@container dq (min-width: 982px){
.dq-page .identity-fields{grid-template-columns:minmax(0,1fr) 68px minmax(0,1.2fr);gap:12px;padding-top:18px;padding-bottom:18px}
.dq-page .identity-fields>.full{grid-column:auto}
.dq-page .identity-fields input{min-height:39px}
}
.dq-page .door-drawing text{paint-order:stroke;stroke:var(--canvas);stroke-width:2px;stroke-linejoin:round}
.dq-page .section-copy small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.dq-page .price-card,.dq-page .preview-card{min-width:0}
.dq-page .review-project h3,.dq-page .client-summary h2,.dq-page .client-summary h3{overflow-wrap:anywhere}
@media (min-width: 901px){
.dq-page label,.dq-page .field-label{font-size:12px}
.dq-page input:not([type=checkbox]),.dq-page select,.dq-page textarea{font-size:13px}
.dq-page .section-copy small{font-size:11px}
.dq-page .editor-subline{font-size:11px}
.dq-page .door-item>p,.dq-page .door-item .door-id{font-size:10px}
.dq-page .door-item strong{font-size:12px}
.dq-page .section-heading h2{font-size:13px}
.dq-page .door-schedule h2 span{font-size:10px}
.dq-page .drawing-caption{font-size:11px}
.dq-page .price-card dl>div{font-size:12px}
.dq-page .project-name strong{font-size:13px}
.dq-page .project-name>span{font-size:11px}
.dq-page .view-tabs>button{font-size:13px}
.dq-page .button{font-size:13px}
.dq-page .door-item-head{align-items:flex-start}
.dq-page .door-item-icon{flex:none}
}
@container dq (min-width: 861px) and (max-width: 939px){
.dq-page .door-item strong{font-size:11px}
.dq-page .section-heading h2{font-size:12px}
}
@container dq (max-width: 608px){
.dq-page .project-bar>.text-button{width:calc(100% - 45px)}
.dq-page .spec-content .subdetails .fields.two>label{grid-column:1/-1}
.dq-page .identity-fields input{font-size:16px}
.dq-page .quote-rail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.dq-page .price-card .unit-total{flex-wrap:wrap}
.dq-page .dimensions label{font-size:11px}
}
@media (prefers-reduced-motion: reduce){
.dq-page,.dq-page *{scroll-behavior:auto!important;transition:none!important}
}

/* ── 3. The real product in the prototype's language (plan §4, register §13) ── */

/* Header: our ipi-page-header carries the prototype's save status (S1). */
.dq-save-status { font-size: 10px; color: var(--ink-3); margin-right: 7px; white-space: nowrap; align-self: center; }
@media (max-width: 900px) { .dq-save-status { display: none; } }

/* The project bar's "Start new quote" sits beside "Edit details" (S1). */
.dq-page .project-bar > .text-button + .text-button { margin-left: 16px; }
@container dq (max-width: 608px) {
  .dq-page .project-bar > .text-button + .text-button { margin: 0 0 -4px 45px; }
}

/* Four leaf configurations where the prototype had two: two rows on a narrow page (R14). */
@container dq (max-width: 608px) {
  .dq-page .choice-group { flex-wrap: wrap; }
  .dq-page .choice-button { flex: 1 1 calc(50% - 4px); }
}

/* Swatches for every finish (R3). A choice's price sits under its name (S2, R15). */
.dq-page .finish-choice small { display: block; font-size: 9px; color: var(--muted); }
.dq-page .finish-swatch { background: var(--dq-swatch, #e9e3d5); }
.dq-page .finish-swatch.is-grain { background: repeating-linear-gradient(92deg, color-mix(in srgb, var(--dq-swatch) 86%, #000) 0 3px, var(--dq-swatch) 3px 5px, color-mix(in srgb, var(--dq-swatch) 92%, #fff) 5px 7px); }
.dq-page .finish-swatch.is-grooved { background: repeating-linear-gradient(90deg, var(--dq-swatch) 0 4px, color-mix(in srgb, var(--dq-swatch) 85%, #000) 4px 5px); }
.dq-page .finish-swatch.is-ral { background: conic-gradient(from 90deg, #c0392b, #e6b422, #3c8d5a, #2f5d8a, #7a3e8f, #c0392b); }
.dq-page .finish-swatch.is-ral[data-ral-set] { background: var(--dq-swatch); }

/* A checkbox that reveals a select of its variants (plan §4). */
.dq-page .check-select { display: grid; gap: 8px; }
.dq-page .check-select > label:not(.check-field) { padding-left: 36px; }

/* Help under a field, and the fields the prototype did not have (RAL, thickness, fit, U-value). */
.dq-page .field-help { display: block; font-size: 10px; color: var(--muted); line-height: 1.5; margin-top: -6px; }
.dq-page .ral-colour input[type=color] { padding: 3px; height: 39px; cursor: pointer; }

/* Cold-smoke seal warning (S3, R9). */
.dq-page .compliance-warning { display: flex; gap: 8px; align-items: flex-start; border: 1px solid #efd3d0; background: #fbefee; color: #8c2626; border-radius: 6px; padding: 10px 12px; font-size: 11px; line-height: 1.5; }
.dq-page .compliance-warning svg { width: 15px; height: 15px; margin-top: 1px; flex: none; }
.dq-page .badge.warning { background: #fbefee; color: #b03030; }
.dq-page .door-item .badge.warning { margin-left: 6px; }

/* Long names: no clipping. */
.dq-page .door-item strong, .dq-page .review-line h3 { overflow-wrap: anywhere; }

/* Template dialog: search and category chips when there are many presets (S5, R7). */
.dq-page .template-tools { display: grid; gap: 10px; margin-bottom: 16px; }
.dq-page .template-tools .search-box { margin-bottom: 0; }
.dq-page .chip-row { display: flex; flex-wrap: wrap; gap: 6px; }
.dq-page .chip { border: 1px solid var(--rule); background: #fff; border-radius: 999px; padding: 5px 11px; font-size: 11px; color: var(--muted); min-height: 30px; }
.dq-page .chip[aria-pressed=true] { background: var(--ink); border-color: var(--ink); color: #fff; }
.dq-page .chip small { font-size: 10px; opacity: .7; margin-left: 4px; }
.dq-page .template-option.is-custom { border-style: dashed; }
.dq-page .template-empty { font-size: 12px; color: var(--muted); padding: 12px 2px; }
@media (max-width: 900px) { .dq-page .chip { min-height: 40px; } }

/* Reference pricing in the prototype's rates dialog (R10). */
.dq-page .rates-dialog { width: min(760px, calc(100% - 32px)); }
.dq-page .rates-toolbar { display: grid; gap: 10px; margin-bottom: 6px; }
.dq-page .rates-toolbar .search-box { margin: 0; }
.dq-page .rates-summary { font-size: 11px; color: var(--muted); }
.dq-page .rates-summary strong { color: var(--ink); }
.dq-page .rates-meta { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.dq-page .rates-count { font-size: 11px; color: var(--muted); }
.dq-page .rates-section { border-top: 1px solid var(--rule); }
.dq-page .rates-section > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 12px 0; min-height: 52px; }
.dq-page .rates-section > summary::-webkit-details-marker { display: none; }
.dq-page .rates-section > summary strong { display: block; font-size: 13px; }
.dq-page .rates-section > summary small { display: block; font-size: 10px; color: var(--muted); font-weight: 400; }
.dq-page .rates-section-count { margin-left: auto; font-size: 11px; color: var(--muted); white-space: nowrap; }
.dq-page .rates-section[open] > summary .summary-chevron svg { transform: rotate(180deg); }
.dq-page .rates-group-title { font-size: 10px; letter-spacing: .12em; font-weight: 600; color: var(--muted); margin: 10px 0 0; text-transform: uppercase; }
.dq-page .rates-list { margin: 0 0 12px; }
.dq-page .rates-list > div { align-items: center; }
.dq-page .rates-list dt { min-width: 0; overflow-wrap: anywhere; }
.dq-page .rates-list dd { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; }
.dq-page .rate-source { font-size: 10px; color: var(--muted); min-width: 52px; text-align: right; }
.dq-page .rate-row[data-state=mine] .rate-source { color: var(--gold-text); font-weight: 550; }
.dq-page .rate-edit { font-variant-numeric: tabular-nums; border: 1px solid transparent; border-radius: 5px; padding: 4px 6px; min-height: 32px; }
.dq-page .rate-edit:hover { border-color: color-mix(in srgb, var(--surface-subtle) 75%, var(--ink-4)); background: #fff; }
.dq-page input.rate-input { width: 110px; min-height: 32px; padding: 4px 8px; text-align: right; }
.dq-page .rate-reset { font-size: 10px; color: var(--muted); min-height: 32px; padding: 0 4px; }
.dq-page .rate-reset:disabled { visibility: hidden; }
.dq-page .rate-error { flex-basis: 100%; font-size: 10px; color: #b03030; text-align: right; }
.dq-page .rate-row.is-saved dd { color: var(--green); }
.dq-page .rates-empty { font-size: 12px; color: var(--muted); padding: 16px 0; }
.dq-page .rates-audit { border-top: 1px solid var(--rule); margin-top: 8px; }
.dq-page .rates-audit > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 14px 0; }
.dq-page .rates-audit > summary::-webkit-details-marker { display: none; }
.dq-page .rates-audit ul { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.dq-page .rates-audit li { display: flex; justify-content: space-between; gap: 10px; font-size: 11px; border: 1px solid var(--rule); background: #fff; border-radius: 7px; padding: 9px 11px; }
.dq-page .rates-audit li.is-undone .audit-change { text-decoration: line-through; opacity: .6; }
.dq-page .audit-meta { display: flex; align-items: center; gap: 8px; color: var(--muted); white-space: nowrap; }
@media (max-width: 900px) {
  .dq-page .rate-edit, .dq-page input.rate-input, .dq-page .rate-reset { min-height: 44px; }
}
@container dq (max-width: 608px) {
  .dq-page .rates-list > div { flex-wrap: wrap; }
  .dq-page .rate-source { min-width: 0; }
  .dq-page .rates-audit li { flex-direction: column; }
}

/* The toast stays a live region when idle (announced reliably): transparent and inert, never hidden. */
.dq-page .toast.is-idle { opacity: 0; pointer-events: none; padding: 0; box-shadow: none; }

/* Save as preset (S4, R12). */
.dq-page .preset-fields { display: grid; gap: 14px; }

/* Print the quote preview only (the prototype's print rules, for the app shell). */
@media print {
  body.dq-printing * { visibility: hidden !important; }
  body.dq-printing #dq-document-dialog, body.dq-printing #dq-document-dialog * { visibility: visible !important; }
  body.dq-printing #dq-document-dialog { position: absolute; inset: 0 auto auto 0; display: block !important; max-height: none; width: 100%; padding: 0; border: 0; box-shadow: none; overflow: visible; background: white; }
  body.dq-printing #dq-document-dialog > .dialog-heading, body.dq-printing #dq-document-dialog > .dialog-actions { display: none !important; }
  body.dq-printing .dq-page .document-sheet { border: 0; padding: 10mm; }
  body.dq-printing .dq-page .document-sheet .review-project { grid-template-columns: 1fr 1fr; }
  body.dq-printing .dq-page .document-sheet .review-line { break-inside: avoid; grid-template-columns: 36px minmax(0, 1fr) auto; }
  body.dq-printing .dq-page .document-sheet .review-money { grid-column: auto; text-align: right; display: block; }
  body.dq-printing dialog::backdrop { background: white; }
  @page { size: A4; margin: 12mm; }
}

/* The quote bar is bottom-anchored at every width, so the support button stays off this page, as it
   did before the rebuild (document-builder.md: bottom-anchored collisions are measured, not assumed).
   The public demo keeps its own controls. */
.tenant-app-shell:has(.dq-page:not([data-dq-demo])) .support-fab { display: none !important; }
