/* Configure workspace refinements: layout order, openings, measurements, live bar, customer view. */

/* Keep focused fields clear of the fixed price bar. */
html{scroll-padding-bottom:calc(var(--livebar-space,96px) + 24px);scroll-padding-top:16px}

/* Layout: preview and openings on the left, the form on the right; on phones the form comes first. */
.config-grid{grid-template-areas:"visual inspector" "openings inspector";row-gap:16px}
.config-visual{grid-area:visual;min-width:0}
.config-openings{grid-area:openings;min-width:0}
.config-grid>.inspector{grid-area:inspector}
.mobile-preview-link{display:none}
@media(max-width:980px){
  .config-grid{grid-template-areas:"openings" "inspector" "visual";row-gap:20px}
  .mobile-preview-link{display:inline-flex;align-items:center;gap:6px;margin-top:12px;border:1px solid #c9dccd;background:#e7efe8;color:#2f5d3a;border-radius:3px;padding:6px 12px;font-size:12px;font-weight:600;min-height:36px}
  .mobile-preview-link .icon{width:14px;height:14px}
  .config-visual .drawing{max-height:46vh}
}

/* Step indicator */
.inspector-heading .eyebrow span{color:var(--green,#1b1d1c);font-weight:600}

/* Shade position */
.shade-control{display:block;padding:6px 21px 16px}
.shade-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.shade-head label{display:flex;align-items:center;gap:6px;font-size:12px;color:#5c625f;font-weight:500}
.shade-head output{font-size:12px;font-weight:600;color:var(--green,#1b1d1c);background:#e7efe8;border-radius:3px;padding:2px 10px;font-variant-numeric:tabular-nums}
.shade-track{display:flex;align-items:center;gap:12px}
.shade-track span{font-size:12px;color:#5c625f;flex:none}
.shade-track input{flex:1;min-width:0;accent-color:#2f5d3a;min-height:32px}
@media(max-width:760px){.shade-control{padding:4px 15px 14px}}

/* Fabric & finish row: two matching, tappable items */
.visual-specs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:8px;padding:10px 12px}
.spec-item{display:flex;align-items:flex-start;gap:10px;min-width:0;text-align:left;border:1px solid transparent;background:none;border-radius:3px;padding:6px 8px;min-height:48px;color:var(--ink,#1b1d1c);cursor:pointer}
.spec-item:hover{background:#f6f5f1;border-color:#e2dfd7}
.spec-item:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}
.spec-item>span:last-child{display:grid;min-width:0}
.spec-item small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#5c625f;margin:0}
.spec-item em{font-style:normal;font-size:12px;color:#5c625f;line-height:1.4}
.spec-item em:empty{display:none}
.spec-item em.missing{color:#5c3900;font-weight:600}
.spec-item em.missing:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#b7791f;margin-right:5px;vertical-align:1px}
.spec-item b{font-size:13px;font-weight:600;line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.visual-specs .swatch-mini{width:26px;height:26px;flex:none}

/* Openings: left-aligned chips that scroll sideways, actions in a menu */
.openings-bar{margin-top:0}
.openings-label{text-transform:none;letter-spacing:0;font-size:13px;font-weight:600;color:#3b403d;margin-bottom:10px}
.openings-label small{display:inline-block;margin-left:6px;padding:0 8px;border-radius:3px;background:#e7efe8;color:#2f5d3a;font-size:12px;font-weight:600}
.openings-tabs{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 8px;margin:0 -2px;scrollbar-width:thin;overscroll-behavior-x:contain}
.opening-chip{position:relative;display:flex;align-items:stretch;flex:none;scroll-snap-align:start;border:1px solid var(--line,#e2dfd7);border-radius:3px;background:var(--paper,#f6f5f1);max-width:min(300px,80vw)}
.opening-chip.active{border-color:#868e87;background:#e7efe8;box-shadow:0 0 0 1px #868e87 inset}
.opening-chip .opening-tab{flex:1;border:0;background:none;display:flex;align-items:center;gap:10px;padding:10px 12px;min-height:56px;text-align:left;justify-content:flex-start;min-width:0;max-width:none}
.opening-index{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eceae3;color:#2f5d3a;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.opening-chip.active .opening-index{background:#2f5d3a;color:#ffffff}
.opening-text{display:grid;min-width:0}
.opening-text strong{font-size:13px;font-weight:600;color:var(--ink,#1b1d1c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opening-text>span{font-size:12px;color:#5c625f;white-space:nowrap}
.opening-menu{position:relative;display:flex}
.opening-menu summary{list-style:none;display:grid;place-items:center;width:44px;min-height:44px;border-left:1px solid #c9dccd;cursor:pointer;color:#2f5d3a;border-radius:0 3px 3px 0}
.opening-menu summary::-webkit-details-marker{display:none}
.opening-menu summary:hover{background:#e7efe8}
.opening-menu summary:focus-visible{outline:3px solid #2f5d3a;outline-offset:-3px}
.opening-menu summary .icon{width:18px;height:18px}
.opening-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:230px;display:grid;padding:6px;background:#ffffff;border:1px solid #e2dfd7;border-radius:4px;box-shadow:none}
.opening-menu-list.up{top:auto;bottom:calc(100% + 6px)}
.opening-menu-list button{display:flex;align-items:center;gap:8px;text-align:left;border:0;background:none;padding:10px 12px;border-radius:3px;font-size:13px;color:var(--ink,#1b1d1c);min-height:42px}
.opening-menu-list button:hover:not(:disabled){background:#efede7}
.opening-menu-list button:disabled{color:#868e87;cursor:not-allowed}
.opening-menu-list button:focus-visible{outline:3px solid #2f5d3a;outline-offset:-2px}
.opening-menu-list .danger{color:#8a2e27;border-top:1px solid #efede7;border-radius:0 0 3px 3px;margin-top:4px}
.opening-menu-list .icon{width:15px;height:15px}
.openings-tabs .opening-add{flex:none;width:auto;height:auto;min-height:56px;padding:0 14px;gap:6px;font-size:13px;font-weight:600;border:1px dashed #cfcbc1;border-radius:3px;background:transparent;color:#2f5d3a;display:flex;align-items:center}
.openings-tabs .opening-add:hover{background:#f1f6f2;border-color:#8e968f}
/* The horizontal scroller would clip the menu, so let the active chip's menu escape on open. */
.openings-tabs:has(.opening-menu[open]){overflow:visible;flex-wrap:wrap}

/* Measurements: fractions and eighths */
.input-wrap:has(.fraction-select){display:flex;align-items:stretch}
.input-wrap .fraction-select{flex:none;width:78px;margin-left:6px;border:1px solid #e2dfd7;border-radius:3px;background:var(--paper,#f6f5f1);font-size:15px;padding:0 6px;color:var(--ink,#1b1d1c);min-height:43px}
.input-wrap:has(.fraction-select) .input-unit{right:96px}
.input-wrap:has(.fraction-select)>input{padding-right:34px}
.input-wrap .fraction-select:focus-visible{outline:3px solid #2f5d3a;outline-offset:1px}
.measure-echo{font-size:12px;color:#5c625f;min-height:18px;margin-top:4px;font-variant-numeric:tabular-nums}
.measure-echo:empty{display:none}
.measure-tip{font-size:12px;color:#5c625f;margin:-2px 0 12px}
.measure-tip b{color:var(--ink,#1b1d1c);font-weight:600}

/* Live bar: tappable price, privacy toggle, save state */
.live-price{display:flex;flex-direction:column;align-items:flex-start}
.live-price-button{border:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:3px;padding:4px 8px;margin:-4px -8px}
.live-price-button:hover{background:#f3f2ee}
.live-price-button:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}
.live-price-button>span:first-child{display:flex;align-items:center;gap:6px}
.live-price-button>span:first-child .icon{width:12px;height:12px;transform:rotate(-90deg);opacity:.7}
.live-dealer-row{display:flex;align-items:center;gap:8px;margin-top:2px;min-height:32px}
.live-dealer-row .live-dealer{margin-top:0}
.live-privacy{display:inline-flex;align-items:center;gap:5px;border:1px solid #e2dfd7;background:var(--paper,#f6f5f1);color:#2f5d3a;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:600;min-height:32px;min-width:44px;justify-content:center;white-space:nowrap}
.live-privacy .icon{width:14px;height:14px}
.live-privacy.on{background:#2e3431;border-color:#2e3431;color:#f6f5f1}
.live-privacy:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}
.save-state{display:inline-flex;align-items:center;gap:5px}
.save-state:before{content:'';width:7px;height:7px;border-radius:50%;background:#2f5d3a}
.save-state.dirty{color:#5c3900;font-weight:600}
.save-state.dirty:before{background:#b7791f}
@media(max-width:760px){
  .livebar .live-actions{gap:8px}
}

/* Toast with an action (Undo) */
.toast.visible{pointer-events:auto}
.toast:has(.toast-action){display:flex;align-items:center;gap:14px;text-align:left}
.toast-action{border:0;background:#f3f2ee;color:#8e968f;border-radius:2px;padding:6px 12px;font-weight:600;font-size:13px;min-height:36px;cursor:pointer}
.toast-action:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}

/* Price breakdown dialog */
.price-table{width:100%;border-collapse:collapse;font-size:13px}
.price-table th,.price-table td{padding:10px 8px;border-bottom:1px solid #eceae3;text-align:right;font-variant-numeric:tabular-nums}
.price-table th[scope=row],.price-table thead th:first-child{text-align:left;font-weight:500}
.price-table thead th{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#5c625f;font-weight:600}
.price-table tfoot th,.price-table tfoot td{font-weight:600;border-bottom:0}
.price-table-project{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:14px 0 6px;padding:12px 14px;background:#efede7;border-radius:3px;font-size:13px}
.price-table-project strong{font-size:17px;font-variant-numeric:tabular-nums}
.price-table-wrap{overflow:visible}
.table-wrap table.price-table{min-width:0;white-space:normal}
.price-table th[scope=row]{text-transform:none;letter-spacing:0;font-size:13px;line-height:1.4;color:var(--ink);background:none;padding:11px 12px;white-space:normal;overflow-wrap:anywhere}
.price-table td,.price-table thead th:not(:first-child){width:1%;white-space:nowrap;padding:11px 12px}
.price-table tfoot th[scope=row]{font-weight:600}
.price-table-project{flex-wrap:wrap}.price-table-project strong{white-space:nowrap;margin-left:auto}

/* Customer view: hide every dealer cost on screen. */
.customer-view .live-dealer,.customer-view .dealer-only,.customer-view .price-dealer,.customer-view .dealer-context,.customer-view [data-dealer-only]{display:none!important}

/* Consistent rhythm inside the configure column */
.config-visual .visual-card{margin:0}
.inspector .inspector-heading{margin-bottom:20px}
.inspector .form-row+.measurement-label,.inspector .hint+.option-row,.inspector .option-row+.qty-field{margin-top:16px}

/* Elevation: larger, bolder dimension labels read clearly on phones */
.drawing .dim-labels text{paint-order:stroke;stroke:#f6f5f1;stroke-width:3px}
@media(max-width:760px){
  .drawing .dim-labels{font-size:24px}
  .drawing .dim-labels rect{display:none}
  .visual-head .icon-btn{min-width:40px;min-height:40px}
}
/* Price bar structure: label + amount in a button, dealer cost and its toggle on the row below */
.live-price-button>span:first-child{font-size:12px;letter-spacing:1px;color:#5c625f;text-transform:uppercase;line-height:1.5}
.live-price-button>span:first-child .pulse-dot{width:4px;height:4px}
.live-dealer-row .live-dealer{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 6px;font-size:13px;line-height:1.5;letter-spacing:0;text-transform:none;color:#2f5d3a}
@media(max-width:760px){.live-price-button>small{display:none}.live-price-button strong{font-size:22px;line-height:1.3}}

/* Live size limits under Width and Height */
.limit-hint{font-size:12px;color:#5c625f;margin-top:5px;line-height:1.4;font-variant-numeric:tabular-nums}
.limit-hint:empty{display:none}
.limit-hint .over{color:#8a2e27;font-weight:600}
.limit-hint .over:before{content:'!';display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#8a2e27;color:#ffffff;font-size:10px;font-weight:600;margin-right:6px;vertical-align:1px}

/* Order readiness checklist on Review */
.order-checklist{border:1px solid #ebd29e;background:#f6f5f1;border-radius:4px;padding:14px 16px;margin:0 0 20px}
.order-checklist.ready{display:flex;gap:12px;align-items:flex-start;border-color:#c9dccd;background:#f1f6f2}
.order-checklist.ready .icon{width:20px;height:20px;color:#2f5d3a;flex:none;margin-top:2px}
.order-checklist.ready small{display:block;font-size:12px;color:#2f5d3a;margin-top:2px}
.checklist-head{display:grid;gap:2px;margin-bottom:8px}
.checklist-head strong{font-size:14px;color:#5c3900}
.checklist-head small{font-size:12px;color:#5c625f}
.order-checklist ul{list-style:none;margin:0;padding:0;display:grid}
.order-checklist li{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 0;border-top:1px solid #e2dfd7;font-size:13px;line-height:1.45;color:var(--ink,#1b1d1c)}
.order-checklist li:first-child{border-top:0}
.check-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;background:#b7791f}
.order-checklist li.confirm .check-dot{background:#ffffff;border:2px solid #8e968f}
.order-checklist li.confirm{color:#5c625f}
.order-checklist .btn-link{min-height:32px;padding:0 4px}

/* ── Quote header: one compact bar replaces the return bar, marketing headline and dealer-tier card ── */
.cpq-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 24px;flex-wrap:wrap;padding:4px 0 18px;margin-bottom:20px;border-bottom:1px solid var(--line,#e2dfd7)}
.cpq-header-main{min-width:0;flex:1 1 320px}
.cpq-header-eyebrow{margin:0 0 4px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#5c625f;font-variant-numeric:tabular-nums}
.cpq-header-title{margin:0;font-family:var(--display,inherit);font-size:24px;line-height:1.25;font-weight:600;letter-spacing:-.01em;color:var(--ink,#1b1d1c);overflow-wrap:anywhere}
.cpq-header-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:8px;font-size:12px;color:#5c625f}
.cpq-header-meta .btn-link{font-size:12px}
.tier-chip{display:inline-flex;align-items:center;border-radius:3px;padding:3px 10px;font-size:12px;font-weight:600;background:#e7efe8;color:#1e3f27;border:1px solid #c9dccd;line-height:1.5}
button.tier-chip{cursor:pointer;font:inherit;font-size:12px;font-weight:600}
.tier-chip.preview{background:#fff7e6;color:#5c3900;border-color:#ebd29e}
.tier-chip:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}
.cpq-header-actions{display:flex;gap:8px;flex-wrap:wrap}
.cpq-header-actions .btn{min-height:42px;font-size:13px}
.cpq-header-actions .icon{width:16px;height:16px}
@media(max-width:760px){
  .cpq-header{padding-bottom:14px;margin-bottom:16px;align-items:stretch}
  .cpq-header-title{font-size:20px}
  .cpq-header-actions{width:100%;flex-wrap:nowrap}
  .cpq-header-actions .btn{flex:none;min-height:44px}
  .cpq-header-actions .btn-primary{flex:1}
  .cpq-header-actions .icon-text span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .cpq-header-actions .icon-text{width:48px;padding:0;justify-content:center}
}

/* Step heading: step count and preview link on one row, plain task title */
.inspector-eyebrow-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}
.inspector-eyebrow-row .eyebrow{margin:0}
.inspector-heading h2{margin:0}
.inspector-eyebrow-row .mobile-preview-link{margin-top:0}

/* Desktop: preview and openings stay in view while the form scrolls; phones keep openings → form → preview */
.config-grid{grid-template-areas:"side inspector"}
.config-side{grid-area:side;display:grid;gap:16px;align-content:start;min-width:0}
.config-side>.config-visual,.config-side>.config-openings{grid-area:auto}
@media(min-width:981px) and (min-height:860px){.config-side{position:sticky;top:16px;align-self:start}}
@media(max-width:980px){
  .config-grid{grid-template-areas:"openings" "inspector" "visual"}
  .config-side{display:contents}
  .config-side>.config-visual{grid-area:visual}
  .config-side>.config-openings{grid-area:openings}
}

/* Illustrated weave until real swatch photos are imported: denser for low openness, airier for open screens */
.textile[data-weave=tight]{background-image:repeating-linear-gradient(90deg,#ffffff0d 0 1px,transparent 1px 2px),repeating-linear-gradient(0deg,#1b1d1c1f 0 1px,transparent 1px 2px)}
.textile[data-weave=fine]{background-image:repeating-linear-gradient(90deg,#ffffff14 0 1px,transparent 1px 3px),repeating-linear-gradient(0deg,#1b1d1c1a 0 1px,transparent 1px 3px)}
.textile[data-weave=medium]{background-image:repeating-linear-gradient(90deg,#ffffff1c 0 1px,transparent 1px 4px),repeating-linear-gradient(0deg,#1b1d1c17 0 1px,transparent 1px 4px)}
.textile[data-weave=open]{background-image:repeating-linear-gradient(90deg,#ffffff2e 0 2px,transparent 2px 6px),repeating-linear-gradient(0deg,#ffffff24 0 2px,transparent 2px 6px)}
.illustrated-label{background:#ffffffe6;color:#3b403d;border-color:#ffffff;font-weight:600;letter-spacing:0}

/* Phone header: icon-only Details, short "Close" label */
.cpq-header-actions .label-short{display:none}
@media(max-width:760px){
  .cpq-header-actions .icon-text:has(.label-short){width:auto;padding:0 14px;gap:6px}
  .cpq-header-actions .icon-text .label-long{display:none}
  .cpq-header-actions .icon-text .label-short{display:inline;position:static;width:auto;height:auto;clip-path:none}
}

/* Fabric picker: compact, grouped, searchable list */
.fabric-list-tools{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:12px;padding:0 0 12px;background:inherit}
.fabric-list-tools .search-field{flex:1;min-width:0}
.fabric-count{font-size:12px;color:#5c625f;white-space:nowrap}
.fabric-group{margin-bottom:18px}
.fabric-group h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#5c625f;font-weight:600}
.fabric-group h3 span{background:#e7efe8;color:#2f5d3a;border-radius:3px;padding:0 8px;letter-spacing:0}
.fabric-rows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.fabric-row{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line,#e2dfd7);background:#ffffff;border-radius:3px;padding:8px 12px 8px 8px;min-height:60px;cursor:pointer;color:var(--ink,#1b1d1c)}
.fabric-row:hover{border-color:#cfcbc1;background:#f6f5f1}
.fabric-row.active{border-color:#2f5d3a;box-shadow:0 0 0 1px #2f5d3a inset;background:#f1f6f2}
.fabric-row:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}
.fabric-row .fabric-row-thumb{width:44px;height:44px;border-radius:3px}
.fabric-row-text{display:grid;min-width:0;flex:1}
.fabric-row-text strong{font-size:14px;font-weight:600}
.fabric-row-text small{font-size:12px;color:#5c625f}
.fabric-row-check{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid #cfcbc1;display:grid;place-items:center}
.fabric-row.active .fabric-row-check{background:#2f5d3a;border-color:#2f5d3a;color:#ffffff}
.fabric-row-check .icon{width:13px;height:13px}
.fabric-empty{font-size:13px;color:#5c625f;padding:12px 0}

/* ── Materials step: two library rows ── */
.material-row .option-text strong{overflow-wrap:anywhere}
.material-row .missing{color:#5c3900;font-weight:600}
.material-row .option-thumb.has-colour{box-shadow:none}
.materials-note{display:flex;gap:8px;align-items:flex-start;margin:14px 0 0;font-size:12px;color:#5c625f;line-height:1.5}
.materials-note .icon{width:14px;height:14px;flex:none;margin-top:2px}

/* Fabric colour step */
.fabric-colour-head{display:flex;gap:14px;align-items:flex-start;margin:4px 0 16px}
.fabric-colour-head .fabric-colour-hero{width:72px;height:72px;border-radius:3px}
.fabric-colour-head h3{margin:0;font-size:17px}
.fabric-colour-head p{margin:4px 0 0;font-size:13px;color:#5c625f}
.fabric-colour-source a{color:#1e3f27;font-weight:600}
.colour-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;margin-bottom:16px}
.colour-chip{display:grid;gap:2px;text-align:left;border:1px solid var(--line,#e2dfd7);background:#ffffff;border-radius:3px;padding:6px 6px 10px;cursor:pointer;color:var(--ink,#1b1d1c)}
.colour-chip:hover{border-color:#cfcbc1}
.colour-chip.active{border-color:#2f5d3a;box-shadow:0 0 0 2px #2f5d3a inset}
.colour-chip:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}
.colour-swatch{display:block;height:64px;border-radius:2px;margin-bottom:6px;border:1px solid #1b1d1c0f}
.colour-name{font-size:13px;font-weight:600;padding:0 4px;line-height:1.3}
.colour-code{font-size:11px;color:#5c625f;padding:0 4px;letter-spacing:.04em}
.fabric-colour-custom input{width:100%}

/* Frame colour library */
.paint-dialog .dialog-body{padding-top:12px}
.paint-tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.paint-tabs .tab span{margin-left:6px;font-size:11px;opacity:.7}
.paint-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.paint-layout .search-field{margin-bottom:12px}
.paint-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px;max-height:52vh;overflow:auto;padding:2px}
.paint-chip{display:grid;text-align:left;border:1px solid var(--line,#e2dfd7);background:#ffffff;border-radius:3px;padding:5px 5px 8px;cursor:pointer;color:var(--ink,#1b1d1c)}
.paint-chip:hover{border-color:#cfcbc1}
.paint-chip.active{border-color:#2f5d3a;box-shadow:0 0 0 2px #2f5d3a inset}
.paint-chip:focus-visible{outline:3px solid #2f5d3a;outline-offset:2px}
.paint-swatch{display:block;height:46px;border-radius:2px;border:1px solid #1b1d1c1a;margin-bottom:6px}
.paint-code{font-size:12px;font-weight:600;padding:0 3px}
.paint-name{font-size:12px;color:#5c625f;padding:0 3px;line-height:1.3}
.paint-more,.paint-empty{font-size:12px;color:#5c625f;margin:10px 0 0}
.paint-custom{margin-top:14px}
.paint-custom input{width:100%}
.paint-match{position:sticky;top:0;border:1px solid var(--line,#e2dfd7);border-radius:4px;background:#ffffff;padding:14px}
.paint-match.empty p{font-size:13px;color:#5c625f;margin:0}
.paint-match-hero{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.paint-match-hero .paint-swatch.big{width:72px;height:72px;margin:0;flex:none}
.paint-match-hero small,.paint-match li small{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#5c625f}
.paint-match-hero strong{display:block;font-size:17px}
.paint-match-hero span{font-size:13px;color:#3b403d}
.paint-match h4{margin:0 0 8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#5c625f}
.paint-match ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.paint-match li{display:flex;gap:10px;align-items:center}
.paint-match li .paint-swatch{width:40px;height:40px;margin:0;flex:none}
.paint-match li strong{display:block;font-size:13px}
.paint-match li span{font-size:12px;color:#5c625f}
.paint-note{font-size:11px;color:#5c625f;margin:12px 0 0;line-height:1.45}
@media(max-width:760px){
  .paint-layout{grid-template-columns:1fr}
  .paint-match{position:static;order:-1}
  .paint-layout>aside{order:-1}
  .paint-grid{max-height:none;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}
  .colour-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
}
.materials-note .link-button{margin-left:auto;flex:none;background:none;border:0;padding:0;font:inherit;font-weight:600;color:#2f5d3a;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.samples-dialog .sample-set{border:0;padding:0;margin:0 0 18px;display:grid;gap:10px}
.samples-dialog legend{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#5c625f;margin-bottom:8px}
.sample-pick{display:grid;grid-template-columns:20px 40px minmax(0,1fr);gap:12px;align-items:center;padding:10px 12px;border:1px solid #e2dfd7;border-radius:3px;background:#ffffff;cursor:pointer}
.sample-pick:has(input:checked){border-color:#2f5d3a;box-shadow:inset 0 0 0 1px #2f5d3a}
.sample-pick.missing{opacity:.65;cursor:not-allowed}
.sample-pick input{width:18px;height:18px;margin:0;accent-color:#2f5d3a}
.sample-chip{width:40px;height:40px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.sample-pick small{display:block;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#5c625f}
.sample-pick strong{display:block;font-size:14px;overflow-wrap:anywhere}.sample-pick em{display:block;font-style:normal;font-size:12px;color:#5c625f}
.sample-add{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:8px}
.sample-add select,.sample-add input{height:42px;font-size:14px;border:1px solid #c9dccd;border-radius:3px;background:#ffffff;padding:0 10px;min-width:0}
.samples-dialog .form-row>.field{flex:1;min-width:0}.samples-dialog .sample-city>.field:first-child{flex:2}
.samples-dialog .form-error{color:#b4453c;font-size:13px;margin:8px 0 0}
@media(max-width:640px){.sample-add{grid-template-columns:1fr}.samples-dialog .sample-city{flex-wrap:wrap}.samples-dialog .sample-city>.field:first-child{flex-basis:100%}.sample-add select,.sample-add input{font-size:16px}}
