.quote-builder-page .drawer-system-field { grid-column: span 2; max-width: 320px; display: grid; align-content: start; gap: 6px; min-width: 0; color: var(--muted); font-size: .74rem; font-weight: 850; text-transform: uppercase; }
.quote-builder-page .drawer-system-toggle { display: flex; align-items: center; gap: 2px; min-height: 36px; padding: 3px; border: 1px solid #cfc3b4; border-radius: 999px; background: #eee7dc; }
.quote-builder-page .drawer-system-toggle button { flex: 1; min-width: 0; min-height: 28px; padding: 4px 6px; border: 0; border-radius: 999px; background: transparent; color: var(--muted); font: inherit; font-size: .759rem; cursor: pointer; }
.quote-builder-page .drawer-system-toggle button:hover { background: rgba(255,255,255,.68); color: var(--ink); }
.quote-builder-page .drawer-system-toggle button[aria-pressed="true"] { background: var(--ink); color: #fff; box-shadow: 0 2px 6px rgba(31,27,23,.18); }
.quote-builder-page .drawer-system-toggle button:focus-visible { outline: 2px solid var(--bronze); outline-offset: 2px; }
.quote-builder-page {
    --builder-paper: rgba(255, 253, 249, .9);
    padding-bottom: 88px;
}

.quote-builder-page .portal-header { z-index: 90; }
.quote-builder-page .portal-main { width: min(1760px, calc(100% - 32px)); }
.quote-builder-page .quote-builder-main { padding-bottom: 48px; }
.quote-builder-page .nav-button { text-decoration: none; }
.quote-builder-page .back-link { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 22px; color: var(--muted); font-size: .82rem; font-weight: 750; text-decoration: none; }

.builder-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; padding: 42px 0 24px; }
.builder-heading h1 { margin: 0; font-family: var(--heading); font-size: clamp(2.2rem, 4vw, 4.2rem); line-height: .96; }
.builder-heading > div:first-child > p:last-child { margin: 14px 0 0; color: var(--muted); font-size: 1.02rem; }
.builder-data-status { min-width: 260px; display: grid; gap: 5px; border-left: 2px solid var(--bronze); padding-left: 16px; }
.builder-data-status span { color: var(--olive); font-weight: 800; }
.builder-data-status small { color: var(--muted); }

.quote-workflow-strip { display: grid; grid-template-columns: max-content minmax(0,1fr); align-items: center; gap: 40px; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 8px; padding: 16px 20px; background: var(--ink); color: #fff; }
.quote-workflow-reference { display: grid; gap: 2px; }
.quote-workflow-reference span, .quote-workflow-strip > p { margin: 0; color: #c7b8a5; font-size: .68rem; font-weight: 800; letter-spacing: .04em; }
.quote-workflow-reference strong { overflow-wrap: anywhere; font-family: var(--heading); font-size: 1rem; }
.quote-workflow-stages { display: flex; align-items: center; min-width: 0; overflow-x: auto; gap: 0; margin: 0; padding: 0; list-style: none; }
.quote-workflow-stages li { display: flex; flex: 1 0 auto; align-items: center; gap: 8px; white-space: nowrap; color: #8f877e; font-size: .72rem; font-weight: 800; }
.quote-workflow-stages li::after { content: ""; flex: 1 0 8px; height: 1px; margin: 0 8px 0 0; background: #4d4842; }
.quote-workflow-stages li:last-child { flex: 0 0 auto; }
.quote-workflow-stages li:last-child::after { display: none; }
.quote-workflow-stages i { display: grid; flex: 0 0 26px; width: 26px; height: 26px; place-items: center; border: 1px solid #5a544e; border-radius: 50%; background: #292622; }
.quote-workflow-stages span { flex: 0 0 auto; white-space: nowrap; }
.quote-workflow-stages li.is-complete, .quote-workflow-stages li.is-current { color: #fff; }
.quote-workflow-stages li.is-complete i { border-color: #7fac92; background: #38634f; }
.quote-workflow-stages li.is-current i { border-color: var(--bronze); background: var(--bronze); }
.quote-workflow-strip > p { grid-column: 2; line-height: 1.4; }

.builder-steps { position: sticky; top: 78px; z-index: 65; display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); border-radius: 7px; margin-bottom: 14px; overflow: hidden; background: rgba(255,253,249,.94); backdrop-filter: blur(12px); box-shadow: 0 10px 28px rgba(35,29,23,.06); }
.builder-steps a, .builder-steps button { min-height: 54px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 0; border-right: 1px solid var(--line); color: var(--ink); text-decoration: none; background: transparent; cursor: pointer; }
.builder-steps > :last-child { border-right: 0; }
.builder-steps span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; color: var(--paper); font-size: .74rem; font-weight: 800; background: var(--ink); }
.builder-steps strong { font-family: var(--heading); font-size: .83rem; }

.quote-builder-page main { max-width: none; padding: 0; }
.quote-builder-page .builder-section, .quote-builder-page .catalog-section, .quote-builder-page .quote-summary-section { width: 100%; max-width: none; margin: 0 0 14px; border: 1px solid var(--line); border-radius: 8px; padding: 24px; background: var(--builder-paper); box-shadow: 0 10px 28px rgba(35,29,23,.035); }
.quote-builder-page .start-page { display: block; min-height: 0; }
.builder-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.builder-section-heading .eyebrow { margin-bottom: 5px; }
.builder-section-heading h2 { margin: 0; font-family: var(--heading); font-size: 1.55rem; }
.builder-section-heading > p { max-width: 520px; margin: 0; color: var(--muted); text-align: right; }

.quote-builder-page .quote-mode-panel { width: 100%; border: 0; padding: 0; background: transparent; }
.quote-builder-page .mode-cards { width: min(520px,100%); margin-bottom: 18px; }
.quote-builder-page .mode-card { min-height: 48px; }
.quote-builder-page .quote-mode-topline { display: grid; grid-template-columns: minmax(340px,420px) repeat(3,minmax(0,1fr)); align-items: end; gap: 12px; margin-bottom: 12px; }
.quote-builder-page .quote-mode-topline .mode-cards { display: grid; width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px; margin: 0; border: 1px solid #cfc3b4; border-radius: 999px; padding: 4px; background: #eee7dc; }
.quote-builder-page .quote-mode-topline .mode-card { font-size: .9438rem; min-width: 0; min-height: 40px; border: 0; border-radius: 999px; padding: 7px 14px; color: var(--muted); background: transparent; transition: color .16s ease, background-color .16s ease, box-shadow .16s ease; }
.quote-builder-page .quote-mode-topline .mode-card:hover { color: var(--ink); background: rgba(255,255,255,.68); }
.quote-builder-page .quote-mode-topline .mode-card.selected { color: #fff; background: var(--ink); box-shadow: 0 3px 10px rgba(31,27,23,.18); }
.quote-builder-page .quote-mode-topline > label { grid-template-rows: auto 48px; min-width: 0; }
.quote-builder-page .quote-mode-topline > label input,
.quote-builder-page .quote-mode-topline > label select { min-height: 48px; }
.quote-builder-page .top-range-results-meta { grid-column: 3 / 5; margin-top: -5px; color: var(--muted); font-size: .66rem; font-weight: 850; text-transform: uppercase; }
.quote-builder-page .combined-order-details { padding: 20px 24px; }
.quote-builder-page .combined-order-details .builder-section-heading { margin-bottom: 14px; }
.quote-builder-page .combined-order-details .mode-cards { margin-bottom: 12px; }
.quote-builder-page .combined-order-details .quote-mode-topline .mode-cards { margin-bottom: 0; }
.quote-builder-page .combined-order-settings { margin-top: 12px; border: 0; padding: 0; }
.quote-builder-page .combined-order-settings .section-heading { display: block; margin: 0; }
.quote-builder-page .complete-settings { grid-template-columns: minmax(300px,1.4fr) repeat(2,minmax(190px,.7fr)); gap: 12px; }
.quote-builder-page .complete-settings-simple { grid-template-columns: repeat(4,minmax(0,1fr)); align-items: start; }
.quote-builder-page .complete-settings .optional-range-filter { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.quote-builder-page .range-results-simple { grid-column: auto; margin: 0; }
.quote-builder-page .range-results-simple > label { display: grid; grid-template-rows: auto 36px; gap: 6px; color: var(--muted); font-size: .74rem; font-weight: 850; text-transform: uppercase; }
.quote-builder-page .range-results-simple select { width: 100%; min-height: 36px; border: 1px solid var(--line); padding: 7px 10px; color: var(--ink); font: inherit; font-size: .82rem; background: var(--white); }
.quote-builder-page .range-results-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 7px; }
.quote-builder-page .range-results-meta strong { color: var(--muted); font-size: .66rem; text-transform: uppercase; }
.quote-builder-page .range-results-meta .button { width: auto; min-height: 28px; padding: 0 10px; font-size: .62rem; }
.quote-builder-page .complete-settings-simple .global-order-control { grid-template-rows: auto 36px; }
.quote-builder-page .complete-settings-simple .global-order-control select,
.quote-builder-page .complete-settings-simple .single-order-value { min-height: 36px; }
@media (min-width: 821px) {
  .quote-builder-page .complete-settings-simple .range-results-simple { grid-column: 3 !important; }
  .quote-builder-page .complete-settings-simple #rangeConfiguration { display: contents; }
  .quote-builder-page .complete-settings-simple #rangeConfiguration[hidden] { display: none; }
  .quote-builder-page .complete-settings-simple #doorColourControl { grid-column: 4; }
}
.quote-builder-page .range-results { grid-column: 1 / -1; margin-top: 2px; }
.quote-builder-page .range-options { grid-template-columns: repeat(4,minmax(0,1fr)); max-height: 540px; overflow: auto; }
.quote-builder-page .range-option { grid-template-rows: 120px auto; min-height: 0; }
.quote-builder-page .range-option-image { height: 120px; }

.quote-builder-page .quote-start .section-heading { margin: 0; }
.quote-builder-page .price-controls { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
.quote-builder-page .price-controls > label:first-child { grid-column: span 2; }
.quote-builder-page .price-controls .range-results-simple { grid-column: span 1; }
.quote-builder-page .price-controls #rangeConfiguration { display: contents; }
.quote-builder-page .price-controls #rangeConfiguration[hidden] { display: none; }
.quote-builder-page .price-controls #doorColourControl { grid-column: span 1; }
.quote-builder-page .price-controls:has(#doorColourControl[hidden]) .range-results-simple { grid-column: span 2; }
.quote-builder-page .door-setup-controls { grid-column: span 4; }
.quote-builder-page .door-setup-controls[hidden],
.quote-builder-page .global-order-control[hidden] { display: none !important; }
.quote-builder-page .field-note { display: none; }
.quote-builder-page .internal-setting { display: none !important; }
.quote-builder-page .price-controls label, .quote-builder-page .global-order-control { min-width: 0; }
.quote-builder-page .order-installation-notes { display: grid; gap: 6px; margin-top: 12px; color: var(--muted); font-size: .74rem; font-weight: 850; text-transform: uppercase; }
.quote-builder-page .order-installation-notes textarea { width: 100%; min-height: 58px; border: 1px solid var(--line); padding: 9px 10px; color: var(--ink); font: 700 .82rem/1.35 var(--body); background: var(--white); resize: vertical; }

.quote-builder-page .item-selection-section { position: sticky; top: 133px; z-index: 55; }
.quote-builder-page .visible-filter-tabs { margin-bottom: 14px; }
.quote-builder-page .category-filter-disclosure {
    border: 1px solid var(--line, #ded4c5);
    background: rgba(255, 255, 255, .62);
}
.quote-builder-page .category-filter-disclosure summary {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    cursor: pointer;
    list-style: none;
}
.quote-builder-page .category-filter-disclosure summary::-webkit-details-marker { display: none; }
.quote-builder-page .category-filter-disclosure summary .filter-tab-label { margin: 0; }
.quote-builder-page .category-toggle-label {
    margin-left: auto;
    font-weight: 800;
    text-transform: uppercase;
}
.quote-builder-page .category-toggle-open { display: none; }
.quote-builder-page .category-filter-disclosure[open] .category-toggle-closed { display: none; }
.quote-builder-page .category-filter-disclosure[open] .category-toggle-open { display: inline; }
.quote-builder-page .category-filter-disclosure[open] summary i { transform: rotate(180deg); }
.quote-builder-page .category-filter-disclosure .filter-tabs {
    padding: 0 10px 10px;
}
.quote-builder-page .filters { grid-template-columns: minmax(280px,1fr) minmax(200px,.35fr) 150px; }
.quote-builder-page .filters .button { min-height: 46px; align-self: end; }
.quote-builder-page .catalog-section { padding: 0; overflow: hidden; }
.quote-builder-page .catalog-panel { border: 0; box-shadow: none; }
.quote-builder-page .product-row { grid-template-columns: minmax(0,1fr) 160px 104px 94px; padding: 17px 20px; }
.quote-builder-page .product-row > .unit-sketch { display: none !important; }
.quote-builder-page .product-row > .product-main { grid-column: 1; }
.quote-builder-page .product-row .product-meta { text-transform: uppercase; }
.quote-builder-page .product-title h3 { font-size: 1rem; }
.quote-builder-page .product-title-dimensions { font-size: .72rem; }
.quote-builder-page .quote-summary-section { margin-bottom: 14px; }
.quote-builder-page .quote-summary-panel { gap: 0; }
.quote-builder-page .quote-product-tabs { border-bottom: 0; }
.quote-builder-page .quote-lines { border-top: 0; }
.quote-builder-page .online-quotes-section { margin-bottom: 32px; }

.quote-hub-heading { align-items: center; }
.quote-hub-actions { display: grid; justify-items: end; gap: 9px; }
.quote-hub-actions small { color: var(--olive); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.create-online-quote { width: auto; min-height: 54px; padding: 0 22px; }
.quote-builder-main > .online-quotes-section { min-height: 310px; }

.quote-builder-dialog {
    width: min(1500px,calc(100% - 28px));
    height: min(920px,calc(100dvh - 28px));
    max-width: none;
    max-height: none;
    margin: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0;
    overflow: hidden;
    color: var(--ink);
    background: var(--paper);
    box-shadow: 0 30px 90px rgba(27,24,20,.3);
}
.quote-builder-dialog::backdrop { background: rgba(25,22,19,.58); backdrop-filter: blur(4px); }
.quote-builder-dialog-shell { height: 100%; display: grid; grid-template-rows: auto minmax(0,1fr) auto; }
.quote-setup-dialog { height: auto; max-height: calc(100dvh - 28px); }
.quote-setup-dialog .quote-builder-dialog-shell { height: auto; max-height: calc(100dvh - 28px); grid-template-rows: auto minmax(0,auto) auto; }
.quote-setup-dialog .quote-builder-dialog-body { max-height: calc(100dvh - 170px); }
.quote-setup-dialog .combined-order-details { padding: 14px 16px; }
@media (min-width: 781px) {
  .quote-setup-dialog[open] { height: max-content !important; min-height: 0 !important; }
  .quote-setup-dialog .quote-builder-dialog-shell { display: flex; height: auto !important; min-height: 0; flex-direction: column; }
  .quote-setup-dialog .quote-builder-dialog-body { flex: 0 1 auto; }
  .quote-setup-dialog .quote-builder-dialog-footer { flex: 0 0 auto; }
}
.quote-catalog-dialog .quote-builder-dialog-shell { grid-template-rows: auto minmax(0,1fr); }
.quote-builder-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding: 16px 20px; background: var(--paper); }
.quote-builder-dialog-head > div:first-child { display: grid; gap: 2px; }
.quote-builder-dialog-head > div:first-child > span { color: var(--bronze); font-size: .66rem; font-weight: 850; letter-spacing: .04em; }
.quote-builder-dialog-head h2 { margin: 0; font-family: var(--heading); font-size: 1.5rem; }
.quote-builder-dialog-head-actions { display: flex; align-items: center; gap: 10px; }
.quote-builder-dialog-head .close-button { position: static; flex: 0 0 auto; }
.quote-builder-dialog-body { min-height: 0; overflow: auto; padding: 18px 20px 92px; }
.quote-setup-dialog .quote-builder-dialog-body { padding: 12px 16px; }
.quote-builder-dialog-footer { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px; border-top: 1px solid var(--line); padding: 10px 16px; background: var(--paper); }
.quote-builder-dialog-footer .button { width: auto; min-width: 130px; }
.quote-setup-message { margin: 0; color: #a72b27; font-size: .78rem; font-weight: 800; }
.quote-builder-dialog .quote-workflow-strip { margin-bottom: 14px; }
.quote-builder-dialog .item-selection-section { top: 0; }
.quote-builder-dialog .mini-basket { z-index: 125; }
.quote-builder-dialog .cart-drawer { z-index: 140; }

/* Height checks can be triggered from another modal catalogue. Keep this
   confirmation in the browser's dialog layer so it always remains visible. */
.height-warning-dialog {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    box-sizing: border-box;
    margin: 0;
    border: 0;
    padding: 18px;
    color: var(--ink);
    background: rgba(26,24,22,.72);
    backdrop-filter: blur(7px);
    overflow: auto;
}
.height-warning-dialog[open] { display: grid; place-items: center; }
.height-warning-dialog:not([open]) { display: none; }
.height-warning-dialog::backdrop { background: transparent; }

.quote-catalog-dialog-body { padding-bottom: 92px; }
.quote-catalog-dialog .quote-summary-section { border: 0; margin: 0; padding: 0; box-shadow: none; background: transparent; }
.quote-catalog-dialog .quote-summary-panel { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: var(--builder-paper); }
.quote-catalog-dialog .quote-summary-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding: 9px 14px; }
.quote-catalog-dialog .quote-summary-heading h2 { margin: 0; font-family: var(--heading); font-size: 1.18rem; }
.quote-order-details-heading { display: inline-flex; align-items: baseline; gap: 9px; border: 0; padding: 3px 0; color: var(--ink); background: transparent; font: 850 1.05rem var(--heading); text-transform: uppercase; cursor: pointer; }
.quote-order-details-heading small { color: var(--brand); font: 850 .6rem var(--body); letter-spacing: .04em; }
.quote-order-details-heading:hover { color: var(--brand); }
.quote-order-details-heading:focus-visible { outline: 2px solid var(--brand); outline-offset: 4px; }
.quote-line-heading-actions { display: flex; align-items: flex-start; gap: 16px; }
.quote-send-header-action { display:grid; justify-items:end; gap:4px; }
.quote-send-header-action small { color:var(--olive); font-size:.66rem; font-weight:800; text-transform:uppercase; white-space:nowrap; }
.quote-line-heading-actions .quote-header-action, #quoteOrderDetailsHeading.quote-header-action { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 38px; padding: 0 13px; border-radius: 8px; white-space: nowrap; }
.quote-summary-total { display: grid; justify-items: end; gap: 1px; }
.quote-summary-total span { color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; }
.quote-summary-total strong { font-family: var(--heading); font-size: 1.2rem; }
.quote-line-heading-actions .button, #quoteOrderDetailsHeading.quote-header-action { width: auto; min-height: 44px; padding: 0 18px; }
.quote-line-heading-actions .button i { margin-right: 8px; }
.quote-catalog-dialog .quote-job-settings { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px 28px; margin: 0; border-bottom: 1px solid var(--line); padding: 9px 14px; }
.quote-catalog-dialog .quote-job-settings article { min-width: 0; gap: 1px; align-content: start; }
.quote-catalog-dialog .quote-job-settings span { font-size: .68rem; }
.quote-catalog-dialog .quote-job-settings strong { display: block; min-width: 0; font-size: .76rem; }
.quote-catalog-dialog .quote-job-settings.is-editable { position: relative; cursor: pointer; transition: background-color .16s ease, box-shadow .16s ease; }
.quote-catalog-dialog .quote-job-settings.is-editable::before { display: none; }
.quote-catalog-dialog .quote-job-settings.is-editable:hover { background: #f8f3eb; box-shadow: inset 3px 0 0 var(--brand); }
.quote-catalog-dialog .quote-job-settings.is-editable:focus-visible { outline: 3px solid rgba(157,111,61,.28); outline-offset: -3px; }
.quote-product-tabs { display: flex; align-items: stretch; overflow-x: auto; border-bottom: 1px solid var(--line); background: #f4efe7; scrollbar-width: thin; }
.quote-product-tab { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; min-height: 42px; border: 0; border-right: 1px solid var(--line); border-radius: 0; padding: 0 14px; color: var(--muted); font: 850 .7rem var(--body); text-transform: uppercase; background: transparent; cursor: pointer; }
.quote-product-tab:hover { color: var(--ink); background: rgba(255,255,255,.55); }
.quote-product-tab.is-populated { color: #285f5a; background: #e3eee9; box-shadow: inset 0 -3px 0 #2f7b74; }
.quote-product-tab.is-populated:not(.is-active):hover { color: #174b47; background: #d7e8e1; }
.quote-product-tab.is-active { color: #fff; background: var(--ink); }
.quote-product-tab small { display: inline-grid; place-items: center; min-width: 20px; height: 20px; border-radius: 50%; padding: 0 5px; color: inherit; font-size: .62rem; background: rgba(120,108,94,.13); }
.quote-product-tab.is-populated small { color: #fff; background: #2f7b74; }
.quote-product-tab.is-active small { background: rgba(255,255,255,.18); }
.mini-basket[hidden] { display: none !important; }
.quote-catalog-dialog .quote-lines { min-height: 0; max-height: calc(100dvh - 420px); grid-auto-rows: max-content; overflow: auto; }

.product-picker-dialog { width: min(1320px,calc(100% - 34px)); height: min(860px,calc(100dvh - 34px)); }
.product-picker-dialog .quote-builder-dialog-shell { grid-template-rows: auto minmax(0,1fr) auto; }
.product-picker-body { display: grid; grid-template-columns: 208px minmax(0,1fr); overflow: hidden; padding: 0; }
.product-picker-controls { display: flex; min-width: 0; min-height: 0; flex-direction: column; align-items: stretch; gap: 10px; overflow-y: auto; border-right: 1px solid var(--line); padding: 12px; background: #f4efe7; }
.product-picker-rail-heading { display: grid; gap: 1px; border-bottom: 1px solid var(--line); padding: 0 2px 9px; text-transform: uppercase; }
.product-picker-rail-heading strong { font-family: var(--heading); font-size: .77rem; }
.product-picker-rail-heading small { color: var(--muted); font-size: .56rem; font-weight: 750; }
.product-picker-controls label, .product-picker-filter { display: grid; gap: 4px; min-width: 0; color: var(--muted); font-size: .58rem; font-weight: 850; text-transform: uppercase; }
.product-picker-controls input, .product-picker-controls select { width: 100%; min-height: 35px; border: 1px solid var(--line); border-radius: 0; padding: 0 8px; color: var(--ink); font: 750 .7rem var(--body); background: var(--paper); }
.product-picker-controls .button { width: 100%; min-height: 35px; padding: 0 8px; font-size: .66rem; white-space: nowrap; }
.product-picker-controls #clearFilters { min-height: 44px; border-color: var(--ink); border-radius: 8px; background: var(--paper); color: var(--ink); font-size: .7rem; font-weight: 850; }
.product-picker-controls #clearFilters:hover, .product-picker-controls #clearFilters:focus-visible { border-color: var(--ink); background: #fff; }
.catalogue-visibility-settings { display: grid; gap: 7px; padding: 2px 0 0; }
.product-picker-controls .catalogue-visibility-settings label { display: flex; align-items: center; gap: 8px; min-height: 22px; color: var(--ink); font-size: .62rem; font-weight: 850; cursor: pointer; }
.product-picker-controls .catalogue-visibility-settings input[type="checkbox"] { box-sizing: border-box; width: 16px; min-width: 16px; height: 16px; min-height: 16px; margin: 0; padding: 0; accent-color: var(--ink); }
.kitchen-type-filter .filter-tabs { display: grid; grid-template-columns: 1fr; gap: 0; border: 1px solid var(--line); }
.kitchen-type-filter .filter-tab { justify-content: flex-start; min-height: 34px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0 9px; font-size: .62rem; text-align: left; white-space: normal; }
.kitchen-type-filter .filter-tab:last-child { border-bottom: 0; }
.kitchen-type-filter.is-inactive { opacity: .38; }
.kitchen-type-filter.is-inactive .filter-tabs { pointer-events: none; }
.kitchen-type-filter.is-inactive .filter-tab { cursor: default; }
.section-filter.is-inactive { opacity: .38; }
.section-filter.is-inactive select { pointer-events: none; cursor: default; }
.product-picker-results { min-height: 0; overflow: auto; background: var(--paper); }
.product-picker-results-head { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); padding: 8px 12px; background: rgba(255,253,249,.97); backdrop-filter: blur(8px); }
.product-picker-results-head strong { font-family: var(--heading); font-size: .76rem; text-transform: uppercase; }
.product-picker-results-head span { color: var(--muted); font-size: .64rem; font-weight: 750; }
.product-picker-results-head span.is-success { color: #286646; }
.product-picker-dialog .category-group { display: contents; }
.product-picker-dialog .category-header { display: none; }
.product-picker-dialog .product-row, .product-picker-dialog .product-row.text-only { grid-template-columns: minmax(0,1fr) auto 74px 72px; grid-template-rows: auto; align-items: center; gap: 9px; min-height: 0; padding: 7px 12px; cursor: default; }
.product-picker-dialog .product-row > .unit-sketch { display: none !important; }
.product-picker-dialog .unit-options-inline,
.product-picker-dialog .unit-option-note,
.product-picker-dialog .special-sizing-panel { display: none !important; }
.product-picker-dialog .product-row > .product-main, .product-picker-dialog .product-row.text-only > .product-main { grid-column: 1; grid-row: 1; align-self: center; }
.product-picker-dialog .product-title h3 { font-size: .78rem; line-height: 1.2; }
.product-picker-dialog .product-meta { text-transform: uppercase; }
.product-picker-dialog .product-price, .product-picker-dialog .product-row.text-only > .product-price { display: flex; grid-column: 2; grid-row: 1; align-self: center; align-items: baseline; justify-content: flex-end; gap: 3px 6px; text-align: right; }
.product-picker-dialog .product-price > span, .product-picker-dialog .product-price > strong, .product-picker-dialog .product-price > .net-price { grid-row: auto; }
.product-picker-dialog .product-price > span:not(:first-child):not(.net-price) { display: none; }
.product-picker-dialog .product-price span, .product-picker-dialog .product-price > span:first-child, .product-picker-dialog .product-price .net-price { font-size: .66rem; }
.product-picker-dialog .product-price strong, .product-picker-dialog .product-price .net-price strong { font-size: .74rem; }
.product-picker-dialog .product-row > .quantity-picker, .product-picker-dialog .product-row.text-only > .quantity-picker { grid-column: 3; grid-row: 1; align-self: center; justify-self: end; }
.product-picker-dialog .product-row > .button, .product-picker-dialog .product-row.text-only > .button { grid-column: 4; grid-row: 1; align-self: center; width: 72px; }
.product-picker-dialog .complete-child-preview { display: flex; flex-wrap: wrap; gap: 2px 10px; margin-top: 3px; border: 0; border-left: 2px solid #ddd4c8; padding: 2px 6px; background: transparent; }
.product-picker-dialog .complete-child-preview span, .product-picker-dialog .complete-child-preview strong { font-size: .62rem; line-height: 1.25; }
.product-picker-dialog #loadMore { width: calc(100% - 36px); margin: 14px 18px; }
.product-picker-footer { display: flex; align-items: center; justify-content: flex-end; gap: 22px; border-top: 1px solid var(--line); padding: 12px 18px; background: var(--paper); }
.product-picker-footer > span { color: var(--muted); font-size: .76rem; font-weight: 750; }
.product-picker-footer > span strong { color: var(--ink); font-family: var(--heading); font-size: .95rem; }
.product-picker-footer .button { width: auto; min-width: 150px; }
.shared-catalogue-picker { min-height: 0; height: 100%; overflow: hidden; background: var(--paper); }
.shared-catalogue-picker iframe { display: block; width: 100%; height: 100%; border: 0; background: var(--paper); }
.product-picker-dialog.shared-catalogue-mode .quote-builder-dialog-body { padding: 0; }
.product-picker-dialog.shared-catalogue-mode .shared-catalogue-picker { flex: 1 1 auto; }
.quote-autosave-status { display: inline-flex; min-height: 42px; align-items: center; gap: 8px; padding: 0 12px; color: var(--muted); font-size: .72rem; font-weight: 850; text-transform: uppercase; white-space: nowrap; }
.quote-autosave-status i { font-size: 1rem; }
.quote-autosave-status.is-saving { color: #8a6336; }
.quote-autosave-status.is-saved { color: var(--teal); }
.quote-autosave-status.is-error { color: #9a372d; }

.quote-catalog-dialog .quote-line-table-header,
.quote-catalog-dialog .quote-line {
    grid-template-columns: 38px 74.75px 128px minmax(226px,1fr) 38.24px 38.24px 38.24px 112.36px 72px 47.52px 72px 32.08px;
    min-width: 1116px;
}
.quote-catalog-dialog .quote-line { align-items: center; min-height: 0; }
.quote-catalog-dialog .quote-line-editable { cursor: default; }
.quote-catalog-dialog .quote-line-editable:hover { background: #fbf9f5; }
.quote-line-item-cell { display: flex; align-items: center; justify-content: center; }
.quote-line-qty-editor { display: grid; grid-template-columns: 18px 30px 18px; align-items: center; justify-content: center; gap: 2px; padding: 3px 1px !important; }
.quote-line-qty-editor button { width: 18px; height: 22px; border: 1px solid var(--line); padding: 0; background: #fff; color: var(--ink); font-size: .78rem; font-weight: 900; line-height: 1; cursor: pointer; }
.quote-line-qty-editor button:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.quote-catalog-dialog .quote-line > .quote-line-remove { display: grid; width: 24px; height: 24px; border: 0; padding: 0; place-items: center; justify-self: center; background: transparent; color: #9a372d; font-size: .88rem; line-height: 1; cursor: pointer; }
.quote-catalog-dialog .quote-line > .quote-line-remove:hover { background: transparent; box-shadow:none; }
.quote-line-qty-editor input { width: 30px; min-height: 22px; border: 1px solid var(--line); border-radius: 0; padding: 0 2px; background: #fff; color: var(--ink); font: inherit; font-weight: 850; text-align: center; }
.quote-line-qty-editor input::-webkit-inner-spin-button,
.quote-line-qty-editor input::-webkit-outer-spin-button { margin: 0; appearance: none; }
.quote-catalog-dialog .quote-line-open { min-height: 42px; cursor: default; background: #fbf9f5; }

.quote-catalog-dialog .quote-line-open .quote-line-code { font-size: 1.1rem; }
.quote-catalog-dialog .quote-line-open .quote-line-description strong { color: var(--muted); font-size: .72rem; }
.quote-catalog-dialog .quote-line-open .quote-line-description small { color: var(--muted); font-size: .62rem; }
.quote-catalog-dialog .quote-line > span, .quote-catalog-dialog .quote-line > strong, .quote-catalog-dialog .quote-line > div { min-width: 0; padding: 5px 6px; line-height: 1.15; }
.quote-catalog-dialog .quote-line > span, .quote-catalog-dialog .quote-line > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quote-catalog-dialog .quote-line-table-header > span:nth-child(-n+3),
.quote-catalog-dialog .quote-line-table-header > span:nth-child(n+5),
.quote-catalog-dialog .quote-line > :nth-child(-n+3),
.quote-catalog-dialog .quote-line > :nth-child(n+5) { text-align: center; justify-content: center; }
.quote-catalog-dialog .quote-line-description { display: grid; grid-template-rows: auto auto; gap: 2px; overflow: hidden; }
.quote-catalog-dialog .quote-line-description > strong { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; white-space: normal; }
.quote-line-secondary { display: flex; min-width: 0; align-items: center; gap: 8px; overflow: hidden; }
.quote-special-control { gap: 4px; }
.quote-special-edit { display: inline-grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; min-height: 24px; margin: 0; padding: 0; border: 1px solid #111; border-radius: 3px; background: #111; color: #fff; font-size: .8rem; cursor: pointer; }
.quote-special-edit:hover { background: #303030; }
.quote-special-edit:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.special-editor-dialog { box-sizing: border-box; width: min(1120px, calc(100vw - 32px)); max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper, #faf7ef); color: var(--ink, #24201b); }
.special-editor-dialog::backdrop { background: rgb(0 0 0 / 45%); }
.special-editor-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.special-editor-dialog h2 { margin: 4px 0 0; font-size: 1.3rem; }
.special-editor-dialog header small { color: var(--muted); font-weight: 750; }
.special-editor-dialog button { min-height: 42px; padding: 8px 16px; border: 1px solid var(--line); background: #fff; color: var(--ink); font: 750 .8rem var(--body); cursor: pointer; }
.special-editor-dialog header button { min-width: 42px; padding: 4px; font-size: 1.4rem; }
.special-editor-dialog .quote-line-special-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 12px; }
.special-editor-dialog .quote-line-special-fields > label { display: flex; flex-direction: column; align-items: stretch; gap: 6px; font-size: .75rem; }
.special-editor-dialog .quote-line-special-fields input { box-sizing: border-box; min-width: 0; width: 100%; min-height: 46px; font-size: .9rem; }
.special-editor-dialog .quote-line-special-fields input[type="text"] { background: #fff; border: 1px solid #a69e92; border-radius: 4px; padding: 10px 12px; box-shadow: 0 1px 2px rgb(0 0 0 / 5%); }
.special-editor-dialog .quote-line-special-fields input[type="text"]:focus { border-color: #24201b; outline: 2px solid #24201b; outline-offset: 1px; }
.special-editor-dialog .quote-line-special-notes, .special-editor-dialog .quote-line-sketch { grid-column: 1 / -1; width: 100%; margin: 0; }
.special-editor-dialog .quote-line-sketch { box-sizing: border-box; display: flex; flex-wrap: wrap; gap: 12px; padding: 16px; border: 1px dashed #a69e92; border-radius: 6px; background: #fff; font-size: .75rem; }
.special-editor-dialog .quote-line-sketch.has-sketch { background: #eef7f0; border: 1px solid #85b595; }
.special-sketch-details { display: flex; flex: 1 1 170px; flex-direction: column; gap: 6px; min-width: 0; }
.special-sketch-status { font-size: .85rem; font-weight: 850; }
.has-sketch .special-sketch-status { color: #215a36; }
.special-sketch-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.special-sketch-preview { width: 58px; height: 58px; flex: 0 0 58px; object-fit: contain; background: #fff; border: 1px solid #b6ccbc; border-radius: 4px; }
.special-sketch-symbol { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; background: #f0eee8; font-size: 1.5rem; }
.has-sketch .special-sketch-symbol { background: #d5eadb; color: #215a36; }
.special-editor-dialog .special-sketch-actions .quote-sketch-upload { background: #24201b; color: #fff; border-color: #24201b; font-weight: 850; }
.special-editor-dialog .quote-sketch-upload { min-height: 42px; padding: 8px 16px; font-size: .8rem; }
.special-editor-dialog .quote-sketch-name { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.special-door-section:empty { display: none; }
.special-door-section { margin-top: 24px; }
.special-door-section h3 { margin: 0 0 6px; font-size: .95rem; }
.special-door-help { color: var(--muted); font-size: .75rem; line-height: 1.5; margin: 0 0 12px; }
.special-door-row { display: grid; grid-template-columns: minmax(130px, 1fr) 240px 100px auto; align-items: center; gap: 12px; min-height: 60px; box-sizing: border-box; padding: 8px 12px; margin-top: 6px; border: 1px solid #c7c0b4; border-radius: 5px; background: #fff; }
.special-door-summary, .special-door-summary > div:first-child { display: contents; }
.special-door-summary small { grid-column: 1; grid-row: 1; min-width: 0; overflow-wrap: anywhere; }
.special-door-current { grid-column: 2; grid-row: 1; }
.special-door-original { display: none; }
.special-door-badge { grid-column: 3; grid-row: 1; justify-self: start; white-space: nowrap; }
.special-door-actions { grid-column: 4; grid-row: 1; display: flex; align-items: center; gap: 6px; }
.special-editor-dialog .special-door-actions button { padding: 7px 10px; min-height: 36px; font-size: 12px; white-space: nowrap; }
.special-editor-dialog .special-door-actions [data-edit-special-door] { min-width: 67px; }
.special-door-summary small, .special-door-original, .special-door-mode { font-size: .7rem; color: var(--muted); }
.special-door-current { font-size: .95rem; }
.special-door-badge { border: 1px solid #d3be90; background: #f6eedb; padding: 4px 7px; border-radius: 4px; color: #654c18; font-size: .62rem; font-weight: 850; }
.special-door-mode { display: none; }
.special-door-row.is-editing .special-door-current { visibility: hidden; }
.special-door-inputs { grid-column: 2; grid-row: 1; display: flex; align-items: end; gap: 6px; min-width: 0; }
.special-door-inputs label { flex: 1 1 0; min-width: 0; display: grid; gap: 3px; font-size: 10px; font-weight: 800; }
.special-editor-dialog .special-door-inputs input { box-sizing: border-box; width: 100%; min-height: 32px; height: 32px; padding: 5px 7px; border: 1px solid #a69e92; border-radius: 4px; background: #fff; font: 750 .85rem var(--body); }
.special-editor-dialog .special-door-inputs button { min-height: 32px; padding: 5px 7px; font-size: 10px; }
@media (min-width: 951px) {
  .special-editor-dialog header { margin-bottom: 18px; }
  .special-editor-dialog .quote-line-special-fields { grid-template-columns: repeat(3, minmax(80px, .6fr)) minmax(200px, 2fr); gap: 14px 12px; }
  .special-editor-dialog .quote-line-special-fields .quote-line-special-notes { grid-column: auto; }
  .special-editor-dialog .quote-line-special-fields:has([data-special-editor-field="lhGable"]) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .special-editor-dialog .quote-line-special-fields:has([data-special-editor-field="lhGable"]) .quote-line-special-notes { grid-column: 1 / -1; }
}
@media (max-width: 950px) {
  .special-door-row { grid-template-columns: minmax(0, 1fr) 240px 100px; }
  .special-door-actions { grid-column: 1 / -1; grid-row: 2; justify-content: flex-end; }
}
@media (max-width: 580px) {
  .special-door-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .special-door-current, .special-door-inputs { grid-column: 1 / -1; grid-row: 2; }
  .special-door-badge { grid-column: 2; }
  .special-door-actions { grid-row: 3; justify-content: stretch; }
  .special-door-actions [data-stock-special-door] { flex: 1; }
}
.special-editor-dialog [role=status] { min-height: 1.3em; font-size: .8rem; color: #9a372d; }
.special-editor-dialog footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.special-editor-dialog [data-special-editor-save], .special-editor-dialog [data-panel-save] { color: #fff; background: var(--ink); }
.special-editor-dialog button:disabled { opacity: .55; cursor: wait; }
@media (max-width: 480px) { .special-editor-dialog { padding: 16px; } .special-editor-dialog .quote-line-special-fields { gap: 14px 8px; } }
.quote-catalog-dialog .quote-child-lines { display: block; flex: 1 1 auto; min-width: 0; overflow: hidden; margin: 0; border: 0; padding: 0; color: var(--muted); font-size: .64rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.quote-line-control-cell { display: flex; min-width: 0; min-height: 25px; align-items: center; justify-content: center; padding: 0 !important; }
.quote-line-control-cell input[type="checkbox"] { width: 15px; height: 15px; min-height: 15px; margin: 0; accent-color: var(--ink); cursor: pointer; }
.quote-catalog-dialog .quote-line > .quote-line-special-fields { grid-column: 4 / -1; display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 10px; padding: 8px 6px 10px; text-align: left; border-top: 1px dashed var(--line); }
.quote-line-special-fields { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.quote-line-special-fields label { display: inline-flex; align-items: center; gap: 3px; color: var(--muted); font-size: .54rem; font-weight: 850; text-transform: uppercase; }
.quote-line-special-fields input {
  width: 48px;
  min-height: 24px;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 0 6px;
  color: var(--ink);
  background: var(--paper);
  font: 750 .64rem var(--body);
}
.quote-line-special-fields .quote-line-special-notes { flex: 1 1 210px; }
.quote-line-special-fields .quote-line-special-notes input { width: 100%; min-width: 140px; }
.quote-line-sketch { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-left: auto; font-size: .64rem; }
.quote-line-special-fields .quote-sketch-upload, .quote-line-sketch button { position: relative; display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 6px 10px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; font: 750 .64rem var(--body); }
.quote-line-special-fields .quote-sketch-upload input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.quote-sketch-upload:focus-within { outline: 2px solid var(--ink); outline-offset: 2px; }
.quote-sketch-name { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
@media (max-width: 700px) { .quote-line-special-fields input { min-height: 36px; } .quote-line-sketch { flex-basis: 100%; margin-left: 0; } .quote-line-special-fields .quote-sketch-upload, .quote-line-sketch button { min-height: 44px; } }

.quote-builder-page .mini-basket { z-index: 75; grid-template-columns: minmax(150px,1.2fr) repeat(3,minmax(105px,.8fr)) minmax(140px,1fr); }
.quote-builder-page .mini-basket .total { background: var(--ink); }
.quote-builder-page .mini-basket .total small,
.quote-builder-page .mini-basket .total strong { color: #fff; }
.quote-builder-page .cart-drawer { z-index: 120; }
.quote-builder-page .cart-panel { width: min(720px,100%); }
.cart-reference-kicker { display: block; margin-bottom: 2px; color: var(--bronze); font-size: .68rem; font-weight: 850; letter-spacing: .04em; }
.online-quote-actions, .quote-document-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; grid-column: 1 / -1; }
.online-quote-actions { margin-top: 8px; }
.quote-document-actions .button { min-height: 44px; }
.quote-action-message.is-error { color: #b4211e; }
.quote-action-message.is-success { color: #2d7252; }

.online-quotes-section .builder-section-heading { align-items: center; margin-bottom: 6px; }
.refresh-online-quotes { width: auto; min-height: 42px; padding: 0 16px; }
.online-quotes-intro { margin: 0 0 18px; color: var(--muted); }
.online-quote-list {
    --quote-columns: minmax(280px,1.35fr) minmax(160px,.85fr) minmax(130px,.7fr) 118px minmax(220px,1.05fr) minmax(282px,1.15fr);
    position: relative;
    border-top: 1px solid var(--line);
}
.online-quote-list-head { position: sticky; top: 78px; z-index: 20; display: grid; grid-template-columns: var(--quote-columns); align-items: center; gap: 14px; border-bottom: 1px solid var(--line); padding: 9px 0; color: var(--muted); background: rgba(255,253,249,.96); backdrop-filter: blur(12px); font-size: .62rem; font-weight: 850; letter-spacing: .03em; }
.online-quote-list-head span:last-child { text-align: right; }
.online-quote-row { display: grid; grid-template-columns: var(--quote-columns); align-items: center; gap: 14px; min-height: 41px; border-bottom: 1px solid var(--line); padding: 5px 0; }
.online-quote-main { display: flex; align-items: center; gap: 9px; min-width: 0; white-space: nowrap; }
.online-quote-stat { display: block; min-width: 0; overflow: hidden; }
.online-quote-status-block { display: grid; grid-template-columns: 180px minmax(118px,1fr); align-items: center; gap: 12px; min-width: 0; overflow: hidden; white-space: nowrap; }
.online-quote-ref, .online-quote-stat span, .online-quote-status-block small { color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .02em; }
.online-quote-main .online-quote-ref { flex: 0 0 auto; }
.online-quote-main strong { flex: 1 1 auto; overflow: hidden; font-family: var(--heading); text-overflow: ellipsis; white-space: nowrap; }
.online-quote-stat > span { display: none; }
.online-quote-stat strong { font-size: 1rem; }
.online-quote-range strong, .online-quote-colour strong { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.online-quote-status-block small { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.online-quote-status { box-sizing: border-box; flex: 0 0 180px; width: 180px; justify-self: start; overflow: hidden; border-radius: 999px; padding: 4px 10px; font-size: .68rem; font-weight: 850; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.online-quote-status.status-draft { color: #6d5844; background: #eee4d6; }
.online-quote-status.status-sent-to-sinc { color: #8b5d18; background: #f7e8c9; }
.online-quote-status.status-matched-to-smart { color: #245e58; background: #dceceb; }
.online-quote-status.status-confirmation-sent { color: #2c674c; background: #dcebe2; }
.online-quote-view { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; border: 0; padding: 7px 0; color: var(--ink); font-weight: 850; background: transparent; cursor: pointer; }
.online-quote-edit { color: #2d7252; }
.online-quote-clone { color: #77552f; }
.online-quote-delete { width: 28px; justify-content: center; color: #a72b27; }
.online-quote-row.is-remedial,
.online-quote-row.is-remedial strong,
.online-quote-row.is-remedial .online-quote-status,
.online-quote-row.is-remedial small,
.online-quote-row.is-remedial .online-quote-view { color: #b42318; }
.online-quote-row.is-remedial .online-quote-status.status-local-remedial-draft { color: #fff; background: #b42318; }
.remedial-issue-photos { padding: 14px 0; border-top: 1px solid var(--line); }
.remedial-issue-photos[hidden] { display: none; }
.remedial-issue-photos p { margin: 5px 0 10px; color: var(--muted); }
.remedial-issue-photos > div { display: flex; gap: 12px; flex-wrap: wrap; }
.remedial-issue-photos img { width: 110px; height: 85px; object-fit: contain; border: 1px solid var(--line); background: white; }
#printQuoteHeaderButton > i, #sendQuoteHeaderButton > i { display: none; }
.online-quote-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-width: 0; overflow: hidden; white-space: nowrap; }
.online-quotes-empty { display: grid; justify-items: center; gap: 5px; padding: 36px 20px; color: var(--muted); text-align: center; }
.online-quotes-empty i { font-size: 1.4rem; }
.online-quotes-loading, .online-quotes-error { margin: 0; padding: 28px 0; color: var(--muted); }
.online-quotes-error { color: #a72b27; }

.online-quote-dialog { width: min(1080px,calc(100% - 32px)); max-height: min(820px,calc(100vh - 32px)); border: 1px solid var(--line); border-radius: 8px; padding: 0; color: var(--ink); background: var(--paper); box-shadow: 0 30px 80px rgba(27,24,20,.28); }
.online-quote-dialog::backdrop { background: rgba(25,22,19,.52); backdrop-filter: blur(3px); }
.online-quote-dialog-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); padding: 18px 22px; background: var(--paper); }
.online-quote-dialog-head span, .online-quote-dialog-summary span { color: var(--bronze); font-size: .66rem; font-weight: 850; letter-spacing: .04em; }
.online-quote-dialog-head h2 { margin: 2px 0 0; font-family: var(--heading); font-size: 1.45rem; }
.online-quote-dialog-head .close-button { position: static; }
#onlineQuoteDialogBody { padding: 22px; }
.online-quote-dialog-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 20px; }
.online-quote-dialog-summary > div { display: grid; gap: 4px; border: 1px solid var(--line); border-radius: 6px; padding: 13px; }
.online-quote-detail-lines { border-top: 1px solid var(--line); }
.online-quote-detail-head, .online-quote-detail-line { display: grid; grid-template-columns: 60px 145px minmax(260px,1fr) 100px; gap: 14px; align-items: start; border-bottom: 1px solid var(--line); padding: 11px 8px; }
.online-quote-detail-head { color: var(--muted); font-size: .66rem; font-weight: 850; }
.online-quote-detail-line > div { display: grid; gap: 2px; }
.online-quote-detail-line small { color: var(--muted); }
.online-quote-detail-line > :last-child { text-align: right; }
.delete-quote-dialog { width: min(500px,calc(100% - 32px)); }
.delete-quote-dialog-body { display: grid; justify-items: center; gap: 10px; padding: 26px; text-align: center; }
.delete-quote-dialog-body p { margin: 0; font-size: 1.05rem; }
.delete-quote-dialog-body small { max-width: 390px; color: var(--muted); }
.delete-quote-dialog-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; color: #a72b27; background: #f7dddd; font-size: 1.2rem; }
.delete-quote-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; margin-top: 8px; }
.delete-confirm-button { border-color: #a72b27; color: #fff; background: #a72b27; }
.delete-quote-dialog-message { min-height: 20px; color: #a72b27; font-size: .8rem !important; }

@media (max-width: 1180px) {
    .quote-workflow-strip { grid-template-columns: max-content minmax(0,1fr); }
    .quote-workflow-strip > p { grid-column: 1 / -1; }
    .quote-builder-page .range-options { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .quote-builder-page .price-controls { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .quote-builder-page .price-controls > label:first-child, .quote-builder-page .door-setup-controls { grid-column: span 3; }
    .quote-builder-page .item-selection-section { position: relative; top: auto; }
    .product-picker-body { grid-template-columns: 188px minmax(0,1fr); }
    .quote-catalog-dialog .quote-job-settings { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

@media (max-width: 780px) {
    .quote-builder-page { padding-bottom: 76px; }
    .quote-builder-page .quote-mode-topline { grid-template-columns: 1fr; }
    .quote-builder-page .top-range-results-meta { grid-column: 1; margin-top: -4px; }
    .quote-builder-page .portal-main { width: min(100% - 20px,1760px); }
    .quote-builder-page .desktop-nav { display: none; }
    .builder-heading { align-items: start; flex-direction: column; padding: 28px 0 20px; }
    .quote-hub-actions { width: 100%; justify-items: stretch; }
    .quote-hub-actions .create-online-quote { width: 100%; }
    .quote-hub-actions small { text-align: center; }
    .builder-data-status { width: 100%; }
    .quote-workflow-strip { grid-template-columns: 1fr; gap: 14px; padding: 15px; }
    .quote-workflow-stages { overflow-x: auto; }
    .quote-workflow-stages li { grid-template-columns: 24px minmax(74px,1fr); }
    .quote-workflow-stages span { font-size: .64rem; }
    .quote-workflow-strip > p { grid-column: 1; }
    .builder-steps { top: 66px; }
    .builder-steps a, .builder-steps button { min-height: 48px; gap: 6px; }
    .builder-steps strong { font-size: .7rem; }
    .builder-steps span { width: 22px; height: 22px; }
    .quote-builder-page .builder-section, .quote-builder-page .catalog-section, .quote-builder-page .quote-summary-section { padding: 16px; }
    .builder-section-heading { align-items: start; flex-direction: column; gap: 7px; }
    .builder-section-heading > p { text-align: left; }
    .quote-builder-page .complete-settings { grid-template-columns: 1fr; }
    .quote-builder-page .range-results { grid-column: 1; }
    .quote-builder-page .range-options { grid-template-columns: 1fr; max-height: 480px; }
    .quote-builder-page .range-option { grid-template-columns: 118px 1fr; grid-template-rows: auto; }
    .quote-builder-page .range-option-image { width: 118px; height: 100%; min-height: 108px; }
    .quote-builder-page .price-controls { grid-template-columns: 1fr 1fr; }
    .quote-builder-page .price-controls > label:first-child, .quote-builder-page .door-setup-controls { grid-column: 1 / -1; }
    .quote-builder-page .door-setup-controls { grid-template-columns: 1fr; }
    .quote-builder-page .filters { grid-template-columns: 1fr; }
    .quote-builder-page .product-row, .quote-builder-page .product-row.text-only { grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px; }
    .quote-builder-page .product-row > .product-main, .quote-builder-page .product-row.text-only > .product-main { grid-column: 1 / -1; }
    .quote-builder-page .product-row > .product-price, .quote-builder-page .product-row.text-only > .product-price { grid-column: 1; text-align: left; }
    .quote-builder-page .product-row > .quantity-picker, .quote-builder-page .product-row.text-only > .quantity-picker { grid-column: 2; justify-self: end; }
    .quote-builder-page .product-row > .button, .quote-builder-page .product-row.text-only > .button { grid-column: 1 / -1; width: 100%; }
    .quote-builder-page .mini-basket { grid-template-columns: repeat(3,1fr); min-height: 68px; padding: 8px 10px; }
    .quote-builder-page .mini-basket .reference, .quote-builder-page .mini-basket-field:nth-of-type(2) { display: none; }
    .quote-builder-page .mini-basket-field { min-width: 0; }
    .quote-builder-dialog { width: calc(100% - 12px); height: calc(100dvh - 12px); border-radius: 6px; }
    .quote-builder-dialog-head { padding: 13px 14px; }
    .quote-builder-dialog-head h2 { font-size: 1.25rem; }
    .quote-builder-dialog-head-actions .button { min-height: 42px; padding: 0 12px; }
    .quote-builder-dialog-body { padding: 12px 10px 82px; }
    .quote-setup-dialog .quote-builder-dialog-body { padding-bottom: 12px; }
    .quote-builder-dialog-footer { grid-template-columns: 1fr 1fr; padding: 10px; }
    .quote-builder-dialog-footer .quote-setup-message { grid-column: 1 / -1; }
    .quote-builder-dialog-footer .button { width: 100%; min-width: 0; }
    .quote-catalog-dialog .quote-summary-heading { align-items: flex-start; }
    .quote-catalog-dialog .quote-job-settings { grid-template-columns: 1fr 1fr; }
    .quote-product-tab { min-height: 46px; padding: 0 12px; }
    .quote-catalog-dialog .quote-lines { max-height: none; }
    .product-picker-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0,1fr); overflow: hidden; }
    .product-picker-controls { display: grid; grid-template-columns: 1fr 1fr; max-height: 235px; overflow: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 10px; }
    .product-picker-rail-heading, .product-picker-search, .kitchen-type-filter { grid-column: 1 / -1; }
    .product-picker-rail-heading { display: none; }
    .kitchen-type-filter .filter-tabs { grid-template-columns: repeat(3,1fr); }
    .kitchen-type-filter .filter-tab { justify-content: center; border-right: 1px solid var(--line); border-bottom: 0; text-align: center; }
    .kitchen-type-filter .filter-tab:last-child { border-right: 0; }
    .product-picker-controls .button { width: 100%; }
    .product-picker-dialog .product-row, .product-picker-dialog .product-row.text-only { grid-template-columns: minmax(0,1fr) auto 74px 72px; gap: 7px; padding: 8px 10px; }
    .product-picker-footer { gap: 12px; padding: 10px 12px; }
    .online-quote-list-head { display: none; }
    .online-quote-row { grid-template-columns: 1fr 1fr; gap: 12px; padding: 10px 0; }
    .online-quote-main { grid-column: 1 / -1; flex-wrap: wrap; }
    .online-quote-stat { display: grid; }
    .online-quote-stat > span { display: block; }
    .online-quote-range, .online-quote-colour { grid-column: auto; }
    .online-quote-value { grid-column: 1; }
    .online-quote-status-block { grid-column: 2; }
    .online-quote-row-actions { grid-column: 1 / -1; justify-content: flex-end; }
    .online-quote-dialog-summary { grid-template-columns: 1fr 1fr; }
    .online-quote-detail-head { display: none; }
    .online-quote-detail-line { grid-template-columns: 42px 1fr auto; gap: 8px; }
    .online-quote-detail-line > div { grid-column: 2 / -1; }
    .online-quote-detail-line > :last-child { grid-column: 3; grid-row: 1; }
}

@media (max-width: 520px) {
    .quote-builder-page .portal-brand span, .quote-builder-page .account-name { display: none; }
    .quote-builder-page .price-controls { grid-template-columns: 1fr; }
    .quote-builder-page .price-controls > label:first-child, .quote-builder-page .door-setup-controls, .quote-builder-page .size-filter { grid-column: 1; }
    .quote-builder-page .mode-cards { grid-template-columns: 1fr; }
    .quote-builder-page .visible-filter-tabs { overflow-x: auto; }
    .builder-steps strong { display: none; }
    .quote-builder-dialog { width: 100%; height: 100dvh; border: 0; border-radius: 0; }
    .quote-builder-dialog-head-actions .button { width: 42px; padding: 0; overflow: hidden; color: transparent; }
    .quote-builder-dialog-head-actions .button i { color: var(--ink); font-size: 1rem; }
    .quote-catalog-dialog .quote-summary-heading, .quote-line-heading-actions { align-items: stretch; flex-direction: column; }
    .quote-send-header-action { justify-items:stretch; }
    .quote-send-header-action small { text-align:center; }
    .quote-summary-total { justify-items: start; }
    .quote-line-heading-actions .button { width: 100%; }
    .quote-catalog-dialog .quote-job-settings { grid-template-columns: 1fr; }
    .product-picker-dialog { width: 100%; height: 100dvh; border: 0; border-radius: 0; }
    .product-picker-controls { grid-template-columns: 1fr; max-height: 38dvh; overflow: auto; }
    .product-picker-search, .kitchen-type-filter { grid-column: 1; }
    .kitchen-type-filter .filter-tabs { grid-template-columns: repeat(3,1fr); }
    .kitchen-type-filter .filter-tab { min-width: 0; border-right: 1px solid var(--line); border-bottom: 0; padding: 0 5px; font-size: .56rem; }
    .product-picker-dialog .product-row, .product-picker-dialog .product-row.text-only { grid-template-columns: minmax(0,1fr) 72px; grid-template-rows: auto auto; }
    .product-picker-dialog .product-row > .product-main, .product-picker-dialog .product-row.text-only > .product-main { grid-column: 1 / -1; grid-row: 1; }
    .product-picker-dialog .product-row > .product-price, .product-picker-dialog .product-row.text-only > .product-price { grid-column: 1; grid-row: 2; justify-content: flex-start; text-align: left; }
    .product-picker-dialog .product-row > .quantity-picker, .product-picker-dialog .product-row.text-only > .quantity-picker { grid-column: 2; grid-row: 2; }
    .product-picker-dialog .product-row > .button, .product-picker-dialog .product-row.text-only > .button { grid-column: 2; grid-row: 1; }
    .product-picker-results-head { align-items: flex-start; flex-direction: column; gap: 3px; }
    .product-picker-footer { display: grid; grid-template-columns: 1fr 1fr; }
    .product-picker-footer .button { grid-column: 1 / -1; width: 100%; }
    .online-quote-row { grid-template-columns: 1fr; }
    .online-quote-main, .online-quote-range, .online-quote-colour, .online-quote-value, .online-quote-status-block, .online-quote-row-actions { grid-column: 1; }
    .online-quote-row-actions { justify-content: flex-start; }
    .delete-quote-dialog-actions { grid-template-columns: 1fr; }
    .online-quote-actions, .quote-document-actions, .online-quote-dialog-summary { grid-template-columns: 1fr; }
    #onlineQuoteDialogBody { padding: 14px; }
    .online-quote-dialog-head { padding: 14px; }
}

.quote-compare-dialog { width: min(1780px, calc(100% - 28px)); height: auto; max-height: calc(100dvh - 28px); }
.quote-compare-dialog .quote-builder-dialog-shell { height: auto; max-height: calc(100dvh - 28px); }
.quote-compare-dialog .quote-builder-dialog-body { padding: 18px; overflow: auto; }
.quote-compare-reference { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; padding: 0 2px; }
.quote-compare-reference span, .quote-compare-reference small { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.quote-compare-reference strong { font-size: 1.05rem; }
.quote-compare-reference small { margin-left: auto; }
.quote-compare-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.quote-compare-side { border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 14px; }
.quote-compare-side .eyebrow { margin: 0 0 2px; color: var(--accent); font-size: .7rem; font-weight: 900; letter-spacing: .12em; }
.quote-compare-side h3 { margin: 0 0 12px; font-size: 1.08rem; text-transform: uppercase; }
.quote-compare-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.quote-compare-fields label { display: grid; gap: 6px; min-width: 0; }
.quote-compare-fields label > span { color: var(--muted); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.quote-compare-fields select, .quote-compare-fields input { box-sizing: border-box; width: 100%; min-height: 44px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); padding: 0 10px; font: inherit; font-size: .78rem; font-weight: 800; }
.quote-compare-total { display: flex; justify-content: space-between; align-items: end; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.quote-compare-total span, .quote-compare-difference span { color: var(--muted); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.quote-compare-total strong { color: var(--teal); font-size: 1.65rem; }
.quote-compare-create { width: 100%; margin-top: 12px; padding: 11px 14px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; font: inherit; font-weight: 900; text-transform: uppercase; cursor: pointer; }
.quote-compare-create:hover, .quote-compare-create:focus-visible { background: #245f5c; color: #fff; box-shadow: 0 0 0 3px rgba(36, 95, 92, .18); }
.quote-compare-original .quote-compare-fields select:disabled,
.quote-compare-original .quote-compare-fields input:disabled { color: var(--ink); opacity: 1; cursor: default; background: #f3f0e9; }
.quote-compare-static { display: grid; gap: 6px; }
.quote-compare-static span { color: var(--muted); font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.quote-compare-static strong { min-height: 42px; display: flex; align-items: center; padding: 10px 12px; border: 1px solid var(--line); background: #f3f0e9; font-size: .83rem; text-transform: uppercase; }
.quote-compare-difference { display: flex; justify-content: flex-end; align-items: baseline; gap: 22px; margin-top: 12px; padding: 11px 16px; border-radius: 10px; background: var(--ink); color: #fff; }
.quote-compare-difference > span { display: inline-flex; align-items: baseline; gap: 8px; }
.quote-compare-difference span { color: #d8d1c7; }
.quote-compare-difference strong { font-size: 1.25rem; }
.quote-compare-difference strong.is-higher { color: #ffb4a9; }
.quote-compare-difference strong.is-lower { color: #a7e0c6; }
.online-quote-compare { color: #245f64; }

@media (max-width: 780px) {
    .quote-compare-grid, .quote-compare-fields { grid-template-columns: 1fr; }
    .quote-compare-reference { align-items: flex-start; flex-direction: column; gap: 4px; }
    .quote-compare-reference small { margin-left: 0; }
}

/* Keep catalogue search directly above the results as the list scrolls. */
.product-picker-results-toolbar { position: sticky; top: 0; z-index: 3; background: var(--paper); }
.product-picker-results-toolbar .product-picker-search { display: grid; gap: 6px; margin: 0; padding: 12px; color: var(--muted); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.product-picker-results-toolbar .product-picker-search input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 40px; border: 1px solid var(--line); border-radius: 0; padding: 8px 12px; color: var(--ink); font: 750 .8rem var(--body); background: var(--paper); }
.product-picker-results-toolbar .product-picker-results-head { position: static; }
.quote-catalog-dialog .quote-line-incompatible, .quote-catalog-dialog .quote-line-incompatible:hover, .quote-catalog-dialog .quote-line-incompatible:focus-within { background: #fff0f0; box-shadow: inset 4px 0 #b42318; }
.quote-line-incompatible .quote-line-net, .quote-line-incompatible .quote-child-lines { color: #b42318; font-weight: 800; }
.quote-compatibility-warning { padding: 12px 16px; margin: 12px 0; border: 1px solid #e5a09a; background: #fff0f0; color: #9e2118; font-weight: 750; }
.quote-compatibility-warning[hidden] { display: none; }
.quote-product-tabs .quote-product-tab.has-incompatible { color: #9e2118; background: #ffe3e6; box-shadow: inset 0 -3px 0 #c43844; }
.quote-product-tabs .quote-product-tab.has-incompatible:hover { color: #861b16; background: #ffd1d7; }
.quote-product-tabs .quote-product-tab.has-incompatible.is-active { color: #fff; background: #ae2b38; box-shadow: inset 0 -3px 0 #741c26; }
.quote-product-tabs .quote-product-tab.has-incompatible small { color: #fff; background: #b42332; }
.quote-product-tabs .quote-product-tab.has-incompatible.is-active small { background: rgba(255,255,255,.22); }
.accessory-replacements { display: grid; gap: 6px; padding: 9px 0; white-space: normal; }
.accessory-replacements > strong { color: #79251d; font-size: .68rem; }
.accessory-replacements button { display: grid; gap: 4px; width: 100%; padding: 9px 12px; border: 1px solid #d8b4af; background: #fffdfa; color: #24201d; text-align: left; white-space: normal; cursor: pointer; font: inherit; }
.accessory-replacements button:hover, .accessory-replacements button:focus-visible { border-color: #2f7b74; background: #e8f4ef; }
.accessory-replacements button span, .accessory-replacements button small { overflow: visible; white-space: normal; text-overflow: clip; }
.accessory-replacements button small { color: #745a49; font-size: .65rem; }
.quote-catalog-dialog .quote-line-pending, .quote-catalog-dialog .quote-line-pending:hover { background: #fff2d9; box-shadow: inset 4px 0 #d88417; }
.replacement-confirmation { display: grid; gap: 3px; margin-top: 2px; color: #8a4d0c; white-space: normal; }
.replacement-confirmation small { white-space: normal; overflow: visible; text-overflow: clip; }
.replacement-confirmation label { display: flex; align-items: center; gap: 8px; font-weight: 800; cursor: pointer; }
.replacement-confirmation input { width: 18px; height: 18px; accent-color: #b56a0c; }
.quote-product-tabs .quote-product-tab.has-pending-replacement { color: #80450b; background: #fff0cf; box-shadow: inset 0 -3px 0 #d88417; }
.quote-product-tabs .quote-product-tab.has-pending-replacement.is-active { color: #fff; background: #a9620b; }
.quote-product-tabs .quote-product-tab.has-pending-replacement small { color: #fff; background: #b56a0c; }
.quote-compatibility-warning.has-pending-only { color: #80450b; background: #fff2d9; border-color: #e2b46b; }
.quote-catalog-dialog .accessory-replacements .replacement-options-intro { color: var(--muted); font-weight: 400; font-size: .68rem; white-space: normal; overflow: visible; text-overflow: clip; }
/* Keep replacement confirmation beside the description, without an extra row. */
.quote-catalog-dialog .quote-line-pending .quote-line-description { position: relative; padding-left: 30px; }
.quote-catalog-dialog .quote-line-description > .replacement-confirm-tick { position: absolute; top: 50%; transform: translateY(-50%); left: 0; width: 20px; height: 20px; margin: 0; padding: 0; accent-color: #b56a0c; cursor: pointer; }
/* Align the shared Description heading with pending replacement text on every tab. */
.quote-catalog-dialog .quote-line-table-header > span:nth-child(4) { padding-left: 30px; }

.quote-discount-overview { margin: 0 0 24px; padding: 20px 24px; border: 1px solid var(--line); background: #fffdfa; }
.quote-discount-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.quote-discount-heading h2 { margin:0; font-size:1.2rem; }
.quote-discount-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:16px; }
.quote-discount-summary span { display:flex; align-items:center; gap:12px; justify-content:space-between; }
.quote-discount-summary small { color:var(--muted); }
.quote-discount-dialog { width:min(680px,calc(100vw - 32px)); max-height:90vh; overflow:auto; box-sizing:border-box; padding:24px; border:1px solid var(--line); background:#fffdfa; color:var(--ink); }
.quote-discount-dialog::backdrop { background:#0008; }
.quote-discount-dialog p { color:var(--muted); }
.quote-discount-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.quote-discount-fields label { display:grid; gap:6px; font-weight:700; }
.quote-discount-fields label span { display:flex; align-items:center; gap:8px; }
.quote-discount-fields input { width:100%; min-width:0; padding:10px; border:1px solid var(--line); font:inherit; }
.quote-discount-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:20px; }
@media(max-width:650px) { .quote-discount-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:420px) { .quote-discount-fields { grid-template-columns:1fr; } }

/* Compact account discounts above the new-quote action. */
.quote-hub-heading { align-items: flex-start; padding-top: 24px; gap: 24px; }
.quote-hub-heading > div:first-child { flex: 1; min-width: 0; }
.quote-hub-intro > p:last-of-type { margin: 14px 0 0; color: var(--muted); font-size: 1.02rem; }
.quote-hub-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; flex: 0 0 520px; max-width: 48%; }
.quote-hub-primary-actions { display: flex; align-items: stretch; justify-content: flex-end; gap: 8px; width: 100%; }
.quote-hub-primary-actions .button { flex: 1 1 0; min-height: 42px; padding: 10px 18px; border-radius: 10px; font-size: .85rem; }

.quote-customer-info-dialog { box-sizing: border-box; width: min(720px, calc(100vw - 32px)); max-height: min(760px, calc(100vh - 32px)); padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fffdfa; color: var(--ink); }
.quote-customer-info-dialog::backdrop { background: rgba(20, 17, 14, .64); }
.quote-customer-info-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.quote-customer-info-heading span { color: var(--bronze); font-size: .7rem; font-weight: 850; letter-spacing: .04em; }
.quote-customer-info-heading h2 { margin: 2px 0 0; font-size: 1.45rem; }
.quote-customer-info-close { display: grid; width: 40px; height: 40px; place-items: center; border: 0; border-radius: 9px; background: var(--ink); color: #fff; font: 800 1.4rem/1 var(--body); cursor: pointer; }
.quote-customer-info-display { max-height: 380px; margin: 18px 20px 0; padding: 15px 16px; overflow: auto; border: 1px solid var(--line); background: var(--paper); font-size: .88rem; font-weight: 650; line-height: 1.5; white-space: pre-line; }
.quote-customer-info-editor { display: grid; gap: 7px; margin: 18px 20px 0; color: var(--muted); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.quote-customer-info-editor textarea { box-sizing: border-box; width: 100%; min-height: 180px; max-height: 380px; padding: 14px 16px; resize: vertical; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); color: var(--ink); font: 650 .88rem/1.5 var(--body); text-transform: none; }
.quote-customer-notes-dialog { width: min(1240px, calc(100vw - 32px)); }
.quote-customer-notes-dialog .quote-customer-info-display { max-height: 440px; }
.quote-customer-notes-dialog .quote-customer-info-display ul { margin: 0; padding-left: 20px; list-style: disc; }
.quote-customer-notes-dialog .quote-customer-info-display li { padding-left: 4px; }
.quote-customer-notes-dialog .quote-customer-info-display li + li { margin-top: 5px; }
.quote-customer-notes-dialog .quote-customer-info-editor textarea { min-height: 300px; }
.quote-customer-info-editor textarea:focus { outline: 2px solid rgba(47, 123, 116, .26); border-color: #2f7b74; }
.quote-customer-info-message { min-height: 20px; margin: 8px 20px 0; color: var(--muted); font-size: .75rem; font-weight: 750; }
.quote-customer-info-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 0 20px 18px; }
.quote-customer-info-actions .button { min-width: 100px; border-radius: 9px; }
.quote-terms-body { padding: 18px 20px; }
.quote-terms-body .quote-discount-summary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 28px; margin: 0; }
.quote-terms-body .quote-discount-summary small { font-size: .78rem; font-weight: 750; }
.quote-customer-info-display[hidden],
.quote-customer-info-editor[hidden],
.quote-customer-info-actions [hidden] { display: none; }
@media(max-width:900px) {
  .quote-hub-heading { flex-direction: column; }
  .quote-hub-actions { flex-basis: auto; width: 100%; max-width: none; }
}
@media(max-width:520px) {
  .quote-hub-primary-actions { flex-wrap: wrap; }
  .quote-hub-primary-actions .button { flex-basis: 100%; }
}

/* Delivery is collected as a focused step between the order setup and quote builder. */
.quote-delivery-dialog { width: min(1100px, calc(100% - 28px)); }
.quote-delivery-dialog .quote-builder-dialog-head { padding: 10px 16px; }
.quote-delivery-dialog .quote-builder-dialog-head h2 { font-size: 1.3rem; }
.quote-delivery-dialog .quote-builder-dialog-body { padding: 8px 10px; }
.quote-delivery-dialog .quote-builder-dialog-footer { padding: 8px 12px; }
.quote-delivery-dialog .quote-builder-dialog-footer .button { min-height: 40px; }
.delivery-details-panel { border: 1px solid var(--line); background: #fffdfa; padding: 10px 12px; }
.delivery-saved-addresses { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3px; margin-bottom: 8px; }
.delivery-saved-addresses > label,
.delivery-address-nickname > label { color: var(--muted); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.delivery-saved-addresses select,
.delivery-address-nickname input { box-sizing: border-box; width: 100%; min-height: 34px; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); padding: 5px 10px; font: 750 .82rem var(--body); }
.delivery-saved-addresses small { color: var(--muted); font-size: .66rem; line-height: 1.2; }
.delivery-primary-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 8px; }
.delivery-invoice-toggle,
.delivery-saved-toggle,
.delivery-collection-toggle { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 6px 10px; border: 1px solid #d9cdbd; background: #f4eee4; cursor: pointer; }
.delivery-invoice-toggle input,
.delivery-saved-toggle input { flex: 0 0 auto; width: 20px; height: 20px; margin: 0; accent-color: var(--ink); }
.delivery-collection-toggle input { flex: 0 0 auto; width: 20px; height: 20px; margin: 0; accent-color: var(--ink); }
.delivery-invoice-toggle span,
.delivery-saved-toggle span,
.delivery-collection-toggle span { display: grid; gap: 1px; min-width: 0; }
.delivery-invoice-toggle strong,
.delivery-saved-toggle strong,
.delivery-collection-toggle strong { font-size: .8rem; text-transform: uppercase; }
.delivery-invoice-toggle small,
.delivery-collection-toggle small { color: var(--muted); font-size: .66rem; }
.delivery-collection-toggle:has(input:checked) { border-color: #2f7b74; background: #e8f4ef; }
.delivery-saved-toggle:has(input:checked) { border-color: #2f7b74; background: #e8f4ef; }
.delivery-invoice-toggle[hidden],
.delivery-saved-toggle[hidden] { display: none; }
.delivery-address-selection[hidden],
.delivery-address-field[hidden],
.delivery-site-phone-field[hidden],
.delivery-final-options[hidden],
.delivery-save-address-toggle[hidden] { display: none; }
.delivery-details-intro { margin: 0 0 8px; color: var(--muted); font-size: .7rem; }
.delivery-address-search { margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.delivery-address-search > label { display: block; margin-bottom: 6px; color: var(--muted); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.delivery-address-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.delivery-address-search-row input { box-sizing: border-box; width: 100%; min-width: 0; min-height: 46px; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); padding: 10px 12px; font: 750 .86rem var(--body); }
.delivery-address-search-row input:focus { outline: 2px solid rgba(47, 123, 116, .26); border-color: #2f7b74; }
.delivery-address-search-row .button { min-height: 46px; white-space: nowrap; }
.delivery-address-search > p { margin: 6px 0 0; color: var(--muted); font-size: .7rem; }
.delivery-address-results { display: grid; gap: 7px; max-height: 248px; margin-top: 10px; padding: 10px; overflow-y: auto; border: 1px solid #d9cdbd; background: #f4eee4; }
.delivery-address-results[hidden] { display: none; }
.delivery-address-result { display: grid; gap: 3px; width: 100%; padding: 10px 12px; border: 1px solid var(--line); background: #fffdfa; color: var(--ink); text-align: left; font: inherit; cursor: pointer; }
.delivery-address-result:hover, .delivery-address-result:focus-visible { border-color: #2f7b74; background: #e8f4ef; outline: 0; }
.delivery-address-result strong { font-size: .8rem; }
.delivery-address-result small { color: var(--muted); font-size: .68rem; }
.delivery-address-result-note { margin: 0; padding: 3px 2px; color: var(--muted); font-size: .72rem; }
.delivery-address-result-summary { margin: 0; padding: 1px 2px 3px; color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.delivery-address-attribution { margin: 2px 2px 0; color: #5e5e5e; font-family: Roboto, sans-serif; font-size: 12px; font-style: normal; font-weight: 400; letter-spacing: normal; white-space: nowrap; }
.delivery-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.delivery-details-grid label { display: grid; align-content: start; gap: 3px; color: var(--muted); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.delivery-details-grid .delivery-address-wide { grid-column: 1 / -1; }
.delivery-details-grid input,
.delivery-details-grid textarea { box-sizing: border-box; width: 100%; min-width: 0; min-height: 34px; border: 1px solid var(--line); border-radius: 0; background: var(--paper); color: var(--ink); padding: 5px 10px; font: 750 .82rem var(--body); text-transform: none; }
.delivery-details-grid textarea { min-height: 112px; resize: vertical; line-height: 1.4; }
.delivery-details-grid input:focus,
.delivery-details-grid textarea:focus { outline: 2px solid rgba(47, 123, 116, .26); border-color: #2f7b74; }
.delivery-final-options { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; margin-top: 10px; }
.delivery-final-options.is-local-delivery { grid-template-columns: minmax(0, 1fr); }
.delivery-option-card { min-width: 0; padding: 7px 10px; border: 1px solid #d9cdbd; background: #f4eee4; }
.delivery-save-address-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.delivery-save-address-toggle input { flex: 0 0 auto; width: 20px; height: 20px; margin: 0; accent-color: var(--ink); }
.delivery-save-address-toggle span { display: grid; gap: 2px; }
.delivery-save-address-toggle strong { font-size: .78rem; text-transform: uppercase; }
.delivery-save-address-toggle small { color: var(--muted); font-size: .68rem; }
.delivery-address-nickname { display: grid; gap: 3px; margin-top: 8px; }
.delivery-address-nickname[hidden] { display: none; }
.delivery-footer-left { display: flex; align-items: center; min-width: 0; gap: 14px; }
.delivery-footer-left .delivery-save-address-toggle { flex: 0 1 auto; }
.delivery-footer-left .delivery-address-nickname { flex: 0 1 310px; min-width: 220px; margin-top: 0; grid-template-columns: auto minmax(150px, 1fr); align-items: center; gap: 8px; }
.delivery-footer-left .delivery-address-nickname > label { white-space: nowrap; }
.delivery-footer-left .delivery-save-premium { grid-column: 1 / -1; display: flex; align-items: center; gap: 7px; color: var(--ink); font-size: .68rem; font-weight: 800; text-transform: none; cursor: pointer; }
.delivery-footer-left .delivery-save-premium[hidden] { display: none; }
.delivery-save-premium input { flex: 0 0 auto; width: 16px; height: 16px; margin: 0; accent-color: var(--ink); }
.delivery-footer-left .quote-setup-message { flex: 1 1 180px; }
.delivery-kerbside-card,
.delivery-premium-card { display: grid; align-content: start; gap: 2px; }
.delivery-premium-card[hidden] { display: none; }
.delivery-option-eyebrow { color: #8c6339; font-size: .65rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.delivery-kerbside-card > strong { font-size: .78rem; text-transform: uppercase; }
.delivery-kerbside-card > small { color: var(--muted); font-size: .66rem; line-height: 1.25; }
.delivery-premium-toggle { display: flex; align-items: center; gap: 10px; margin-top: 2px; cursor: pointer; }
.delivery-premium-toggle input { flex: 0 0 auto; width: 20px; height: 20px; margin: 0; accent-color: var(--ink); }
.delivery-premium-toggle span { display: grid; gap: 1px; }
.delivery-premium-toggle strong { font-size: .74rem; text-transform: uppercase; }
.delivery-premium-toggle small { color: var(--muted); font-size: .65rem; line-height: 1.2; }
.delivery-premium-toggle:has(input:disabled) { cursor: default; opacity: .72; }
.delivery-details-help { margin: 8px 0 0; color: var(--muted); font-size: .68rem; }
.quote-job-settings .delivery-summary-value { white-space: normal; }

@media (max-width: 650px) {
  .quote-delivery-dialog { width: 100%; }
  .delivery-details-panel { padding: 14px; }
  .delivery-primary-options { grid-template-columns: 1fr; }
  .delivery-address-search-row { grid-template-columns: 1fr; }
  .delivery-details-grid { grid-template-columns: 1fr; }
  .delivery-details-grid .delivery-address-wide { grid-column: 1; }
  .quote-delivery-dialog .quote-builder-dialog-footer { grid-template-columns: 1fr 1fr; }
  .delivery-footer-left { grid-column: 1 / -1; flex-wrap: wrap; }
  .delivery-final-options { grid-template-columns: 1fr; }
}

/* Highlight made-to-measure fronts, including the changed dimension. */
.special-door-description, .cart-child-line .special-door-description, .quote-child-lines .special-door-description { color: #b42318 !important; }
.special-door-description strong { font-weight: 800; color: inherit; }
.special-sell-preview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 24px; margin-top:20px; padding:16px 20px; border:1px solid #d6cabb; border-radius:6px; background:#fff; }
.special-sell-preview > div { display:flex; flex-direction:column; gap:5px; }
.special-sell-preview small { font-size:12px; color:#71695f; }
.special-sell-preview strong { font-size:22px; color:#27231e; }
.special-sell-preview .special-sell-caption { grid-column:1/-1; font-size:12px; }
@media(max-width:580px) { .special-sell-preview { gap:12px; padding:12px; } .special-sell-preview strong { font-size:18px; } }
/* Compact, single-line sketch attachment strip. */
.special-editor-dialog .quote-line-sketch { flex-wrap: nowrap; align-items: center; gap: 10px; padding: 8px 12px; }
.special-editor-dialog .special-sketch-details { flex-direction: row; align-items: center; gap: 12px; flex: 1 1 auto; overflow: hidden; }
.special-editor-dialog .special-sketch-status { flex-shrink: 0; white-space: nowrap; }
.special-editor-dialog .quote-sketch-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.special-editor-dialog .special-sketch-symbol, .special-editor-dialog .special-sketch-preview { width: 30px; height: 30px; flex: 0 0 30px; }
.special-editor-dialog .special-sketch-symbol { font-size: 1.2rem; }
.special-editor-dialog .special-sketch-actions { flex-wrap: nowrap; flex-shrink: 0; }
.special-editor-dialog .special-sketch-actions .quote-sketch-upload, .special-editor-dialog .special-sketch-actions button { min-height: 34px; padding: 6px 12px; }
@media(max-width:580px) {
 .special-editor-dialog .quote-line-sketch { gap: 6px; padding: 6px 8px; }
 .special-editor-dialog .special-sketch-status { font-size: .68rem; }
 .special-editor-dialog .quote-sketch-name { display: none; }
 .special-editor-dialog .special-sketch-actions { gap: 4px; }
 .special-editor-dialog .special-sketch-actions .quote-sketch-upload, .special-editor-dialog .special-sketch-actions button { min-height: 44px; padding: 6px 8px; font-size: .68rem; }
}
/* Keep door sizing guidance close to its rows. */
.special-editor-dialog .special-door-section { margin-top: 10px; }
.special-editor-dialog .special-door-section h3 { margin: 0 0 3px; font-size: .85rem; line-height: 1.2; }
.special-editor-dialog .special-door-help { margin: 0 0 5px; font-size: .68rem; line-height: 1.3; }
.special-editor-dialog .special-door-row { margin-top: 4px; }
/* Compact popup shell and shared price/action footer. */
.special-editor-dialog { padding: 14px 18px; }
.special-editor-dialog header { align-items: center; gap: 12px; margin-bottom: 12px; }
.special-editor-dialog h2 { margin: 2px 0 0; font-size: 1.1rem; line-height: 1.2; }
.special-editor-dialog header small { font-size: .75rem; line-height: 1.2; }
.special-editor-dialog header button { min-width: 34px; min-height: 34px; width: 34px; height: 34px; }
.special-editor-dialog .quote-line-special-fields { gap: 10px 12px; }
.special-editor-dialog .quote-line-special-fields > label { gap: 4px; }
.special-editor-dialog .quote-line-special-fields input[type="text"] { min-height: 38px; padding: 7px 10px; }
.special-editor-dialog [role="status"] { margin: 6px 0; }
.special-editor-dialog [role="status"]:empty { display: none; }
.special-editor-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 12px; padding: 0; }
.special-editor-dialog footer .special-sell-preview { flex: 1 1 auto; margin: 0; padding: 10px 12px; gap: 5px 16px; }
.special-editor-dialog footer .special-sell-preview strong { font-size: 18px; }
.special-footer-actions { display: flex; flex-shrink: 0; gap: 8px; }
.special-editor-dialog .special-footer-actions button { min-height: 38px; padding: 7px 14px; }
@media(max-width:700px) {
 .special-editor-dialog { padding: 12px; }
 .special-editor-dialog footer { flex-wrap: wrap; gap: 8px; }
 .special-editor-dialog footer .special-sell-preview { flex-basis: 100%; }
 .special-footer-actions { margin-left: auto; }
 .special-editor-dialog .special-footer-actions button, .special-editor-dialog header button { min-height: 44px; }
}
.special-editor-dialog footer .special-sell-preview { grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(240px,1.6fr); }
.special-change-breakdown { display:flex; gap:14px; justify-content:space-between; }
.special-change-breakdown > span { display:flex; flex-direction:column; gap:3px; white-space:nowrap; }
.special-editor-dialog footer .special-change-breakdown strong { font-size:16px; }
.special-change-breakdown > span:last-child { border-left:1px solid #d6cabb; padding-left:12px; }
@media(max-width:950px) { .special-editor-dialog footer { flex-wrap:wrap; } .special-editor-dialog footer .special-sell-preview { flex-basis:100%; } .special-footer-actions { margin-left:auto; } }
@media(max-width:580px) { .special-editor-dialog footer .special-sell-preview { grid-template-columns:repeat(2,minmax(0,1fr)); } .special-sell-preview > div:nth-child(3) { grid-column:1/-1; } }
/* Inline sell summary shares the action-button baseline. */
.special-editor-dialog footer .special-sell-preview { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; flex:1 1 auto; gap:4px 14px; margin:0; padding:0; border:0; border-radius:0; background:transparent; }
.special-editor-dialog footer .special-sell-preview > div { display:flex; flex-direction:row; align-items:baseline; gap:5px; }
.special-editor-dialog footer .special-sell-preview small { font-size:10px; line-height:1.3; }
.special-editor-dialog footer .special-sell-preview strong, .special-editor-dialog footer .special-change-breakdown strong { font-size:12px; line-height:1.3; }
.special-editor-dialog footer .special-change-breakdown { display:flex; align-items:baseline; justify-content:flex-start; gap:9px; }
.special-editor-dialog footer .special-change-breakdown > span { flex-direction:row; align-items:baseline; gap:4px; }
.special-editor-dialog footer .special-change-breakdown > span:last-child { padding-left:9px; }
.special-editor-dialog footer .special-sell-caption { flex-basis:100%; }
@media(min-width:701px) { .special-editor-dialog footer { flex-wrap:nowrap; } .special-editor-dialog footer .special-sell-preview { flex-basis:auto; } }
@media(max-width:700px) { .special-editor-dialog footer .special-sell-preview { flex-basis:100%; } }

/* Uniform light type across the inline sell summary. */
.special-editor-dialog footer .special-sell-preview small, .special-editor-dialog footer .special-sell-preview strong, .special-editor-dialog footer .special-change-breakdown strong { font-size: 10px; font-weight: 400; color: var(--muted, #71695f); line-height: 1.3; }
/* One-line desktop summary aligned to the bottom of the action buttons. */
.special-editor-dialog footer { align-items: flex-end; }
.special-editor-dialog footer .special-sell-preview { flex-wrap: nowrap; gap: 10px; min-width: 0; padding-bottom: 1px; }
.special-editor-dialog footer .special-sell-preview > div { flex-shrink: 0; }
.special-editor-dialog footer .special-sell-caption { flex-basis: auto; flex-shrink: 0; white-space: nowrap; }
@media(max-width:950px) {
 .special-editor-dialog footer { flex-wrap: wrap; }
 .special-editor-dialog footer .special-sell-preview { flex-basis: 100%; flex-wrap: wrap; }
}
/* Brief stock-size explanation, above the button and never intercepting clicks. */
.special-editor-dialog [data-stock-hint] { position: relative; }
.special-editor-dialog [data-stock-hint]::after { content:attr(data-stock-hint); position:absolute; bottom:calc(100% + 8px); right:0; width:250px; max-width:calc(100vw - 64px); box-sizing:border-box; padding:10px 12px; border:1px solid #d6cabb; border-radius:6px; background:#faf7ef; color:#24201b; box-shadow:0 3px 12px rgb(0 0 0 / 16%); font:600 11px/1.4 var(--body,Arial,sans-serif); text-align:left; white-space:normal; pointer-events:none; opacity:0; visibility:hidden; z-index:10; }
.special-editor-dialog [data-stock-hint]:not(:disabled):is(:hover,:focus-visible)::after { animation:stock-size-hint 3s ease-out forwards; }
@keyframes stock-size-hint { 0%,90% { opacity:1; visibility:visible; } 100% { opacity:0; visibility:hidden; } }
.special-door-thickness-info { display:flex; flex-direction:column; gap:4px; font-size:.75rem; }
.special-door-thickness-info > span { color:var(--muted,#71695f); font-weight:750; }
.special-door-thickness-info > div { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; padding:8px 0; }
.special-door-thickness-info strong { font:inherit; color:var(--muted,#71695f); font-weight:750; }
.special-door-thickness-info small { font-size:.65rem; color:var(--muted,#71695f); font-weight:400; }

@media (max-width: 680px) { .quote-builder-page .drawer-system-field { grid-column: 1 / -1; width: 100%; } }
/* Order settings: three fields per row, matching options at the right. */
.quote-builder-page .price-controls .drawer-system-field { max-width: none; }
.quote-builder-page .drawer-system-field > span:first-child { text-align: center; }
@media (min-width: 901px) {
 .quote-builder-page .combined-order-settings .price-controls { grid-template-columns: minmax(0,.7fr) minmax(0,.7fr) minmax(0,1.6fr) minmax(340px,420px); align-items: start; }
 .quote-builder-page .combined-order-settings .price-controls .range-results-simple { grid-column: 1; grid-row: 1; }
 .quote-builder-page .combined-order-settings .price-controls #doorColourControl { grid-column: 2; grid-row: 1; }
 .quote-builder-page .price-controls > label:has(#carcassColour) { grid-column: 1; grid-row: 2; }
 .quote-builder-page .price-controls > label:has(#carcassEdging) { grid-column: 2; grid-row: 2; }
 .quote-builder-page .price-controls > label:has(#tallHeightFilter) { grid-column: 2; grid-row: 2; }
 .quote-builder-page .price-controls > label:has(#wallHeightFilter) { grid-column: 3; grid-row: 2; }
 .quote-builder-page .price-controls > .drawer-system-field { grid-column: 4; grid-row: 1; width: 100%; }
 .quote-builder-page .price-controls > .wall-brackets-field { grid-row: 2; }
 .quote-builder-page .price-controls > .hinge-plates-field { grid-row: 3; }
 .quote-builder-page.carcass-only-quote .price-controls > label:has(#carcassColour),
 .quote-builder-page.carcass-only-quote .price-controls > label:has(#carcassEdging) { grid-row: 1; }
}
.special-editor-dialog [data-stock-special-door]:disabled { opacity: .4; cursor: default; }
.quote-builder-page .quote-mode-topline > .kitchen-type-field { grid-column: 1; grid-row: 2; width: 100%; max-width: none; }

.quote-builder-page [data-complete-quote-only][hidden] { display: none !important; }

.quote-builder-page .hinge-plates-field[hidden] { display: none !important; }

/* Door filters share the columns and control sizes of range and colour. */
.quote-builder-page .price-controls > .door-filter-field { grid-column: auto; grid-template-rows: auto 36px; }
.quote-builder-page .price-controls > .door-filter-field select { height: 36px; min-height: 36px; padding: 7px 10px; font: inherit; font-size: .82rem; }
.quote-builder-page .door-filter-results-meta { display: none; grid-column: 1 / -1; align-self: end; color: var(--muted); font-size: .66rem; font-weight: 850; text-transform: uppercase; }
@media (min-width: 901px) {
 .quote-builder-page .price-controls > .door-filter-field:has(#doorStyleFilter) { grid-column: 1; grid-row: 1; }
 .quote-builder-page .price-controls > .door-filter-field:has(#materialFilter) { grid-column: 2; grid-row: 1; }
 .quote-builder-page .price-controls > .door-filter-results-meta { grid-column: 3; grid-row: 1; }
 .quote-builder-page .combined-order-settings .price-controls .range-results-simple { grid-row: 2; }
 .quote-builder-page .combined-order-settings .price-controls #doorColourControl { grid-row: 2; }
 .quote-builder-page:not(.carcass-only-quote) .price-controls > label:has(#carcassColour),
 .quote-builder-page:not(.carcass-only-quote) .price-controls > label:has(#carcassEdging) { grid-row: 3; }
}

/* Override the shared portal print rule that hides all non-order documents. */
@media print {
 body.quote-builder-page > #printQuoteDocument { display: block !important; }
}

/* Portrait order details: paired fields followed by full-width options. */
#quoteSetupDialog { width: min(560px, calc(100% - 28px)); }
#quoteSetupDialog .quote-mode-panel { gap: 0; background: transparent; box-shadow: none; }
#quoteSetupDialog .quote-mode-topline { grid-template-columns: minmax(0,1fr); gap: 7.68px; margin-bottom: 7.68px; }
#quoteSetupDialog .quote-mode-topline > .top-reference-field { grid-column: 1; grid-row: 1; grid-template-rows: auto 36px; }
#quoteSetupDialog #customerReference { height: 36px; min-height: 36px; }
#quoteSetupDialog .quote-mode-topline > .mode-cards { grid-column: 1; grid-row: 2; }
#quoteSetupDialog .quote-mode-topline > .kitchen-type-field { grid-column: 1; grid-row: 3; }
#quoteSetupDialog .combined-order-settings { margin-top: 0; }
#quoteSetupDialog .combined-order-settings .price-controls { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9.6px; }
#quoteSetupDialog .price-controls > *,
#quoteSetupDialog .price-controls #doorColourControl { grid-column: auto; grid-row: auto; }
#quoteSetupDialog .price-controls > .drawer-system-field { grid-column: 1 / -1; width: 100%; max-width: none; }
#quoteSetupDialog .price-controls > .wall-brackets-field,
#quoteSetupDialog .price-controls > .hinge-plates-field { margin-top: -1.92px; }
#quoteSetupDialog .order-installation-notes { width: 100%; }

#quoteSetupDialog #drawerSystemLabel,
#quoteSetupDialog #wallBracketsLabel,
#quoteSetupDialog #hingePlatesLabel { display: none; }

/* Keep the product tab bar flush with the review warning and line grid. */
.quote-builder-page .quote-compatibility-warning { margin: 0; }


/* Remedial kitchen-unit rows expose flatpack beside the existing handing controls. */
.quote-catalog-dialog .remedial-flatpack-columns .quote-line-table-header,
.quote-catalog-dialog .remedial-flatpack-columns .quote-line {
 grid-template-columns:38px 74.75px 128px minmax(186px,1fr) 72px 38.24px 38.24px 38.24px 112.36px 72px 47.52px 72px 32.08px;
 min-width:1188px;
}

/* Keep band guidance in the native colour menu, with a concise closed value. */
.carcass-colour-display { position: relative; width: 100%; }
.carcass-colour-display #carcassColour { color: transparent !important; text-shadow: none; width: 100%; }
.carcass-colour-display #carcassColour option,
.carcass-colour-display #carcassColour optgroup { color: #25211d; }
.carcass-colour-selected { position: absolute; inset: 0 30px 0 0; display: flex; align-items: center; pointer-events: none; color: #25211d; white-space: nowrap; overflow: hidden; }

/* Allow the confirmation action to retain its full label. */
.quote-send-header-action { flex-shrink:0; }
#sendQuoteHeaderButton { min-width:240px; padding-left:22px; padding-right:22px; }
.quote-line-heading-actions { flex-wrap:wrap; justify-content:flex-end; }

/* Prices share the section-tab row to keep the quote header compact. */
.quote-tabs-summary { display:flex; align-items:stretch; min-width:0; background:#f4efe7; }
.quote-tabs-summary > .quote-product-tabs { flex:1 1 auto; min-width:0; }
.quote-tabs-summary > .quote-summary-total { flex:0 0 auto; display:flex; flex-direction:column; justify-content:center; align-items:flex-end; gap:0; padding:3px 17px 3px 12px; }
.quote-tabs-summary .quote-summary-prices { gap:20px; }
.quote-tabs-summary .quote-summary-prices small { font-size:.55rem; line-height:1.1; }
.quote-tabs-summary .quote-summary-prices strong { font-size:1.15rem; line-height:1.15; }
.quote-tabs-summary .quote-summary-total > span { font-size:.53rem; line-height:1.15; white-space:nowrap; }



/* Compact quote and remedial builder spacing. */
#quoteBuilderDialog > .quote-builder-dialog-shell > .quote-builder-dialog-head { padding-top:12px; padding-bottom:12px; }
#quoteBuilderDialog > .quote-builder-dialog-shell > .quote-builder-dialog-body { padding-top:11.9px; }
#quoteBuilderDialog .quote-workflow-strip { padding-top:11px; padding-bottom:11px; margin-bottom:11.9px; }
#quoteBuilderDialog .quote-summary-panel { padding-top:0; }

.quote-builder-page #onlineQuotes { padding-top:12px; }
#onlineQuotes > .builder-section-heading { margin-bottom:12px; }
#onlineQuotes > .builder-section-heading .eyebrow { margin-top:0; }

.product-picker-dialog .product-row.is-just-added { background:#dcebe2; box-shadow:inset 4px 0 #2c674c; }
.product-picker-dialog .product-row.is-just-added [data-add] { background:#2c674c; border-color:#2c674c; color:#fff; }

/* Crisp circular save indicators, matching the approved reference. */
.quote-save-icon { width: 30px; height: 30px; flex: 0 0 30px; display: block; }
.quote-autosave-status.is-saving .quote-save-icon { animation: quote-save-rotate 1.6s linear infinite; }
@keyframes quote-save-rotate { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .quote-autosave-status.is-saving .quote-save-icon { animation: none; } }

.quote-builder-dialog-head-actions .quote-header-icon, .quote-add-item-icon { display:inline-flex; align-items:center; justify-content:center; width:44px; min-width:44px; height:44px; min-height:44px; padding:7px; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.quote-header-icon:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.quote-header-icon:disabled { cursor:wait; }
.quote-status-sr { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.quote-autosave-status.is-error { outline:2px solid #9a372d; }
#returnToQuotesButton.quote-header-icon { width:44px !important; height:44px !important; padding:7px !important; min-width:44px !important; }

/* Whole-pixel header icons: larger outlines on a native 35px canvas. */
.quote-builder-dialog-head-actions .quote-save-icon { width:35px; height:35px; flex:0 0 35px; filter:none; opacity:1; }
.quote-builder-dialog-head-actions #printQuoteHeaderButton { width:44px; height:44px; padding:7px; border:0; background:transparent; }

/* Lift without scaling to keep the icon strokes sharp. */
.quote-builder-dialog-head-actions .quote-header-icon:hover, .quote-add-item-icon:hover { transform:translateY(-1px) !important; }
.quote-builder-dialog-head-actions .quote-header-icon:active, .quote-add-item-icon:active { transform:translateY(0) !important; }

.quote-builder-dialog-head-actions .quote-header-icon, .quote-builder-dialog-head-actions #printQuoteHeaderButton, #returnToQuotesButton.quote-header-icon { width:49px !important; min-width:49px !important; height:49px !important; padding:7px !important; }

#quoteAutosaveStatus:disabled { cursor:default; opacity:.45; transform:none !important; box-shadow:none !important; }

/* Use the same outline icon family and scale as the saved-quote Actions. */
#quoteBuilderDialog .quote-builder-dialog-head-actions .quote-header-icon > .bi, #quoteBuilderDialog .quote-add-item-icon > .bi {
  display:block; font-size:var(--quote-control-size); line-height:1; color:var(--ink); font-weight:400;
}
#quoteBuilderDialog .quote-builder-dialog-head-actions .quote-header-icon, #quoteBuilderDialog .quote-add-item-icon {
  width:44px !important; min-width:44px !important; height:44px !important; padding:0 !important;
}
#quoteAutosaveStatus.is-saving > .bi-arrow-repeat { animation:quote-save-rotate 1.6s linear infinite; }
@media (prefers-reduced-motion:reduce) { #quoteAutosaveStatus.is-saving > .bi-arrow-repeat { animation:none; } }
/* Compact quote actions share the approved header icon style. */
#quoteBuilderDialog > .quote-builder-dialog-shell > .quote-builder-dialog-head { overflow:visible !important; position:relative; z-index:150; }
.quote-builder-dialog-head-actions { position:relative; }
.quote-actions-dropdown { position:static; }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu) { position:absolute; top:calc(100% + 8px); right:0; width:270px; max-width:calc(100vw - 40px); padding:6px; border:1px solid var(--line); border-radius:8px; background:var(--paper); box-shadow:0 8px 24px rgba(38,33,27,.16); }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu)[hidden] { display:none; }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu) > button { display:block; width:100%; min-height:44px; border:0; border-radius:4px; padding:12px 14px; background:transparent; color:var(--ink); text-align:left; font:700 .8rem/1.35 var(--body); text-transform:uppercase; cursor:pointer; transform:none!important; box-shadow:none; }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu) > button:hover, :is(#quoteActionsMenu, #onlineQuotesActionsMenu) > button:focus-visible { background:rgba(139,112,80,.1); outline:2px solid transparent; }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu) > button:focus-visible { outline-color:var(--bronze); }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu) > button:disabled { opacity:.45; cursor:default; background:transparent; }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu) > small { display:block; padding:4px 14px; color:var(--muted); }
:is(#quoteActionsMenu, #onlineQuotesActionsMenu) > small[hidden] { display:none; }

/* Only scroll the quote body when its content exceeds the available height. */
#quoteBuilderDialog > .quote-builder-dialog-shell > .quote-builder-dialog-body { padding-bottom:20px; overflow-y:auto; scrollbar-gutter:auto; }

/* Fill the desktop quote window with the line list instead of a viewport offset. */
@media (min-width:781px) {
  #quoteBuilderDialog > .quote-builder-dialog-shell > .quote-builder-dialog-body { display:grid; grid-template-rows:auto minmax(0,1fr); }
  #quoteBuilderDialog .quote-summary-section { display:flex; min-height:0; margin-bottom:0; }
  #quoteBuilderDialog .quote-summary-panel { display:flex; flex-direction:column; flex:1; min-width:0; min-height:0; }
  #quoteBuilderDialog .quote-summary-panel > :not(.quote-lines) { flex:0 0 auto; }
  #quoteBuilderDialog #quoteLines { flex:1 1 auto; min-height:0; max-height:none; height:auto; align-content:start; overflow:auto; }
}
.quote-compatibility-warning.is-checking-prices { padding:6px 12px; border-color:transparent; background:transparent; color:var(--muted); font-size:.75rem; font-weight:500; }

/* Saved quotes use the same compact header controls as Build Quote. */
.quote-builder-page .quote-builder-main { padding-top:16px; }
#onlineQuotes > .online-quotes-heading { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:16px 24px; padding-bottom:16px; border-bottom:0; }
.online-quotes-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-left:auto; position:relative; }
.online-quotes-header-actions .quote-header-icon { display:inline-flex; align-items:center; justify-content:center; width:44px; min-width:44px; height:44px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; text-decoration:none; }
.online-quotes-header-actions .quote-header-icon > .bi { display:block; font-size:var(--quote-control-size,1.265rem); font-weight:400; line-height:1; }
.online-quotes-header-actions .quote-header-icon:hover { transform:translateY(-1px); }
#onlineQuotesActionsMenu { z-index:160; }
#onlineQuotesActionsMenu .bi { margin-right:8px; font-size:1rem; vertical-align:middle; }
@media(max-width:640px) {
 .online-quotes-header-actions { width:100%; gap:6px; }
 #onlineQuotes .online-quotes-header-actions #onlineQuoteSearch { flex:1; width:0; min-width:0; }
}

/* Balance the narrower document glyph against the neighbouring action icons. */
.online-quotes-header-actions #newOnlineQuoteIconButton > .bi { font-size:24px; }

/* Keep add confirmation continuous through the door/front details. */
.product-picker-dialog .product-row.is-just-added .complete-child-preview { background:transparent; border-left-color:#2c674c; }

/* Acknowledge Add immediately, before validation and total calculation. */
.product-picker-dialog .product-row.is-adding { background:#eaf2ed; box-shadow:inset 4px 0 #2c674c; }
.product-picker-dialog .product-row.is-adding .complete-child-preview { background:transparent; border-left-color:#2c674c; }

/* Catalogue close matches the quote header X. */
#productPickerDialog .quote-builder-dialog-head-actions .quote-header-icon { width:44px!important; min-width:44px!important; height:44px!important; padding:0!important; }
#productPickerDialog .quote-header-icon > .bi { display:block; font-size:var(--quote-control-size,1.265rem); line-height:1; color:var(--ink); font-weight:400; }

/* The staff notice is a compact row; the quote body owns the remaining height. */
#quoteBuilderDialog > .quote-builder-dialog-shell:has(> .smart-trial-notice) { grid-template-rows:auto auto minmax(0,1fr); }

/* Description, SMART code, dimensions, pricing and add controls. */
.product-picker-dialog .product-title-dimensions{display:none}
.product-picker-dialog .product-row,.product-picker-dialog .product-row.text-only{grid-template-columns:minmax(0,1fr) 160px auto 74px 72px}
.product-picker-dialog .product-row > .product-dimensions-column{display:block;grid-column:2;grid-row:1;align-self:center;color:var(--muted);font-size:12px;white-space:nowrap;text-align:right}
.product-picker-dialog .product-row > .product-price,.product-picker-dialog .product-row.text-only > .product-price{grid-column:3}
.product-picker-dialog .product-row > .quantity-picker,.product-picker-dialog .product-row.text-only > .quantity-picker{grid-column:4}
.product-picker-dialog .product-row > .button,.product-picker-dialog .product-row.text-only > .button{grid-column:5}
@media(max-width:700px){
.product-picker-dialog .product-row,.product-picker-dialog .product-row.text-only{grid-template-columns:minmax(0,1fr) 74px}
.product-picker-dialog .product-row > .product-main,.product-picker-dialog .product-row.text-only > .product-main{grid-column:1/-1;grid-row:1}
.product-picker-dialog .product-row > .product-dimensions-column{grid-column:1/-1;grid-row:2;text-align:left}
.product-picker-dialog .product-row > .product-price,.product-picker-dialog .product-row.text-only > .product-price{grid-column:1;grid-row:3}
.product-picker-dialog .product-row > .quantity-picker,.product-picker-dialog .product-row.text-only > .quantity-picker{grid-column:2;grid-row:3}
.product-picker-dialog .product-row > .button,.product-picker-dialog .product-row.text-only > .button{grid-column:2;grid-row:4}
}

/* The empty add-item row uses the normal compact quote line height. */
#quoteBuilderDialog .quote-line-open { min-height:38px; }
#quoteBuilderDialog .quote-line-open > .quote-line-description { display:flex; align-items:center; height:38px; padding-top:0; padding-bottom:0; overflow:visible; }
#quoteBuilderDialog .quote-line-open .quote-add-item-icon { height:38px!important; min-height:38px; }

/* Consistent position-row height across every quote product tab. */
#quoteBuilderDialog #quoteLines > .quote-line { min-height:44px; align-items:center; box-sizing:border-box; }
