:root{color-scheme:dark;--bg:#07101b;--p:#0d1825;--p2:#10202e;--line:#243344;--muted:#7991a3;--text:#e3f3fb;--accent:#38e4dc;--orange:#f69c62;--bg2:#08121f}*{box-sizing:border-box}body{margin:0;background:#030911;color:var(--text);font:13px/1.44 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#112030;border-radius:4px;min-height:30px;transition:.16s ease}button:hover{border-color:var(--accent);color:#b8fff5;background:#152d36}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.42;cursor:not-allowed}button.active,button.primary{background:linear-gradient(120deg,#1b6e70,#164451);border-color:#2bcbc7;color:#dcffff}select,input[type=search]{background:#0b1723;border:1px solid #2c3d4b;border-radius:3px;color:var(--text);padding:8px;outline:0;min-width:0}select{width:100%;cursor:pointer}input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;height:16px}.app{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 50% 40%,#15304425,transparent 70%),var(--bg)}.topbar{height:79px;display:flex;align-items:center;gap:16px;padding:10px 22px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#091522,#0a1520);flex-shrink:0}.brand-icon{height:43px;width:43px;border:1px solid #55d9dd80;display:flex;align-items:center;justify-content:center;transform:rotate(45deg);margin:0 6px}.brand-icon span{font-size:26px;color:var(--accent);transform:rotate(-45deg)}.branding{display:flex;flex-direction:column;min-width:205px}.eyebrow,.model-note,.view-kicker,.section-kicker,.panel-title,.seed,.chip,.mini-stat,.inspector-serial,.inspector-sub,.inspector-tag,.tiny-stats,.viewport-corner,.footer,.right-footer small{font-family:ui-monospace,Consolas,monospace;font-size:10px;letter-spacing:1.25px}.eyebrow{font-size:9px;color:var(--accent);font-weight:700}.dim{color:#71869b}.branding strong{font-size:21px;letter-spacing:2px;line-height:1.17}.branding em{font-style:normal;color:var(--accent)}.model-note{font-size:8px;color:#7b99a6}.header-separator{height:35px;width:1px;background:var(--line)}.header-stats{display:flex;align-items:center;gap:22px;color:#9cb9c6;font:10px ui-monospace,monospace;letter-spacing:1px}.mini-stat{white-space:nowrap;color:#708798}.mini-stat b{color:#d9fff8}.signal{display:inline-block;border-radius:50%;background:#4afacc;box-shadow:0 0 12px #39ffd390;width:6px;height:6px;margin-right:7px}.top-actions{margin-left:auto;display:flex;gap:7px}.top-actions button{background:#0c1926;padding:6px 12px;font-size:11px}.top-actions .danger{border-color:#523839}.top-actions .danger:hover{border-color:#e58b84;color:#ffb2b2}.modebar{height:51px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:0 20px;gap:10px;background:#0c1926;border-bottom:1px solid #263e4c}.mode-group,.mode-tools{display:flex;align-items:center;gap:6px}.mode-group button{height:35px;border-color:transparent;background:transparent;padding:0 12px;color:#8aa1ad;font:11px ui-monospace,monospace;letter-spacing:.75px}.mode-group button.active{border:1px solid #2eabad;background:linear-gradient(90deg,#133d48,#102f3b);color:#88fff1}.seed{color:#7198a6}.workspace{display:grid;grid-template-columns:minmax(206px,245px) minmax(440px,1fr) minmax(260px,308px);flex:1;min-height:0;height:calc(100vh - 165px);overflow:hidden}.left-panel,.right-panel{background:linear-gradient(180deg,#0c1926,#08131e);overflow:auto;min-height:0;scrollbar-color:#264353 transparent;scrollbar-width:thin}.left-panel{border-right:1px solid var(--line);display:flex;flex-direction:column}.right-panel{border-left:1px solid var(--line);padding-bottom:8px}.panel-title{min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:13px 16px;color:#bdd7e0;border-bottom:1px solid #223443;font-size:10px;font-weight:700}.panel-title span:last-child{color:#4bd3d2}.search-wrap{height:36px;border:1px solid var(--line);background:#0a1722;margin:14px 11px 7px;display:flex;align-items:center;padding:0 9px;color:#5de3da;font-size:20px}.search-wrap input{border:0;outline:0;flex:1;background:transparent;padding:6px;color:#d4eff5;font-size:11px;width:100%}.filterline{padding:0 11px 12px;display:flex;flex-direction:column;gap:6px;color:#7896a5;font-size:10px}.filterline select{font-size:11px;padding:7px}.assembly-tree{flex:1;min-height:90px;overflow-y:auto}.tree-heading{display:flex;gap:8px;align-items:center;padding:13px 13px 7px;font:10px ui-monospace,monospace;color:#79a6b0;letter-spacing:1.1px;border-top:1px solid #192b3a}.tree-heading:before{content:'▰';color:var(--accent);font-size:9px}.tree-heading span{margin-left:auto;color:#607887}.part-row{display:flex;align-items:center;gap:9px;padding:8px 13px;border-left:2px solid transparent;background:transparent;border-radius:0;border-top:0;border-right:0;border-bottom:1px solid #172734;color:#96afbd;text-align:left;font-size:11px;min-height:35px;width:100%}.part-row:hover{background:#152936}.part-row.selected{color:#ccfffa;background:#113540;border-left:2px solid var(--accent)}.part-row .node{width:7px;height:7px;border:1px solid #58b4b5;transform:rotate(45deg);flex-shrink:0}.part-row.loose .node{border-color:var(--orange);background:#6a3b21}.part-row.hidden-part{opacity:.38}.part-row .component-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.part-row .component-no{font:9px ui-monospace,monospace;color:#647f92}.left-footer{padding:11px 15px;border-top:1px solid var(--line);color:#7d99a8;font:10px ui-monospace,monospace}.cyan{color:var(--accent)}.center-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:#09121d}.viewport-head{height:61px;flex-shrink:0;border-bottom:1px solid #253d48;display:flex;align-items:center;justify-content:space-between;padding:0 21px;background:#0c1b28}.view-kicker{color:#54bfc3;font-size:9px}.view-title{font-size:19px;font-weight:700;letter-spacing:1.3px}.view-title b{color:var(--accent)}.view-title small{font:10px ui-monospace,monospace;color:#7597a5}.view-status{display:flex;gap:7px}.chip{border:1px solid #284654;border-radius:2px;color:#9ec8d0;padding:6px;font-size:9px}.viewport{position:relative;flex:1;min-height:260px;overflow:hidden;background:radial-gradient(circle at 50% 50%,#19405b,#0a1826 56%,#060f1b)}.viewport:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 49px,#3aa3be09 50px),repeating-linear-gradient(90deg,transparent 0 49px,#3aa3be09 50px);pointer-events:none}#scene,#overlay{position:absolute;inset:0;width:100%;height:100%;display:block}#scene{touch-action:none;cursor:grab}#scene:active{cursor:grabbing}#overlay{pointer-events:none}.viewport-corner{z-index:2;position:absolute;display:flex;flex-direction:column;gap:4px;color:#91adbda6;font-size:9px}.viewport-corner.tl{top:19px;left:21px}.viewport-corner.tr{top:19px;right:21px;text-align:right}.viewport-corner.bl{bottom:19px;left:21px}.viewport-corner.br{bottom:19px;right:21px;text-align:right}.axis-marker{position:absolute;top:91px;right:28px;z-index:2;border:1px solid #3a708040;border-radius:100%;width:40px;height:40px;display:grid;place-items:center;background:#091c2899;font:11px ui-monospace,monospace}.xaxis{color:#ef8e73;position:absolute;left:4px;bottom:2px}.yaxis{color:#7cffbd;position:absolute;top:3px}.zaxis{color:#5e9fff;position:absolute;right:4px;bottom:2px}.camera-dock{position:absolute;z-index:3;top:95px;left:20px;display:flex;gap:4px;flex-wrap:wrap;max-width:320px}.camera-dock button{background:#081824dc;border:1px solid #2a5660;color:#9ed8dd;padding:5px 8px;font:10px ui-monospace,monospace;min-height:25px}.viewport-notice{position:absolute;z-index:4;top:145px;left:50%;transform:translateX(-50%);max-width:80%;pointer-events:none;padding:8px 13px;border:1px solid #4ae1ceaa;background:#052d33e8;color:#d5fff9;opacity:0;transition:opacity .3s;font:11px ui-monospace,monospace;white-space:normal;text-align:center}.viewport-notice.show{opacity:1}.bottom-console{min-height:143px;display:grid;grid-template-columns:1.05fr 1fr .76fr;gap:0;border-top:1px solid #29414f;background:#0b1926;flex-shrink:0}.console-section{border-right:1px solid var(--line);padding:15px 18px}.console-section:last-child{border-right:0}.section-kicker{font-size:9px;color:#86b2c3;font-weight:700;display:flex;justify-content:space-between;gap:8px}.section-kicker span{color:#69e9dd}.console-section input[type=range]{margin:10px 0 3px}.tickline,.tiny-stats{display:flex;justify-content:space-between;color:#637e8f;font:9px ui-monospace,monospace}.console-section select{margin:7px 0 4px;font-size:11px;padding:5px}.speed-row{display:flex;align-items:center;gap:5px;justify-content:space-between}.speed-row button{font:10px ui-monospace,monospace;padding:5px 10px}.speed-row label{display:flex;align-items:center;gap:6px;color:#9ebcca;font:9px ui-monospace,monospace}.speed-row label select{max-width:69px}.big-progress{display:flex;justify-content:space-between;align-items:baseline;margin-top:15px;gap:8px}.big-progress strong{font-size:24px;font-weight:600}.big-progress small{font:9px ui-monospace,monospace;color:#7c9aa9}.progressbar{height:5px;background:#1c3440;margin:9px 0 8px;border-radius:7px;overflow:hidden}.progressbar span{display:block;background:linear-gradient(90deg,#1b928b,#64ffda);height:100%;width:100%;transition:width .25s}.inspector-hero{padding:18px 17px 15px;background:linear-gradient(160deg,#0f2b36,#0b1723 78%)}.inspector-serial{font-size:9px;color:#4ae2d5;margin-bottom:9px}.inspector-hero h2{font-size:19px;font-weight:600;line-height:1.2;margin:0 0 7px;overflow-wrap:anywhere}.inspector-sub{font-size:9px;color:#87a8b4}.inspector-tag{display:inline-block;color:#9dfbe4;background:#1d564e;border:1px solid #286e63;border-radius:2px;margin-top:14px;padding:6px 8px;font-size:9px}.inspector-tag.loose{color:#ffc6a6;background:#4c2d22;border-color:#8f583a}.inspector-data{padding:10px 17px}.inspector-data>div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #1a3040;gap:10px;font:9px ui-monospace,monospace}.inspector-data span{color:#6d899a}.inspector-data b{font-weight:500;color:#c8dfe5;text-align:right;max-width:160px}.part-description{color:#93aebb;padding:0 17px;font-size:11px;line-height:1.6;min-height:45px}.inspector-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:0 16px 12px}.inspector-actions button,.assembly-operations button{font:10px ui-monospace,monospace;padding:5px 7px}.inspector-divider{border-top:1px solid #29404c;margin-top:9px}.sub-title{min-height:41px;border-bottom:0;font-size:9px}.assembly-style{display:flex;gap:5px;padding:0 16px 12px}.assembly-style button{flex:1;font:9px ui-monospace,monospace}.assembly-operations{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 16px}.assembly-operations button{white-space:normal;min-height:37px}.manual-controls{padding:15px 17px 6px}.manual-controls .section-kicker{margin:9px 0}.axis-input{display:grid;grid-template-columns:16px 1fr 54px;align-items:center;gap:7px;font:11px ui-monospace,monospace}.axis-input b{color:var(--accent)}.axis-input output{color:#bad8e0;text-align:right;font-size:9px}.manual-controls small{font-size:10px;color:#7892a0;line-height:1.65;display:block;margin:9px 0}.mechanisms{padding:0 16px}.mechanisms .panel-title{padding:13px 0}.mechanisms>label{font:10px ui-monospace,monospace;letter-spacing:.4px;display:block;margin:13px 0;color:#a2c0c6}.mechanisms output{float:right;color:var(--accent)}.mechanisms input{display:block;margin-top:7px}.mechanisms button{width:100%;font:10px ui-monospace,monospace;margin:5px 0}.right-footer{margin:12px 17px;padding-top:12px;border-top:1px solid #263945;display:flex;flex-direction:column;gap:8px}.right-footer a{color:#75e5db;text-decoration:none;font:10px ui-monospace,monospace}.right-footer a:hover{text-decoration:underline}.right-footer small{color:#788e9d;font-size:9px}.footer{height:35px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;border-top:1px solid #233646;background:#07111c;color:#647f90;font-size:9px;flex-shrink:0}.footer b{color:var(--accent)}.mobile-only{display:none}@media(max-width:1270px){.workspace{grid-template-columns:210px minmax(385px,1fr) 270px}.header-stats .mini-stat:nth-of-type(2){display:none}.console-section{padding:12px}.view-title small{display:none}}@media(max-width:1030px){.workspace{grid-template-columns:200px minmax(330px,1fr)}.right-panel{position:fixed;right:0;top:130px;bottom:30px;width:min(355px,92vw);z-index:30;box-shadow:-16px 0 40px #020810cc;transform:translateX(105%);transition:transform .25s}.right-panel.open{transform:translateX(0)}.mobile-only{display:inline-flex}.mode-group button{padding:0 9px}.header-stats{display:none}.top-actions{margin-left:auto}.footer span:nth-child(2){display:none}}@media(max-width:700px){.topbar{height:70px;padding:7px 10px;gap:8px}.brand-icon{height:30px;width:30px}.branding{min-width:0}.branding strong{font-size:16px}.model-note,.eyebrow .dim{display:none}.top-actions{gap:4px}.top-actions button{padding:3px 7px}.top-actions span{display:none}.modebar{height:auto;min-height:49px;padding:5px 6px;overflow-x:auto}.mode-group{gap:3px}.mode-group button{min-height:34px;font-size:13px;padding:3px 7px}.mode-group button span{display:none}.mode-tools{gap:3px}.mode-tools button{padding:4px;font-size:11px}.mode-tools button span{display:none}.seed{display:none}.workspace{height:calc(100vh - 151px);min-height:650px;display:block;position:relative}.center-panel{height:100%}.left-panel{position:fixed;left:0;top:119px;bottom:30px;width:min(290px,88vw);z-index:31;box-shadow:12px 0 40px #020810bb;transform:translateX(-105%);transition:transform .25s}.left-panel.open{transform:translateX(0)}.right-panel{top:119px}.viewport-head{height:48px;padding:0 12px}.view-title{font-size:15px}.view-status .chip:first-child{display:none}.chip{font-size:8px}.viewport{min-height:290px}.bottom-console{min-height:288px;grid-template-columns:1fr 1fr}.console-section{padding:11px}.console-section.compact{grid-column:1/-1;border-top:1px solid var(--line)}.big-progress{margin-top:5px}.big-progress strong{font-size:17px}.viewport-corner{font-size:7px}.viewport-corner.tr,.viewport-corner.br{display:none}.camera-dock{top:75px;left:10px;max-width:250px}.camera-dock button{font-size:9px;padding:3px 5px}.axis-marker{top:80px;right:10px}.footer{height:30px;padding:0 8px;font-size:7px}.footer span:last-child{display:none}}@media(max-height:670px) and (min-width:701px){.workspace{height:auto;min-height:480px}.viewport{min-height:290px}.bottom-console{min-height:115px}}
/* Keep tree and inspector scrollbars inside one correctly-sized desktop application viewport. */
@media(min-width:701px){.app{height:100dvh;min-height:0;overflow:hidden}.workspace{height:auto;flex:1;min-height:0;grid-template-rows:minmax(0,1fr)}.left-panel,.right-panel{min-height:0;max-height:100%;overflow-y:auto}.center-panel{height:100%;min-height:0}.assembly-tree{min-height:0}}
