
:root{color-scheme:dark;--bg:#06101b;--panel:#0b1a27;--panel-dark:#091622;--border:#213645;--muted:#7797a8;--text:#d9ebee;--mint:#66f0d2;--aqua:#1faeae;--amber:#eeba6a;--font:'DM Sans',system-ui,sans-serif;--head:'Barlow Condensed','Arial Narrow',system-ui,sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:12px}button,input,select{font:inherit}button{cursor:pointer;transition:.16s ease;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:2px}button:disabled{opacity:.35;cursor:not-allowed}a{text-decoration:none;color:inherit}.app{min-height:100vh;display:flex;flex-direction:column;overflow:hidden}.eyebrow,.section-label{font:700 10px var(--font);letter-spacing:.18em;color:#7aa4b4}.topbar{height:76px;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 27px;gap:20px;border-bottom:1px solid var(--border);background:#091623}.brand{display:flex;align-items:center;gap:11px;min-width:230px}.brand-symbol{width:40px;height:42px;border:1px solid #32796f;border-radius:5px;display:grid;place-items:center;font:800 22px var(--head);color:var(--mint);position:relative}.brand-symbol span{font:700 10px var(--font);position:absolute;bottom:3px;right:3px}.brand-copy{display:flex;flex-direction:column;gap:1px}.brand-copy b{font:800 21px var(--head);letter-spacing:.075em}.brand-copy b span{color:var(--mint)}.brand-copy small{font-size:7.5px;letter-spacing:.24em;color:#7e9fac}.project-identity{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px}.project-identity strong{font:700 26px var(--head);letter-spacing:.13em}.project-identity strong span{color:var(--mint)}.sub-id{font-size:9px;letter-spacing:.12em;color:#99b5c1}.sub-id i{margin:0 4px;color:var(--mint)}.top-utilities{display:flex;align-items:center;gap:11px}.perf{font-size:9px;letter-spacing:.12em;color:#7daaaf;white-space:nowrap}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#59e9ae;margin-right:6px;box-shadow:0 0 9px #59e9ae}.icon-btn{width:32px;height:32px;border:1px solid var(--border);background:#112332;border-radius:3px;font-size:19px}.icon-btn:hover,.view-toolbar button:hover{border-color:var(--mint);color:var(--mint)}.mobile-menu{display:none}.text-link{font-weight:700;letter-spacing:.08em;color:var(--mint);font-size:10px;white-space:nowrap}.mode-nav{display:flex;height:48px;min-height:48px;align-items:stretch;justify-content:center;border-bottom:1px solid var(--border);background:#07141f}.mode-nav button{width:160px;border:0;border-right:1px solid #172d3d;background:transparent;font:700 15px var(--head);letter-spacing:.09em;color:#819ba8;position:relative}.mode-nav button:first-child{border-left:1px solid #172d3d}.mode-nav button span{color:#648899;font:600 9px var(--font);margin-right:12px}.mode-nav button.active{background:linear-gradient(180deg,#173e42 0%,#10272f 100%);color:#d8fff4}.mode-nav button.active:after{position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--mint);content:''}.mode-nav button:hover{color:#e8ffff;background-color:#122b34}.workspace{display:grid;grid-template-columns:276px minmax(0,1fr) 305px;flex:1;min-height:460px;height:calc(100vh - 76px - 48px - 163px - 28px);max-height:1080px}.panel{background:var(--panel);display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:2}.assembly-panel{border-right:1px solid var(--border)}.inspector-panel{border-left:1px solid var(--border)}.panel-heading{padding:22px 20px 14px;display:flex;align-items:center;justify-content:space-between;gap:5px}.panel-heading h2{font:600 23px var(--head);margin:4px 0 0}.tiny-chip{padding:6px 8px;border:1px solid #25505a;border-radius:2px;font:700 9px var(--font);color:#a2e1d8;white-space:nowrap}.search-field{margin:0 15px 11px;display:flex;align-items:center;gap:7px;background:#102637;border:1px solid #274456;border-radius:3px;padding:0 10px;color:var(--mint)}.search-field>span{font-size:25px}.search-field input{min-width:0;flex:1;background:transparent;border:0;outline:0;color:#e6ffff;padding:11px 2px;font-size:11px}.search-field input::placeholder{color:#607f90}.tree-controls{display:flex;justify-content:space-between;padding:0 17px 12px}.tree-controls button{font-size:9px;letter-spacing:.06em;color:#82bfc4;background:none;border:0;padding:4px}.tree-controls button:hover{text-decoration:underline}.assembly-tree{overflow:auto;flex:1;min-height:100px;scrollbar-width:thin;scrollbar-color:#325262 transparent}.tree-group-label{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-top:1px solid #1e3443;padding:12px 16px;background:#0e2230;font:700 11px var(--font);color:#bad2dc;text-align:left}.tree-group-label small{font-size:10px;color:#658fa0}.tree-group-label b{color:#8ca8b3;font-size:11px;margin-right:8px}.part-row{display:flex;gap:9px;align-items:center;width:100%;padding:9px 14px 9px 20px;border:0;border-bottom:1px solid #132635;background:transparent;color:#93aebb;text-align:left;font-size:10.5px}.part-row:hover{background:#163342;color:#dafffa}.part-row.active{background:#143b40;color:#c7fff2;border-left:2px solid var(--mint);padding-left:18px}.part-row .state-mark{width:8px;height:8px;border:1px solid #59818c;border-radius:2px;flex:0 0 auto}.part-row.pending .state-mark{background:var(--amber);border-color:var(--amber)}.part-row.learned .state-mark{background:#248f86;border-color:#248f86}.part-row .row-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.part-row .row-id{font-size:8px;color:#608c9a}.panel-footer{padding:15px 18px 19px;background:#0b1d2a;border-top:1px solid #213847}.panel-line{display:flex;justify-content:space-between;font-size:10px;color:#89b2bc}.panel-line strong{color:#d8efec}.progress-track{height:5px;border-radius:10px;background:#244251;overflow:hidden;margin:10px 0 6px}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#239eaa,#7cf6cb);transition:width .25s}.panel-footer small{font-size:10px;color:#6d96a4}.stage{position:relative;min-width:0;min-height:0;overflow:hidden;background:radial-gradient(ellipse at 50% 43%,#183444,#091a29 65%,#06111a)}#viewport{position:absolute;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:radial-gradient(ellipse at 50% 50%,transparent 32%,rgba(2,9,16,.37) 100%)}.viewport-grid{position:absolute;left:50%;top:50%;width:70%;height:70%;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 100px 35px rgba(3,96,104,.06);pointer-events:none}.stage-top-left{position:absolute;top:25px;left:25px;pointer-events:none;max-width:65%}.stage-title{font:800 24px var(--head);letter-spacing:.07em;color:var(--mint);margin-top:5px}.stage-title span{font-weight:600;color:#b1d0db;font-size:20px}.mode-summary{margin-top:5px;max-width:340px;color:#8ca9b9;font-size:10px;line-height:1.5}.stage-top-right{position:absolute;right:24px;top:25px;display:flex;gap:9px;align-items:center;color:var(--mint);text-align:right;pointer-events:none}.stage-top-right b{font-size:10px;display:block;letter-spacing:.08em}.stage-top-right small{font-size:8px;display:block;margin-top:4px;color:#709da6;letter-spacing:.05em}.status-icon{border:1px solid #216b67;width:30px;height:30px;display:grid;place-items:center;border-radius:3px}.stage-bottom-left{position:absolute;bottom:19px;left:23px;pointer-events:none}.axis-label{color:#7ba1ac;font-size:9px;letter-spacing:.13em}.axes{display:flex;gap:8px;margin:9px 0}.axes b{border:1px solid #35616c;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font-size:11px;color:#d7e8ec}.axes .x-axis{border-color:#ca7671;color:#ff9792}.axes .y-axis{border-color:#85c88d;color:#8bf0a0}.axes .z-axis{border-color:#6dafe4;color:#8ac9ff}.small-muted{font-size:9px;color:#7096a4}.stage-bottom-right{position:absolute;right:22px;bottom:20px;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.selected-tag{font:700 9px var(--font);color:#a7efe3;background:#0a252ce0;border:1px solid #2a6468;padding:8px 10px;letter-spacing:.055em}.view-toolbar{display:flex;gap:4px;background:#0c1c28ed;padding:5px;border:1px solid #284253;border-radius:3px}.view-toolbar button{background:#152a37;border:1px solid #2a4858;border-radius:2px;font-size:9px;min-width:36px;padding:8px 4px}.technical-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}.technical-lines{position:absolute;inset:0;width:100%;height:100%}.technical-pin{position:absolute;background:#082830ee;border:1px solid #43c4b5;padding:5px 7px;font:700 9px var(--font);white-space:nowrap;color:#c9fff1;box-shadow:0 5px 12px #0006}.context-toast{position:absolute;left:50%;bottom:115px;transform:translateX(-50%);z-index:5;background:#082d32ec;border:1px solid #3a958d;color:#c5f5e9;font-size:11px;padding:11px 17px;max-width:80%;text-align:center;border-radius:3px;opacity:0;pointer-events:none;transition:opacity .28s}.context-toast.show{opacity:1}.mobile-stage-tools{display:none}.inspector-scroll{overflow:auto;flex:1;padding:0 17px 15px;scrollbar-width:thin;scrollbar-color:#325262 transparent}.inspector-hero{padding:12px 1px 15px;border-bottom:1px solid #233e4e}.part-index{font:800 10px var(--font);letter-spacing:.14em;color:var(--mint)}.inspector-hero h3{font:600 24px/1.05 var(--head);margin:7px 0 9px}.subsystem-label{display:inline-block;background:#1b3e43;border:1px solid #286563;color:#a2e2da;font:700 9px var(--font);padding:4px 8px;letter-spacing:.08em}.description{font-size:11px;color:#91acba;line-height:1.75;margin:14px 0}.inspector-scroll .section-label{margin:22px 0 10px}.spec-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #1b3544;padding:9px 1px;color:#809eab;font-size:11px}.spec-row strong{color:#d5eaeb;text-align:right;font-size:10px;max-width:54%;overflow-wrap:anywhere}.mount-refs{display:flex;flex-wrap:wrap;gap:5px}.mount-refs span{font:700 9px var(--font);border:1px solid #294653;background:#112b39;padding:5px 6px;color:#95bbc3}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.action-grid button,.rotation-row button,.style-selector button{border:1px solid #2c4c58;background:#132b39;font-weight:700;font-size:9px;letter-spacing:.07em;border-radius:3px;padding:11px 4px}.action-grid button:hover,.rotation-row button:hover,.style-selector button:hover{border-color:var(--mint);color:var(--mint)}.action-grid .accent-button{background:#18766f;border-color:#49c3b3;color:#e3fffa}.style-selector{display:flex;gap:5px;margin-bottom:10px}.style-selector button{flex:1;padding:9px 2px;font-size:9px}.style-selector button.active{color:#c6f8eb;border-color:var(--mint);background:#155750}.rotation-row{display:flex;gap:7px;margin:7px 0}.rotation-row button{flex:1}.socket-status{background:#0e2934;padding:11px;border-left:2px solid var(--mint);color:#8fc0c4;font-size:10px;line-height:1.55;margin-top:10px}.operation-tools label{display:block;color:#87a7b3;font-weight:700;letter-spacing:.06em;font-size:10px;margin:15px 0}.operation-tools label output{float:right;color:var(--mint)}.operation-tools input{display:block;width:100%;margin-top:12px}.info-strip{border-left:2px solid #e7b576;background:#292523;color:#d0b68e;font-size:10px;line-height:1.6;padding:10px}.mini-footer{display:flex;justify-content:space-between;padding:14px 16px;color:#7897a5;font-size:9px}.mini-footer b{color:var(--mint);font-size:9px}.control-deck{height:163px;min-height:163px;display:grid;grid-template-columns:1.35fr .8fr .95fr .6fr;background:#0a1925;border-top:1px solid #284254;box-shadow:0 -10px 35px #0004}.control-group{padding:18px 22px;border-right:1px solid #1f3543;min-width:0}.control-group .section-label{margin-bottom:13px}.slider-caption{display:flex;justify-content:space-between;color:#a5c0c6;font-size:11px}.slider-caption b{font:800 21px var(--head);color:var(--mint)}input[type=range]{accent-color:#53dcc5;width:100%;cursor:pointer}.range-ends{display:flex;justify-content:space-between;color:#7394a5;font-size:8px;letter-spacing:.08em;margin-top:4px}.control-group select{width:100%;padding:10px 9px;background:#122b38;border:1px solid #294c59;border-radius:3px;color:#d2e9e8;font-size:10px;letter-spacing:.055em;margin-bottom:7px}.transport-buttons{display:flex;gap:7px}.transport-buttons button{width:40px;height:36px;border:1px solid #2b515f;border-radius:3px;background:#132e3a;font-size:17px}.transport-buttons .play-btn{background:#1a6663;color:#c8fff0;border-color:#409b92}.transport-buttons button:hover{border-color:var(--mint)}.speed-row{display:flex;align-items:center;gap:8px;margin-top:13px}.speed-row label{font-size:9px;color:#7aa2aa}.speed-row input{flex:1;width:50px}.speed-row b{font-size:10px;color:var(--mint)}.save-tools{display:flex;flex-direction:column;gap:6px}.save-tools .section-label{margin-bottom:6px}.save-tools button{border:1px solid #2b4b57;background:#102633;padding:7px 3px;font-size:9px;font-weight:700;color:#abcacf}.save-tools button:hover{color:var(--mint);border-color:var(--mint)}.bottom-note{height:28px;min-height:28px;display:flex;justify-content:space-between;padding:0 22px;align-items:center;background:#07121d;color:#66808d;font-size:8px;letter-spacing:.08em}.bottom-note a{color:#a2d9d6}
@media(max-width:1250px){.workspace{grid-template-columns:224px minmax(0,1fr) 260px}.panel-heading{padding:16px 12px 10px}.control-group{padding:16px 12px}.brand{min-width:190px}.brand-copy b{font-size:18px}.project-identity strong{font-size:22px}.panel-heading h2{font-size:20px}.mode-nav button{width:140px}}
@media(max-width:930px){.topbar{padding:0 15px;height:64px;min-height:64px}.brand{min-width:auto}.project-identity .eyebrow,.sub-id,.brand-copy small{display:none}.project-identity strong{font-size:20px}.top-utilities .text-link,.perf,.top-utilities .icon-btn:not(.mobile-menu){display:none}.mobile-menu{display:block}.mode-nav{height:53px;min-height:53px;overflow-x:auto;justify-content:flex-start}.mode-nav button{min-width:115px;font-size:13px}.mode-nav button span{display:block;margin:0 0 1px;font-size:8px}.workspace{display:block;position:relative;height:calc(100dvh - 64px - 53px - 146px);min-height:370px}.stage{height:100%;min-height:370px}.assembly-panel,.inspector-panel{display:none;position:absolute;top:0;bottom:0;width:min(84vw,330px);height:100%;z-index:9;box-shadow:0 0 38px #000b}.assembly-panel.mobile-open{display:flex;left:0}.inspector-panel.mobile-open{display:flex;right:0}.mobile-stage-tools{position:absolute;display:flex;top:92px;left:13px;gap:6px}.mobile-stage-tools button{border:1px solid #32816f;background:#0b2c32dc;color:#b3eee4;border-radius:3px;font-size:10px;padding:9px}.stage-top-left{top:16px;left:13px}.stage-top-right{right:13px;top:16px}.stage-bottom-left{bottom:14px;left:13px}.stage-bottom-right{bottom:15px;right:13px}.small-muted{display:none}.stage-title{font-size:19px}.stage-title span{font-size:14px}.control-deck{height:146px;min-height:146px;grid-template-columns:1.25fr .85fr .85fr}.save-tools{display:none}.control-group{padding:12px}.bottom-note{display:none}}
@media(max-width:600px){.brand-copy{display:none}.brand-symbol{width:32px;height:33px;font-size:19px}.topbar{gap:7px}.project-identity strong{font-size:21px}.control-deck{height:185px;min-height:185px;grid-template-columns:1fr 1fr}.control-group{padding:11px}.control-group:nth-child(1){grid-column:span 1}.control-group:nth-child(2){grid-column:span 1}.control-group:nth-child(3){grid-column:1 / span 2;display:flex;align-items:center;gap:16px;border-top:1px solid #243b49;padding:8px 12px}.control-group:nth-child(3)>.section-label{display:none}.transport-buttons button{height:30px;width:40px}.speed-row{margin:0;flex:1}.workspace{height:calc(100dvh - 64px - 53px - 185px);min-height:320px}.stage-top-right{top:54px}.stage-top-right small{display:none}.stage-top-left .eyebrow{display:none}.mode-summary{max-width:190px;font-size:9px}.stage-bottom-right{bottom:20px}.view-toolbar{flex-wrap:wrap;max-width:170px;justify-content:flex-end}.view-toolbar button{min-width:33px;padding:6px 3px}.selected-tag{max-width:175px;font-size:8px}.stage-bottom-left{bottom:22px}.axes{gap:3px}.axes b{height:23px;width:23px}.control-group select{padding:6px;margin-bottom:4px}.control-group .section-label{margin-bottom:6px;font-size:9px}.range-ends{font-size:7px}.slider-caption{font-size:9px}.slider-caption b{font-size:17px}}

/* Mobile viewport fills all remaining available screen height; no dead blank space. */
@media(max-width:930px){.workspace{display:flex;flex:1 1 0;height:auto;min-height:350px}.stage{flex:1 1 0;height:auto;min-height:350px}}
@media(max-width:600px){.workspace{height:auto;min-height:350px}.stage{height:auto;min-height:350px}}
