:root{color-scheme:dark;--bg:#07101d;--panel:#0c1726;--raised:#152336;--border:#2b4056;--text:#e9f4ff;--muted:#8298ac;--teal:#69e8ed;--gold:#ddb36c;--shadow:0 12px 60px #0008; font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:13px}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #365067;background:linear-gradient(180deg,#23374b,#15283a);border-radius:5px;padding:8px 10px;transition:background .2s,border-color .2s,transform .15s}button:hover{border-color:var(--teal);background:#203c52}button:active{transform:translateY(1px)}button:focus-visible{outline:2px solid var(--teal)}button:disabled{opacity:.36;cursor:not-allowed}button.active,.enabled{background:linear-gradient(180deg,#174854,#11313c);border-color:#55bbc3;color:#98faff}h2,h3,p{margin-top:0}em{font-style:normal;color:var(--gold)}small{font-size:10px;letter-spacing:1.8px;color:var(--muted)}.muted{color:var(--muted)}[hidden]{display:none!important}.app-shell{height:100vh;height:100dvh;min-height:540px;display:flex;flex-direction:column;overflow:hidden}.main-header{height:69px;flex:0 0 69px;display:flex;align-items:center;gap:34px;padding:0 21px;border-bottom:1px solid var(--border);background:#07111e}.brand{display:flex;align-items:center;gap:13px;min-width:256px}.brand-symbol{font-size:30px;color:var(--teal);text-shadow:0 0 22px #61f1ff88}.brand-name{font-weight:850;letter-spacing:1.3px;font-size:18px}.brand-name span{color:var(--teal)}.brand-name small{font-weight:400;letter-spacing:0;color:var(--gold)}.brand-sub{font-size:8px;color:#7999ad;letter-spacing:2.4px}.project-meta{display:flex;flex-direction:column;gap:4px}.project-meta strong{font-size:20px;letter-spacing:2.3px;font-weight:650}.project-meta em{font-weight:350}.mini-kicker{color:#7195ac}.header-right{margin-left:auto;display:flex;align-items:center;gap:12px}.pill{border:1px solid #34516b;border-radius:20px;padding:9px 12px;color:var(--muted);letter-spacing:1.2px;font-size:10px}.pill b{color:var(--gold)}.mini-btn{font-weight:700;font-size:10px;letter-spacing:1.3px}.mode-nav{height:57px;flex:0 0 57px;display:flex;align-items:stretch;padding:0 19px;border-bottom:1px solid var(--border);background:#0a1625;gap:5px}.mode-nav button{width:140px;background:transparent;border:0;border-radius:0;border-bottom:2px solid transparent;color:#93aabc;letter-spacing:.6px;font-weight:700}.mode-nav button.active{color:var(--teal);background:#142a38;border-bottom-color:var(--teal)}.mode-nav button:hover{background:#162839}.mode-nav button:first-letter{color:var(--gold)}.workbench{display:grid;grid-template-columns:274px minmax(300px,1fr) 316px;flex:1;min-height:0}.side-panel{display:flex;flex-direction:column;min-height:0;background:#0b1726}.left-panel{border-right:1px solid var(--border)}.right-panel{border-left:1px solid var(--border);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#395670 transparent;padding-bottom:20px}.panel-heading{padding:23px 18px 14px}.panel-heading h2{margin:6px 0 0;font-size:19px;font-weight:620;letter-spacing:.3px}.panel-heading h2 em{font-size:13px;float:right;border:1px solid #3b5364;border-radius:20px;padding:3px 8px}.panel-heading.compact{padding-top:16px;padding-bottom:10px}.panel-heading h3{margin:6px 0 0;font-size:15px}.search-wrap{padding:0 14px 12px;border-bottom:1px solid #253b51}.search-wrap input{width:100%;outline:none;background:#111f31;border:1px solid #345066;border-radius:4px;padding:11px;color:var(--text)}.search-wrap input:focus{border-color:var(--teal)}.assembly-tree{overflow:auto;min-height:0;flex:1;padding:9px 9px 20px;scrollbar-width:thin;scrollbar-color:#39566c transparent}.tree-section{margin-bottom:14px}.tree-section h3{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#a1b6c8;display:flex;justify-content:space-between;align-items:center;padding:7px 10px;margin-bottom:4px}.tree-section h3 span{color:var(--gold)}.tree-part{display:flex;align-items:center;width:100%;gap:8px;text-align:left;border-radius:3px;background:transparent;border:1px solid transparent;padding:8px 7px;color:#91a7ba;font-size:11px;line-height:1.3}.tree-part:hover{background:#162a3a}.tree-part.selected{background:#173742;color:#d9fdff;border-color:#4d9ca7}.tree-dot{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%;box-shadow:0 0 7px currentColor}.part-label{flex:1}.tree-status{font-size:12px;color:#72a8ba}.left-foot{padding:14px 19px;color:var(--gold);font-size:10px;line-height:1.7;letter-spacing:1px;border-top:1px solid var(--border)}.left-foot span{color:var(--muted);letter-spacing:0}.viewport-shell{position:relative;display:flex;flex-direction:column;overflow:hidden;min-height:0;background:radial-gradient(ellipse at 50% 52%,#1e3446 0%,#0b1a2a 43%,#050c18 84%)}.viewport-shell:fullscreen{height:100vh}.viewport-heading{position:absolute;top:21px;left:23px;z-index:2;pointer-events:none}.section-ticker{font-size:10px;letter-spacing:2px;color:#8ba9b9}.section-ticker b{color:var(--gold)}.blink{color:#70f0a1;font-size:10px;animation:blink 2s infinite}@keyframes blink{50%{opacity:.3}}.technical-name{font-size:21px;font-weight:730;letter-spacing:3px;margin-top:10px}.technical-name span{font-weight:300;color:var(--gold)}.view-main{position:relative;flex:1;min-height:0}#viewport{width:100%;height:100%;display:block;touch-action:none;cursor:grab}#viewport:active{cursor:grabbing}.viewport-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#07101c55,transparent 21%,transparent 83%,#08111d77)}.axis-mark{position:absolute;left:22px;bottom:26px;display:flex;align-items:center;gap:9px;color:#5b8ba4;font-size:9px;letter-spacing:1.5px;pointer-events:none}.axis-orbit{font-size:21px;color:#74d4d7}.hud-top{pointer-events:none;position:absolute;top:96px;left:20px;right:20px;display:flex;justify-content:space-between;gap:12px}.hud-bit{display:flex;flex-direction:column;gap:4px;max-width:210px}.hud-bit strong{font-size:11px;font-weight:500;color:#b4dce7}.hud-end{text-align:right}.hud-bottom{height:41px;position:absolute;bottom:0;right:0;left:0;display:flex;align-items:center;justify-content:flex-end;gap:21px;padding:0 16px;color:#87adbd;font-size:10px;letter-spacing:1px;pointer-events:none;background:linear-gradient(90deg,transparent,#081525aa)}.hud-bottom>span:first-child{margin-right:auto}.hud-bottom button{pointer-events:all}.hud-led{display:inline-block;background:#5de7a7;width:6px;height:6px;border-radius:50%;margin-right:4px}.icon-btn{font-size:17px;padding:3px 9px}.overlay-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.leader{position:absolute;border-left:1px solid var(--teal);border-top:1px solid var(--teal);width:65px;height:24px;color:#d4faff;text-shadow:0 0 9px #000;transform:translate(0,-23px)}.leader i{position:absolute;bottom:-3px;left:-4px;border:1px solid var(--teal);width:7px;height:7px;border-radius:50%;background:var(--teal)}.leader span{position:absolute;left:67px;top:-9px;min-width:180px;padding:6px 9px;background:#102435c7;border:1px solid #4d7181;font-size:10px}.loading{position:absolute;inset:0;z-index:5;display:flex;justify-content:center;align-items:center;flex-direction:column;background:#071523ed}.loading h2{letter-spacing:1.5px}.loading p{color:var(--muted)}.spinner{width:45px;height:45px;border:2px solid #275468;border-top-color:var(--teal);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}.toast{opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;position:absolute;bottom:68px;left:50%;translate:-50%;width:max-content;max-width:80%;text-align:center;background:#112d38e8;color:#b5fef0;border:1px solid #4da99d;border-radius:4px;padding:11px 17px;pointer-events:none;font-size:12px}.toast[data-kind=error]{border-color:#d47d62;background:#46251fd9;color:#ffe0d3}.toast.visible{opacity:1;transform:none}.inspector{padding:0 17px 12px;min-height:197px}.inspector-head{display:flex;flex-direction:column;gap:10px}.part-badge{color:var(--gold);font-size:10px;text-transform:uppercase;letter-spacing:1.4px}.inspector-head strong{font-size:16px;line-height:1.3;font-weight:650}.part-desc{line-height:1.55;color:#a5bbca;font-size:11px;margin:14px 0}.property-grid{display:grid;grid-template-columns:105px 1fr;gap:8px;font-size:11px}.property-grid span{color:#718ca1}.property-grid b{font-size:11px;font-weight:500;color:#dae6f1}.fitline{color:var(--teal);font-size:11px}.warn{color:#ffb987;font-size:11px}.inspector-actions,.button-grid,.button-row,.camera-views{display:grid;gap:6px}.inspector-actions{grid-template-columns:1fr 1fr;padding:0 16px}.inspector-actions button{font-size:10px}.right-separator{border-top:1px solid #294157;margin:19px 17px}.form-label{display:block;padding:0 17px 7px;font-size:10px;letter-spacing:1px;color:#91a9ba}.form-label.spaced{display:flex;justify-content:space-between;margin-top:16px}.form-label b{color:var(--gold)}select{width:calc(100% - 34px);margin:0 17px 12px;background:#132638;color:#e9f6ff;border:1px solid #355168;padding:8px;border-radius:4px;outline:none;font-size:12px}.range{width:calc(100% - 34px);margin:0 17px 9px;accent-color:var(--teal)}.button-row{grid-template-columns:1fr 1fr;margin:6px 17px}.button-row button{font-size:10px}.button-grid{grid-template-columns:1fr 1fr;margin:6px 17px}.button-grid button{font-size:10px}.camera-views{grid-template-columns:repeat(3,1fr);margin:0 17px 12px}.camera-views button{font-size:10px;letter-spacing:.3px}.playback{grid-template-columns:1fr 1fr 1fr}.instruction{padding:0 17px;color:#a5bbc8;line-height:1.5;font-size:11px}.assembly-meter,.power-track{height:7px;margin:10px 17px 0;background:#223348;border-radius:10px;overflow:hidden}.assembly-meter>div,.power-track>div{height:100%;background:linear-gradient(90deg,#228a95,#75f5de);transition:width .2s;width:0}.operate-readout{margin:0 0 15px}.operate-readout>div:first-child{display:flex;justify-content:space-between;padding:0 17px}.operate-readout b{color:var(--gold)}.chrono-readout{text-align:right;padding:15px 17px;color:#91a6b9;font-size:11px}.chrono-readout span{color:var(--teal);font-size:16px}.toggle-settings{display:flex;justify-content:space-between;gap:9px;padding:0 17px;font-size:11px;color:#afc8da}.toggle-settings label{display:flex;align-items:center;gap:6px}.toggle-settings select{padding:4px;width:auto;margin:0}.toggle-settings input{accent-color:var(--teal)}.save-bar{grid-template-columns:1fr 1fr 1fr;margin-top:18px}.save-status{text-align:center;color:#729cae;font-size:10px;margin-top:8px}.footer{flex:0 0 35px;height:35px;padding:0 17px;border-top:1px solid var(--border);background:#07111d;display:flex;align-items:center;gap:20px;justify-content:space-between;font-size:9px;color:#7d97aa;letter-spacing:1px}.footer div:first-child{color:var(--gold)}.footer span{color:#8299a9}.footer a{color:var(--teal);text-decoration:none}.modal-backdrop{position:fixed;inset:0;z-index:30;background:#000b;display:flex;align-items:center;justify-content:center;padding:18px}.help-dialog{position:relative;width:min(540px,100%);background:#102537;border:1px solid #4b7c8b;box-shadow:0 24px 90px #000b;padding:27px;border-radius:7px}.help-dialog h2{color:var(--gold);letter-spacing:1px}.help-dialog p{line-height:1.7;color:#bdd0df}.close-dialog{position:absolute;right:15px;top:15px;font-size:20px}.help-dialog .primary{background:#1b6370}.mobile-only{display:none}
@media(max-width:1250px){.workbench{grid-template-columns:232px minmax(270px,1fr) 275px}.brand{min-width:210px}.project-meta strong{font-size:17px}.mode-nav button{width:120px}.panel-heading{padding:18px 13px 12px}.inspector{padding:0 13px}.technical-name{font-size:17px}}
@media(max-width:980px){.workbench{grid-template-columns:210px minmax(270px,1fr)}.right-panel{position:absolute;z-index:9;top:125px;right:0;bottom:35px;width:310px;max-width:94%;box-shadow:-8px 0 25px #0008;transform:translateX(100%);transition:transform .22s}.right-panel.drawer-open{transform:translateX(0)}.mobile-only{display:inline-block}.mode-nav button{flex:1}.mode-nav button span{font-size:10px}.brand{min-width:0}.project-meta{display:none}.footer{z-index:2}.footer>div:last-of-type{display:none}}
@media(max-width:800px){.main-header{height:59px;flex-basis:59px;padding:0 13px}.brand-name{font-size:15px}.brand-sub{font-size:7px;letter-spacing:1.2px}.pill{display:none}.mode-nav{height:53px;flex-basis:53px;padding:0 3px}.mode-nav button{width:auto;min-width:0;padding:7px 2px;font-size:17px;display:flex;flex-direction:column;justify-content:center;gap:1px}.mode-nav button span{font-size:9px}.workbench{display:block;position:relative}.left-panel{position:absolute;z-index:10;top:0;left:0;bottom:0;width:290px;max-width:90%;transform:translateX(-100%);transition:transform .22s;box-shadow:7px 0 23px #0008}.left-panel.drawer-open{transform:translateX(0)}.right-panel{top:0;bottom:0}.viewport-shell{height:100%}.viewport-heading{top:14px;left:16px}.hud-top{top:85px}.footer{flex:0 0 39px;height:39px;gap:8px;padding:0 7px;letter-spacing:.1px}.footer div:first-child{font-size:8px}.footer a{font-size:8px}.technical-name{font-size:15px;letter-spacing:1.2px}.hud-bottom{gap:10px}.leader span{min-width:95px;max-width:150px;font-size:9px}.inspector{min-height:0}}
@media(max-width:410px){.brand-symbol{font-size:23px}.brand-name{font-size:12px}.brand-sub{font-size:6px}.brand{gap:6px}.header-right{gap:4px}.mini-btn{padding:6px;font-size:9px}.footer div:first-child span{display:none}.mode-nav button span{font-size:8px}.section-ticker{font-size:8px}}

/* Keep inspector content scrollable, never overlay action controls. */
.right-panel>*{flex-shrink:0}.inspector{min-height:0;flex-shrink:0}

.challenge-metrics{margin:0 17px 12px;color:#88a8bd;font-size:10px;letter-spacing:1px;line-height:1.8}.challenge-metrics b{color:#e5c18a;font-variant-numeric:tabular-nums}.challenge-metrics span{display:block;color:#84ead9;font-size:9px;margin-top:4px}.snap-ghost{position:absolute;transform:translate(-50%,-50%);border:1px dashed #8cece0;box-shadow:0 0 0 6px #74f6ed12,0 0 23px #74f6ed50;width:21px;height:21px;border-radius:50%;}.snap-ghost span{position:absolute;white-space:nowrap;left:28px;top:-4px;color:#a9f6e6;font:10px system-ui;background:#092a34aa;padding:3px}.connection-wire{position:absolute;inset:0;pointer-events:none;overflow:visible}
