
:root{--bg:#0f2b4a;--ink:#e4eef7;--muted:#93adc5;--accent:#72c9bd;--line:#9cc3e640;--faint:#93adc5}body{font-family:"IBM Plex Sans",sans-serif}.workbench{height:100svh;min-height:0;margin:0;background-color:var(--bg)}.dock,.inspector,.parts-panel{background:#0c2440f5}.inspector{border-color:var(--accent)}.inspector h2,.parts-heading h2{font-family:"IBM Plex Sans",sans-serif;font-weight:500}.viewer-heading,.label,.slider-row,.inspector-head,.part-record{font-family:"IBM Plex Mono",monospace}.label{border-color:var(--accent);background:#0c2440cc}.label:before{background:var(--accent)}.part-record{font-size:10px!important;color:var(--accent)!important;border-top:1px solid var(--line);padding-top:10px}#prepare-request{background:var(--accent);color:var(--bg);padding:10px;width:100%;font-size:12px;font-weight:600}button:hover{border-color:var(--accent);background:#72c9bd12}.parts-panel li>button[aria-pressed=true]{background:#72c9bd12}.inspector{max-height:calc(100% - 255px);overflow:auto}.tool-row button{min-height:36px}.parts-panel{max-width:calc(100% - 24px)}

html,body{background:transparent}.workbench{background:transparent;background-image:none}.drawing-border{display:none}.viewport{inset:0 0 104px}.viewer-hint{bottom:91px;font-size:10px;gap:8px}.dock{bottom:0;left:12px;right:12px;background:transparent;border:0;box-shadow:none}.tool-row{border:0;padding:0;gap:12px}.tool-row #explode{min-width:105px;font-size:13px;padding:12px 18px;min-height:44px}.slider-row{padding:14px 0;font-size:10px;gap:12px}.slider-row input{max-width:none;height:18px}.slider-row .scale-note{display:none}.label{font-size:10px;padding:5px 8px;max-width:180px}.inspector{top:32px;right:12px;width:260px;max-height:calc(100% - 165px)}.inspector h2{font-size:24px}.inspector p{font-size:13px}.inspector-actions button{font-size:12px;min-height:40px}.parts-panel{top:24px;bottom:125px}.parts-panel li>button{font-size:13px;padding:13px 5px}.parts-panel li>button span{font-size:10px}.parts-panel>p{font-size:13px}#assembly-tools{position:relative;flex:1}#assembly-tools summary{cursor:pointer;list-style:none;border:1px solid var(--line);background:#0c2440c9;min-height:44px;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:13px}#assembly-tools summary::-webkit-details-marker{display:none}#assembly-tools summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}#assembly-tools[open] summary{border-color:var(--accent)}.inspection-menu{position:absolute;bottom:calc(100% + 10px);right:0;width:280px;max-width:calc(100vw - 32px);padding:16px;background:#0c2440fa;border:1px solid var(--line);box-shadow:0 10px 30px #0003}.inspection-menu>p{font:11px "IBM Plex Mono",monospace;color:var(--muted);margin:0 0 12px}.inspection-menu .orientation{position:static;display:flex;margin-bottom:12px;gap:6px}.inspection-menu .orientation button{font-size:11px;min-height:38px;flex:1}.inspection-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inspection-buttons button{font-size:12px;padding:10px;min-height:42px;white-space:normal}.inspection-buttons .reset,.inspection-buttons .expand{margin:0;height:auto}.workbench.unavailable #assembly-tools{display:none}.workbench:fullscreen,.workbench.expanded{background:var(--bg)}
@media(max-width:600px){.viewport{inset:0 0 118px}.viewer-hint{bottom:105px;font-size:9px;width:100%}.dock{left:0;right:0}.tool-row{flex-wrap:nowrap;padding:0;gap:8px}.tool-row #explode{min-width:88px;padding:10px 12px}.label{font-size:9px;max-width:135px}.inspector{top:20px;right:5px;width:240px}.parts-panel{top:15px;right:5px;bottom:140px}.slider-row{padding:14px 2px}.inspection-menu{width:255px}}

.tool-row{justify-content:space-between}.tool-row #explode{flex:0 0 auto;width:130px}#assembly-tools{flex:0 1 220px}.viewer-hint{bottom:120px}.viewport{bottom:146px}@media(max-width:600px){.tool-row #explode{width:100px}#assembly-tools{flex:1}.viewer-hint{bottom:120px}.viewport{bottom:151px}}

.loading #poster,.unavailable #poster{opacity:.8;inset:0;width:100%;height:calc(100% - 60px);max-width:100%;object-fit:contain}.loading #load-state{top:auto;bottom:12px;left:50%;transform:translateX(-50%);width:auto;white-space:nowrap;display:flex;align-items:center;gap:12px;font:12px "IBM Plex Mono",monospace;color:var(--ink)}.loading #load-state:before{content:"";width:12px;height:12px;border:1px solid var(--accent);border-radius:50%;animation:assembly-pulse 1.4s ease-in-out infinite}.loading .dock,.loading .viewer-hint,.loading .inspector,.loading .parts-panel{visibility:hidden}.unavailable #load-state{top:auto;bottom:0;transform:translateX(-50%);font-family:"IBM Plex Sans",sans-serif}.unavailable #poster{height:calc(100% - 135px)}@keyframes assembly-pulse{50%{opacity:.3;transform:scale(.75)}}@media(prefers-reduced-motion:reduce){.loading #load-state:before{animation:none}}
