:root{color-scheme:dark;--bg:#030405;--panel:#101316;--line:#2c3238;--ink:#eef0f2;--muted:#a2abb3}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 Inter,Arial,"PingFang TC",sans-serif}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #d4e5f3;outline-offset:3px}header{height:82px;display:flex;align-items:center;gap:32px;padding:0 32px;border-bottom:1px solid var(--line)}.logo{font-size:30px;letter-spacing:-1.2px;font-style:italic;font-weight:750;color:#f1f3f5;text-decoration:none}.logo span{color:#e54131}.crumb{font-size:12px;letter-spacing:2px;padding-left:30px;border-left:1px solid #34383b}.crumb span{color:#686f75;margin:0 10px}.preview{margin-left:auto;color:var(--muted);font-size:12px;letter-spacing:2px}main{max-width:1800px;margin:auto;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(330px,1fr);align-items:start}.showroom{position:sticky;top:0;min-width:0;padding:25px 24px 22px;display:flex;flex-direction:column;height:min(940px,calc(100vh - 16px));min-height:620px}.scene-heading{position:absolute;left:32px;top:28px;z-index:2;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:2.3px;color:#9da7b0}.scene-heading h1{font-size:22px;font-weight:400;letter-spacing:3px;margin:9px 0}.scene-heading p{font-size:12px;color:#9da7b0;margin:0}#viewport{flex:1;min-height:350px;position:relative;overflow:hidden}#scene{display:block;width:100%;height:100%;outline:none}#load-state{position:absolute;inset:45% 10% auto;text-align:center;color:#a3afb7;font-size:12px}.part-label{position:absolute;z-index:3;width:26px;height:26px;border:1px solid #65727d;border-radius:50%;background:#10161be6;color:#dce5eb;transform:translate(-50%,-50%);font-size:11px}.part-label[aria-pressed=true]{border-color:white;box-shadow:0 0 15px #9ebdd733}.scene-foot{padding-top:8px}.scene-meta{display:flex;justify-content:space-between;color:#8f9ca7;font-size:10px;letter-spacing:1px;padding:0 2px 15px;gap:10px}.cameras{display:flex;align-items:center;justify-content:center;gap:8px}.cameras button{min-width:72px;padding:12px 15px;background:#07090c;border:1px solid #3a424a;color:#adb8c1;border-radius:5px;font-size:12px;transition:background .2s,box-shadow .2s,border-color .2s}.cameras button[aria-pressed=true]{color:#f4f8fc;border-color:#e1eaf0;background:linear-gradient(140deg,#26323d,#0b0f13);box-shadow:inset 0 0 14px #c5e6ff0b,0 0 13px #a3c8e223}.cameras .separator{width:1px;height:25px;background:#30373d;margin:0 5px}#zoom{min-width:112px}#zoom span{font-size:19px;vertical-align:middle;margin-right:6px}.assembly-options{padding-top:22px}.assembly-options>.eyebrow{display:flex;justify-content:space-between}.assembly-buttons{margin-top:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.assembly-buttons button{border:1px solid #272e35;background:linear-gradient(160deg,#141a20,#07090c);color:#bcc7cf;border-radius:6px;padding:10px 4px;font-size:11px;display:flex;gap:10px;justify-content:center;align-items:center}.assembly-buttons button[aria-pressed=true]{border-color:#a3b1be;color:#fff;background:linear-gradient(160deg,#25313c,#0a0e12)}.part-icon{font-size:24px;color:#cad5de}.config{border-left:1px solid var(--line);padding:28px 23px 20px;background:linear-gradient(145deg,#0e1114,#080a0d);min-width:0}.config-heading{position:relative;padding:0 0 23px}.config-heading h2{font-size:22px;font-weight:400;letter-spacing:2px;margin:7px 0 0}.draft-dot{font-size:10px;color:#9aa7b2;display:block;margin-top:10px}.draft-dot:before{content:'';display:inline-block;width:5px;height:5px;background:#a4b9c9;border-radius:50%;margin-right:7px}details{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;gap:12px;align-items:center;padding:18px 0;font-size:11px;color:#7e8993}summary::-webkit-details-marker{display:none}summary:after{content:'+';margin-left:auto;color:#a8b5be;font-size:17px}details[open]>summary:after{content:'−'}summary>span:first-child{font-size:14px;color:#e8edf1}summary>span:last-child:not(:first-child){font-size:10px;color:#93a3af;margin-left:auto}.fields{padding-bottom:23px}label{display:block;font-size:12px;color:#c4cdd5;margin:12px 0 7px}.muted{font-size:10px;color:var(--muted)}select,input[type=number]{background:#12181e;color:#edf2f6;border:1px solid #343e48;border-radius:5px;min-height:40px;padding:8px 10px;width:100%;min-width:0}select{font-size:12px}input[type=range]{width:100%;accent-color:#ccdce8;margin:9px 0 4px}.length-row{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.length-row label{margin:0}.length-row>div{display:flex;gap:6px;align-items:center;font-size:11px;color:#94a4b2}.length-row input{width:73px}#swatches{display:flex;flex-wrap:wrap;gap:9px;padding-top:14px}#swatches button{width:29px;height:29px;border:2px solid #454e58;border-radius:50%;padding:0;box-shadow:inset 0 2px 4px #ffffff25,0 2px 4px #000}#swatches button[aria-pressed=true]{outline:1px solid #f3f8fc;outline-offset:3px;border-color:#131d25}.photo-details{margin-top:15px;border:0}.photo-details summary{padding:8px 0;font-size:11px;color:#b3c2cc}.photo-details summary>span{font-size:10px!important}.photo-wrap{position:relative;width:100%;max-width:300px;margin:10px auto;background:#fff}.photo-wrap img{display:block;width:100%}#photo-marker{position:absolute;border:2px solid #eb7b4f;background:#f2782822;pointer-events:none}.photo-details a{color:#adbfcc;font-size:11px}.hint{font-size:10px;color:#98a7b2;line-height:1.7;margin:10px 0 0}.end-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px}.end-tabs button,.directions button{min-height:40px;background:#0c1116;border:1px solid #313a43;color:#a4b4c0;border-radius:4px;font-size:12px}.end-tabs button[aria-pressed=true],.directions button[aria-pressed=true]{color:#eff6fc;border-color:#bccbd6;background:linear-gradient(135deg,#25333e,#111820)}.directions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.directions button:disabled{opacity:.3;cursor:default}.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.count-row{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.count-row input{width:80px}.config-bottom{border-top:1px solid var(--line);padding-top:22px}.config-bottom>span{display:flex;justify-content:space-between;font-size:11px;color:#aebdc8}.config-bottom b{font-weight:400}.primary{width:100%;display:flex;justify-content:space-between;padding:13px 16px;margin-top:15px;color:#edf6ff;background:linear-gradient(135deg,#273743,#10161d);border:1px solid #93a9ba;border-radius:5px;font-size:13px}.primary:hover{background:#263847}#summary{font-size:12px;color:#d4dfe8;white-space:pre-line}.error{font-size:11px;color:#ffb194}.error:empty{display:none}[hidden]{display:none!important}footer{display:flex;justify-content:space-between;padding:18px 32px;border-top:1px solid #262d34;color:#758692;font-size:10px;gap:12px}button:hover:not(:disabled){filter:brightness(1.2)}@media(min-width:1500px){.showroom{height:900px}}@media(max-width:780px){header{height:68px;padding:0 16px;gap:16px}.logo{font-size:25px}.crumb{font-size:10px;padding-left:12px;letter-spacing:0}.preview{display:none}main{grid-template-columns:1fr}.showroom{position:relative;height:650px;min-height:0;padding:18px 14px}.scene-heading{left:20px;top:20px}.scene-heading h1{font-size:19px}.config{border-left:0;border-top:1px solid var(--line);padding:24px 20px}.cameras{gap:5px}.cameras button{min-width:58px;padding:11px}#zoom{min-width:104px}.scene-meta{font-size:9px}footer{padding:18px;flex-direction:column}.two{gap:10px}}@media(max-width:380px){.cameras button{min-width:48px;padding:9px}.cameras .separator{margin:0 1px}.scene-heading h1{font-size:17px}.showroom{height:600px}.assembly-buttons button{gap:5px;font-size:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.is-zoom .scene-heading h1,.is-zoom .scene-heading .eyebrow{display:none}.is-zoom .scene-heading{padding:7px 10px;background:#030405c9;border-radius:4px}.is-zoom .scene-heading p{color:#d6e0e8}

.part-preview{width:84px;height:40px;object-fit:contain;flex-shrink:0}.assembly-buttons button{gap:3px}.dimension-guide{padding:0 10px 8px;margin-top:10px;background:#0c1116;border:1px solid #25303a;border-radius:5px}.dimension-guide svg{display:block;width:230px;max-width:100%;height:70px;margin-top:6px}@media(max-width:1100px){.assembly-buttons button{flex-direction:column;padding:5px}.part-preview{height:35px;width:90px}}

#length-overlay,#support-tags{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.support-tag{position:absolute;transform:translate(-50%,-50%);font-size:10px;background:#1a2934;color:#c8deee;border-radius:3px;padding:1px 5px}.accessory-row{display:grid;grid-template-columns:22px 16px minmax(0,1fr) 55px;gap:7px;padding:10px 7px;margin-top:10px;border:1px solid #35434e;border-radius:6px;background:#11181e;align-items:center}.accessory-row label{margin:0;font-size:10px}.accessory-row select,.accessory-row input{margin-top:5px}.drag-handle{touch-action:none;cursor:grab;background:none;border:0;color:#acbfce;font-size:22px;padding:0}.order-number{font-size:11px;color:#a6c4db}.row-actions{grid-column:3/5;display:flex;justify-content:flex-end;gap:6px}.row-actions button,#add-accessory{border:1px solid #3c5060;border-radius:4px;background:#17232c;color:#d6e6f2;padding:4px 12px}.row-actions button:disabled{opacity:.25}.dragging{opacity:.5}.drop-target{border-color:#d0e8fb;background:#263b4b}#add-accessory{width:100%;margin-top:12px;padding:10px}

#face-controls{margin-top:14px;padding:0 12px 12px;border:1px solid #35434e;border-radius:5px}#face-value{float:right;color:#d4e9f8}#rotate-face{width:100%;padding:10px;background:#17232c;border:1px solid #647f92;border-radius:4px;color:#d6e6f2}

@media(max-width:780px){.showroom{height:590px}#viewport{min-height:280px}.scene-heading h1{font-size:17px}.scene-heading{top:14px}.assembly-options{padding-top:14px}.directions button,.end-tabs button,.row-actions button{min-height:44px}.row-actions button{min-width:44px}.drag-handle{min-height:44px}.config{padding:20px 16px}.scene-meta{letter-spacing:0}}

.hose-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:14px;flex-shrink:0}.hose-tabs button{font-size:11px;min-height:35px;padding:5px 2px;color:#9cafbe;background:#101820;border:1px solid #34424e;border-radius:4px}.hose-tabs button[aria-selected=true]{color:white;border-color:#cee4f3;background:#294051}.showroom .scene-heading{top:116px}.hose-toggle{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#abc2d2}.hose-toggle label{margin:0}.hose-toggle input{accent-color:#bdd9ed}.hose-note{margin:8px 0 16px}#set-summary{white-space:pre-line;font-size:11px;color:#b9cedc}#empty-hose{position:absolute;inset:45% 0 auto;text-align:center;color:#9db5c7}.hose-empty #scene,.hose-empty #length-overlay,.hose-empty #support-tags,.hose-empty .part-label,.hose-empty .scene-heading,.hose-empty .scene-foot,.hose-empty .assembly-options{visibility:hidden}.showroom{min-height:710px}#viewport{min-height:280px}@media(max-width:780px){.showroom{height:685px;min-height:0}.showroom .scene-heading{top:110px}.hose-tabs button{min-height:40px}.hose-toggle label{min-height:44px;display:flex;align-items:center;gap:6px}}

#hose-enabled{width:150px}.hose-toggle{gap:8px}

.reset-actions{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.reset-actions button,#admin-tools button,#review{background:#15212b;color:#dae7ee;border:1px solid #50606c;border-radius:5px;padding:10px}#quote-form h2,#admin-tools h2{font-size:18px}#quote-link{display:block;color:#cee4f5;margin-top:12px}#admin-tools{margin-top:24px;border-top:1px solid #50606c;padding-top:16px}#quote-import{width:100%;background:#111a21;color:#e4edf4}#proof-output img{width:100%;margin-top:15px}#proof-output a{color:#cee4f5}#admin-status,#reset-status{font-size:12px;color:#b9d4e2}
#bolt-shop{border:1px solid #354551;border-radius:8px;padding:16px;margin:24px 0}#bolt-shop h2{font-size:18px;margin:0}#bolt-shop h3{font-size:14px;color:#bed0dd}.bolt-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0;border-bottom:1px solid #303943}.bolt-row label{margin:0;font-size:12px}.bolt-row button,#add-bolt{background:#18232c;color:#e9f1f6;border:1px solid #4f6575;border-radius:5px;padding:8px}#add-bolt{margin-top:12px}#bolt-tray{position:absolute;bottom:26px;left:8px;z-index:4;max-width:190px;max-height:150px;overflow:auto;border:1px solid #394957;border-radius:6px;background:#0a1118e8;padding:4px;pointer-events:auto}.bolt-mini{display:flex;align-items:center;gap:4px;font-size:10px;color:#e4eff7}.bolt-mini img{width:65px;height:44px;object-fit:contain}.bolt-mini span{white-space:nowrap}@media(max-width:780px){#bolt-tray{max-width:170px;max-height:100px}.bolt-mini img{width:48px;height:34px}.bolt-mini{font-size:9px}}
.bolt-row .bolt-row-preview{grid-column:1/-1;display:flex;align-items:center;gap:12px;text-align:left;background:#080e14;padding:8px}.bolt-row-preview img{width:120px;height:80px;object-fit:contain}.bolt-row-preview span{font-size:11px;color:#c5d6e3}#bolt-dialog{background:#101923;color:#edf5fa;border:1px solid #637b8e;border-radius:10px;width:min(440px,90vw);text-align:center}#bolt-dialog::backdrop{background:#000b}#bolt-dialog-image{display:block;width:100%;image-rendering:auto}#close-bolt-dialog{float:right;background:#243746;border:1px solid #6a8396;color:white;border-radius:5px;font-size:24px;width:42px;height:42px}/* Compact on-scene order chips; larger inspection stays in the shop. */
#bolt-tray{left:6px;bottom:24px;max-width:150px;max-height:88px;padding:2px 4px;border-radius:4px}.bolt-mini{gap:2px;font-size:9px;line-height:1.1;min-height:25px}.bolt-mini img{width:32px;height:25px}.bolt-mini span{white-space:nowrap}@media(max-width:780px){#bolt-tray{max-width:142px;max-height:76px}.bolt-mini img{width:28px;height:23px}.bolt-mini{min-height:23px;font-size:9px}}
#bolt-tray{border:0;background:transparent;box-shadow:none;border-radius:0}

/* Launch audit: keep heading outside model and accessible mobile form fields. */
.showroom .scene-heading{position:relative;left:auto;top:auto;flex-shrink:0;padding:0 7px 12px}.is-zoom .scene-heading{padding:4px 7px 8px}
#quote-form label{display:block;margin:14px 0 6px;color:#b9c8d2}#quote-form input{display:block;width:100%;min-height:44px;padding:11px;background:#101820;color:#eef3f6;border:1px solid #34424e;border-radius:5px}#quote-form{min-width:0}@media(max-width:780px){input,select,textarea,#quote-form input{font-size:16px}.showroom .scene-heading{top:auto}.showroom{height:730px}}
