/* Floor Visualizer. Page-owned styles: sharp, photographic, quiet. Uses the shared ink / orange tokens. */
:root{--vz-bg:#0d0d0d;--vz-card:#1a1a1a;--vz-raise:#242424;--vz-line:rgba(255,255,255,.12);--vz-line-2:rgba(255,255,255,.22);--vz-soft:#b8b8b4;--vz-orange:#f87000}
body{background:var(--ink)}
.vz-app{color:#fff;max-width:1560px;margin:0 auto;padding:20px 24px 32px;font:500 14px/1.4 var(--font-body);font-variant-numeric:tabular-nums}
.vz-app *,.vz-app *::before,.vz-app *::after{box-sizing:border-box}
.vz-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:0 0 14px}
.vz-head h1{font-family:var(--font-head);font-size:clamp(28px,3vw,40px);line-height:1.05;margin:0;letter-spacing:0;text-transform:none;color:#fff}
.vz-sub{margin:0;color:var(--vz-soft);font-size:14px}
.vz-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.vz-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;align-items:start}
.vz-stage{min-width:0;display:flex;flex-direction:column;gap:10px}
.vz-view{position:relative;background:var(--vz-bg);border:1px solid var(--vz-line);border-radius:12px;overflow:hidden;height:min(76vh,calc(100vh - 190px));min-height:360px;display:flex;align-items:center;justify-content:center;touch-action:none}
.vz-backdrop{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(26px) brightness(.42) saturate(1.1);pointer-events:none}
.vz-pan{position:relative;display:block;max-width:100%;max-height:100%;aspect-ratio:var(--vz-ar,4/3);height:100%;transform-origin:0 0;will-change:transform}
.vz-view.is-zoom .vz-pan{cursor:grab}
.vz-view.is-zoom.is-panning .vz-pan{cursor:grabbing}
.vz-layer{position:absolute;inset:0;width:100%;height:100%;display:block;user-select:none;-webkit-user-drag:none}
.vz-ai{opacity:0;transition:opacity .6s var(--ease-standard);pointer-events:none}
.vz-ai.is-on{opacity:1}
.vz-edit{pointer-events:none}
.vz-view[data-edit="brush"] .vz-edit{pointer-events:auto;cursor:crosshair}
.vz-handles{position:absolute;inset:0;pointer-events:none}
.vz-handle-pt{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;pointer-events:auto;touch-action:none;cursor:grab;display:grid;place-items:center;border:0;background:none;padding:0}
.vz-handle-pt::before{content:"";width:18px;height:18px;border-radius:50%;background:var(--vz-orange);border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.5)}
.vz-handle-pt:focus-visible{outline:2px solid #fff;outline-offset:-4px;border-radius:50%}
.vz-eye{position:absolute;left:0;right:0;height:28px;margin-top:-14px;cursor:ns-resize;touch-action:none;display:flex;align-items:center}
.vz-eye[hidden]{display:none}
.vz-eye::before{content:"";flex:1;border-top:2px dashed #fff;filter:drop-shadow(0 0 1px #000)}
.vz-eye span{position:absolute;right:10px;top:-2px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;background:rgba(0,0,0,.72);padding:2px 7px;border-radius:6px;color:#fff}
.vz-eye:focus-visible{outline:2px solid var(--vz-orange);outline-offset:-2px}

.vz-split{position:absolute;top:0;bottom:0;width:44px;margin-left:-22px;cursor:ew-resize;touch-action:none;z-index:3}
.vz-split[hidden]{display:none}
.vz-split::before{content:"";position:absolute;left:21px;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.35)}
.vz-split__grip{position:absolute;left:4px;top:50%;width:36px;height:36px;margin-top:-18px;border-radius:50%;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.5)}
.vz-split__grip::before,.vz-split__grip::after{content:"";position:absolute;top:50%;width:8px;height:8px;margin-top:-4px;border:solid var(--ink);border-width:2px 2px 0 0}
.vz-split__grip::before{left:8px;transform:rotate(-135deg)}
.vz-split__grip::after{right:8px;transform:rotate(45deg)}
.vz-split__tag{position:absolute;top:12px;padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.7);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.vz-split__tag--l{right:32px}.vz-split__tag--r{left:32px}
.vz-split:focus-visible{outline:2px solid var(--vz-orange);outline-offset:-2px}

.vz-tools{position:absolute;top:12px;right:12px;display:flex;gap:6px;z-index:4}
.vz-tools button{width:40px;height:40px;display:grid;place-items:center;padding:0;border:1px solid var(--vz-line-2);border-radius:8px;background:rgba(14,14,14,.78);color:#fff;cursor:pointer;backdrop-filter:blur(6px)}
.vz-tools button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.vz-tools button[aria-pressed="true"]{background:var(--vz-orange);border-color:var(--vz-orange);color:var(--ink)}
.vz-tools button:hover:not([aria-pressed="true"]){background:rgba(40,40,40,.92)}
.vz-tools button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.vz-caption{position:absolute;left:12px;bottom:12px;margin:0;padding:6px 10px;border-radius:8px;background:rgba(14,14,14,.78);color:#fff;font-size:13px;font-weight:600;max-width:calc(100% - 24px);backdrop-filter:blur(6px);pointer-events:none;z-index:4}
.vz-busy,.vz-refine{position:absolute;display:flex;align-items:center;gap:10px;z-index:5;font-weight:600;color:#fff}
.vz-busy[hidden],.vz-refine[hidden]{display:none}
.vz-busy{inset:0;justify-content:center;background:rgba(10,10,10,.62);flex-direction:column;text-align:center;padding:24px}
.vz-refine{right:12px;bottom:12px;padding:6px 12px;border-radius:999px;background:rgba(14,14,14,.82);font-size:12px}
.vz-spin{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.28);border-top-color:#fff;animation:vz-spin .8s linear infinite}
@keyframes vz-spin{to{transform:rotate(360deg)}}
.vz-view.is-drop::after{content:"Drop your photo";position:absolute;inset:10px;border:2px dashed var(--vz-orange);border-radius:10px;display:grid;place-items:center;font:700 20px var(--font-head);background:rgba(10,10,10,.7);z-index:6}

.vz-grid-compare{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;gap:3px;background:#000;z-index:3}
.vz-grid-compare[hidden]{display:none}
.vz-grid-compare[data-n="1"]{grid-template-columns:1fr}
.vz-cell{position:relative;border:0;padding:0;background:#000;cursor:pointer;overflow:hidden;min-height:0}
.vz-cell canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vz-cell span{position:absolute;left:8px;bottom:8px;padding:4px 8px;border-radius:6px;background:rgba(0,0,0,.72);color:#fff;font:700 12px var(--font-body);text-align:left}
.vz-cell:focus-visible{outline:3px solid var(--vz-orange);outline-offset:-3px}
.vz-cell.is-current{box-shadow:inset 0 0 0 3px var(--vz-orange)}


/* ---- panel ---- */
.vz-panel{background:var(--vz-card);border:1px solid var(--vz-line);border-radius:12px;display:flex;flex-direction:column;height:min(76vh,calc(100vh - 190px));min-height:520px;overflow:hidden}
.vz-handle{display:none}
.vz-steps{display:flex;border-bottom:1px solid var(--vz-line);flex-shrink:0}
.vz-steps button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 2px 9px;border:0;border-bottom:2px solid transparent;background:none;color:var(--vz-soft);font:600 12px/1.1 var(--font-body);cursor:pointer;min-height:56px}
.vz-steps button i{font-style:normal;width:22px;height:22px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:11px}
.vz-steps button[aria-selected="true"]{color:#fff;border-bottom-color:var(--vz-orange)}
.vz-steps button[aria-selected="true"] i{background:var(--vz-orange);border-color:var(--vz-orange);color:var(--ink)}
.vz-steps button.is-done:not([aria-selected="true"]) i{background:#fff;border-color:#fff;color:var(--ink)}
.vz-steps button:focus-visible{outline:2px solid #fff;outline-offset:-3px}
.vz-body{flex:1;min-height:0;overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:#444 transparent}
.vz-h{font:700 20px/1.2 var(--font-head);text-transform:none;letter-spacing:0;margin:0 0 12px;color:#fff}
.vz-label{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--vz-soft);margin:16px 0 8px;font-weight:700}
.vz-note{margin:0 0 12px;color:#e8e8e4;font-size:14px}
.vz-fine{margin:10px 0 0;color:var(--vz-soft);font-size:12.5px;line-height:1.45}
.vz-lab{font-weight:600;font-size:13px}
.vz-step[hidden]{display:none}

.vz-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--vz-line-2);border-radius:8px;background:var(--vz-raise);color:#fff;font:700 14px/1.2 var(--font-body);cursor:pointer;text-decoration:none;text-align:center}
.vz-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.vz-btn:hover{background:#2e2e2e}
.vz-btn--solid{background:var(--vz-orange);border-color:var(--vz-orange);color:var(--ink)}
.vz-btn--solid:hover{background:#ff8420}
.vz-btn--wide{width:100%}
.vz-btn--tiny{min-height:36px;padding:6px 10px;font-size:12px}
.vz-btn:disabled{opacity:.45;cursor:not-allowed}
.vz-btn[hidden]{display:none}
.vz-btn:focus-visible,.vz-app input:focus-visible,.vz-app summary:focus-visible,.vz-icon:focus-visible,.vz-room:focus-visible,.vz-sw:focus-visible,.vz-chip:focus-visible,.vz-seg button:focus-visible,.vz-save:focus-visible,.vz-dot:focus-visible{outline:2px solid #fff;outline-offset:2px}
.vz-upload{display:grid;gap:8px;margin-bottom:8px}
.vz-pick{cursor:pointer}
.vz-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.vz-actions .vz-btn{flex:1 1 150px}

.vz-rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vz-room{display:flex;flex-direction:column;gap:6px;padding:0;border:0;background:none;color:#fff;font:600 13px var(--font-body);text-align:left;cursor:pointer;min-width:0}
.vz-room img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:2px solid transparent;background:#000}
.vz-room[aria-pressed="true"] img{border-color:var(--vz-orange)}
.vz-room:hover img{border-color:var(--vz-line-2)}.vz-room[aria-pressed="true"]:hover img{border-color:var(--vz-orange)}

.vz-seg{display:flex;gap:2px;padding:3px;background:var(--vz-bg);border-radius:10px;border:1px solid var(--vz-line)}
.vz-seg button{flex:1;min-width:0;min-height:40px;padding:6px 8px;border:0;border-radius:7px;background:none;color:var(--vz-soft);font:700 13px var(--font-body);cursor:pointer}
.vz-seg button[aria-pressed="true"],.vz-seg button[aria-selected="true"],.vz-seg button[aria-checked="true"]{background:#fff;color:var(--ink)}
.vz-seg--tools{flex-wrap:wrap;margin-bottom:12px}
.vz-seg--tools button{flex:1 1 22%;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;padding:7px 4px}
.vz-seg--tools svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.vz-seg--types{margin-bottom:12px}
.vz-seg--mini{padding:2px}.vz-seg--mini button{min-height:36px;font-size:12px}
.vz-row{display:flex;align-items:center;gap:12px;margin:12px 0}
.vz-row[hidden]{display:none}
.vz-row>label,.vz-row>.vz-lab{flex:0 0 96px;font-weight:600;font-size:13px}
.vz-row .vz-seg{flex:1}
.vz-row input[type=range]{flex:1;min-width:0;accent-color:var(--vz-orange);height:32px}
.vz-row output{flex:0 0 52px;text-align:right;color:var(--vz-soft);font-size:12px}
.vz-row input[type=color]{width:56px;height:40px;padding:2px;border:1px solid var(--vz-line-2);border-radius:8px;background:var(--vz-bg);cursor:pointer}
.vz-row--sheen{margin-top:16px;padding-top:14px;border-top:1px solid var(--vz-line)}

.vz-search{position:relative;margin-bottom:10px}
.vz-search svg{position:absolute;left:12px;top:12px;width:18px;height:18px;fill:none;stroke:var(--vz-soft);stroke-width:1.8;stroke-linecap:round}
.vz-search input{width:100%;height:42px;padding:8px 12px 8px 38px;background:var(--vz-bg);border:1px solid var(--vz-line-2);border-radius:8px;color:#fff;font:500 16px var(--font-body)}
.vz-search input::placeholder{color:var(--vz-soft);opacity:1}
.vz-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.vz-chip{min-height:34px;padding:5px 11px;border-radius:999px;border:1px solid var(--vz-line-2);background:none;color:#e8e8e4;font:600 12.5px var(--font-body);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.vz-chip i{width:12px;height:12px;border-radius:50%;border:1px solid rgba(255,255,255,.4);display:block}
.vz-chip[aria-pressed="true"]{background:#fff;color:var(--ink);border-color:#fff}
.vz-chips--soft .vz-chip{border-color:var(--vz-line);color:var(--vz-soft)}
.vz-chips--soft .vz-chip[aria-pressed="true"]{color:var(--ink)}
.vz-count{margin:6px 0 10px;color:var(--vz-soft);font-size:12px}
.vz-empty{text-align:center;padding:24px 0;color:var(--vz-soft)}
.vz-swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.vz-sw{display:flex;flex-direction:column;gap:5px;padding:0;border:0;background:none;color:#fff;text-align:left;cursor:pointer;min-width:0}
.vz-sw[hidden]{display:none}
.vz-sw img,.vz-sw .vz-sw__art{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:2px solid transparent;background:#333}
.vz-sw[aria-pressed="true"] img,.vz-sw[aria-pressed="true"] .vz-sw__art{border-color:var(--vz-orange)}
.vz-sw__art--photo,.vz-now__swatch.is-photo{background-size:112%;background-position:28% 8%;background-repeat:no-repeat}
.vz-sw b{font:700 12.5px/1.2 var(--font-body);overflow-wrap:anywhere}
.vz-sw small{font:500 11.5px/1.2 var(--font-body);color:var(--vz-soft)}
.vz-sw:hover img,.vz-sw:hover .vz-sw__art{border-color:var(--vz-line-2)}.vz-sw[aria-pressed="true"]:hover img,.vz-sw[aria-pressed="true"]:hover .vz-sw__art{border-color:var(--vz-orange)}

.vz-build{margin-top:16px;border:1px solid var(--vz-line);border-radius:10px;padding:0 12px}
.vz-build summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}
.vz-build[open] summary{border-bottom:1px solid var(--vz-line);margin-bottom:8px}
.vz-colors{display:flex;flex-wrap:wrap;gap:6px;max-height:150px;overflow:auto;padding:4px 2px}
.vz-dot{width:34px;height:34px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;padding:0}
.vz-dot[aria-pressed="true"]{border-color:#fff;box-shadow:0 0 0 2px var(--vz-orange)}
.vz-ratios label{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:12px}
.vz-ratios label i{width:16px;height:16px;border-radius:50%;flex:none;border:1px solid rgba(255,255,255,.4)}
.vz-ratios input{flex:1;accent-color:var(--vz-orange);min-width:0}
.vz-ratios output{flex:0 0 40px;text-align:right;color:var(--vz-soft)}

.vz-saved{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.vz-save{position:relative;display:flex;flex-direction:column;gap:5px;background:none;border:0;color:#fff;padding:0;text-align:left;font:600 12.5px var(--font-body);cursor:pointer;min-width:0}
.vz-save canvas,.vz-save img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#000;border:2px solid transparent}
.vz-save small{display:block;color:var(--vz-soft);font-weight:500}
.vz-x{position:absolute;right:6px;top:6px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);cursor:pointer;padding:0}
.vz-view[data-comparing="true"] .vz-caption{display:none}

.vz-summary{border:1px solid var(--vz-line);border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:13px;color:#e8e8e4;display:grid;gap:4px}
.vz-summary b{color:#fff}
.vz-form{display:grid;gap:10px}
.vz-form label{display:grid;gap:4px;font-weight:600;font-size:13px}
.vz-form input:not(.vz-sr){height:44px;padding:8px 12px;border:1px solid var(--vz-line-2);border-radius:8px;background:var(--vz-bg);color:#fff;font:500 16px var(--font-body)}
.vz-form[data-sent="true"] label,.vz-form[data-sent="true"] button{display:none}

.vz-foot{flex-shrink:0;border-top:1px solid var(--vz-line);padding:12px 16px;display:grid;gap:10px;background:var(--vz-card)}
.vz-now{display:flex;align-items:center;gap:10px;min-width:0}
.vz-now__swatch{width:40px;height:40px;border-radius:8px;background-color:#333;border:1px solid var(--vz-line-2);flex:none}
.vz-now__text{display:flex;flex-direction:column;min-width:0;flex:1}
.vz-now__text strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vz-now__text span{font-size:12px;color:var(--vz-soft)}
.vz-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--vz-line-2);border-radius:8px;background:none;color:#fff;cursor:pointer;flex:none}
.vz-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.vz-icon[aria-pressed="true"] svg{fill:var(--vz-orange);stroke:var(--vz-orange)}
.vz-nav{display:flex;gap:8px}.vz-nav .vz-btn{flex:1}.vz-nav .vz-btn--solid{flex:2}

/* ---- the estimate band below ---- */
.fv-cta-wrap{background:var(--surface);padding:56px 24px}
.fv-cta{max-width:1160px;margin:auto;background:var(--ink);color:#fff;border-radius:16px;padding:32px}
.fv-cta h2{font:700 var(--t-h2)/1.3 var(--font-body);text-transform:none;letter-spacing:0;margin:0 0 16px}
.fv-cta p{font-size:var(--t-lead);line-height:1.5;max-width:850px;margin:0 0 24px}
.fv-cta a{display:inline-flex;align-items:center;min-height:48px;padding:12px 20px;background:var(--orange);border-radius:var(--r-s);color:var(--ink);text-decoration:none;font-weight:700}

@media (max-width:1100px){.vz-grid{grid-template-columns:minmax(0,1fr) 380px}}
@media (max-width:899px){
  .vz-app{padding:8px 0 0;height:calc(100svh - var(--vz-top,100px));min-height:560px;display:flex;flex-direction:column;overflow:hidden}
  .vz-head{padding:0 16px;margin:0 0 6px}.vz-head h1{font-size:22px}.vz-sub{display:none}
  .vz-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-right:-14px;padding-right:14px}.vz-chips::-webkit-scrollbar{display:none}.vz-chip{flex:none}
  .vz-grid{display:flex;flex-direction:column;align-items:stretch;flex:1;min-height:0;gap:0}
  .vz-stage{flex:0 0 auto;gap:6px}
  .vz-view{height:min(40svh,calc(100vw*.8));min-height:0;border-radius:0;border-left:0;border-right:0}
  .vz-panel{flex:1;height:auto;min-height:0;border-radius:16px 16px 0 0;border-bottom:0;margin-top:-1px;position:relative}
  .vz-handle{display:flex;align-items:center;justify-content:center;width:100%;height:20px;border:0;background:none;padding:0;cursor:grab;flex:none;touch-action:none}
  .vz-handle span{width:44px;height:4px;border-radius:2px;background:#555}
  .vz-steps button{font-size:11px;min-height:52px}
  .vz-body{padding:12px 14px}
  .vz-swatches{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .vz-rooms{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .vz-panel.is-expanded{position:fixed;left:0;right:0;bottom:0;top:calc(var(--vz-top,100px) + 26svh);z-index:30;margin:0;height:auto}
  .vz-tools{top:8px;right:8px}
  .vz-foot{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
  .vz-row>label,.vz-row>.vz-lab{flex-basis:84px}
  .fv-cta-wrap{padding:40px 16px}.fv-cta{padding:24px}.fv-cta p{font-size:var(--t-body)}
}
@media (max-width:899px) and (max-height:700px){.vz-view{height:34svh}}
@media (prefers-reduced-motion:reduce){.vz-ai{transition:none}.vz-spin{animation-duration:2.4s}}

/* The shared stylesheet restyles every bare button (uppercase, transparent). The app states its own button look through
   custom properties, applied once with !important so no other sheet can turn the controls into text links. */
.vz-app button{background:var(--bg,transparent)!important;color:var(--fg,#fff)!important;font-size:var(--fs,14px)!important;font-weight:var(--fw,700)!important;letter-spacing:0!important;text-transform:none!important;line-height:1.2!important;font-family:var(--font-body)!important}
.vz-app button::after{content:none!important}
.vz-btn{--bg:var(--vz-raise);--fg:#fff}
.vz-btn:hover:not(:disabled){--bg:#2e2e2e}
.vz-btn--solid{--bg:var(--vz-orange);--fg:var(--ink)}
.vz-btn--solid:hover:not(:disabled){--bg:#ff8420}
.vz-btn--tiny{--fs:12px}
.vz-steps button{--fg:var(--vz-soft);--fs:12px;--fw:600}
.vz-steps button[aria-selected="true"]{--fg:#fff}
.vz-seg button{--fg:var(--vz-soft);--fs:13px}
.vz-seg--mini button{--fs:12px}.vz-seg--tools button{--fs:12px}
.vz-seg button[aria-pressed="true"],.vz-seg button[aria-selected="true"],.vz-seg button[aria-checked="true"]{--bg:#fff;--fg:var(--ink)}
.vz-chip{--fg:#e8e8e4;--fs:12.5px;--fw:600}
.vz-chips--soft .vz-chip{--fg:var(--vz-soft)}
.vz-chip[aria-pressed="true"]{--bg:#fff;--fg:var(--ink)}
.vz-tools button{--bg:rgba(14,14,14,.78);--fg:#fff}
.vz-tools button:hover:not([aria-pressed="true"]){--bg:rgba(40,40,40,.92)}
.vz-tools button[aria-pressed="true"]{--bg:var(--vz-orange);--fg:var(--ink)}
.vz-room{--fs:13px;--fw:600}.vz-sw{--fs:12.5px}.vz-save{--fs:12.5px;--fw:600}
.vz-icon{--fg:#fff}
.vz-dot{--bg:#888}
.vz-cell{--bg:#000}
.vz-x{--bg:rgba(0,0,0,.75);--fs:18px}
.vz-handle,.vz-handle-pt{--bg:transparent}
.vz-app .vz-h{text-align:left;text-transform:none;letter-spacing:0}

/* before/after chip, quick compare, toast */
.vz-tools button.is-labeled{width:auto;padding:0 12px 0 10px;gap:7px;grid-auto-flow:column;font:700 12px/1 var(--font-body);letter-spacing:.02em;white-space:nowrap}
.vz-toast{position:absolute;left:50%;bottom:44px;transform:translate(-50%,8px);max-width:min(88%,380px);margin:0;padding:9px 14px;border-radius:999px;background:rgba(14,14,14,.92);border:1px solid var(--vz-line-2);color:#fff;font:600 13px/1.3 var(--font-body);text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:5}
.vz-toast.is-on{opacity:1;transform:translate(-50%,0)}
.vz-icon--q{position:relative}
.vz-icon--q svg{fill:none}
.vz-icon--q b{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--vz-orange);color:var(--ink);font:800 11px/18px var(--font-body);text-align:center}
.vz-icon--q b[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.vz-toast{transition:none}}

/* 2D / 3D mode switch in the page head */
.vz-mode{display:flex;gap:2px;padding:3px;background:var(--vz-bg);border:1px solid var(--vz-line);border-radius:10px;margin-right:auto}
.vz-mode a{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border-radius:7px;color:var(--vz-soft);font:700 13px/1 var(--font-body);text-decoration:none}
.vz-mode a[aria-current="page"]{background:#fff;color:var(--ink)}
.vz-mode a:not([aria-current]):hover{color:#fff}
.vz-mode a:focus-visible{outline:2px solid #fff;outline-offset:2px}
@media (max-width:899px){.vz-head{align-items:center}.vz-mode{margin-left:12px}.vz-mode a{min-height:34px;padding:6px 11px}}
