:root{--bg: #1b1e24;--panel: #23272f;--panel-2: #2b303a;--border: #363c47;--text: #e6e9ef;--text-dim: #9aa4b2;--accent: #4c9aff;--accent-dim: #2f6ecc;--brand: #ff7a1a;--brand-dim: #e8590c;--workspace-bg: #14161b;color-scheme:dark}:root[data-theme=light]{--bg: #eef1f5;--panel: #ffffff;--panel-2: #f1f4f8;--border: #d4d9e0;--text: #1b2230;--text-dim: #5b6472;--accent: #2f6ecc;--accent-dim: #3f83e0;--brand: #ef6c00;--brand-dim: #d35400;--workspace-bg: #f4f6f9;color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;width:100%;overflow:hidden;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}.app{display:grid;grid-template-rows:auto 1fr;grid-template-columns:280px 1fr;grid-template-areas:"header header" "sidebar workspace";height:100%}.app.no-sidebar{grid-template-columns:1fr;grid-template-areas:"header" "workspace"}.app.no-sidebar .sidebar{display:none}.app.mobile{display:flex;flex-direction:column;grid-template-columns:none;grid-template-areas:none}.app.mobile .sidebar{display:none}.app.mobile .workspace{flex:1;min-height:0}.app.mobile .props-panel,.app.mobile .select-hint{display:none!important}.mobile-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--panel);border-bottom:1px solid var(--border);flex:0 0 auto}.mobile-bar .mb-tabs{display:flex;gap:5px;flex:1;min-width:0}.mobile-bar .mb-tab{flex:1;min-width:0;padding:9px 6px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}.mobile-bar .mb-tab.active{background:var(--accent);color:#10151d;border-color:var(--accent)}.mobile-bar .mb-icon{flex:0 0 auto;width:38px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.header{grid-area:header;display:flex;flex-direction:column;align-items:stretch;gap:6px;min-height:60px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:inset 0 -2px 0 0 var(--brand)}.header-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}.header-tools{display:flex;align-items:stretch;flex-wrap:nowrap;gap:0;overflow-x:auto}.header-tools .count{align-self:center;margin-left:10px}.header-tools .acct-group{margin-left:auto;border-right:none}.header>*{flex:0 0 auto}.header .spacer{flex:1 1 0;min-width:0}.header .logo{width:22px;height:22px;border-radius:5px;background:linear-gradient(135deg,var(--brand),var(--brand-dim))}.header h1{font-size:15px;font-weight:600;margin:0;letter-spacing:.2px}.header h1 .brand-word{color:var(--brand)}.header .byline{font-size:10.5px;color:var(--brand);opacity:.85;font-weight:600;letter-spacing:.2px}.header .tag{font-size:11px;color:var(--text-dim);border:1px solid var(--border);padding:2px 7px;border-radius:10px}.header .units-select{font-size:11px;color:var(--text-dim);background:var(--panel-2);border:1px solid var(--border);padding:2px 6px;border-radius:10px;cursor:pointer}.header .units-select:hover{border-color:var(--accent)}.header .units-select:focus{outline:none;border-color:var(--accent)}.header .spacer{flex:1}.header .tool-group{position:relative;display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,auto);grid-auto-columns:max-content;align-content:center;gap:1px 4px;padding:2px 11px 14px;background:transparent;border:none;border-right:1px solid var(--border);border-radius:0}.header .tool-group:last-of-type{border-right:none}.header .tool-group .tool-btn{width:100%;display:inline-flex;align-items:center;gap:5px;text-align:left;padding:3px 8px}.header .tool-group .bi{flex:0 0 1.2em;text-align:center}.header .tool-group .theme-toggle,.header .tool-group .grid-toggle,.header .tool-group .print-color{width:100%;display:inline-flex;align-items:center;justify-content:flex-start;gap:5px;padding:3px 8px;border:1px solid transparent;margin:0;text-align:left}.header .tool-group .theme-toggle{border-color:var(--border);background:var(--panel-2);border-radius:7px}.header .tool-group .grid-toggle input,.header .tool-group .print-color input[type=color]{flex:0 0 1.2em}.header .tool-group:after{content:attr(data-label);position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:9px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);opacity:.72;pointer-events:none}.header .count{font-size:12px;color:var(--text-dim);white-space:nowrap}.header .grid-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.header .grid-toggle input{cursor:pointer;accent-color:var(--accent, #ff7a1a);margin:0}.header .print-color{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.header .print-color input[type=color]{width:22px;height:22px;padding:0;border:1px solid var(--border);border-radius:5px;background:none;cursor:pointer}.header .theme-toggle{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;margin-right:14px;transition:border-color .12s,background .12s}.header .theme-toggle:hover{border-color:var(--accent)}.dims-panel{position:absolute;left:16px;bottom:16px;z-index:12;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;min-width:190px;box-shadow:0 8px 26px #0006;font-size:13px;color:var(--text)}.dims-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;margin-bottom:8px}.dims-rows{display:flex;flex-direction:column;gap:6px}.dims-row{display:flex;align-items:baseline;gap:8px}.dims-row strong{font-size:16px;margin-left:auto}.dims-axis{font-weight:800;width:16px;text-align:center;border-radius:4px;padding:1px 0;font-size:11px}.dims-x{color:#fff;background:#d0342f}.dims-y{color:#0c1a10;background:#4caf50}.dims-z{color:#fff;background:#2f6fd0}.dims-u{color:var(--text-dim);font-size:11px}.dims-lbl{color:var(--text-dim);font-size:11px;width:44px;text-align:right}.dims-empty{color:var(--text-dim)}.dims-foot{margin-top:8px;font-size:10px;color:var(--text-dim)}.axis-triad{position:absolute;right:14px;bottom:14px;z-index:6;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:4px;box-shadow:0 6px 18px #0006;pointer-events:none}.level-slider{position:absolute;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:6;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 6px;box-shadow:0 6px 18px #0006}.level-slider.left{left:12px}.level-slider.right{right:12px}.cog-panel{position:absolute;right:14px;bottom:14px;width:170px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 6px 18px #0006;font-size:12px}.cog-panel .cog-title{font-weight:700;font-size:13px;margin-bottom:6px}.cog-panel .cog-row{display:flex;justify-content:space-between;padding:3px 0;color:var(--text-dim)}.cog-panel .cog-row strong{color:var(--text)}.cog-panel .cog-status{margin:6px 0;padding:5px 8px;border-radius:6px;font-weight:700;font-size:12px;text-align:center}.cog-panel .cog-status.ok{background:#38c1722e;color:#38c172}.cog-panel .cog-status.warn{background:#ffb0202e;color:#ffb020}.cog-panel .cog-status.bad{background:#ff3b302e;color:#ff5a4d}.cog-panel .cog-hint{margin-top:6px;color:var(--text-dim);font-size:11px;line-height:1.4}.rt-panel{position:absolute;right:14px;bottom:14px;width:226px;max-height:calc(100% - 28px);overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 6px 18px #0006;font-size:12px}.rt-panel .rt-title{font-weight:700;font-size:13px;margin-bottom:8px}.rt-panel .rt-inputs{display:grid;grid-template-columns:1fr 1fr;gap:7px 8px;margin-bottom:10px}.rt-panel .rt-field{display:flex;flex-direction:column;gap:3px}.rt-panel .rt-field>span{color:var(--text-dim);font-size:10.5px}.rt-panel .rt-field input[type=number],.rt-panel .rt-field select{width:100%;box-sizing:border-box;background:var(--bg, #14181d);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 6px;font-size:12px}.rt-panel .rt-field input[type=range]{width:100%;margin:4px 0 0}.rt-panel .rt-field:last-child{grid-column:1 / -1}.rt-panel .rt-hero{display:flex;gap:8px;margin-bottom:8px}.rt-panel .rt-hero-box{flex:1;background:#38c17224;border-radius:8px;padding:7px 8px;text-align:center}.rt-panel .rt-hero-box:last-child{background:#788caa29}.rt-panel .rt-hero-label{display:block;color:var(--text-dim);font-size:10.5px;margin-bottom:2px}.rt-panel .rt-hero-box strong{font-size:15px;color:var(--text)}.rt-panel .rt-row{display:flex;justify-content:space-between;padding:2.5px 0;color:var(--text-dim);gap:8px}.rt-panel .rt-row strong{color:var(--text);text-align:right}.rt-panel .rt-row.rt-sub{font-size:11px;padding-left:6px}.rt-panel .rt-sep{height:1px;background:var(--border);margin:6px 0}.rt-panel .rt-hint{margin-top:8px;color:var(--text-dim);font-size:10.5px;line-height:1.45}.schematic-svg{display:block;-webkit-user-select:none;user-select:none}.schematic-panel{position:absolute;top:14px;right:14px;width:240px;max-height:calc(100% - 28px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;box-shadow:0 6px 18px #0006;font-size:12px}.schematic-panel.minimised{width:auto}.schematic-panel .sp-head{display:flex;align-items:center;gap:8px}.schematic-panel.minimised .sp-head{margin:0}.schematic-panel .sp-title{flex:1;font-weight:700;font-size:13px;margin-bottom:6px}.schematic-panel .sp-head .sp-title{margin-bottom:0}.schematic-panel .sp-min{flex:none;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:13px;line-height:1;cursor:pointer}.schematic-panel .sp-min:hover{border-color:var(--accent)}.schematic-panel .sp-legend{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-dim)}.schematic-panel .sp-legend span{display:inline-flex;align-items:center;gap:5px}.schematic-panel .sp-legend i{width:14px;height:3px;border-radius:2px;display:inline-block}.schematic-panel .sp-empty{color:var(--text-dim);line-height:1.5}.schematic-panel .sp-list{list-style:none;margin:0;padding:0;overflow-y:auto}.schematic-panel .sp-list li{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--border);color:var(--text)}.schematic-panel .sp-list button{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px}.schematic-panel .sp-list button:hover{color:#ff5a4d}.schematic-panel .sp-foot{margin-top:8px;color:var(--text-dim)}.schematic-tools{position:absolute;left:14px;top:14px;display:flex;gap:6px;z-index:5}.schematic-tools button{background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12px;font-weight:600;padding:6px 10px;cursor:pointer;box-shadow:0 6px 18px #0006}.schematic-tools button:hover{border-color:var(--accent)}.schematic-tools button.active{background:var(--accent);color:#10130f;border-color:var(--accent)}.sch-run{background:#22c7e0;border:1px solid #22c7e0;border-radius:8px;color:#fff;font-size:12px;font-weight:800;padding:6px 12px;cursor:pointer;box-shadow:0 6px 18px #0006}.schematic-tools button.sch-run{background:#22c7e0;border-color:#22c7e0;color:#fff}.sch-run:hover,.schematic-tools button.sch-run:hover{filter:brightness(1.08);border-color:#1fb3c9}.sch-run.running,.schematic-tools button.sch-run.running{background:#ff5a4d;border-color:#ff5a4d;color:#fff}.schematic-zoom{position:absolute;left:14px;bottom:14px;display:flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:6px 8px;box-shadow:0 6px 18px #0006}.schematic-zoom button{width:28px;height:28px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:15px;cursor:pointer}.schematic-zoom button:hover{border-color:var(--accent)}.schematic-zoom .sz-pct{font-size:12px;color:var(--text-dim);min-width:38px;text-align:center}.schematic-wirebar{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;max-width:90%;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:6px 8px 6px 12px;box-shadow:0 6px 18px #00000073;font-size:12px;z-index:5}.schematic-wirebar .swb-label{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schematic-wirebar .swb-del{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:6px;padding:4px 9px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.schematic-wirebar .swb-del:hover{background:#ff5a4dd9;color:#fff;border-color:transparent}.schematic-wirebar .swb-close{border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:6px}.schematic-wirebar .swb-close:hover{color:var(--text);background:#7f7f7f2e}.schematic-panel .sp-auto{color:#e0463a;font-style:normal;font-size:11px}.schematic-panel .sp-lock{font-size:11px;opacity:.7}.schematic-panel .sp-checks-title{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-weight:700;font-size:12px}.schematic-panel .sp-checklist{list-style:none;margin:6px 0 0;padding:0;overflow-y:auto}.schematic-panel .sp-check{font-size:11.5px;line-height:1.4;padding:3px 0 3px 14px;position:relative}.schematic-panel .sp-check:before{content:"•";position:absolute;left:2px;font-weight:700}.schematic-panel .sp-check.ok{color:#38c172}.schematic-panel .sp-check.info{color:var(--text-dim)}.schematic-panel .sp-check.warn{color:#ffb020}.schematic-panel .sp-check.error{color:#ff5a4d}.schematic-panel .sp-export{margin-top:10px;width:100%;padding:8px 10px;border:1px solid var(--border, #3a4048);border-radius:7px;background:var(--accent, #2b6cff);color:#fff;font-size:12.5px;font-weight:600;cursor:pointer}.schematic-panel .sp-export:hover{filter:brightness(1.08)}.schematic-node-panel{position:absolute;left:14px;top:14px;width:200px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px;box-shadow:0 6px 18px #0006;font-size:12px}.schematic-node-panel .snp-title{font-weight:700;font-size:14px;margin-bottom:2px}.schematic-node-panel .snp-type{color:var(--text-dim);font-size:11px;margin-bottom:10px;text-transform:capitalize}.schematic-node-panel .snp-delete{width:100%;padding:8px 10px;border:1px solid #a3271f;border-radius:7px;background:#c9362b;color:#fff;font-size:12.5px;font-weight:600;cursor:pointer}.schematic-node-panel .snp-delete:hover{filter:brightness(1.08)}.schematic-node-panel .snp-note{color:var(--text-dim);font-size:11px;line-height:1.45;background:#788caa24;border-radius:7px;padding:8px}.schematic-node-panel .snp-close{width:100%;margin-top:8px;padding:6px 10px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text);font-size:12px;cursor:pointer}.schematic-node-panel .snp-close:hover{background:#ffffff0f}.schematic-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px;color:var(--text-dim);font-size:15px;line-height:1.6}.level-slider.zoom{left:12px;top:auto;bottom:16px;transform:none}.level-slider.zoom input[type=range]{height:150px}.level-slider .lvl-label{font-size:10.5px;font-weight:700;color:var(--text-dim);letter-spacing:.4px}.level-slider input[type=range]{writing-mode:vertical-lr;direction:rtl;width:10px;height:200px;accent-color:var(--accent);cursor:ns-resize}.ws-tabs{display:inline-flex;gap:2px;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:2px;margin-left:12px}.ws-tabs .ws-tab{background:transparent;color:var(--text-dim);border:none;border-radius:7px;padding:5px 12px;font-size:12.5px;font-weight:700;cursor:pointer}.ws-tabs .ws-tab.active{background:var(--accent);color:#10130f}.tier-toggle{display:inline-flex;gap:2px;background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:2px;margin-left:10px}.tier-toggle .tier-seg{background:transparent;color:var(--text-dim);border:none;border-radius:7px;padding:5px 12px;font-size:12.5px;font-weight:700;line-height:1.4;text-align:center;cursor:pointer;white-space:nowrap}.tier-toggle .tier-seg.active{background:#7c5cff;color:#fff}.wiring-palette{position:absolute;left:12px;top:12px;width:212px;z-index:25;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 30px #0006;overflow:hidden;font-size:12px}.wiring-palette.collapsed{width:auto}.wp-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;background:transparent;color:var(--text);border:none;padding:9px 12px;font-weight:700;cursor:pointer}.wp-caret{color:var(--text-dim)}.wp-list{max-height:calc(100vh - 230px);overflow-y:auto;padding:0 8px 8px}.wp-hint{font-size:11px;color:var(--text-dim);margin:0 0 8px;padding:0 4px;line-height:1.35}.wp-section{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin:8px 0 3px;padding:6px 4px 0;border-top:1px solid var(--line, #2a2f38)}.wp-item{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px;cursor:grab;border:1px solid transparent}.wp-item:hover{background:#7f7f7f24;border-color:var(--border)}.wp-item:active{cursor:grabbing}.wp-thumb{width:48px;height:36px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;overflow:hidden}.wp-thumb svg{width:100%;height:100%}.wp-name{display:flex;flex-direction:column;line-height:1.2}.wp-sub{font-size:10px;color:var(--text-dim);margin-top:1px}.erc-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000080;display:flex;align-items:flex-start;justify-content:center;padding:74px 16px 24px}.erc-modal{width:760px;max-width:96vw;max-height:80vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 60px #00000080;overflow:hidden}.erc-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.erc-head-title{font-weight:700;font-size:15px}.erc-head-status{font-weight:700}.erc-head-ok .erc-head-status{color:#35c46a}.erc-head-warn .erc-head-status{color:#f2a900}.erc-head-bad .erc-head-status{color:#ff5a52}.erc-x{margin-left:auto;background:transparent;border:none;color:var(--text-dim);font-size:16px;cursor:pointer;padding:2px 7px;border-radius:6px}.erc-x:hover{background:#7f7f7f2e;color:var(--text)}.erc-tallies{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border)}.erc-pill{font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border)}.erc-body{overflow-y:auto;padding:6px 16px 16px}.erc-group{margin-top:12px}.erc-group-title{margin:0 0 4px;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.erc-row{display:flex;align-items:flex-start;gap:9px;padding:5px 6px;border-radius:7px}.erc-row-icon{flex:none;font-size:12px;line-height:1.5}.erc-row-text{display:flex;flex-direction:column}.erc-row-label{font-size:13px}.erc-row-detail{font-size:11.5px;color:var(--text-dim);margin-top:1px}.erc-row.erc-critical,.erc-row.erc-error{background:#ff5a521a}.erc-row.erc-warn{background:#f2a9001a}.erc-empty{color:var(--text-dim);font-size:13px}.sidebar-note{font-size:12px;line-height:1.4;color:var(--text-dim);background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:9px 10px;margin:0 0 12px}.visibility-panel{position:absolute;top:14px;left:14px;width:220px;z-index:40;max-height:calc(100% - 28px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000073;overflow:hidden}.visibility-panel .vp-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:700;color:var(--text)}.visibility-panel .vp-head button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer}.visibility-panel .vp-head button:disabled{opacity:.4;cursor:default}.visibility-panel .vp-search{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--border)}.visibility-panel .vp-search-ico{font-size:12px;opacity:.7}.visibility-panel .vp-search-input{flex:1;min-width:0;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:5px 8px;font-size:12px}.visibility-panel .vp-search-input:focus{outline:none;border-color:var(--accent)}.visibility-panel .vp-search-clear{flex:0 0 auto;background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);border-radius:6px;padding:4px 7px;font-size:11px;cursor:pointer;line-height:1}.visibility-panel .vp-search-clear:hover{border-color:var(--accent);color:var(--accent)}.visibility-panel .vp-list{overflow-y:auto;padding:6px}.visibility-panel .vp-group{margin-bottom:6px}.visibility-panel .vp-group-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim)}.visibility-panel .vp-group-head button{background:none;border:none;color:var(--accent);font-size:10.5px;cursor:pointer}.visibility-panel .vp-rowwrap{display:flex;align-items:center;gap:4px;margin:3px 0}.visibility-panel .vp-row{display:flex;align-items:center;gap:8px;flex:1;min-width:0;text-align:left;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:12px;cursor:pointer}.visibility-panel .vp-row .vp-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visibility-panel .vp-del{flex:0 0 auto;background:var(--panel-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:5px 7px;font-size:11px;cursor:pointer;line-height:1}.visibility-panel .vp-del:hover{border-color:#ff3b30;color:#ff3b30}.visibility-panel .vp-loc{flex:0 0 auto;background:var(--panel-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:5px 7px;font-size:11px;cursor:pointer;line-height:1}.visibility-panel .vp-loc:hover{border-color:var(--accent);color:var(--accent)}.visibility-panel .vp-row:hover{border-color:var(--accent)}.visibility-panel .vp-row.off{opacity:.55}.visibility-panel .vp-row .vp-eye{width:16px}.visibility-panel .vp-empty{color:var(--text-dim);font-size:12px;padding:8px}.scale-panel{position:absolute;top:14px;right:14px;width:236px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000073;padding:12px;z-index:5}.scale-panel .sp-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px}.scale-panel .sp-x{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:13px}.scale-panel .sp-note{font-size:11.5px;color:var(--text-dim);margin:0 0 10px}.scale-panel .sp-presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.scale-panel .sp-presets button{flex:1 1 auto;min-width:42px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:6px 0;font-size:12.5px;font-weight:600;cursor:pointer}.scale-panel .sp-presets button:hover{border-color:var(--accent);color:var(--accent)}.scale-panel .sp-custom{display:flex;align-items:center;gap:6px}.scale-panel .sp-custom label{font-size:12px;color:var(--text-dim)}.scale-panel .sp-custom input{width:62px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 6px;font-size:12px}.scale-panel .sp-custom button{flex:1;background:var(--accent);color:#10130f;border:none;border-radius:6px;padding:6px 0;font-size:12.5px;font-weight:700;cursor:pointer}.scale-panel .sp-tip{font-size:10.5px;color:var(--text-dim);margin:10px 0 0;line-height:1.35}.dim-label{background:#ff8c00;color:#1b1b1b;font:700 12px system-ui,sans-serif;padding:2px 7px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 4px #0006;-webkit-user-select:none;user-select:none;text-align:center;line-height:1.25}.dim-label .dim-sub{font:600 9.5px system-ui,sans-serif;color:#4a2c00;letter-spacing:.2px}.header .tool-btn{background:transparent;color:var(--text);border:1px solid transparent;border-radius:7px;padding:5px 8px;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;transition:background .12s,color .12s,opacity .12s}.header .tool-btn:hover:not(:disabled){background:#7f7f7f29}.header .tool-btn:disabled{opacity:.38;cursor:default}.header .tool-btn.active{background:var(--accent-dim);color:#fff}.header .tool-group .grid-toggle,.header .tool-group .print-color{padding:0 6px}.sidebar{grid-area:sidebar;background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;min-height:0;padding:14px}.sidebar h2{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-dim);margin:4px 2px 12px}.acc-group{margin-bottom:10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);overflow:hidden}.acc-group>summary{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;padding:8px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text);background:var(--panel-2);display:flex;align-items:center;gap:6px}.acc-group>summary::-webkit-details-marker{display:none}.acc-group>summary:before{content:"▸";font-size:10px;color:var(--text-dim);transition:transform .12s}.acc-group[open]>summary:before{transform:rotate(90deg)}.acc-group>summary:hover{color:var(--accent)}.acc-group .part-grid{padding:10px}.part-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.part-card{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px;cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color .12s,transform .05s,box-shadow .12s;text-align:center}.part-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim) inset}.part-card:active{cursor:grabbing;transform:scale(.98)}.part-card.sticky-part{cursor:pointer;border-color:var(--accent-dim)}.part-card.sticky-part:active{cursor:pointer}.part-card.badged-part{position:relative;border-color:#fb923c;box-shadow:0 0 0 1px #fb923c59 inset}.part-card .part-badge{position:absolute;top:6px;right:6px;z-index:1;background:#fb923c;color:#10130f;font-size:10px;font-weight:800;letter-spacing:.02em;padding:2px 6px;border-radius:999px}.part-card.sticky-part .dims{color:var(--accent)}.part-card svg{width:100%;height:64px;display:block}.part-card .name{font-size:13px;font-weight:600;margin-top:8px}.part-card .dims{font-size:11px;color:var(--text-dim);margin-top:2px}.hint{margin-top:16px;font-size:11px;line-height:1.5;color:var(--text-dim);background:var(--panel-2);border:1px dashed var(--border);border-radius:8px;padding:10px}.workspace{grid-area:workspace;position:relative;background:var(--workspace-bg);min-height:0;overflow:hidden}.workspace canvas{display:block}.workspace,.workspace canvas{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.drop-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;color:var(--text-dim);font-size:14px;text-align:center}.drop-hint span{border:1px dashed var(--border);border-radius:10px;padding:14px 22px;background:var(--panel)}.workspace.dragover:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:2px dashed var(--accent);border-radius:12px;pointer-events:none}.select-hint{position:absolute;top:14px;left:50%;transform:translate(-50%);pointer-events:none;font-size:12px;color:var(--text-dim);background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:7px 14px}.connect-panel{position:absolute;top:14px;right:14px;width:210px;display:flex;flex-direction:column;align-items:stretch;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:0 8px 24px #00000073}.connect-panel .cp-buttons{display:flex;flex-direction:column;gap:8px}.connect-panel .cp-buttons .connect-btn{width:100%}.connect-panel .cp-align{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.connect-panel .cp-align button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 0;font-size:12px;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s}.connect-panel .cp-align button:hover{border-color:var(--accent);background:var(--accent-dim);color:#fff}.connect-panel .cp-row{display:flex;align-items:center;gap:10px}.connect-panel .chip{font-size:12px;font-weight:600;padding:4px 10px;border-radius:14px;border:1px solid var(--border)}.connect-panel .chip-a{color:#cfe0ff;border-color:#1f6feb;background:#1f6feb26}.connect-panel .chip-b{color:#c6f0d1;border-color:#2ea043;background:#2ea04326}.connect-panel .swap{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:14px}.connect-panel .swap:hover{border-color:var(--accent)}.connect-panel .cp-note{font-size:11px;color:var(--text-dim)}.connect-panel .connect-btn{background:var(--accent-dim);color:#fff;border:1px solid var(--accent);border-radius:8px;padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s}.connect-panel .connect-btn:hover{background:var(--accent)}.connect-panel .cp-clear,.props-panel .cp-clear{background:none;border:none;color:var(--text-dim);font-size:11px;cursor:pointer;text-decoration:underline}.connect-panel .cp-clear:hover,.props-panel .cp-clear:hover{color:var(--text)}.props-panel{position:absolute;top:14px;right:14px;width:210px;transform:translate(var(--pp-dx, 0px),var(--pp-dy, 0px));max-height:calc(100% - 28px);overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;box-shadow:0 8px 24px #00000073}.float-win{position:fixed;z-index:60;width:780px;height:560px;min-width:360px;min-height:260px;max-width:calc(100vw - 28px);max-height:calc(100vh - 28px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 48px #0000008c;overflow:hidden;resize:both}.float-win-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--panel-2, #1c1f25);border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.float-win-title{font-size:13px;font-weight:600}.float-win-close{border:none;background:transparent;color:var(--text-dim);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:6px}.float-win-close:hover{color:var(--text);background:#ffffff14}.float-win-body{flex:1 1 auto;position:relative;overflow:hidden}.lasso-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;cursor:crosshair}.lasso-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.lasso-bar{position:absolute;right:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:stretch;gap:8px;width:210px;max-height:calc(100% - 32px);overflow:auto;padding:12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #00000080;font-size:12px;color:var(--text-dim)}.lasso-bar>span{margin-bottom:2px}.lasso-bar .tool-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;text-align:left;width:100%}.lasso-bar .tool-btn:disabled{opacity:.4;cursor:default}.lasso-selbar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:10px;max-width:92%;padding:8px 12px;background:#1f3350;border:1px solid #4c9aff;border-radius:10px;box-shadow:0 8px 24px #00000080;font-size:12px;color:#dbe9ff}.lasso-selbar .tool-btn{background:#4c9aff;border:1px solid #4c9aff;color:#06101f;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.objects-panel{position:absolute;left:14px;top:14px;width:220px;max-height:calc(100% - 28px);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000073;z-index:7;overflow:hidden}.objects-panel .op-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;font-weight:700;font-size:13px}.objects-panel .op-x{border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:6px}.objects-panel .op-x:hover{color:var(--text);background:#7f7f7f29}.objects-panel .op-hint{padding:0 12px 8px;font-size:11px;color:var(--text-dim);line-height:1.4}.objects-panel .op-list{overflow-y:auto;padding:0 8px 8px}.objects-panel .op-row{display:flex;align-items:center;gap:4px}.objects-panel .op-sel{flex:1 1 auto;display:flex;align-items:baseline;gap:6px;text-align:left;background:transparent;border:1px solid transparent;border-radius:7px;padding:5px 8px;color:var(--text);cursor:pointer;font-size:12px;overflow:hidden}.objects-panel .op-sel:hover{background:#7f7f7f29}.objects-panel .op-kind{font-weight:600;white-space:nowrap}.objects-panel .op-name{color:var(--text-dim);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.objects-panel .op-del{flex:0 0 auto;border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-size:12px;padding:4px 7px;border-radius:6px}.objects-panel .op-del:hover{color:#fff;background:#ff5a4dd9}.objects-panel .op-empty{padding:8px 12px;color:var(--text-dim);font-size:12px}.objects-panel.check-panel{left:244px;width:260px}.objects-panel.check-panel .chk-msg{white-space:normal;line-height:1.35}.objects-panel .chk-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;margin-top:5px;align-self:flex-start}.objects-panel .chk-dot.error{background:#ff5a4d}.objects-panel .chk-dot.warn{background:#ffb020}.objects-panel .op-row.chk-error .op-sel:hover{background:#ff5a4d24}.objects-panel .op-row.chk-warn .op-sel:hover{background:#ffb02024}@media (max-width: 760px){.objects-panel.check-panel{left:14px;top:auto;bottom:14px}}.props-panel.assembly-panel{right:236px;transform:none}@media (max-width: 900px){.props-panel.assembly-panel{right:14px;top:auto;bottom:14px}}.panel-x-float{position:absolute;top:20px;right:20px;transform:translate(var(--pp-dx, 0px),var(--pp-dy, 0px));z-index:12;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:none;border-radius:6px;background:transparent;color:var(--text-dim);font-size:13px;cursor:pointer}.panel-x-float:hover{color:var(--text);background:#7f7f7f2e}.props-panel .pp-title{font-size:14px;font-weight:600;cursor:move;-webkit-user-select:none;user-select:none}.props-panel .pp-title{padding-right:20px}.props-panel .pp-title:before{content:"⠿ ";color:var(--text-dim);font-weight:400}.props-panel .pp-sub{color:var(--text-dim);font-weight:400;font-size:12px}.props-panel .pp-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-dim)}.props-panel .pp-len{display:flex;align-items:center;gap:6px}.props-panel .pp-len input{flex:1;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:6px 8px;width:100%}.props-panel .pp-len input:focus{outline:none;border-color:var(--accent)}.props-panel .pp-text{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:6px 8px;width:100%}.props-panel .pp-text:focus{outline:none;border-color:var(--accent)}.props-panel .pp-range{width:100%;margin:2px 0 0;accent-color:var(--accent)}.props-panel .pp-select{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;padding:6px 8px;width:100%}.props-panel .pp-select:focus{outline:none;border-color:var(--accent)}.estop-alert{position:absolute;top:16px;left:50%;transform:translate(-50%);z-index:40;max-width:90%;padding:12px 22px;border-radius:10px;background:#c0161d;color:#fff;font-size:15px;font-weight:800;letter-spacing:.02em;text-align:center;border:2px solid #ff5a5f;box-shadow:0 6px 24px #c0161d8c;animation:estop-pulse .9s ease-in-out infinite;pointer-events:none}@keyframes estop-pulse{0%,to{opacity:1;box-shadow:0 6px 24px #c0161d8c}50%{opacity:.72;box-shadow:0 6px 34px #ff5a5fe6}}.props-panel .pp-unit{font-size:12px;color:var(--text-dim)}.props-panel .pp-slider{width:100%;accent-color:var(--accent)}.props-panel .pp-orient{display:flex;gap:6px}.props-panel .pp-orient-btn{flex:1;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 0;font-size:12px;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s}.props-panel .pp-orient-btn:hover{border-color:var(--accent)}.props-panel .pp-select{flex:1;min-width:0;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 6px;font-size:12px;font-family:inherit}.props-panel .pp-orient-btn:disabled{opacity:.4;cursor:default}.props-panel .pp-orient-btn.active{background:var(--accent-dim);border-color:var(--accent);color:#fff}.props-panel .pp-extend{display:grid;grid-template-columns:1fr 1fr;gap:6px}.props-panel .pp-extend button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 0;font-size:12px;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s}.props-panel .pp-extend button:hover{border-color:var(--accent);background:var(--accent-dim);color:#fff}.props-panel .pp-extend button:last-child{grid-column:1 / -1}.props-panel .pp-mount-prompt{grid-column:1 / -1;font-size:12px;color:var(--accent);padding:2px 0}.props-panel .pp-extend button.pp-cap-btn{background:#1b1b1b;border-color:#444;color:#e6e9ef}.props-panel .pp-extend button.pp-cap-btn:hover{background:#000;border-color:var(--accent);color:#fff}.props-panel .pp-extend-hint{font-size:11px;color:var(--text-dim);background:var(--panel-2);border:1px dashed var(--border);border-radius:6px;padding:8px;line-height:1.4}.props-panel .pp-dims{margin:8px 0;border:1px solid var(--border);border-radius:6px;overflow:hidden}.props-panel .pp-dim-row{display:flex;justify-content:space-between;gap:10px;padding:5px 9px;font-size:11px;border-top:1px solid var(--border)}.props-panel .pp-dim-row:first-child{border-top:none}.props-panel .pp-dim-row span{color:var(--text-dim)}.props-panel .pp-dim-row b{color:var(--text);font-weight:700;text-align:right}.props-panel .pp-actions{display:flex;align-items:center;justify-content:space-between}.props-panel .pp-delete{background:#dc4c4c26;color:#ff9a9a;border:1px solid #7a2f2f;border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600;cursor:pointer}.props-panel .pp-delete:hover{background:#dc4c4c47}.props-panel .pp-hint{font-size:10.5px;color:var(--text-dim);line-height:1.4}.sim-phone{position:absolute;right:26px;top:50%;transform:translateY(-50%);width:300px;max-height:calc(100% - 32px);display:flex;flex-direction:column;gap:12px;padding:20px 16px 16px;background:#0e1013;border:10px solid #000;border-radius:34px;box-shadow:0 14px 46px #0009;z-index:40}.app-topbar{display:flex;align-items:center;gap:8px}.app-title{flex:1;font-size:18px;font-weight:700;color:#fff}.app-dot{width:12px;height:12px;border-radius:50%;background:#4caf50;box-shadow:0 0 8px #4caf50aa}.app-status{font-size:12px;color:#9fb0a4}.app-telemetry{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px;color:#cdd6e2;white-space:pre}.app-spotlight{display:flex;align-items:center;gap:8px;background:#1b1e24;color:#cfd4da;border:1px solid #2b3038;border-radius:10px;padding:9px 12px;font-size:14px;font-weight:600;cursor:pointer}.app-spotlight .app-spot-ico{font-size:16px}.app-spotlight .app-switch{margin-left:auto;width:40px;height:22px;border-radius:11px;background:#3a3f47;position:relative;transition:background .15s}.app-spotlight .app-switch-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s}.app-spotlight.on{color:#fff;border-color:#ffb300}.app-spotlight.on .app-switch{background:#ffb300}.app-spotlight.on .app-switch-knob{left:20px}.app-joyrow{flex:1;display:flex;gap:12px;justify-content:space-between;min-height:190px}.sim-pad-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}.sim-pad{position:relative;width:100%;flex:1;border-radius:22px;background:#1a1e24;border:2px solid #2b3038;touch-action:none}.sim-pad-centerline{position:absolute;left:12px;right:12px;top:50%;height:2px;margin-top:-1px;background:#ffffff1f}.sim-knob{position:absolute;left:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#2f7bff,#14508f);border:2px solid rgba(255,255,255,.28);box-shadow:0 3px 10px #00000080}.sim-pad-label{color:#9aa4b2;font-size:11px;font-weight:700;letter-spacing:.18em}.app-hint{color:#7f8896;font-size:10.5px;text-align:center}.sim-ctl-row{display:flex;gap:8px;justify-content:center}.sim-btn{background:#1b1e24;color:#cfd4da;border:1px solid #2b3038;border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer}.sim-btn:hover{border-color:var(--accent)}.sim-btn.sim-exit{color:#ff8a80}@keyframes sim-flow{to{stroke-dashoffset:-16}}.sim-wire-flow{stroke-dashoffset:0}@keyframes sim-node-pulse{0%,to{opacity:.25}50%{opacity:1}}.sim-node-pulse{animation:sim-node-pulse .7s ease-in-out infinite}.sim-gauges{position:absolute;left:22px;top:22px;z-index:40;background:#14181ed1;border:1px solid var(--border);border-radius:12px;padding:10px 14px 8px;box-shadow:0 6px 20px #00000073}.sim-gauges-title{color:var(--text-dim);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}.sim-gauges-row{display:flex;gap:10px}.sim-gauge{display:flex;flex-direction:column;align-items:center}.sim-gauge-val{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:20px;font-weight:700;margin-top:-6px}.sim-gauge-unit{font-size:12px;font-weight:600}.sim-gauge-label{color:var(--text-dim);font-size:10.5px}.sim-gauges-foot{text-align:center;color:var(--text-dim);font-size:11px;margin-top:4px}*{scrollbar-width:thin;scrollbar-color:#33465f transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#33465f;border-radius:8px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#465d7d}*::-webkit-scrollbar-corner{background:transparent}@media (min-resolution: 1.05dppx),(-webkit-min-device-pixel-ratio: 1.05){.level-slider.zoom{display:none!important}}.sim-drag-handle{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.cog-panel .cog-title,.rt-panel .rt-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.hud-close{flex:none;border:0;background:transparent;color:var(--text-dim);cursor:pointer;font-size:13px;line-height:1;padding:2px 5px;margin:-2px -5px -2px 0;border-radius:5px}.hud-close:hover{color:var(--text);background:#7f7f7f2e}.acct-group{align-items:center}.acct-email{align-self:center;color:var(--text-dim);font-size:12px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:16800000;background:#000c;display:flex;align-items:center;justify-content:center}.acct-modal{width:min(440px,92vw);max-height:80vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 60px #0009}.acct-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);font-weight:700;font-size:14px}.acct-modal-empty{padding:28px 18px;color:var(--text-dim);text-align:center;font-size:14px}.model-carousel{width:min(560px,94vw);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 60px #0009;overflow:hidden}.mc-stage{display:flex;align-items:center;gap:6px;padding:10px 8px 4px}.mc-viewport{position:relative;flex:1;height:300px;border-radius:10px;overflow:hidden;background:#0d1420;border:1px solid var(--border)}.mc-viewport canvas{display:block}.mc-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:13px}.mc-hint{position:absolute;right:8px;bottom:6px;font-size:10px;color:#ffffff73;pointer-events:none;text-transform:uppercase;letter-spacing:.05em}.mc-arrow{flex:0 0 auto;width:38px;height:60px;border-radius:8px;cursor:pointer;background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .12s}.mc-arrow:hover{border-color:var(--accent);color:var(--accent)}.mc-info{padding:4px 16px 0;text-align:center}.mc-name{font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px}.mc-desc{color:var(--text-dim);font-size:12.5px;margin-top:3px;min-height:30px}.mc-dots{display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 0 2px}.mc-dot{width:9px;height:9px;border-radius:50%;padding:0;cursor:pointer;background:var(--border);border:none;transition:all .12s}.mc-dot.active{background:var(--accent);transform:scale(1.25)}.mc-actions{padding:10px 16px 16px;display:flex;justify-content:center}.mc-load{padding:10px 24px;border-radius:8px;cursor:pointer;font-weight:700;font-size:14px;background:var(--accent);border:none;color:#10151d;transition:filter .12s}.mc-load:hover{filter:brightness(1.08)}.class-modal{width:min(940px,96vw);max-height:88vh;display:flex;flex-direction:column}.class-err{margin:8px 12px 0;padding:6px 10px;border-radius:6px;background:#7a2626;color:#ffdede;font-size:12px}.class-body{display:flex;gap:0;min-height:0;flex:1}.class-admin{padding:14px 16px;overflow:auto}.class-side{width:260px;border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.class-side-head{padding:10px 12px;font-weight:700;font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.class-list{list-style:none;margin:0;padding:0 8px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:4px}.class-muted{color:var(--text-dim);font-size:13px;padding:8px 4px}.class-list-btn{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;border:1px solid transparent;background:var(--panel-2);color:var(--text);cursor:pointer}.class-list-btn.active{border-color:#4c9aff;background:#1f3350}.class-list-name{font-weight:600;font-size:13px}.class-list-sub{font-size:11px;color:var(--text-dim)}.class-create{padding:10px;border-top:1px solid var(--border);display:flex;gap:6px}.class-input{flex:1;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 8px;font-size:13px}.class-main{flex:1;min-width:0;overflow:auto;padding:12px 16px}.class-pick{text-align:center;margin-top:40px}.class-main-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.class-title{font-size:17px;font-weight:700}.class-code{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:6px}.class-code strong{color:var(--text);letter-spacing:.12em;font-size:14px}.class-copy{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:5px;cursor:pointer;padding:1px 6px}.class-sec-head{display:flex;align-items:center;margin:14px 0 6px;font-weight:700;font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.class-table{display:flex;flex-direction:column;gap:3px}.class-row{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;background:var(--panel-2);font-size:12px}.class-em{font-weight:600;min-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-dname{flex:1;color:var(--text)}.class-badge{font-size:10px;padding:1px 6px;border-radius:10px;font-weight:700}.class-badge.ok{background:#1f4a2b;color:#7be0a0}.class-badge.wait{background:#4a431f;color:#e0d07b}.class-count{color:var(--text-dim);min-width:70px}.class-when{color:var(--text-dim);margin-left:auto;white-space:nowrap}.class-mini{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:5px;cursor:pointer;padding:3px 8px;font-size:11px}.class-mini:disabled{opacity:.4;cursor:default}.class-mini.del{color:#e88}.class-add{display:flex;gap:8px;margin-top:8px;align-items:flex-start}.class-textarea{flex:1;min-height:46px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 8px;font-size:12px;resize:vertical}.class-timeline{margin-top:12px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.class-slider{width:100%}.class-tl-label{font-size:12px;color:var(--text-dim);margin-top:4px}.viewing-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#1f3350;border:1px solid #4c9aff;color:#dbe9ff;font-size:13px;box-shadow:0 6px 20px #0006}.viewing-banner strong{color:#fff}.vb-eye{font-size:14px}.vb-close{background:transparent;border:none;color:#9ec2ff;cursor:pointer;font-size:13px;padding:0 2px}.live-banner{background:#3a1420;border-color:#ff4d6d;color:#ffdbe3}.live-banner strong{color:#fff}.live-dot{width:9px;height:9px;border-radius:50%;background:#ff4d6d;display:inline-block;box-shadow:0 0 #ff4d6db3;animation:livepulse 1.4s infinite}@keyframes livepulse{0%{box-shadow:0 0 #ff4d6d99}70%{box-shadow:0 0 0 7px #ff4d6d00}to{box-shadow:0 0 #ff4d6d00}}.vb-stop{background:#ff4d6d;border:none;color:#fff;border-radius:999px;cursor:pointer;font-size:12px;font-weight:700;padding:3px 12px;margin-left:4px}.vb-stop.watch{background:#2fbf71}.class-mini.golive{border-color:#ff4d6d;color:#ff9db0;font-weight:700}.class-live-on{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:#ff9db0}.acct-list{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:6px}.acct-list-item{display:flex;gap:6px;align-items:stretch}.acct-list-open{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border-radius:8px;cursor:pointer;background:var(--panel-2);border:1px solid var(--border);color:var(--text)}.acct-list-open:hover{border-color:var(--brand)}.acct-list-name{font-weight:600;font-size:14px}.acct-list-date{color:var(--text-dim);font-size:11.5px}.acct-list-del{width:40px;border-radius:8px;cursor:pointer;background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim)}.acct-list-del:hover{color:#ff5a4d;border-color:#ff5a4d}.asst-fab{position:fixed;right:18px;bottom:18px;z-index:120;display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:999px;cursor:pointer;background:linear-gradient(180deg,var(--brand),var(--brand-dim));color:#1a0b02;font-weight:700;font-size:14px;border:none;box-shadow:0 8px 24px #0006}.asst-fab:hover{filter:brightness(1.06)}.asst-panel{position:fixed;right:18px;bottom:18px;z-index:120;width:min(360px,92vw);height:min(520px,76vh);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 60px #0000008c;overflow:hidden}.asst-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--panel-2)}.asst-drag{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.asst-drag:active{cursor:grabbing}.asst-fab{touch-action:none}.asst-head-txt{display:flex;flex-direction:column;gap:1px;line-height:1.25}.asst-title{font-weight:700;font-size:14px}.asst-sub{font-size:10.5px;color:var(--text-dim);font-weight:500}.asst-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px}.asst-close:hover{color:var(--text)}.asst-msgs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.asst-msg{display:flex;flex-direction:column;max-width:88%}.asst-msg.user{align-self:flex-end;align-items:flex-end}.asst-msg.assistant{align-self:flex-start}.asst-bubble{padding:9px 12px;border-radius:12px;font-size:13.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.asst-msg.user .asst-bubble{background:var(--brand);color:#1a0b02;border-bottom-right-radius:4px}.asst-msg.assistant .asst-bubble{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.asst-typing{color:var(--text-dim);font-style:italic}.asst-model{font-size:10px;color:var(--text-dim);margin-top:2px}.asst-input{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border)}.asst-input textarea{flex:1;resize:none;max-height:90px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:9px 11px;font-size:13.5px;font-family:inherit}.asst-send{width:40px;border-radius:9px;border:none;cursor:pointer;font-size:15px;background:var(--brand);color:#1a0b02}.asst-send:disabled{opacity:.5;cursor:default}.asst-head-txt{display:flex;flex-direction:column;gap:1px;min-width:0;margin-right:auto}.asst-sub{font-size:10.5px;color:var(--text-dim)}.asst-teach-toggle{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-size:12px;font-weight:700;color:var(--text-dim);padding:3px 8px;border-radius:8px;border:1px solid var(--border);background:var(--bg);margin-right:8px;-webkit-user-select:none;user-select:none}.asst-teach-toggle input{accent-color:var(--brand);margin:0;cursor:pointer}.asst-panel.teaching .asst-teach-toggle{color:var(--brand);border-color:var(--brand)}.asst-panel.teaching{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand),0 18px 60px #0000008c}.asst-panel.teaching .asst-head{background:linear-gradient(180deg,rgba(255,122,26,.14),var(--panel-2))}.asst-teachbar{padding:8px 10px;border-bottom:1px solid var(--border);background:#ff7a1a12}.asst-buildname{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 10px;font-size:13px;font-family:inherit}.asst-buildname:focus{border-color:var(--brand);outline:none}.asst-video{width:60px;flex:none;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 6px;font-size:13px;text-align:center;font-family:inherit}.asst-video:focus{border-color:var(--brand);outline:none}.sample-tier{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--brand);border:1px solid var(--brand);border-radius:6px;padding:1px 6px;margin-left:6px}.asst-clip{margin-top:6px;width:100%;max-width:100%;border-radius:8px;border:1px solid var(--border);background:#000}.rec-pill{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:130;display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;background:#14161cd1;color:#fff;font-weight:700;font-size:12px;letter-spacing:.05em;border:1px solid rgba(255,255,255,.15);box-shadow:0 6px 20px #00000073}.rec-dot{width:10px;height:10px;border-radius:50%;background:#ff3b30;box-shadow:0 0 #ff3b3099;animation:recpulse 1.3s infinite}@keyframes recpulse{0%{box-shadow:0 0 #ff3b308c}70%{box-shadow:0 0 0 8px #ff3b3000}to{box-shadow:0 0 #ff3b3000}}.rr-panel{position:fixed;left:18px;bottom:18px;z-index:118;width:min(260px,88vw);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 18px 60px #00000080}.rr-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--panel-2);border-bottom:1px solid var(--border)}.rr-drag{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.rr-drag:active{cursor:grabbing}.rr-title{font-weight:700;font-size:13px}.rr-badge{font-size:10.5px;font-weight:700;color:var(--brand);border:1px solid var(--brand);border-radius:6px;padding:1px 6px}.rr-actions{padding:10px 12px 6px}.rr-btn{width:100%;padding:9px 12px;border-radius:9px;border:none;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}.rr-btn:disabled{opacity:.5;cursor:default}.rr-rec{background:linear-gradient(180deg,var(--brand),var(--brand-dim));color:#1a0b02}.rr-rec:hover:not(:disabled){filter:brightness(1.06)}.rr-stop{background:#ff3b30;color:#fff}.rr-stop:hover{filter:brightness(1.06)}.rr-status{padding:2px 12px 10px;font-size:11.5px;color:var(--text-dim)}.rr-list{list-style:none;margin:0;padding:4px 8px 10px;max-height:190px;overflow-y:auto;border-top:1px solid var(--border)}.rr-item{display:flex;align-items:center;gap:6px}.rr-play{flex:1;text-align:left;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:7px 10px;margin:3px 0;font-size:12.5px;cursor:pointer;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rr-play:hover:not(:disabled){border-color:var(--accent)}.rr-play:disabled{opacity:.5;cursor:default}.rr-vid{flex:none;background:var(--panel-2);color:var(--text-dim);font-size:13px;cursor:pointer;border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-family:inherit}.rr-vid:hover:not(:disabled){color:var(--brand);border-color:var(--brand)}.rr-vid:disabled{opacity:.5;cursor:default}.rr-listhint{list-style:none;font-size:11px;color:var(--text-dim);padding:2px 2px 6px;line-height:1.35}.rr-building{position:fixed;top:74px;left:50%;transform:translate(-50%);z-index:135;display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:999px;background:linear-gradient(180deg,var(--brand),var(--brand-dim));color:#1a0b02;font-weight:800;font-size:15px;box-shadow:0 10px 30px #00000073;max-width:92vw;flex-wrap:wrap;justify-content:center}.rr-building-sub{font-weight:600;font-size:12.5px;opacity:.85}.rr-building-dot{width:12px;height:12px;border-radius:50%;background:#1a0b02;animation:recpulse 1.2s infinite}.rr-namemodal{width:min(420px,92vw)}.rr-nameinput{width:100%;box-sizing:border-box;margin-top:4px;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit}.rr-nameinput:focus{outline:none;border-color:var(--brand)}.rr-namehint{font-size:11.5px;color:var(--text-dim);padding:8px 2px 10px;line-height:1.4}.rr-nameactions{display:flex;gap:10px;align-items:center}.rr-nameactions .rr-btn{width:auto;padding:8px 18px}.save-existing{margin:2px 0 10px}.save-existing-head{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.save-existing-list{list-style:none;margin:0;max-height:180px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:8px;padding:6px}.save-existing-item{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:6px;cursor:pointer;background:var(--panel-2);border:1px solid transparent;color:var(--text);font-size:13px;text-align:left}.save-existing-item:hover{border-color:var(--brand)}.save-existing-item.active{border-color:var(--brand);background:#e8681c26;color:var(--text)}.save-existing-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-existing-date{color:var(--text-dim);font-size:11px;white-space:nowrap}.rr-nameactions .cp-clear{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12.5px;text-decoration:underline;font-family:inherit}.rr-nameactions .cp-clear:hover{color:var(--text)}.bracket-toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:30;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 14px;border-radius:10px;background:var(--panel);border:1px solid var(--brand);box-shadow:0 8px 26px #00000080;max-width:92vw}.bt-title{font-weight:700;color:var(--brand);font-size:13px}.bt-types{display:flex;gap:6px}.bt-hint{font-size:12px;color:var(--text-dim)}.bt-note{font-weight:800;font-size:14px;letter-spacing:.3px;color:#1a1205;background:#ffd21a;border:2px solid #e8621f;border-radius:8px;padding:7px 14px;box-shadow:0 0 0 3px #ffd21a59,0 6px 18px #0006;animation:btNotePulse 1.15s ease-in-out infinite}@keyframes btNotePulse{0%,to{box-shadow:0 0 0 3px #ffd21a59,0 6px 18px #0006}50%{box-shadow:0 0 0 6px #e8621f73,0 6px 18px #0006}}.rr-managebtn{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:9px;padding:8px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}.rr-managebtn:hover:not(:disabled){border-color:var(--accent)}.rr-managebtn:disabled{opacity:.5;cursor:default}.rr-vidlist{list-style:none;margin:0;padding:4px 2px;max-height:55vh;overflow-y:auto}.rr-viditem{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 4px;border-bottom:1px solid var(--border)}.rr-vidname{font-weight:600;font-size:13px}.rr-vidused{font-size:11px;color:var(--text-dim);flex:1 1 100%}.rr-vidbtns{margin-left:auto;display:flex;gap:6px}.rr-vidlink{color:var(--accent);border-color:var(--accent)}.rr-viddel{color:#ff9a9a;border-color:#7a2f2f}.rr-viddel:hover:not(:disabled){background:#dc4c4c33}.rr-vidmodal{width:min(720px,94vw)}.rr-vidmodal-player{width:100%;max-height:70vh;border-radius:10px;background:#000;display:block}.rr-vidmodal-note{font-size:11.5px;color:var(--text-dim);padding:8px 2px 2px;line-height:1.4}.debug-panel{position:absolute;right:14px;top:14px;width:300px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000073;z-index:8;overflow:hidden}.debug-panel .debug-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;font-weight:700;font-size:13px;background:#e11d48;color:#fff}.debug-panel .debug-body{padding:12px;font-size:13px;line-height:1.45;max-height:calc(100vh - 120px);overflow-y:auto}.debug-panel .debug-body p{margin:0 0 8px}.debug-panel .debug-soon{opacity:.7;font-style:italic;font-size:12px}.debug-panel .debug-actions{display:flex;gap:6px;margin-bottom:6px}.debug-panel button{cursor:pointer;border:1px solid var(--border);background:var(--panel-2, #2a2d33);color:inherit;border-radius:7px;padding:5px 10px;font-size:12px;font-weight:600}.debug-panel button:disabled{opacity:.45;cursor:default}.debug-panel .debug-file{font-size:12px;opacity:.85;margin-bottom:8px}.debug-panel .debug-run{display:flex;align-items:center;gap:6px;margin-bottom:8px}.debug-panel .dbg-run{background:#16a34a;border-color:#16a34a;color:#fff;flex:1}.debug-panel .dbg-stop{background:#e11d48;border-color:#e11d48;color:#fff;flex:1}.debug-panel .debug-progsel{width:100%;box-sizing:border-box;border:1px solid var(--border);background:var(--panel-2, #2a2d33);color:inherit;border-radius:7px;padding:6px 8px;font-size:12px;font-weight:600;margin-bottom:4px;cursor:pointer}.debug-panel .debug-progblurb{font-size:11px;opacity:.72;margin-bottom:8px;line-height:1.35}.debug-panel .debug-actions-sec{margin:4px 0 8px}.debug-panel .dbg-linkbtn{background:none;border:none;padding:0;color:#7aa2ff;font-size:11px;font-weight:600;text-decoration:underline;opacity:.85}.debug-panel .dbg-linkbtn.danger{color:#ff7a90}.debug-panel .debug-code-head{display:flex;align-items:center;justify-content:space-between}.debug-panel .debug-code-actions{display:flex;gap:10px}.debug-panel .debug-code{width:100%;box-sizing:border-box;resize:vertical;min-height:120px;border:1px solid var(--border);background:var(--panel, #16181d);color:#d7e0ea;border-radius:7px;padding:8px;margin-bottom:8px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;overflow:auto;-moz-tab-size:2;tab-size:2}.debug-panel .debug-usertag{opacity:.7;font-style:italic}.debug-panel .mob-remote{border:1px solid var(--border);background:#1e3a6e24;border-radius:10px;padding:10px;margin-bottom:10px}.debug-panel .mob-title{font-size:12px;font-weight:800;margin-bottom:8px}.debug-panel .mob-dpad{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:6px;justify-content:center;grid-template-areas:". up ." "left mid right" ". down .";margin:0 auto 10px}.debug-panel .mob-btn,.debug-panel .mob-stop{font-size:18px;font-weight:700;border:1px solid var(--border);background:var(--panel-2, #2a2d33);color:inherit;border-radius:10px;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.debug-panel .mob-btn:hover{background:#33465f}.debug-panel .mob-btn.active{background:#2f80ed;border-color:#2f80ed;color:#fff}.debug-panel .mob-stop{background:#3a2020;color:#ff9db1}.debug-panel .mob-toggles{display:flex;gap:8px}.debug-panel .mob-toggle{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border:1px solid var(--border);background:var(--panel-2, #2a2d33);color:inherit;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer}.debug-panel .mob-toggle.on{background:#16a34a;border-color:#16a34a;color:#fff}.debug-panel .mob-toggle .mob-state{opacity:.85;font-weight:800}.debug-panel .dbg-status{font-size:11px;font-weight:700;letter-spacing:.5px;opacity:.6}.debug-panel .dbg-status.on{color:#22c55e;opacity:1}.debug-panel .debug-error{background:#e11d4826;border:1px solid #e11d48;color:#ff9db1;border-radius:7px;padding:6px 8px;font-size:12px;margin-bottom:8px;white-space:pre-wrap}.debug-panel .debug-sec{font-size:11px;text-transform:uppercase;letter-spacing:.5px;opacity:.6;margin:6px 0 4px}.debug-panel .debug-pins{width:100%;border-collapse:collapse;font-size:12px}.debug-panel .debug-pins td{padding:2px 4px}.debug-panel .pin-led{display:inline-block;width:10px;height:10px;border-radius:50%;background:#3a3d42;box-shadow:inset 0 0 0 1px #000}.debug-panel .pin-led.hi{background:#ff3b3b;box-shadow:0 0 6px 1px #ff5252}.debug-panel .pin-name{font-weight:700}.debug-panel .pin-gpio{opacity:.6}.debug-panel .pin-val{font-variant-numeric:tabular-nums}.debug-panel .pin-use{opacity:.55;font-size:11px}.debug-panel .debug-serial{background:#0b0d10;border:1px solid var(--border);border-radius:7px;padding:6px 8px;font-family:ui-monospace,Menlo,monospace;font-size:11px;white-space:pre-wrap;max-height:120px;overflow-y:auto}.debug-panel .debug-serial .dim{opacity:.4}.debug-panel .debug-hint{font-size:11px;opacity:.6;margin:4px 0 2px;font-style:italic}.debug-panel .debug-switches{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0}.debug-panel .dbg-switch{display:flex;align-items:center;gap:6px;font-weight:700;font-size:12px;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2, #2a2d33);color:inherit}.debug-panel .dbg-switch .sw-led{width:10px;height:10px;border-radius:50%;background:#3a3d42;box-shadow:inset 0 0 0 1px #000}.debug-panel .dbg-switch.start.on{background:#16a34a;border-color:#16a34a;color:#fff}.debug-panel .dbg-switch.start.on .sw-led{background:#7dffb0;box-shadow:0 0 7px 1px #4dff9a}.debug-panel .dbg-switch.estop.on{background:#e11d48;border-color:#e11d48;color:#fff}.debug-panel .dbg-switch.estop.on .sw-led{background:#ff8f8f;box-shadow:0 0 7px 1px #ff5252}.sim-window{position:absolute;z-index:45;top:84px;left:50%;transform:translate(-50%);width:560px;height:420px;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--brand);border-radius:10px;overflow:hidden;box-shadow:0 14px 44px #0009;resize:both;min-width:320px;min-height:240px}.sim-window-head{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:var(--panel-2, #22252b);border-bottom:1px solid var(--border);font-weight:700;font-size:13px;color:var(--brand);cursor:move;-webkit-user-select:none;user-select:none}.sim-window-x{background:none;border:none;color:var(--text-dim);font-size:15px;line-height:1;cursor:pointer;padding:2px 6px}.sim-window-x:hover{color:#ff8a80}.sim-window-canvas{flex:1;position:relative;min-height:0}.sim-window-canvas canvas{display:block;width:100%!important;height:100%!important}
