:root{color-scheme:dark;--foreground:#f5f4f0;--background:#151a17;--orange:#cd805d;--blue:#90b8cb;--font-size-base:1rem}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#151a17;color:#f5f4f0;font:400 16px/1.5 Manrope,Arial,sans-serif}
body{padding:clamp(14px,2.5vw,28px)}
[hidden]{display:none!important}
button,input,select{font:inherit}
button,select,input[type=checkbox]{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #cd805d;outline-offset:4px}
.viz-row,.viz-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.viz-controls>.form-label{flex:1 1 185px;display:flex;flex-direction:column;gap:6px;min-width:0;font-size:14px}
.form-select{display:block;width:100%;max-width:100%;min-height:44px;padding:10px 30px 10px 12px;background:#242c26;color:#f5f4f0;border:1px solid #657269;border-radius:2px;font-size:14px}
.form-check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px}
.form-check-input{width:18px;height:18px;margin:0;accent-color:#cd805d;flex:none}
.btn{min-height:44px;padding:10px 16px;color:#f5f4f0;background:#242c26;border:1px solid #657269;border-radius:2px;font-size:14px;font-weight:500;cursor:pointer}
.btn:hover{background:#364138}.btn[aria-pressed=true]{background:#9b3f23;border-color:#cd805d}
.text-small{font-size:13px;line-height:1.5}
.den-viewer-title{font-size:20px;font-weight:500;margin:0}
.den-tools{margin:12px 0 16px;padding-block:12px;border-top:1px solid #3b453e;border-bottom:1px solid #3b453e}
.den-tools summary{cursor:pointer;font-size:14px;padding-block:6px}
.den-tools .viz-controls{margin-top:12px}
#den-sprinter-model{--den-floor:#d4d0c8;--den-shell:#efeeea;--den-wood:#d0ae83;--den-counter:#45484a;--den-seat:#414547;--den-fabric:#93918d;--den-dark:#323330;--den-metal:#a3a3a1;--den-glass:#c2dce5;--den-bedding:#e8ddd0;--den-edge:#282a2a}
#den-stage{height:580px!important;background:#f5f4f0;touch-action:pan-y!important;cursor:default!important;border-radius:2px}
#den-stage[data-interactive=true]{touch-action:none!important;cursor:grab!important}
#den-stage[data-interactive=true]:active{cursor:grabbing!important}
#den-labels span{color:#202523!important;background:#f5f4f0!important;font-size:12px!important;line-height:1.35}
#den-leaders line{stroke:#202523!important}
#den-loading{color:#202523;background:#f5f4f0;padding:8px}
#den-fallback{width:100%;height:100%;object-fit:contain}
#den-stage canvas{position:absolute;inset:0}
#den-leaders{z-index:1}#den-labels{z-index:2}
#den-detail{min-height:3em;color:#d3d9d3}
.den-viewer-hint{margin:12px 0;color:#c4cbc5}
.den-main-controls .form-label{flex-basis:210px}
.den-part-select{margin-top:14px}
.den-part-select .form-label{display:block;font-size:14px}
.den-part-select select{margin-top:6px;max-width:430px}
@media(max-width:560px){body{padding:14px}.den-main-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px}.den-main-controls>.form-label{width:100%}.form-select{font-size:16px;padding-left:8px;padding-right:20px}.den-tools .viz-controls{gap:6px 12px}#den-stage{height:500px!important}.den-viewer-title{font-size:18px}.text-small{font-size:13px}}
@media(max-width:360px){.den-main-controls{grid-template-columns:1fr}#den-stage{height:480px!important}}

/* Component measurements: annotations only; W=X, D=Z, H=Y. */
.component-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0 10px}
.component-toolbar .text-small{color:#c4cbc5}
.component-catalog{margin:14px 0 20px;padding:18px;background:#202822;border:1px solid #526057;border-radius:6px;min-width:0}
.component-catalog h2{font-size:18px;margin:0 0 6px;font-weight:600}
.component-note,.component-row-note{font-size:12px;line-height:1.5;color:#c4cbc5;margin:5px 0 12px}
.component-catalog input[type=search]{width:100%;min-height:44px;background:#151a17;color:#f5f4f0;border:1px solid #657269;padding:10px 12px;border-radius:3px}
.component-selected{padding:12px;background:#332f25;border-left:3px solid #cd805d;font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.component-list{max-height:370px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.component-row{padding:8px 4px;border-bottom:1px solid #3b453e}
.component-row-button{display:flex;justify-content:space-between;gap:14px;align-items:center;text-align:left;width:100%;border:0;background:transparent;color:#f5f4f0;padding:10px 6px;min-height:44px;cursor:pointer;font-size:13px}
.component-row-button strong{white-space:nowrap;font-weight:500;color:#e7b296;font-variant-numeric:tabular-nums}
.component-row-button[aria-pressed=true]{background:#3b4135;box-shadow:inset 3px 0 #cd805d}
.component-row-note{margin:0 6px 6px}
.component-pieces{font-size:12px;color:#c4cbc5;padding:0 6px}
.component-pieces summary{cursor:pointer;min-height:32px;padding:5px 0}
.component-pieces button{display:block;background:transparent;border:0;color:#e7b296;text-align:left;min-height:36px;padding:6px;cursor:pointer;font:inherit}
.component-markers{position:absolute;inset:0;pointer-events:none;z-index:4}
.component-marker{position:absolute;transform:translate(-50%,-50%);width:29px;height:29px;min-height:29px;padding:0;border-radius:50%;border:1px solid #fff;background:#263b32;color:#fff;box-shadow:0 1px 4px #0006;pointer-events:auto;font:600 11px/1 Arial,sans-serif;cursor:pointer}
.component-marker:hover,.component-marker.is-selected{background:#a64120;z-index:2;outline:2px solid #edb196;outline-offset:2px}
.has-component-dimensions #nest-labels,.has-component-dimensions #nest-leaders,.has-component-dimensions #den-labels,.has-component-dimensions #den-leaders{visibility:hidden}
@media(max-width:560px){.component-catalog{padding:12px}.component-row-button{align-items:flex-start;flex-direction:column;gap:4px}.component-marker{width:30px;height:30px}.component-list{max-height:320px}.component-toolbar .btn{width:100%}}

.component-marker .component-name,.component-marker .component-size{display:none}
.component-marker.has-size{width:142px;height:42px;border-radius:4px;padding:4px;line-height:1.3;background:#263b32ef}
.component-marker.has-size .component-size{display:block;font-size:11px;font-weight:500;white-space:nowrap;margin-top:2px}
.component-marker.is-selected{width:220px;max-width:calc(100% - 20px);height:auto;min-height:68px;white-space:normal;border-radius:5px;padding:7px;line-height:1.3;background:#913c20}
.component-marker.is-selected .component-name{display:inline;font-size:12px;margin-left:5px;font-weight:600}
.component-marker.is-selected .component-size{display:block;font-size:12px;white-space:nowrap;margin-top:5px}
