:root,[data-theme=dark]{--bg:#0b0e14;--bg-deep:#080a0f;--panel:#12161e;--panel-2:#171c26;--raised:#1d2431;--hover:#222b3a;--border:#212836;--border-2:#2c3547;--text:#dbe3ef;--text-2:#98a5b9;--text-3:#627086;--accent:#3ddcff;--accent-2:#5eead4;--accent-bg:#3ddcff1f;--accent-line:#3ddcff73;--accent-ink:#031a21;--run:#34d399;--run-2:#1fb383;--run-ink:#04241a;--run-bg:#34d3991a;--pause:#fbbf24;--pause-2:#e29f0a;--pause-ink:#2a1c00;--pause-bg:#fbbf241a;--danger:#ff5d73;--warn:#ffb347;--warn-bg:#ffb3471a;--axis-x:#ff6b81;--axis-y:#5be3a1;--axis-z:#5c9dff;--shadow:0 8px 30px #00000073, 0 1px 0 #ffffff0a inset;--shadow-modal:0 30px 90px #0009;--glass:#0f131bc7;--scrim:#04060a99;--stage-bg:#0a0d13;--topbar-a:#151a24;--topbar-b:#11151d;--statusbar-bg:#0e1219;--switch-thumb:#c8d2e2;--swatch-line:#fff3;--label-bg:#090c12e0;--canvas-grid:#ffffff0f;--canvas-grid-2:#ffffff0a;--canvas-zero:#ffffff2e;--canvas-text:#7d8aa0;--glyph-bg:#101620eb;--glyph-line:#ffffffd9;--chart-total:#e8eefc;--chart-1:#3ddcff;--chart-2:#b18cff;--chart-3:#ffb347;--chart-4:#ff6b9a;--chart-5:#5be3a1;--radius:8px;--radius-s:6px;--font:Inter, "SF Pro Text", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:"JetBrains Mono", "SF Mono", ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace;--left-w:268px;--right-w:304px;--dock-h:196px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg-deep);height:100%;color:var(--text);font:13px/1.4 var(--font);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}body.scrubbing,body.scrubbing *{-webkit-user-select:none;user-select:none;cursor:ew-resize!important}.icon{flex:none;width:16px;height:16px}::selection{background:var(--accent-bg)}*{scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--border-2);border:2px solid var(--panel);border-radius:9px}::-webkit-scrollbar-track{background:0 0}#app{background:var(--bg-deep);grid-template-rows:48px minmax(0,1fr) 26px;display:grid;position:fixed;inset:0}.workspace{grid-template-columns:var(--left-w) minmax(0, 1fr) var(--right-w);min-height:0;display:grid}#app.no-left .workspace{grid-template-columns:0 minmax(0, 1fr) var(--right-w)}#app.no-right .workspace{grid-template-columns:var(--left-w) minmax(0, 1fr) 0}#app.no-left.no-right .workspace{grid-template-columns:0 minmax(0,1fr) 0}#app.no-left .panel.left,#app.no-right .panel.right{display:none}.stage-col{flex-direction:column;min-width:0;min-height:0;display:flex}.stage{background:var(--stage-bg);flex:1;min-height:0;position:relative;overflow:hidden}.viewport-host{position:absolute;inset:0}.viewport-canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.viewport-canvas.tool-joint,.viewport-canvas.tool-measure,.viewport-canvas.tool-blast,.viewport-canvas.tool-shoot{cursor:crosshair}.viewport-canvas.grabbing{cursor:grabbing}.viewport-canvas.can-grab{cursor:grab}.topbar{background:linear-gradient(180deg, var(--topbar-a), var(--topbar-b));border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:12px;padding:0 12px;display:flex;position:relative}.brand{letter-spacing:.01em;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;font-size:15px;font-weight:650;display:flex}.brand .logo-mark{width:26px;height:26px}.brand b{color:var(--accent);font-weight:650}.scene-name{border-radius:var(--radius-s);width:190px;color:var(--text);text-overflow:ellipsis;background:0 0;border:1px solid #0000;padding:5px 8px;font-weight:550}.scene-name:hover{border-color:var(--border-2)}.scene-name:focus{border-color:var(--accent-line);background:var(--panel);outline:none}.menubar{gap:2px;display:flex}.menu-btn{border-radius:var(--radius-s);color:var(--text-2);background:0 0;border:0;padding:6px 10px}.menu-btn:hover,.menu-btn.open{background:var(--hover);color:var(--text)}.spacer{flex:1}.topbar-right{align-items:center;gap:4px;display:flex}.save-state{color:var(--text-3);text-align:right;min-width:68px;margin-right:6px;font-size:11.5px}.transport{background:var(--panel);border:1px solid var(--border-2);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:6px;padding:4px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.tbtn{background:var(--raised);min-width:34px;height:34px;color:var(--text);border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-weight:600;display:inline-flex}.tbtn:hover{background:var(--hover)}.tbtn:disabled{opacity:.4;cursor:default}.tbtn.play{background:linear-gradient(180deg, var(--run), var(--run-2));color:var(--run-ink);min-width:96px}.tbtn.play:hover{filter:brightness(1.08)}.tbtn.pause{background:linear-gradient(180deg, var(--pause), var(--pause-2));color:var(--pause-ink);min-width:96px}.tbtn .icon{width:15px;height:15px}.timescale{align-items:center;gap:2px;padding:0 4px;display:flex}.sim-clock{font:600 12px var(--mono);color:var(--text-2);text-align:center;min-width:64px;padding:0 6px}.mode-chip{font:600 10.5px var(--font);letter-spacing:.09em;text-transform:uppercase;background:var(--raised);color:var(--text-2);border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.mode-chip i{background:var(--text-3);border-radius:50%;width:7px;height:7px}.mode-chip.running{color:var(--run);background:var(--run-bg)}.mode-chip.running i{background:var(--run);box-shadow:0 0 8px var(--run);animation:1.4s infinite pulse}.mode-chip.paused{color:var(--pause);background:var(--pause-bg)}.mode-chip.paused i{background:var(--pause)}@keyframes pulse{50%{opacity:.35}}.icon-btn{border-radius:var(--radius-s);width:30px;height:30px;color:var(--text-2);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--hover);color:var(--text)}.icon-btn.on{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-line)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.btn{border-radius:var(--radius-s);border:1px solid var(--border-2);background:var(--raised);color:var(--text);align-items:center;gap:7px;padding:6px 11px;display:inline-flex}.btn:hover{background:var(--hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover{filter:brightness(1.1);background:var(--accent)}.btn.danger{color:var(--danger)}.btn.small{padding:3px 8px;font-size:12px}.btn.wide{justify-content:center;width:100%}.segmented{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);gap:2px;padding:2px;display:inline-flex}.seg-btn{color:var(--text-2);background:0 0;border:0;border-radius:4px;align-items:center;gap:5px;padding:4px 9px;font-size:12px;display:inline-flex}.seg-btn:hover{color:var(--text);background:var(--hover)}.seg-btn.on{background:var(--raised);color:var(--accent);box-shadow:0 0 0 1px var(--border-2) inset}.segmented.compact .seg-btn{font-variant-numeric:tabular-nums;padding:3px 7px;font-size:11.5px}.num-field{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);flex:1;align-items:center;min-width:0;height:26px;transition:border-color .12s;display:flex}.num-field:hover{border-color:var(--border-2)}.num-field:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-bg)}.num-label{color:var(--text-3);font:600 10.5px var(--mono);cursor:ew-resize;-webkit-user-select:none;user-select:none;align-self:stretch;align-items:center;padding:0 6px;display:flex}.num-label:hover{color:var(--text)}.num-label.axis-x{color:var(--axis-x)}.num-label.axis-y{color:var(--axis-y)}.num-label.axis-z{color:var(--axis-z)}.num-input{width:100%;min-width:0;height:100%;color:var(--text);font:12px var(--mono);text-align:right;background:0 0;border:0;outline:none;padding:0 6px}.num-label+.num-input{text-align:left;padding-left:0}.num-unit{color:var(--text-3);-webkit-user-select:none;user-select:none;padding-right:7px;font-size:11px}.hex-input{text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);width:74px;height:26px}.vec3{gap:4px;width:100%;display:flex}.slider-field{align-items:center;gap:8px;width:100%;display:flex}.slider-field .num-field{flex:0 0 82px}.slider{appearance:none;background:var(--border-2);border-radius:4px;outline:none;flex:1;min-width:40px;height:4px}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--panel);width:13px;height:13px;box-shadow:0 0 0 1px var(--accent-line);cursor:pointer;border-radius:50%}.slider::-moz-range-thumb{background:var(--accent);border:2px solid var(--panel);cursor:pointer;border-radius:50%;width:11px;height:11px}.select-wrap{width:100%;position:relative}.select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);appearance:none;outline:none;width:100%;height:26px;padding:0 24px 0 8px}.select:hover{border-color:var(--border-2)}.select:focus{border-color:var(--accent-line)}.select option{background:var(--panel-2)}.select-caret{width:14px;height:14px;color:var(--text-3);pointer-events:none;position:absolute;top:5px;right:6px}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.switch-input{opacity:0;pointer-events:none;position:absolute}.switch-track{background:var(--border-2);border-radius:9px;flex:none;width:30px;height:17px;transition:background .15s;position:relative}.switch-thumb{background:var(--switch-thumb);border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch-input:checked+.switch-track{background:var(--accent)}.switch-input:checked+.switch-track .switch-thumb{background:var(--accent-ink);transform:translate(13px)}.switch-input:indeterminate+.switch-track{background:var(--text-3)}.switch-label{color:var(--text-2);font-size:12.5px}.chips{gap:4px;display:flex}.chip{border:1px solid var(--border);background:var(--bg);min-width:28px;height:24px;color:var(--text-2);font:600 11px var(--mono);border-radius:5px;padding:0 8px}.chip:hover{border-color:var(--border-2);color:var(--text)}.chip.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent)}.color-field{align-items:center;gap:6px;display:flex}.color-input{appearance:none;border:1px solid var(--border-2);border-radius:var(--radius-s);cursor:pointer;background:0 0;width:30px;height:26px;padding:0}.color-input::-webkit-color-swatch-wrapper{padding:2px}.color-input::-webkit-color-swatch{border:0;border-radius:4px}.key-btn{border-radius:var(--radius-s);border:1px solid var(--border-2);background:var(--raised);min-width:64px;height:26px;font:600 11.5px var(--mono);color:var(--text);padding:0 10px}.key-btn.empty{color:var(--text-3);font-weight:500}.key-btn.listening{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}kbd{font:600 10.5px var(--mono);background:var(--raised);border:1px solid var(--border-2);color:var(--text-2);border-bottom-width:2px;border-radius:4px;padding:1px 5px}.panel{background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex}.panel.left{border-right:1px solid var(--border)}.panel.right{border-left:1px solid var(--border)}.tabs{border-bottom:1px solid var(--border);gap:2px;padding:8px 8px 0;display:flex}.tab{color:var(--text-2);background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:7px 10px 9px;font-size:12.5px;font-weight:550;display:inline-flex}.tab:hover{color:var(--text)}.tab.on{color:var(--text);border-bottom-color:var(--accent)}.panel-body{flex:1;min-height:0;overflow:hidden auto}.section{border-bottom:1px solid var(--border)}.section-head{width:100%;color:var(--text-2);font:650 11px var(--font);letter-spacing:.07em;text-transform:uppercase;text-align:left;background:0 0;border:0;align-items:center;gap:7px;padding:9px 12px;display:flex}.section-head:hover{color:var(--text)}.section-caret{width:12px;height:12px;transition:transform .15s}.section.open>.section-head .section-caret{transform:rotate(90deg)}.section-body{padding:2px 12px 12px;display:none}.section.open>.section-body{display:block}.badge{font:600 10px var(--mono);color:var(--text-3);background:var(--bg);text-transform:none;letter-spacing:0;border-radius:5px;margin-left:auto;padding:1px 6px}.row{grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px;min-height:30px;display:grid}.row-label{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.row-control{align-items:center;gap:6px;min-width:0;display:flex}.row.stack{grid-template-columns:1fr;gap:4px;padding:5px 0 6px}.row.stack .row-label{color:var(--text-3);font-size:11.5px}.row.stack .segmented{width:100%}.row.stack .seg-btn{flex:1;justify-content:center}.empty-state{text-align:center;color:var(--text-3);padding:28px 18px}.empty-state h4{color:var(--text-2);margin:12px 0 4px;font-size:13px;font-weight:600}.empty-state p{margin:0;font-size:12.5px;line-height:1.5}.hint-text{color:var(--text-3);margin:4px 0 8px;font-size:11.5px;line-height:1.45}.readout{font:12px var(--mono);grid-template-columns:1fr auto;gap:2px 10px;display:grid}.readout dt{color:var(--text-3);font-family:var(--font)}.readout dd{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;margin:0}.live-pill{font:600 10px var(--font);letter-spacing:.08em;color:var(--run);text-transform:uppercase;align-items:center;gap:6px;display:inline-flex}.live-pill i{background:var(--run);border-radius:50%;width:6px;height:6px;animation:1.4s infinite pulse}.group-title{color:var(--text-3);font:650 10.5px var(--font);letter-spacing:.09em;text-transform:uppercase;padding:12px 12px 6px}.tiles{grid-template-columns:repeat(4,1fr);gap:6px;padding:0 12px 4px;display:grid}.tiles.three{grid-template-columns:repeat(3,1fr)}.tile{border-radius:var(--radius);background:var(--panel-2);border:1px solid var(--border);color:var(--text-2);-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:5px;padding:10px 2px 7px;font-size:11px;display:flex}.tile .icon{width:24px;height:24px;color:var(--text)}.tile:hover{background:var(--hover);border-color:var(--border-2);color:var(--text)}.tile:active{transform:scale(.97)}.tile.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent)}.tile.on .icon{color:var(--accent)}.cards{flex-direction:column;gap:8px;padding:4px 12px 14px;display:flex}.card{text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);width:100%;padding:10px 11px;display:block}.card:hover{border-color:var(--accent-line);background:var(--raised)}.card h4{align-items:center;gap:8px;margin:0 0 3px;font-size:13px;display:flex}.card p{color:var(--text-2);margin:0;font-size:12px;line-height:1.42}.card .tag{font:600 9.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-left:auto}.card-row{align-items:center;gap:4px;display:flex}.outliner{padding:4px 6px 10px}.o-item{height:28px;color:var(--text-2);cursor:default;border-radius:6px;align-items:center;gap:7px;padding:0 6px;display:flex}.o-item:hover{background:var(--hover);color:var(--text)}.o-item.sel{background:var(--accent-bg);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.o-item .o-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.o-item .o-swatch{border:1px solid var(--swatch-line);border-radius:3px;flex:none;width:10px;height:10px}.o-item .o-tools{opacity:0;display:flex}.o-item:hover .o-tools,.o-item .o-tools.has{opacity:1}.o-tool{width:22px;height:22px;color:var(--text-3);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.o-tool:hover{color:var(--text);background:var(--raised)}.o-tool.active{color:var(--warn)}.o-item .icon{width:14px;height:14px;color:var(--text-3)}.o-item.sel .icon{color:var(--accent)}.o-item.hidden-item .o-name{opacity:.45;text-decoration:line-through}.o-rename{background:var(--bg);border:1px solid var(--accent-line);border-radius:4px;outline:none;flex:1;min-width:0;padding:2px 5px}.o-item .o-caret{background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;margin-right:-3px;padding:0;display:inline-flex}.o-item .o-caret.spacer{pointer-events:none}button.o-caret:hover{background:var(--raised)}.o-item .o-caret .icon{width:11px;height:11px;transition:transform .15s}.o-item .o-caret.open .icon{transform:rotate(90deg)}.o-item.is-group .o-name{color:var(--text);font-weight:600}.o-item.drop{background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent-line)}.comps{flex-direction:column;gap:8px;margin-top:8px;display:flex}.comp-add{justify-content:center;width:100%}.comp{border:1px solid var(--border);background:var(--panel-2);border-radius:8px}.comp.disabled>.comp-body{opacity:.55}.comp-head{align-items:center;gap:6px;padding:5px 6px 5px 4px;display:flex}.comp-head>.icon{width:15px;height:15px;color:var(--text-2);flex:none}.comp-title{cursor:default;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-weight:600;overflow:hidden}.comp-caret{width:18px;height:18px;color:var(--text-3);background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.comp-caret .icon{width:11px;height:11px;transition:transform .15s;transform:rotate(90deg)}.comp.folded .comp-caret .icon{transform:none}.comp.folded>.comp-body{display:none}.comp-body{border-top:1px solid var(--border);padding:2px 8px 8px}.comp-switch{margin:0 2px}.comp-warn{background:var(--warn-bg);color:var(--warn);border-radius:6px;align-items:flex-start;gap:6px;margin:8px 0 2px;padding:6px 8px;font-size:11.5px;line-height:1.4;display:flex}.comp-warn .icon{flex:none;width:13px;height:13px;margin-top:1px}.comp-state{border-top:1px dashed var(--border);color:var(--text-3);flex-wrap:wrap;gap:4px 12px;margin-top:8px;padding-top:6px;font-size:11px;display:flex}.comp-gauge b{color:var(--text);font:600 11px var(--mono);margin-left:5px}.comp-empty{color:var(--text-3);margin:8px 2px 0;font-size:12px;line-height:1.45}.comp-text{width:100%}.comp-text-wrap{display:contents}.comp-menu{width:300px;max-width:300px;padding:6px}.comp-search-wrap{border-bottom:1px solid var(--border);align-items:center;gap:7px;margin-bottom:4px;padding:4px 8px 6px;display:flex}.comp-search-wrap .icon{width:14px;height:14px;color:var(--text-3)}.comp-search{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1}.comp-results{max-height:340px;overflow-y:auto}.comp-item{align-items:flex-start}.comp-item .icon{margin-top:2px}.comp-item.active:not(:disabled){background:var(--hover)}.comp-item .grow{flex-direction:column;gap:1px;display:flex}.comp-item-name{font-weight:600}.comp-item-blurb{color:var(--text-3);font-size:11px;line-height:1.35}.curve-editor{width:100%}.curve-svg{background:var(--bg);border:1px solid var(--border);touch-action:none;cursor:crosshair;border-radius:6px;width:100%;height:auto;display:block}.curve-grid line{stroke:var(--border);stroke-width:.6px}.curve-line{stroke:var(--accent);stroke-width:1.8px}.curve-hit{fill:#0000;cursor:grab}.curve-dot{pointer-events:none;fill:var(--panel);stroke:var(--accent);stroke-width:1.8px;cursor:grab}.curve-dot.sel{fill:var(--accent)}.curve-labels{color:var(--text-3);font:10px var(--mono);justify-content:space-between;margin-top:3px;display:flex}.curve-readout{color:var(--text-2);font:11px var(--mono);min-height:15px;margin-top:2px}.path-points{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.path-point{border-radius:6px;align-items:center;gap:4px;padding:3px 4px;display:flex}.path-point.active{background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent-line)}.path-point .vec3{flex:1;min-width:0}.path-point .path-idx{text-align:right;width:14px;font:600 10px var(--mono);color:var(--text-3);flex:none}.icon-btn.small{flex:none;width:22px;height:22px}.icon-btn.small .icon{width:13px;height:13px}.o-group{color:var(--text-3);font:650 10px var(--font);letter-spacing:.09em;text-transform:uppercase;justify-content:space-between;padding:10px 8px 4px;display:flex}.search{margin:8px 10px 4px}.search input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);outline:none;width:100%;padding:6px 9px}.search input:focus{border-color:var(--accent-line)}.floating{z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(14px)saturate(1.3);border:1px solid var(--border-2);box-shadow:var(--shadow);border-radius:12px;position:absolute}.toolbox{flex-direction:column;gap:2px;padding:5px;display:flex;top:12px;left:12px}.toolbox .icon-btn{border-radius:8px;width:34px;height:34px;position:relative}.toolbox .icon-btn .icon{width:18px;height:18px}.toolbox hr{background:var(--border-2);border:0;height:1px;margin:4px}.toolbox .opt-btn{width:34px;height:26px;font:600 10px var(--mono);color:var(--text-2)}.viewbar{align-items:center;gap:2px;padding:4px 6px;display:flex;top:12px;right:64px}.viewbar .sep{background:var(--border-2);width:1px;height:18px;margin:0 4px}.stage-chip{z-index:5;align-items:center;gap:8px;display:flex;position:absolute;top:14px;left:62px}.hint-bar{z-index:5;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-2);color:var(--text-2);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;max-width:80%;box-shadow:var(--shadow);border-radius:999px;padding:7px 14px;font-size:12.5px;position:absolute;bottom:14px;left:50%;overflow:hidden;transform:translate(-50%)}.hint-bar b{color:var(--accent);font-weight:600}.hint-bar.hidden{display:none}.marquee{z-index:6;border:1px solid var(--accent);background:var(--accent-bg);pointer-events:none;display:none;position:absolute}.label-layer{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:hidden}.v-label{background:var(--label-bg);border:1px solid var(--border-2);font:600 11.5px var(--mono);color:var(--text);white-space:nowrap;border-radius:6px;padding:2px 7px;position:absolute;transform:translate(-50%,-120%)}.v-label.accent{border-color:var(--accent-line);color:var(--accent)}.drop-hint{z-index:7;border:2px dashed var(--accent-line);color:var(--accent);background:var(--accent-bg);pointer-events:none;border-radius:14px;justify-content:center;align-items:center;font-size:15px;display:none;position:absolute;inset:8px}.drop-hint.show{display:flex}.fps-badge{z-index:5;font:11px var(--mono);color:var(--text-3);pointer-events:none;text-align:right;line-height:1.5;position:absolute;bottom:12px;right:12px}.dock{height:var(--dock-h);background:var(--panel);border-top:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.dock.collapsed{display:none}.dock-head{border-bottom:1px solid var(--border);flex:none;align-items:center;gap:4px;height:34px;padding:0 8px;display:flex}.dock-body{flex:1;grid-template-columns:minmax(0,1fr) 232px;gap:0;min-height:0;display:grid}.chart-wrap{min-width:0;min-height:0;position:relative}.chart-wrap canvas{width:100%;height:100%;position:absolute;inset:0}.legend{border-left:1px solid var(--border);padding:8px 12px;font-size:12px;overflow-y:auto}.legend-item{grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:2px 0;display:grid}.legend-item i{border-radius:2px;width:10px;height:3px}.legend-item span{color:var(--text-2)}.legend-item b{font:12px var(--mono);font-variant-numeric:tabular-nums;font-weight:500}.legend-item.toggle{cursor:pointer}.legend-item.off{opacity:.35}.statusbar{background:var(--statusbar-bg);border-top:1px solid var(--border);font:11.5px var(--mono);color:var(--text-3);white-space:nowrap;align-items:center;gap:16px;padding:0 12px;display:flex;overflow:hidden}.statusbar .stat b{color:var(--text-2);font-weight:500}.statusbar .stat.warn b{color:var(--warn)}.statusbar .grow{flex:1}.menu{z-index:100;background:var(--panel-2);border:1px solid var(--border-2);min-width:220px;max-width:320px;box-shadow:var(--shadow);border-radius:10px;max-height:calc(100vh - 80px);padding:5px;position:fixed;overflow-y:auto}.menu-item{text-align:left;width:100%;color:var(--text);background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;padding:6px 9px;display:flex}.menu-item:hover:not(:disabled){background:var(--hover)}.menu-item:disabled{color:var(--text-3);cursor:default}.menu-item .icon{color:var(--text-2)}.menu-item .check{width:16px;color:var(--accent);justify-content:center;font-weight:700;display:inline-flex}.menu-item .grow{flex:1}.menu-item .kb{color:var(--text-3);font:11px var(--mono)}.menu-sep{background:var(--border);height:1px;margin:5px 3px}.menu-label{color:var(--text-3);font:650 10px var(--font);letter-spacing:.09em;text-transform:uppercase;padding:6px 9px 3px}.toasts{z-index:120;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:44px;left:50%;transform:translate(-50%)}.toast{background:var(--panel-2);border:1px solid var(--border-2);border-left:3px solid var(--accent);box-shadow:var(--shadow);border-radius:9px;max-width:520px;padding:9px 14px;font-size:12.5px;animation:.18s ease-out toast-in}.toast.warn{border-left-color:var(--warn)}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:var(--run)}.toast.leaving{opacity:0;transition:all .25s;transform:translateY(6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.modal-back{z-index:110;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:center;animation:.15s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--panel);border:1px solid var(--border-2);box-shadow:var(--shadow-modal);border-radius:14px;flex-direction:column;width:min(720px,100vw - 40px);max-height:calc(100vh - 60px);display:flex;overflow:hidden}.modal-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 18px;display:flex}.modal-head h3{flex:1;margin:0;font-size:15px}.modal-body{padding:16px 18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.kbd-grid{grid-template-columns:1fr 1fr;gap:4px 28px;display:grid}.kbd-row{border-bottom:1px solid var(--border);color:var(--text-2);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.kbd-group{color:var(--accent);font:650 11px var(--font);letter-spacing:.08em;text-transform:uppercase;grid-column:1/-1;margin-top:10px}.welcome{grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;display:grid}.welcome .card h4{color:var(--accent)}.big-title{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:700}.sub{color:var(--text-2);margin:0;line-height:1.5}.ctx-menu{z-index:100;position:fixed}input[type=text].plain{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);outline:none;width:100%;padding:7px 10px}input[type=text].plain:focus{border-color:var(--accent-line)}.tab-toolbar{flex:1;align-items:center;gap:4px;min-width:0;padding-left:4px;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.panel.left .tabs{gap:0}.panel.left .tabs .tab{padding-left:7px;padding-right:7px}.tab:focus-visible{outline:2px solid var(--accent-line);outline-offset:-2px}.palette-back{z-index:115;background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:flex-start;padding-top:min(13vh,120px);animation:.12s fade;display:flex;position:fixed;inset:0}.palette{background:var(--panel);border:1px solid var(--border-2);width:min(660px,100vw - 32px);max-height:min(580px,100vh - 140px);box-shadow:var(--shadow-modal);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.palette-input-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.palette-input-row .icon{width:18px;height:18px;color:var(--text-3)}.palette-input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:15px}.palette-input::placeholder{color:var(--text-3)}.palette-list{flex:1;min-height:56px;padding:6px;overflow-y:auto}.palette-heading{color:var(--text-3);font:650 10px var(--font);letter-spacing:.09em;text-transform:uppercase;padding:9px 10px 4px}.palette-item{min-height:38px;color:var(--text-2);cursor:default;border-radius:8px;align-items:center;gap:10px;padding:6px 10px;display:flex}.palette-item[aria-selected=true]{background:var(--accent-bg);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.palette-icon{width:18px;color:var(--text-3);flex:none;justify-content:center;display:inline-flex}.palette-item[aria-selected=true] .palette-icon{color:var(--accent)}.palette-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.palette-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.palette-label mark{color:var(--accent);background:0 0;font-weight:650}.palette-detail{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.palette-meta{flex:none;align-items:center;gap:8px;display:flex}.palette-tag{color:var(--text-3);font:600 9.5px var(--font);letter-spacing:.08em;text-transform:uppercase}.palette-state{font:600 10px var(--font);letter-spacing:.06em;text-transform:uppercase;background:var(--bg);color:var(--text-3);border-radius:5px;padding:1px 6px}.palette-state.on{background:var(--run-bg);color:var(--run)}.palette-empty{text-align:center;color:var(--text-3);padding:26px 18px;font-size:12.5px;line-height:1.5}.palette-foot{border-top:1px solid var(--border);color:var(--text-3);gap:16px;padding:8px 16px;font-size:11.5px;display:flex}.palette-foot kbd{margin-right:3px}.map-card{align-items:stretch;gap:10px;display:flex}.map-thumb{background:var(--bg);border:1px solid var(--border);width:64px;height:64px;color:var(--text-3);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.map-thumb img{width:100%;height:100%;display:block}.map-info{flex-direction:column;gap:3px;min-width:0;display:flex}.map-info h4{align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.map-info p{color:var(--text-2);margin:0;font-size:12px;line-height:1.38}.map-info .tag{white-space:nowrap;font:600 9.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);flex:none;align-self:center;margin-right:3px}.map-info .tag.diff-easy{color:var(--run)}.map-info .tag.diff-medium{color:var(--pause)}.map-info .tag.diff-hard,.map-info .tag.diff-expert{color:var(--danger)}.map-tags{flex-wrap:wrap;gap:4px;margin-top:1px;display:flex}.chip-tag{background:var(--bg);color:var(--text-3);border:1px solid var(--border);border-radius:5px;padding:0 6px;font-size:10.5px}.ctl-panel{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:0;height:100%;min-height:0;display:grid}.ctl-col{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.ctl-col.keys{border-left:1px solid var(--border)}.ctl-head{color:var(--text-3);font:600 10.5px var(--font);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;padding:7px 14px 4px;display:flex}.ctl-head b{font-weight:600}.ctl-spring{text-transform:none;letter-spacing:0;color:var(--text-2);cursor:pointer;align-items:center;gap:6px;font-size:12px;font-weight:500;display:inline-flex}.ctl-axes,.ctl-keys{flex:1;min-height:0;padding:2px 14px 8px;overflow-y:auto}.ctl-axes{flex-direction:column;gap:6px;display:flex}.ctl-keys{flex-wrap:wrap;align-content:flex-start;gap:6px;display:flex}.ctl-row{grid-template-columns:96px minmax(0,1fr) 46px 26px;align-items:center;gap:10px;display:grid}.ctl-name{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.ctl-slider{width:100%}.ctl-out{font:12px var(--mono);font-variant-numeric:tabular-nums;color:var(--text);text-align:right}.ctl-reset{border:1px solid var(--border-2);background:var(--raised);height:22px;color:var(--text-2);font:600 11px var(--mono);border-radius:6px;padding:0}.ctl-reset:hover:not(:disabled){background:var(--hover);color:var(--text)}.ctl-key{border:1px solid var(--border-2);background:var(--raised);color:var(--text-2);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:9px;align-items:center;gap:8px;padding:5px 10px 5px 6px;font-size:12px;display:inline-flex}.ctl-key kbd{text-align:center;min-width:22px;color:var(--text);font-size:11.5px}.ctl-key:hover:not(:disabled){background:var(--hover);color:var(--text)}.ctl-key.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--text)}.ctl-key.on kbd{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.ctl-key:focus-visible,.ctl-reset:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ctl-key:disabled,.ctl-reset:disabled,.ctl-slider:disabled{opacity:.5;cursor:not-allowed}.ctl-empty{color:var(--text-3);padding:6px 0;font-size:12px}.ctl-hint{border-top:1px solid var(--border);color:var(--text-3);grid-column:1/-1;padding:5px 14px 7px;font-size:11.5px}@media (max-width:1180px){:root{--left-w:232px;--right-w:268px}.scene-name{width:120px}}@media (max-width:980px){.brand span.word,.menubar{display:none}}.fx-panel .switch{padding:4px 0 1px;display:flex}.fx-kind-hint{margin:0 0 6px 38px}.fx-previews{flex-wrap:wrap;gap:6px;margin:4px 0 6px;display:flex}.fx-off-note{color:var(--warn);display:none}.section.fx-disabled .fx-off-note{display:block}.section.fx-dim.fx-disabled>.section-body{opacity:.4;pointer-events:none;filter:saturate(.4)}.fx-stat{justify-content:space-between;gap:10px;padding:3px 0;font-size:12px;display:flex}.fx-stat-l{color:var(--text-3)}.fx-stat-v{font:12px var(--mono);color:var(--text-2);font-variant-numeric:tabular-nums}.fx-bar{background:var(--bg);border-radius:3px;height:4px;margin:2px 0 6px;overflow:hidden}.fx-bar-fill{background:linear-gradient(90deg, var(--accent-2), var(--accent));width:0;height:100%;transition:width .2s}.tabs.compact .tab:not(.on) .tab-label{display:none}.tabs.compact .tab{padding-left:9px;padding-right:9px}.section.fx-disabled .fx-dim-inner{opacity:.4;pointer-events:none;filter:saturate(.4)}.icon-btn.sound-btn.silent{color:var(--warn)}.audio-note{margin:2px 0 6px}.audio-note[hidden]{display:none}.audio-meter{height:6px}.zone-tiles .tile{position:relative}.zone-tiles .tile .icon{color:var(--zone-color,var(--text))}.zone-tiles .tile:hover{border-color:var(--zone-color,var(--border-2))}.v-label.zone-label{border-color:var(--border-2);color:var(--text-2);font:600 11px var(--font);background:var(--label-bg);pointer-events:none;padding:1px 7px}.v-label.zone-label.accent{color:var(--accent);border-color:var(--accent-line)}.v-label.zone-label.off{opacity:.55;text-decoration:line-through}.row-actions{gap:6px;padding:6px 0 4px;display:flex}.row-actions .btn{flex:1;justify-content:center}.sub-title{color:var(--text-3);font:650 10.5px var(--font);letter-spacing:.08em;text-transform:uppercase;margin:10px 0 2px}.row.muted{opacity:.5}.zones-panel{flex:1;grid-template-columns:minmax(0,1fr) minmax(280px,38%);min-height:0;display:grid}.zp-col{flex-direction:column;min-width:0;min-height:0;display:flex}.zp-events{border-left:1px solid var(--border)}.zp-head{color:var(--text-3);font:650 10.5px var(--font);letter-spacing:.08em;text-transform:uppercase;flex:none;align-items:center;gap:7px;padding:6px 12px 4px;display:flex}.zp-head .icon{width:13px;height:13px}.zp-chip{background:var(--panel-2);border:1px solid var(--border);color:var(--text-3);font:600 10.5px var(--font);letter-spacing:.02em;text-transform:none;border-radius:999px;margin-left:auto;padding:1px 9px}.zp-chip:hover{color:var(--text);border-color:var(--border-2)}.zp-chip[aria-pressed=true]{color:var(--accent);border-color:var(--accent-line);background:var(--accent-bg)}.zp-races,.zp-log{flex:1;min-height:0;padding:0 8px 8px;overflow:auto}.zp-empty{color:var(--text-3);max-width:54ch;padding:10px 6px;font-size:12px;line-height:1.5}.zp-race-block{margin-bottom:8px}.zp-race-head{color:var(--text-3);align-items:baseline;gap:10px;padding:2px 6px 4px;font-size:12px;display:flex}.zp-race-head b{color:var(--text);font-weight:650}.zp-record{color:var(--accent-2);font-family:var(--mono);margin-left:auto;font-size:11px}.zp-table{font-size:12px}.zp-row{border-radius:6px;grid-template-columns:28px minmax(90px,1.3fr) 66px 84px 84px minmax(90px,1fr) 54px 64px;align-items:center;gap:8px;min-height:26px;padding:0 6px;display:grid}.zp-row:not(.zp-hdr):hover{background:var(--hover)}.zp-row>span{white-space:nowrap;text-overflow:ellipsis;font-variant-numeric:tabular-nums;overflow:hidden}.zp-hdr{color:var(--text-3);font:600 10.5px var(--font);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--border);border-radius:0;min-height:22px}.zp-row .c-pos{color:var(--text-3);font-family:var(--mono)}.zp-row .c-name{color:var(--text);font-weight:560}.zp-row .c-last,.zp-row .c-best,.zp-row .c-time,.zp-row .c-gates,.zp-row .c-pen,.zp-row .c-lap{font-family:var(--mono);color:var(--text-2)}.zp-row .c-best.record{color:var(--accent-2)}.zp-row .c-time.done{color:var(--run)}.zp-row .c-pen{color:var(--warn)}.zp-line{border-radius:4px;grid-template-columns:62px 74px minmax(0,1fr);gap:8px;padding:2px 4px;font-size:11.5px;line-height:1.45;display:grid}.zp-line:hover{background:var(--hover)}.zp-line .zp-t{font-family:var(--mono);color:var(--text-3)}.zp-line .zp-n{font-family:var(--mono);color:var(--accent);text-overflow:ellipsis;overflow:hidden}.zp-line .zp-x{color:var(--text-2);overflow-wrap:anywhere}.zp-line.bounds .zp-n{color:var(--warn)}.zp-line.finish .zp-n,.zp-line.lap .zp-n{color:var(--run)}.zp-line.kill .zp-n,.zp-line.skipped .zp-n{color:var(--danger)}@media (max-width:1100px){.zones-panel{grid-template-columns:minmax(0,1fr)}.zp-events{display:none}}.zone-hud{z-index:6;pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(520px,100% - 420px);display:flex;position:absolute;top:12px;left:76px}.zh-board{flex-direction:column;gap:6px;display:flex}.zh-race{background:var(--glass);border:1px solid var(--border-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:var(--shadow);border-radius:10px;min-width:340px;padding:6px 10px 7px}.zh-head{color:var(--text-2);font:650 10.5px var(--font);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:7px;padding-bottom:3px;display:flex}.zh-head .icon{width:13px;height:13px;color:var(--chart-5)}.zh-head em{color:var(--text-3);letter-spacing:.04em;margin-left:auto;font-style:normal}.zh-row{grid-template-columns:16px minmax(60px,1fr) 76px 72px auto;align-items:baseline;gap:8px;font-size:12.5px;line-height:1.5;display:grid}.zh-pos{font:600 11px var(--mono);color:var(--text-3)}.zh-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.zh-lap{color:var(--text-2);font-size:11.5px}.zh-time{font:600 13px var(--mono);color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.zh-best{font:11px var(--mono);color:var(--accent-2);text-align:right;min-width:76px}.zh-score{background:var(--glass);border:1px solid var(--border-2);color:var(--text-2);border-radius:999px;padding:3px 14px;font-size:12px}.zh-score b{color:var(--chart-5);font:700 14px var(--mono);margin-left:4px}.zh-flash{font:700 26px var(--font);color:var(--text);text-shadow:0 2px 14px var(--scrim);opacity:0;letter-spacing:.01em;align-self:center}.zh-flash.on{animation:2.4s ease-out forwards zh-flash}@keyframes zh-flash{0%{opacity:0;transform:translateY(8px)scale(.92)}12%{opacity:1;transform:none}80%{opacity:1}to{opacity:0;transform:translateY(-8px)}}.zone-feed{z-index:6;pointer-events:none;flex-direction:column;gap:4px;max-width:46%;display:flex;position:absolute;bottom:14px;left:76px}.zf-line{background:var(--glass);border:1px solid var(--border-2);border-left:3px solid var(--accent);color:var(--text);border-radius:6px;width:-moz-fit-content;width:fit-content;max-width:100%;padding:3px 9px;font-size:12px;animation:.25s ease-out zf-in}.zf-line.finish,.zf-line.lap{border-left-color:var(--run)}.zf-line.kill,.zf-line.skipped{border-left-color:var(--danger)}.zf-line.respawn{border-left-color:var(--warn)}@keyframes zf-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.zh-flash.on,.zf-line{animation:none}.zh-flash.on{opacity:1}}.viewport-canvas.tool-lasso,.viewport-canvas.tool-paintselect{cursor:crosshair}.ed-lasso{z-index:6;pointer-events:none;width:100%;height:100%;display:none;position:absolute;inset:0}.ed-lasso polygon{fill:var(--accent-bg);stroke:none}.ed-lasso polyline{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:5 4;stroke-linejoin:round}.ed-lasso[data-mode=subtract] polyline{stroke:var(--danger)}.ed-lasso[data-mode=subtract] polygon{fill:#ff5a5a1f}.ed-brush-ring{z-index:6;pointer-events:none;border:1.5px solid var(--accent);background:var(--accent-bg);box-sizing:border-box;border-radius:50%;display:none;position:absolute}.ed-brush-ring[data-mode=subtract]{border-color:var(--danger);background:#ff5a5a1f}.ed-brush-ring[data-mode=add]:after{content:"+";color:var(--accent);font:600 14px var(--mono);place-items:center;display:grid;position:absolute;inset:0}.ed-brush-ring[data-mode=subtract]:after{content:"−";color:var(--danger);font:600 14px var(--mono);place-items:center;display:grid;position:absolute;inset:0}.ed-select-panel{padding:4px 0 12px}.ed-sel-section{padding:8px 12px 4px}.ed-sel-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px;font-size:11px}.ed-sel-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);box-sizing:border-box;outline:none;width:100%;min-width:0;height:28px;padding:5px 8px}.ed-sel-input:focus{border-color:var(--accent)}.ed-sel-input.invalid{border-color:var(--danger)}.ed-sel-layer,.ed-sel-shape{width:100%}.ed-sel-count{font:12px var(--mono);color:var(--text-2);margin:8px 0 6px}.ed-sel-actions{gap:6px;display:flex}.ed-sel-actions .btn{flex:1;justify-content:center}.ed-sel-actions .btn:disabled{opacity:.45;pointer-events:none}.ed-sel-note{color:var(--text-3);margin:6px 0 0;font-size:11.5px;line-height:1.45}.stage .toolbox{scrollbar-width:thin;max-height:calc(100% - 24px);overflow:hidden auto}.ed-arrange{padding:0 2px 12px}.arrange-summary{color:var(--text-3);padding:8px 12px 4px;font-size:11.5px}.arrange-sub{color:var(--text-3);padding:8px 0 2px;font-size:11.5px}.arrange-grid{grid-template-columns:18px repeat(3,minmax(0,1fr));align-items:center;gap:5px;padding:2px 0 6px;display:grid}.arrange-grid.two{grid-template-columns:18px repeat(2,minmax(0,1fr))}.arrange-grid .btn{justify-content:center;min-width:0;padding-left:4px;padding-right:4px}.arrange-axis{text-align:center;color:var(--text-2);font-size:11.5px;font-weight:600}.arrange-axis.axis-x{color:#ff7a7a}.arrange-axis.axis-y{color:#5be3a1}.arrange-axis.axis-z{color:#6aa6ff}.row-actions.wrap{flex-wrap:wrap}.row-actions.wrap .btn{flex:40%}.vec3.dim-yz .num-field:nth-child(n+2){opacity:.4}.v-label.snap{border-color:var(--warn);color:var(--warn);pointer-events:none;transform:translate(-50%,-190%)}.rotate-by{flex-wrap:wrap;align-items:center;gap:4px;width:100%;display:flex}.rotate-by .segmented{flex:100%}.rotate-by .num-field{flex:70px;min-width:56px}.rotate-by .icon-btn{flex:0 0 26px;width:26px;height:26px}.rotate-by .space-chip{font:600 10px var(--mono);color:var(--text-3);cursor:pointer;background:0 0;border:0;padding:0 4px}.rotate-by .space-chip:hover{color:var(--text)}.hint-text.entry-hint{margin:0;padding:2px 0 0;font-size:11px;line-height:1.35}.rotate-by .btn{min-width:26px;height:26px;padding:0 9px}.viewbar .opt-btn{width:auto;min-width:34px;height:30px;font:600 11px var(--mono);color:var(--text-2);padding:0 8px}.viewbar .opt-btn.on{color:var(--accent)}.ed-pf-actions{flex-wrap:wrap;gap:6px;padding:4px 10px 6px;display:flex}.ed-pf-tagrow{flex-wrap:wrap;gap:4px;padding:0 10px 4px;display:flex}.ed-pf-tagrow:empty{display:none}.ed-pf-chip{border:1px solid var(--border);background:var(--panel-2);color:var(--text-2);border-radius:999px;padding:2px 8px;font-size:11px}.ed-pf-chip:hover{border-color:var(--border-2);color:var(--text)}.ed-pf-chip.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent)}.ed-pf-grid{grid-template-columns:repeat(2,1fr);gap:8px;padding:4px 10px 12px;display:grid}.ed-pf-tile{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);min-width:0;position:relative}.ed-pf-tile:hover{border-color:var(--accent-line);background:var(--raised)}.ed-pf-main{text-align:left;width:100%;color:var(--text);border-radius:inherit;background:0 0;border:0;flex-direction:column;gap:5px;min-width:0;padding:6px 6px 8px;display:flex}.ed-pf-thumb{aspect-ratio:1;border-radius:var(--radius-s);width:100%;color:var(--text-3);background:#10151d;justify-content:center;align-items:center;display:flex;overflow:hidden}.ed-pf-thumb img{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.ed-pf-thumb .icon{width:28px;height:28px}.ed-pf-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12.5px;font-weight:600;overflow:hidden}.ed-pf-tags{flex-wrap:wrap;gap:3px;min-height:0;display:flex}.ed-pf-tags:empty{display:none}.ed-pf-badge{opacity:.8}.ed-pf-more{border:1px solid var(--border);opacity:0;background:#10151dc7;border-radius:6px;width:22px;height:22px;line-height:1;transition:opacity .12s;position:absolute;top:8px;right:8px}.ed-pf-tile:hover .ed-pf-more,.ed-pf-more:focus-visible{opacity:1}.ed-pf-empty{padding:24px 14px}.ed-pf-label{color:var(--text-2);margin:10px 0 4px;font-size:11.5px;display:block}.ed-pf-row{align-items:center;gap:10px;margin:8px 0;display:flex}.ed-pf-rowlabel{width:96px;color:var(--text-2);flex:none;font-size:12px}.ed-pf-pair{flex:1;align-items:center;gap:8px;display:flex}.ed-pf-range{flex:1;min-width:0}.ed-pf-num{flex:none;width:84px}.ed-pf-select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-s);min-width:0;padding:5px 7px}.ed-pf-color{border:1px solid var(--border);background:0 0;border-radius:6px;flex:none;width:34px;height:26px;padding:0}.ed-pf-error{color:var(--danger);margin:8px 0 0;font-size:12px}.ed-pf-error:empty{display:none}.ed-pf-head{justify-content:space-between;align-items:flex-end;gap:10px;margin:18px 0 6px;display:flex}.ed-pf-head h4{margin:0 0 2px;font-size:13px}.ed-pf-head p{max-width:440px;margin:0}.ed-pf-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);flex-direction:column;gap:6px;margin:6px 0;padding:8px;display:flex}.ed-pf-line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ed-pf-line>input[type=text]{flex:1;width:auto;min-width:120px}.ed-pf-bind{flex-wrap:wrap;align-items:center;gap:6px;padding-left:8px;display:flex}.ed-pf-checks{flex-direction:column;gap:4px;max-height:280px;display:flex;overflow:auto}.ed-pf-check{align-items:center;gap:8px;font-size:12.5px;display:flex}.ed-path-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ed-path-actions .num-input{width:64px}.ed-array-panel{flex-direction:column;gap:10px;padding:12px;display:flex}.ed-array-info{color:var(--text-2);margin:0;font-size:12px}.ed-array-status{min-height:1.4em;color:var(--text-2);margin:0;font-size:12px}.ed-array-status.warn{color:var(--warn)}.ed-array-form{flex-direction:column;gap:8px;display:flex}.ed-array-tabs{align-self:stretch}.ed-array-tabs .seg-btn{flex:1;justify-content:center}.ed-array-fields{flex-direction:column;gap:4px;display:flex}.ed-array-buttons{flex-wrap:wrap;gap:8px;display:flex}.ed-array-buttons .btn{flex:auto;justify-content:center}.ed-mirror-help{color:var(--text-2);margin:0 0 10px;font-size:12px}.ed-mirror-presets{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ed-mirror-presets .btn{flex:none}.dock-region{position:relative}.dock-region.dock-empty{display:none}#app.dock-dragging .dock-region.dock-empty{border:1px dashed var(--accent-line);background:var(--accent-bg);justify-content:center;align-items:center;display:flex}.dock-empty-hint{color:var(--accent);pointer-events:none;text-align:center;justify-content:center;align-items:center;padding:6px;font-size:12px;display:none;position:absolute;inset:0}#app.dock-dragging .dock-region.dock-empty .dock-empty-hint{display:flex}#app.dock-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}#app.dock-dragging iframe{pointer-events:none}.dock-groups{flex:1;min-width:0;min-height:0;display:flex}.dock-groups.col{flex-direction:column}.dock-groups.row{flex-direction:row}.dock-group{background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.dock-group-body{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.dock-group.collapsed .dock-group-body{display:none}.dock-ghead{flex:none;align-items:flex-end;min-width:0;display:flex}.dock-ghead.dock-head,.dock .dock-ghead{align-items:center}.dock-tabs{gap:2px;min-width:0;display:flex;overflow:hidden}.dock-ghead .tab{cursor:grab;white-space:nowrap}.dock-ghead .tab:active{cursor:grabbing}.dock-ghead .tab-toolbar{align-self:center}.dock-gbtns{opacity:.55;flex:none;align-items:center;gap:1px;margin-left:auto;padding:0 2px 4px 4px;transition:opacity .12s;display:flex}.dock .dock-gbtns{padding-bottom:0}.dock-ghead:hover .dock-gbtns,.dock-gbtns:focus-within{opacity:1}.dock-gbtn{width:22px;height:22px;color:var(--text-2);background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;padding:0;display:inline-flex}.dock-gbtn:hover{background:var(--hover);color:var(--text)}.dock-glyph{width:13px;height:13px}.dock-float-head{background:var(--panel-2);cursor:move;border-radius:9px 9px 0 0;padding:6px 6px 0}.dock-float-head .tab{cursor:grab}.dock-rsplit{z-index:6;touch-action:none;background:0 0;transition:background .12s;position:absolute}.dock-rsplit:hover,.dock-rsplit:focus-visible,.dock-rsplit:active{background:var(--accent-line);outline:none}.dock-rsplit.left{cursor:ew-resize;width:6px;top:0;bottom:0;right:-3px}.dock-rsplit.right{cursor:ew-resize;width:6px;top:0;bottom:0;left:-3px}.dock-rsplit.bottom{cursor:ns-resize;height:6px;top:-3px;left:0;right:0}.dock-gsplit{background:var(--border);touch-action:none;z-index:2;flex:none;transition:background .12s;position:relative}.dock-gsplit:after{content:"";position:absolute;inset:-3px}.dock-gsplit:hover{background:var(--accent-line)}.dock-gsplit.h{cursor:ns-resize;height:1px}.dock-gsplit.v{cursor:ew-resize;width:1px}.dock-float-layer{z-index:30;pointer-events:none;position:fixed;inset:0}.dock-group.dock-floating{pointer-events:auto;border:1px solid var(--border-2);box-shadow:var(--shadow), 0 0 0 1px #0006;border-radius:10px;min-width:220px;position:absolute;overflow:hidden}.dock-resize{z-index:3;touch-action:none;position:absolute}.dock-resize.n,.dock-resize.s{cursor:ns-resize;height:5px;left:10px;right:10px}.dock-resize.e,.dock-resize.w{cursor:ew-resize;width:5px;top:10px;bottom:10px}.dock-resize.n{top:0}.dock-resize.s{bottom:0}.dock-resize.e{right:0}.dock-resize.w{left:0}.dock-resize.ne,.dock-resize.nw,.dock-resize.se,.dock-resize.sw{width:12px;height:12px}.dock-resize.ne{cursor:nesw-resize;top:0;right:0}.dock-resize.sw{cursor:nesw-resize;bottom:0;left:0}.dock-resize.nw{cursor:nwse-resize;top:0;left:0}.dock-resize.se{cursor:nwse-resize;bottom:0;right:0}.dock-group.maximised{box-shadow:none;border-radius:0;z-index:60!important;flex:none!important;width:auto!important;height:auto!important;position:fixed!important;inset:48px 0 26px!important}.dock-group.maximised .dock-resize{display:none}.dock-group.maximised .dock-ghead{cursor:default}.dock-drop{z-index:200;pointer-events:none;background:var(--accent-bg);border:2px solid var(--accent-line);border-radius:6px;transition:left 70ms,top 70ms,width 70ms,height 70ms;display:none;position:fixed}.dock-drop.show{display:block}.dock-ghost{z-index:210;pointer-events:none;background:var(--raised);border:1px solid var(--accent-line);box-shadow:var(--shadow);border-radius:7px;padding:5px 11px;font-size:12.5px;font-weight:550;position:fixed}.workspace>.panel.left{grid-area:1/1}.workspace>.stage-col{grid-area:1/2}.workspace>.panel.right{grid-area:1/3}.panel.left>.dock-groups>.dock-group>.dock-ghead{position:relative}.panel.left>.dock-groups>.dock-group>.dock-ghead .dock-gbtns{opacity:0;background:linear-gradient(90deg, transparent, var(--panel) 10px);padding:0 0 0 10px;position:absolute;top:4px;right:4px}.panel.left>.dock-groups>.dock-group>.dock-ghead:hover .dock-gbtns,.panel.left .dock-gbtns:focus-within{opacity:1}.num-unit.unit-toggle{font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;margin-right:3px;padding:1px 5px;font-size:11px}.num-unit.unit-toggle:hover{color:var(--accent);background:var(--accent-bg)}.vec3.has-unit{align-items:center}.vec3>.vec-unit{text-align:center;flex:none;min-width:22px;padding-right:0}.num-input.invalid{color:var(--danger);box-shadow:0 0 0 1px var(--danger) inset;border-radius:var(--radius-s);animation:.25s ui-a-shake}@keyframes ui-a-shake{25%{transform:translate(-2px)}75%{transform:translate(2px)}}.row-label.ui-a-scrub{cursor:ew-resize;-webkit-user-select:none;user-select:none}.row-label.ui-a-scrub:hover{color:var(--text)}.row-label.has-reset{align-items:center;gap:4px;display:flex}.ui-a-reset{width:16px;height:16px;color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-a-reset:hover{background:var(--accent-bg)}.ui-a-reset .icon{width:12px;height:12px}.ui-a-tools{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:8px 12px;display:flex}.ui-a-tools-row{align-items:center;gap:6px;min-width:0;display:flex}.ui-a-search-wrap{flex:1;min-width:0;position:relative}.ui-a-search{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);width:100%;height:26px;color:var(--text);font:12px var(--font);outline:none;padding:0 24px 0 26px}.ui-a-search:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-bg)}.ui-a-search-icon{width:12px;height:12px;color:var(--text-3);pointer-events:none;position:absolute;top:7px;left:8px}.ui-a-clear{width:22px;height:22px;display:none;position:absolute;top:1px;right:2px}.ui-a-search:not(:placeholder-shown)~.ui-a-clear{display:inline-flex}.ui-a-hide{display:none!important}.ui-a-filtering .hint-text{display:none}.ui-a-filtering>.section>.section-body{display:block}.ui-a-props-wrap{flex-direction:column;gap:6px;display:flex}.ui-a-props{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);flex-direction:column;gap:6px;padding:8px;display:flex}.ui-a-props[hidden]{display:none}.ui-a-props .hint-text{margin:0}.ui-a-groups{grid-template-columns:1fr 1fr;gap:4px 8px;display:grid}.ui-a-group{color:var(--text-2);cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.ui-a-group input{accent-color:var(--accent);margin:0}.ui-a-save{gap:6px;display:flex}.ui-a-preset-name{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-s);min-width:0;height:26px;color:var(--text);font:12px var(--font);outline:none;flex:1;padding:0 8px}.ui-a-preset-name:focus{border-color:var(--accent-line)}.ui-a-preset-list{flex-direction:column;gap:3px;max-height:160px;display:flex;overflow-y:auto}.ui-a-preset-row{align-items:center;gap:4px;display:flex}.ui-a-preset{background:var(--raised);border:1px solid var(--border);border-radius:var(--radius-s);min-width:0;color:var(--text);text-align:left;cursor:pointer;flex-direction:column;flex:1;align-items:flex-start;gap:1px;padding:5px 8px;display:flex}.ui-a-preset:hover{background:var(--hover);border-color:var(--accent-line)}.ui-a-preset small{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10.5px;overflow:hidden}.ui-a-calc{border-top:1px solid var(--border);padding:6px 0 10px}.ui-a-calc:first-child{border-top:0}.ui-a-calc-title{font:600 12px var(--font);color:var(--text);margin-bottom:2px}.ui-a-calc .hint-text{margin:2px 0 6px}.ui-a-calc-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.ui-a-out{text-align:right;min-width:0;color:var(--accent);font:12px var(--mono);font-variant-numeric:tabular-nums;flex:1;display:block}.ui-a-note{margin-top:4px}.ui-a-readout{padding:6px 12px 12px}.ui-a-readout-title{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:4px;padding:6px 0 8px;display:flex}.ui-a-readout-title b{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.ui-a-readout .row{grid-template-columns:112px minmax(0,1fr);min-height:26px}.ui-a-readout .row-control{justify-content:flex-end}.ui-a-readout .row.stack{grid-template-columns:1fr;gap:0;min-height:0;padding:3px 0 4px}.ui-a-readout .row-label{font-size:12px}.ui-a-readout .row.stack .row-control{justify-content:space-between}.ui-a-readout .row.stack .ui-a-readout-value{flex:1}.ui-a-readout-title .icon-btn.on{color:var(--accent);background:var(--accent-bg)}.ui-a-readout-value{font:12px var(--mono);font-variant-numeric:tabular-nums;color:var(--text);text-align:right;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ui-a-readout-sub{color:var(--text-2);font:650 11px var(--font);letter-spacing:.07em;text-transform:uppercase;margin:12px 0 4px}.ui-a-contacts .hint-text{margin:2px 0 6px}.ui-a-contact{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;gap:0 8px;padding:3px 0;font-size:12px;display:grid}.ui-a-contact b{white-space:nowrap;text-overflow:ellipsis;font-weight:550;overflow:hidden}.ui-a-contact span{font:11.5px var(--mono);color:var(--text-2);text-align:right}.ui-a-contact small{color:var(--text-3);grid-column:1/-1;font-size:10.5px}.btn.small.on{color:var(--accent);border-color:var(--accent-line);background:var(--accent-bg)}.panel-body.o-panel{flex-direction:column;display:flex;overflow:hidden}.o-panel .o-toolbar{flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:6px 8px 4px;display:flex}.o-panel .o-toolbar input{flex:100%;min-width:0}.o-sort{flex:90px;min-width:0}.o-filter-btn{border:1px solid var(--line);background:var(--raised);height:26px;color:var(--text-2);cursor:pointer;font:inherit;border-radius:6px;flex:none;align-items:center;gap:4px;padding:0 8px;font-size:12px;display:inline-flex}.o-filter-btn .icon{width:12px;height:12px}.o-filter-btn:hover,.o-filter-btn.on{color:var(--text);border-color:var(--accent-line)}.o-filters{flex-wrap:wrap;flex:none;gap:4px;padding:0 8px 6px;display:none}.o-filters.open{display:flex}.o-filters select{flex:88px;min-width:0;font-size:11.5px}.o-scroll{outline:none;flex:1;min-height:0;padding:0 6px;position:relative;overflow:hidden auto}.o-scroll:focus-visible{box-shadow:inset 0 0 0 1px var(--accent-line)}.o-spacer{width:100%;position:relative}.o-spacer>.o-item,.o-spacer>.o-group{box-sizing:border-box;position:absolute;top:0;left:0;right:0}.o-spacer>.o-group{align-items:flex-end;padding-top:0;padding-bottom:4px}.o-spacer>.o-item{padding-right:4px}.o-empty{flex:none}.o-footer{color:var(--text-3);border-top:1px solid var(--line);flex:none;padding:4px 10px;font-size:11px}.o-item .o-thumb{background:var(--raised);object-fit:contain;border-radius:5px;flex:none;width:22px;height:22px}.o-item .o-ctag,.o-tagchip .o-ctag{cursor:pointer;border-radius:50%;flex:none;width:8px;height:8px;box-shadow:0 0 0 1px #ffffff40}.o-chips{flex:none;gap:3px;max-width:40%;display:inline-flex;overflow:hidden}.o-chip{background:var(--raised);color:var(--text-3);border:1px solid var(--line);white-space:nowrap;cursor:pointer;text-overflow:ellipsis;border-radius:7px;max-width:70px;padding:0 5px;font-size:10px;line-height:14px;overflow:hidden}.o-chip:hover{color:var(--text);border-color:var(--accent-line)}.o-chip.more{cursor:default}.o-tool.o-solo{font:700 10px var(--font);width:20px}.o-item.is-solo .o-name{color:var(--accent)}.o-item .o-tools:has(.o-solo.active){opacity:1}.o-item.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.o-item.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}.o-item.drop-inside{background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent)}.o-sets,.o-tags{flex-wrap:wrap;flex:none;gap:4px;max-height:62px;padding:0 8px 6px;display:flex;overflow-y:auto}.o-set,.o-tagchip,.o-set-add{border:1px solid var(--line);background:var(--raised);height:22px;color:var(--text-2);font:inherit;cursor:pointer;border-radius:11px;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;display:inline-flex}.o-set:hover,.o-tagchip:hover,.o-set-add:hover:not(:disabled){color:var(--text);border-color:var(--accent-line)}.o-set-add{border-style:dashed;padding:0 8px 0 6px}.o-set-add:disabled{opacity:.4;cursor:default}.o-set-add .icon{width:11px;height:11px}.o-set-n{color:var(--text-3);font-size:10px}.o-set-name{text-overflow:ellipsis;white-space:nowrap;max-width:110px;overflow:hidden}#app.ui-simple [data-adv]{display:none!important}.quickbar{z-index:6;border-radius:12px;align-items:center;gap:8px;max-width:calc(100% - 24px);padding:5px 8px;display:flex;bottom:52px;left:50%;transform:translate(-50%)}.quickbar .qb-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;padding:0 4px;font-weight:600;overflow:hidden}.quickbar .qb-field{flex:none;width:112px}.quickbar .qb-field.qb-mat{width:124px}.quickbar .qb-sep{background:var(--border-2);flex:none;width:1px;height:20px}.quickbar.qb-sim .qb-field,.quickbar.qb-sim .segmented{opacity:.55;pointer-events:none}.quickbar .segmented{flex:none}.quickbar .seg-btn{padding:3px 7px}.quickbar .num-field,.quickbar .select{height:28px}@media (max-width:1180px){.quickbar .qb-mat,.quickbar .segmented{display:none}}.mode-suggest{z-index:8;border-radius:12px;align-items:center;gap:10px;padding:8px 10px 8px 14px;display:flex;top:14px;left:50%;transform:translate(-50%)}.mode-suggest .ms-text{color:var(--text-2);font-size:12.5px}.mode-suggest b{color:var(--text)}[data-theme=light]{--bg:#f3f5f9;--bg-deep:#e6eaf1;--panel:#fff;--panel-2:#f6f8fb;--raised:#eceff5;--hover:#e1e6ef;--border:#d8dee9;--border-2:#c0c9d8;--text:#182030;--text-2:#475268;--text-3:#66738a;--accent:#0a769b;--accent-2:#0d8a7a;--accent-bg:#0a769b1f;--accent-line:#0a769b80;--accent-ink:#fff;--run:#087a50;--run-2:#066840;--run-ink:#fff;--run-bg:#087a501f;--pause:#b45f06;--pause-2:#9a5005;--pause-ink:#fff;--pause-bg:#b45f061f;--danger:#c8283f;--warn:#a85a00;--warn-bg:#a85a001a;--axis-x:#d0334a;--axis-y:#12875a;--axis-z:#2160d6;--shadow:0 8px 26px #1e293b29, 0 1px 0 #ffffffe6 inset;--shadow-modal:0 30px 80px #1e293b4d;--glass:#ffffffdb;--scrim:#1e293b61;--stage-bg:#dde3ed;--topbar-a:#fff;--topbar-b:#f1f4f9;--statusbar-bg:#e9edf4;--switch-thumb:#fff;--swatch-line:#00000038;--label-bg:#ffffffeb;--canvas-grid:#1820301a;--canvas-grid-2:#1820300f;--canvas-zero:#18203066;--canvas-text:#55627a;--glyph-bg:#101620eb;--glyph-line:#ffffffd9;--chart-total:#182030;--chart-1:#0a769b;--chart-2:#7040d8;--chart-3:#b45f06;--chart-4:#c42a64;--chart-5:#12875a;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=high-contrast]{--bg:#000;--bg-deep:#000;--panel:#000;--panel-2:#0d0d0d;--raised:#1a1a1a;--hover:#2b2b2b;--border:#8f8f8f;--border-2:#fff;--text:#fff;--text-2:#f0f0f0;--text-3:#cfcfcf;--accent:#ffd400;--accent-2:#00e5ff;--accent-bg:#ffd4002e;--accent-line:#ffd400;--accent-ink:#000;--run:#3dff8a;--run-2:#00d65f;--run-ink:#000;--run-bg:#3dff8a29;--pause:#ffd400;--pause-2:#e6bd00;--pause-ink:#000;--pause-bg:#ffd40029;--danger:#ff7a7a;--warn:#ffb000;--warn-bg:#ffb00029;--axis-x:#ff7a8a;--axis-y:#4dffa0;--axis-z:#7ab4ff;--shadow:0 0 0 1px #fff;--shadow-modal:0 0 0 2px #fff;--glass:#000000eb;--scrim:#000000c7;--stage-bg:#000;--topbar-a:#000;--topbar-b:#000;--statusbar-bg:#000;--switch-thumb:#fff;--swatch-line:#fff;--label-bg:#000000f2;--canvas-grid:#ffffff59;--canvas-grid-2:#fff3;--canvas-zero:#fff;--canvas-text:#fff;--glyph-bg:#000000f2;--glyph-line:#fff;--chart-total:#fff;--chart-1:#00e5ff;--chart-2:#d0a8ff;--chart-3:#ffd400;--chart-4:#ff7ab0;--chart-5:#4dffa0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=midnight]{--bg:#070b1a;--bg-deep:#050816;--panel:#0d1330;--panel-2:#111a3d;--raised:#172249;--hover:#1f2d5e;--border:#1b2650;--border-2:#2f3f7d;--text:#e1e8ff;--text-2:#a9b6e6;--text-3:#7482b8;--accent:#7aa2ff;--accent-2:#a78bfa;--accent-bg:#7aa2ff24;--accent-line:#7aa2ff80;--accent-ink:#050816;--run:#4ade9f;--run-2:#22b97c;--run-ink:#03241a;--run-bg:#4ade9f1f;--pause:#fbbf24;--pause-2:#e29f0a;--pause-ink:#2a1c00;--pause-bg:#fbbf241f;--danger:#ff6b8a;--warn:#ffb347;--warn-bg:#ffb3471f;--axis-x:#ff6b8a;--axis-y:#5be3a1;--axis-z:#6aa5ff;--shadow:0 8px 30px #00000899, 0 1px 0 #a0b4ff0f inset;--shadow-modal:0 30px 90px #000008bf;--glass:#0a0f28cc;--scrim:#02040ea8;--stage-bg:#060919;--topbar-a:#121a3c;--topbar-b:#0d1330;--statusbar-bg:#090d24;--switch-thumb:#c9d4ff;--swatch-line:#c8d4ff47;--label-bg:#050816e6;--canvas-grid:#a0b4ff1a;--canvas-grid-2:#a0b4ff0f;--canvas-zero:#a0b4ff4d;--canvas-text:#8e9bd0;--glyph-bg:#070b1aeb;--glyph-line:#c8d4ffd9;--chart-total:#eef1ff;--chart-1:#6ec8ff;--chart-2:#b69cff;--chart-3:#ffb347;--chart-4:#ff7aa8;--chart-5:#5be3a1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=solarized]{--bg:#002b36;--bg-deep:#00212b;--panel:#073642;--panel-2:#0a3f4c;--raised:#0f4857;--hover:#155364;--border:#12505e;--border-2:#286879;--text:#fdf6e3;--text-2:#bcc7c4;--text-3:#93a1a1;--accent:#2aa198;--accent-2:#6c9ef0;--accent-bg:#2aa1982e;--accent-line:#2aa19899;--accent-ink:#00212b;--run:#9db300;--run-2:#859900;--run-ink:#00212b;--run-bg:#8599002e;--pause:#d6a100;--pause-2:#b58900;--pause-ink:#00212b;--pause-bg:#b589002e;--danger:#f0524f;--warn:#e0642b;--warn-bg:#cb4b1629;--axis-x:#f0524f;--axis-y:#a4b800;--axis-z:#4aa3e8;--shadow:0 8px 30px #0010168c, 0 1px 0 #fdf6e30d inset;--shadow-modal:0 30px 90px #001016b3;--glass:#002b36d1;--scrim:#0010169e;--stage-bg:#00252f;--topbar-a:#0b4150;--topbar-b:#073642;--statusbar-bg:#00252f;--switch-thumb:#eee8d5;--swatch-line:#fdf6e347;--label-bg:#00212beb;--canvas-grid:#93a1a12e;--canvas-grid-2:#93a1a11a;--canvas-zero:#eee8d580;--canvas-text:#a4b3b3;--glyph-bg:#00212beb;--glyph-line:#fdf6e3d9;--chart-total:#fdf6e3;--chart-1:#2fb8ad;--chart-2:#8f94e0;--chart-3:#d6a100;--chart-4:#e0689a;--chart-5:#a4b800;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=blueprint]{--bg:#0b3472;--bg-deep:#082a5c;--panel:#0e3d85;--panel-2:#114690;--raised:#1552a3;--hover:#1a60b8;--border:#2a68b8;--border-2:#5a97dc;--text:#f2f8ff;--text-2:#cfe3ff;--text-3:#a3c4f2;--accent:#fff;--accent-2:#9fe3ff;--accent-bg:#ffffff29;--accent-line:#ffffffb3;--accent-ink:#082a5c;--run:#7dffc6;--run-2:#4fe8a6;--run-ink:#04301f;--run-bg:#7dffc629;--pause:#ffe27a;--pause-2:#f5c93a;--pause-ink:#3a2a00;--pause-bg:#ffe27a29;--danger:#ff9aa8;--warn:#ffc880;--warn-bg:#ffc88029;--axis-x:#ff9aa8;--axis-y:#8dffc4;--axis-z:#9fd0ff;--shadow:0 8px 30px #02102c8c, 0 1px 0 #ffffff14 inset;--shadow-modal:0 30px 90px #02102cb3;--glass:#082a5cd6;--scrim:#02102c9e;--stage-bg:#082a5c;--topbar-a:#0f4190;--topbar-b:#0b3472;--statusbar-bg:#082a5c;--switch-thumb:#e6f0ff;--swatch-line:#fff6;--label-bg:#082a5ceb;--canvas-grid:#fff3;--canvas-grid-2:#ffffff1a;--canvas-zero:#fff9;--canvas-text:#cfe3ff;--glyph-bg:#082a5cf0;--glyph-line:#ffffffe6;--chart-total:#fff;--chart-1:#9fe3ff;--chart-2:#d6c4ff;--chart-3:#ffe27a;--chart-4:#ffa8cc;--chart-5:#8dffc4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.appearance-h{letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);margin:14px 0 8px;font-size:12px;font-weight:600}.appearance-h:first-child{margin-top:0}.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.theme-card{border:2px solid var(--border);background:var(--panel-2);color:var(--text);text-align:left;border-radius:10px;flex-direction:column;gap:6px;padding:6px;display:flex}.theme-card:hover{border-color:var(--border-2)}.theme-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.theme-card:focus-visible,.accent-swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.theme-name{padding:0 2px 2px;font-weight:600}.theme-preview{background:var(--bg);border:1px solid var(--border-2);border-radius:6px;height:62px;position:relative;overflow:hidden}.theme-preview i{display:block;position:absolute}.tp-top{background:linear-gradient(180deg, var(--topbar-a), var(--topbar-b));border-bottom:1px solid var(--border);height:12px;top:0;left:0;right:0}.tp-side{background:var(--panel);border-right:1px solid var(--border);width:22%;top:12px;bottom:0;left:0}.tp-main{background:var(--stage-bg);inset:12px 0 0 22%}.tp-line{background:var(--text-2);border-radius:3px;width:55%;height:5px;position:absolute;top:10px;left:10px}.tp-line.short{background:var(--text-3);width:30%;top:20px}.tp-chip{background:var(--accent);border-radius:4px;width:26px;height:8px;position:absolute;bottom:7px;left:10px}.accent-controls{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.accent-row{gap:6px;display:flex}.accent-swatch{border:2px solid var(--swatch-line);border-radius:50%;width:24px;height:24px;padding:0}.accent-swatch:hover{transform:scale(1.1)}.accent-swatch.on{border-color:var(--text);box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--text)}@media (max-width:520px){.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.material-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.material-preview{background:var(--bg-deep);border:1px solid var(--border);border-radius:50%;flex:none;width:72px;height:72px}.material-head-text{min-width:0}.material-current{color:var(--text);font-weight:600}.material-list{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--bg-deep);max-height:230px;margin:6px 0 10px;padding:2px;overflow:auto}.material-group{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim,var(--text));opacity:.7;padding:6px 6px 2px;font-size:10px}.material-swatches{flex-wrap:wrap;gap:2px;display:flex}.material-swatch{color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:3px 7px 3px 4px;font-size:11px;display:inline-flex}.material-swatch:hover{background:var(--hover)}.material-swatch.on{border-color:var(--accent);background:var(--accent-bg)}.material-dot{border-radius:50%;flex:none;width:14px;height:14px;box-shadow:inset 0 0 0 1px #00000059,inset 2px 2px 3px #ffffff59}.material-dot.metal{box-shadow:inset 0 0 0 1px #00000059,inset 3px 3px 4px #ffffffbf}.material-dot.clear{opacity:.65}.row-actions{flex-wrap:wrap;align-items:center;gap:6px;padding:2px 0;display:flex}.material-search{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-s);background:var(--bg-deep);width:100%;color:var(--text);font:inherit;padding:6px 8px}.material-search:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tm-panel{flex-direction:column;flex:1;gap:4px;min-height:0;padding:6px 12px;display:flex;position:relative}.tm-panel.idle .tm-scrub{opacity:.45}.tm-transport{flex-wrap:wrap;align-items:center;gap:14px;min-height:30px;display:flex}.tm-group{align-items:center;gap:3px;display:flex}.tm-group.tm-right{margin-left:auto}.tm-lbl{color:var(--text-3);font:600 10px var(--font);letter-spacing:.06em;text-transform:uppercase;margin-right:4px}.tm-btn{border-radius:var(--radius-s);place-items:center;width:28px;height:28px;display:inline-grid}.tm-btn:disabled{opacity:.35;cursor:default}.tm-btn.on,.tm-btn.tm-play.on{background:var(--accent-bg);color:var(--accent)}.tm-btn.tm-rewind.on{color:var(--warn);background:#ffb3472e}.tm-play{width:34px}.tm-counter{font:12px var(--mono);color:var(--text-2);white-space:nowrap;align-items:baseline;gap:2px;display:flex}.tm-counter b{color:var(--text);font-weight:600}.tm-time{color:var(--text-3)}.tm-badge{font:600 10px var(--font);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--border-2);color:var(--text-2);border-radius:999px;margin-left:8px;padding:0 7px}.tm-badge.past{color:var(--pause);border-color:#fbbf2480}.tm-badge.rew{color:var(--warn);border-color:#ffb34780}.tm-badge.rep{color:var(--accent);border-color:var(--accent-line)}.tm-badge.rec{color:var(--danger);border-color:#ff5d738c}.tm-chip{background:var(--panel-2);border:1px solid var(--border);min-width:24px;color:var(--text-3);font:600 11px var(--font);border-radius:999px;padding:1px 9px}.tm-chip:hover:not(:disabled){color:var(--text);border-color:var(--border-2)}.tm-chip:disabled{opacity:.4;cursor:default}.tm-scrub{flex:1;min-height:56px;max-height:96px;position:relative}.tm-actions [hidden],.tm-actions .btn[hidden]{display:none!important}.tm-canvas{border-radius:var(--radius-s);background:var(--bg-deep);border:1px solid var(--border);cursor:ew-resize;touch-action:none;width:100%;height:100%;display:block}.tm-canvas:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}.tm-tip{background:var(--raised);border:1px solid var(--border-2);font:11px var(--mono);color:var(--text);white-space:nowrap;pointer-events:none;z-index:2;border-radius:5px;padding:1px 8px;position:absolute;top:3px;transform:translate(-50%)}.tm-foot{align-items:center;gap:12px;min-height:22px;display:flex}.tm-bookmarks{flex-wrap:wrap;flex:1;gap:5px;min-width:0;max-height:44px;display:flex;overflow:auto}.tm-bm{background:var(--accent-bg);border:1px solid var(--accent-line);cursor:pointer;border-radius:999px;align-items:center;gap:6px;height:20px;padding:0 4px 0 9px;font-size:11.5px;display:inline-flex}.tm-bm-t{color:var(--text-3);font-family:var(--mono);font-size:10.5px}.tm-bm-x{width:16px;height:16px}.tm-bm-x .icon{width:10px;height:10px}.tm-info{color:var(--text-3);font:11px var(--mono);white-space:nowrap}.tm-empty{color:var(--text-3);pointer-events:none;text-align:center;place-items:center;padding:0 24px;font-size:12.5px;display:grid;position:absolute;inset:0}.tm-empty[hidden]{display:none}.tm-replay,.tm-ghosts{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;min-height:0;display:grid;overflow:auto}.tm-ghosts{grid-template-columns:minmax(280px,40%) minmax(0,1fr)}.tm-col{border-left:1px solid var(--border);flex-direction:column;gap:6px;min-width:0;min-height:0;padding:8px 12px;display:flex}.tm-col:first-child{border-left:0}.tm-grow{min-height:120px}.tm-h{color:var(--text-3);font:650 10.5px var(--font);letter-spacing:.08em;text-transform:uppercase}.tm-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tm-status{color:var(--text-2);font-size:12px;line-height:1.5}.tm-verify.ok,.tm-det.ok{color:var(--run)}.tm-verify.bad,.tm-det.bad{color:var(--danger)}.tm-det{font-size:12.5px;line-height:1.45}.tm-select{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-s);color:var(--text);height:26px;padding:2px 6px}.tm-inline{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.tm-runs{flex-direction:column;flex:1;gap:3px;min-height:0;display:flex;overflow:auto}.tm-run{border-radius:6px;align-items:center;gap:6px;padding:2px 4px;font-size:12px;display:flex}.tm-run:hover{background:var(--hover)}.tm-run-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:560;overflow:hidden}.tm-run-d{color:var(--text-3);font:11px var(--mono);white-space:nowrap}.tm-slot{border:1px solid var(--border-2);background:var(--panel-2);width:22px;height:22px;color:var(--text-2);font:700 11px var(--font);border-radius:5px}.tm-empty-s{color:var(--text-3);padding:6px 2px;font-size:12px;line-height:1.5}.tm-chart{border-radius:var(--radius-s);background:var(--bg-deep);border:1px solid var(--border);flex:1;width:100%;min-height:90px}.input-modal .modal-body{flex-direction:column;min-height:0;padding:0;display:flex}.seg-tabs{border-bottom:1px solid var(--border);gap:4px;padding:10px 16px 0;display:flex}.seg-tabs .seg-btn{border-radius:6px 6px 0 0;padding:7px 14px}.input-settings{flex:1;min-height:0;padding:12px 16px 16px;overflow:auto}.kb-toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.kb-toolbar .plain{flex:1;min-width:140px}.kb-preset{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.kb-status{min-height:18px;color:var(--accent-2);align-items:center;gap:8px;margin:4px 0 6px;font-size:12px;display:flex}.kb-cat{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:14px 0 4px}.kb-row{border-radius:6px;align-items:center;gap:10px;padding:4px 6px;display:flex}.kb-row:hover{background:var(--hover)}.kb-row.custom .kb-label{color:var(--accent)}.kb-label{flex:1;min-width:0}.kb-label em{color:var(--text-3);font-size:11px;font-style:normal}.kb-slots{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.kb-slot{border:1px solid var(--border-2);background:var(--bg);min-height:26px;color:var(--text-2);border-radius:6px;align-items:center;gap:2px;padding:2px 8px;display:inline-flex}.kb-slot:hover{border-color:var(--accent-line)}.kb-slot.add{color:var(--text-3);border-style:dashed}.kb-slot.listening{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.gp-status{background:var(--bg);border:1px solid var(--border);color:var(--text-2);border-radius:8px;padding:8px 10px}.gp-status.ok{color:var(--run);border-color:#34d39966}.gp-live{font:12px var(--mono);color:var(--text-2);white-space:pre-wrap;min-height:18px;margin:8px 0}.gp-opts{flex-direction:column;gap:6px;margin:6px 0 10px;display:flex}.gp-axes{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:10px;display:grid}.gp-axis{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.gp-axis-head{justify-content:space-between;display:flex}.gp-val{font:12px var(--mono);color:var(--accent)}.touch-tab{flex-direction:column;gap:8px;display:flex}.viewbar .opt-btn[data-tool=cameraMode]{width:auto;min-width:62px;padding:0 9px;font-size:11px}.cam-panel{flex-direction:column;gap:2px;padding-bottom:24px;display:flex}.cam-modes{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:6px;display:grid}.cam-mode{border:1px solid var(--border);background:var(--bg);color:var(--text-2);text-align:left;border-radius:8px;align-items:center;gap:7px;min-height:34px;padding:7px 9px;font-size:12px;display:flex}.cam-mode:hover{border-color:var(--border-2);color:var(--text)}.cam-mode.on{border-color:var(--accent-line);background:var(--accent-bg);color:var(--accent)}.cam-mode .icon{flex:none;width:16px;height:16px}.cam-subject{color:var(--text-2);justify-content:space-between;align-items:center;gap:8px;margin:6px 0;font-size:12px;display:flex}.cam-subject-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.cam-presets{flex-wrap:wrap;gap:4px;margin:4px 0 8px;display:flex}.cam-presets .btn.on{border-color:var(--accent-line);color:var(--accent);background:var(--accent-bg)}.cam-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.cam-bookmarks{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:8px;display:grid}.cam-card{border:1px solid var(--border);background:var(--bg);border-radius:9px;overflow:hidden}.cam-card:hover{border-color:var(--border-2)}.cam-card-open{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block;position:relative}.cam-thumb{aspect-ratio:16/10;object-fit:cover;background:#0a0d13;width:100%;display:block}.cam-thumb.empty{color:var(--text-3);justify-content:center;align-items:center;display:flex}.cam-slot{min-width:18px;height:18px;color:var(--accent);font:600 10.5px/18px var(--mono);text-align:center;background:#080a0fc7;border-radius:5px;padding:0 4px;position:absolute;top:5px;left:5px}.cam-card-bar{align-items:center;gap:1px;padding:2px 4px 2px 7px;display:flex}.cam-card-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-2);flex:1;font-size:11.5px;overflow:hidden}.cam-card-bar .icon-btn{width:24px;height:24px}.cam-card-bar .icon-btn .icon{width:13px;height:13px}.cam-shots{flex-direction:column;gap:6px;display:flex}.cam-shot-list{flex-direction:column;gap:2px;display:flex}.cam-shot-item{align-items:center;gap:2px;display:flex}.cam-shot-row{min-width:0;color:var(--text-2);text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;flex:1;align-items:center;gap:7px;padding:6px 8px;display:flex}.cam-shot-row:hover{background:var(--hover)}.cam-shot-row.on{border-color:var(--accent-line);background:var(--accent-bg);color:var(--accent)}.cam-shot-row span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cam-shot-detail{flex-direction:column;gap:4px;margin-top:6px;display:flex}.cam-transport{align-items:center;gap:8px;margin:6px 0 2px;display:flex}.cam-scrub{flex:1;min-width:60px}.cam-time{font:11px var(--mono);color:var(--text-2);white-space:nowrap}.cam-transport-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cam-key-head,.cam-key{grid-template-columns:18px 1fr 1fr 1fr 1.25fr 26px 26px;align-items:center;gap:4px;display:grid}.cam-key-head{font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);grid-template-columns:18px 1fr 1fr 1fr 1.25fr;margin-top:6px;padding-right:56px}.cam-key-n{font:600 10.5px var(--mono);color:var(--text-3)}.cam-key .num-input{width:100%;min-width:0}.cam-keys{flex-direction:column;gap:4px;display:flex}select.missing{border-color:var(--danger)}.cm-views{z-index:2;pointer-events:none;position:absolute;inset:0}.cm-view{background:#0a0d13;position:absolute;overflow:hidden}.cm-view.pane{border-left:0}.cm-view.pip{border:1px solid var(--border-2);box-shadow:var(--shadow);pointer-events:auto;border-radius:10px}.cm-view-canvas{object-fit:cover;width:100%;height:100%;display:block;transform:scaleY(-1)}.cm-view.empty .cm-view-canvas{opacity:.25}.cm-view.empty:after{content:"Select a body to look through";color:var(--text-2);text-align:center;justify-content:center;align-items:center;padding:12px;font-size:12.5px;display:flex;position:absolute;inset:0}.cm-view-bar{color:var(--text-2);background:linear-gradient(#080a0fb8,#0000);align-items:center;gap:6px;padding:4px 6px 4px 9px;font-size:11px;display:flex;position:absolute;top:0;left:0;right:0}.cm-view.pip .cm-view-bar{cursor:grab}.cm-view-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cm-view-close{width:22px;height:22px;color:var(--text);background:#080a0f99;border:0;border-radius:6px;font-size:15px;line-height:1}.cm-view-close:hover{background:var(--danger)}.cm-view-grip{cursor:nwse-resize;background:linear-gradient(135deg,#0000 55%,#dbe3ef8c 55% 62%,#0000 62% 72%,#dbe3ef8c 72% 79%,#0000 79%);width:18px;height:18px;position:absolute;bottom:0;right:0}.cm-split .viewport-host{border-right:0}.cam-pane-block{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;margin:6px 0;padding:8px 10px;display:flex}.cam-pane-block>b,.cam-pip-head b{font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.cam-pip-head{margin-top:10px}.cam-vec{gap:4px;display:flex}.cam-vec .num-field,.cam-vec .num-input{min-width:0}.cam-pane-editor{flex-direction:column;gap:2px;display:flex}.cm-minimap{z-index:3;box-shadow:var(--shadow);border-radius:10px;line-height:0;position:absolute;overflow:hidden}.cm-minimap-canvas{cursor:crosshair;touch-action:none;display:block}.m-nav,.m-scrim,.m-close{display:none}@media (max-width:900px){:root{--m-top:calc(48px + env(safe-area-inset-top,0px));--m-nav:calc(58px + env(safe-area-inset-bottom,0px));--m-sheet-w:min(86vw, 340px);--m-dock-h:min(52vh, 420px)}#app{grid-template-rows:var(--m-top) minmax(0, 1fr) var(--m-nav);min-width:0}#app .workspace,#app.no-left .workspace,#app.no-right .workspace,#app.no-left.no-right .workspace{grid-template-columns:minmax(0,1fr);min-width:0}#app .workspace>.stage-col{grid-area:1/1;min-width:0}.statusbar{display:none}.topbar{padding:env(safe-area-inset-top,0px) calc(8px + env(safe-area-inset-right,0px)) 0 calc(8px + env(safe-area-inset-left,0px));gap:6px;min-width:0;overflow:hidden}.topbar .brand{flex:none;order:0}.topbar .scene-name,.topbar .menubar,.topbar .mode-chip{display:none}.topbar .transport{box-shadow:none;background:0 0;border:0;flex:none;order:1;gap:6px;padding:0;position:static;left:auto;transform:none}.topbar .transport .timescale,.topbar .transport .sim-clock{display:none}.topbar .spacer{flex:1;order:2;min-width:0}.topbar .topbar-right{flex:none;order:3;gap:2px}.topbar .topbar-right>:not(.tb-history){display:none}.tbtn,.topbar .icon-btn{min-height:44px}.tbtn{min-width:44px}.tbtn.play,.tbtn.pause{min-width:0;padding:0 12px}.topbar .icon-btn{min-width:44px}.m-nav{background:var(--panel);border-top:1px solid var(--border);padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);z-index:60;grid-area:3/1;grid-template-columns:repeat(6,minmax(0,1fr));display:grid;position:relative}.m-nav-btn{min-width:44px;min-height:52px;color:var(--text-2);font:600 10.5px var(--font);letter-spacing:.02em;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;display:flex}.m-nav-btn .icon{width:21px;height:21px}.m-nav-btn.on{color:var(--accent);box-shadow:inset 0 2px 0 var(--accent);background:var(--accent-bg)}.m-nav-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.m-nav-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}#app .panel.left,#app .panel.right{top:var(--m-top);bottom:var(--m-nav);width:var(--m-sheet-w);z-index:50;max-width:none;box-shadow:var(--shadow);grid-area:auto;position:fixed}#app .panel.left{border-right:1px solid var(--border-2);animation:.18s ease-out m-from-left;left:0}#app .panel.right{border-left:1px solid var(--border-2);animation:.18s ease-out m-from-right;right:0}#app .dock{left:0;right:0;bottom:var(--m-nav);height:var(--m-dock-h);z-index:50;border-top:1px solid var(--border-2);box-shadow:var(--shadow);border-radius:14px 14px 0 0;animation:.18s ease-out m-from-bottom;position:fixed}#app .dock.collapsed,#app.no-left .panel.left,#app.no-right .panel.right{display:none}.dock-rsplit,.dock-gbtns,.dock-resize{display:none!important}.dock-tabs,.tabs{scrollbar-width:none;overflow-x:auto}.dock-tabs::-webkit-scrollbar{display:none}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;min-height:44px}.m-scrim{left:0;right:0;top:var(--m-top);bottom:var(--m-nav);z-index:45;background:#04070c94;position:fixed}#app.m-sheet .m-scrim{display:block}.m-close{z-index:55;background:var(--raised);border:1px solid var(--border-2);width:44px;height:44px;color:var(--text);box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;padding:0;position:fixed}.m-close .icon{width:18px;height:18px}#app.m-open-left .m-close{top:calc(var(--m-top) + 8px);left:calc(var(--m-sheet-w) + 8px);display:flex}#app.m-open-right .m-close{top:calc(var(--m-top) + 8px);right:calc(var(--m-sheet-w) + 8px);display:flex}#app.m-open-bottom .m-close{right:8px;bottom:calc(var(--m-nav) + var(--m-dock-h) + 8px);display:flex}@keyframes m-from-left{0%{transform:translate(-100%)}}@keyframes m-from-right{0%{transform:translate(100%)}}@keyframes m-from-bottom{0%{transform:translateY(100%)}}.stage .toolbox,.stage .viewbar{display:none}#app.m-tools .stage .toolbox{z-index:9;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:min(340px,100% - 16px);max-height:calc(100% - 16px);padding:6px;display:grid;top:8px;left:8px;overflow:auto}#app.m-tools .stage .toolbox hr{grid-column:1/-1;width:auto;margin:2px 4px}#app.m-tools .stage .toolbox .icon-btn{width:auto;height:44px;font:600 12.5px var(--font);color:var(--text);text-align:left;justify-content:flex-start;gap:10px;padding:0 10px;display:flex}#app.m-tools .stage .toolbox .icon-btn:not(.opt-btn):after{content:attr(data-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#app.m-tools .stage .toolbox .opt-btn{font:600 11.5px var(--mono);color:var(--text-2);justify-content:center}#app.m-tools .stage .toolbox .icon-btn.on{color:var(--accent)}#app.m-view .stage .viewbar{z-index:9;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 16px);display:flex;top:8px;left:8px;right:8px}#app.m-view .stage .viewbar .sep{display:none}.stage .quickbar,.stage .tool-options{justify-content:safe center;max-width:none;bottom:10px;left:8px;right:8px;overflow-x:auto;transform:none}.stage .quickbar>*,.stage .tool-options>*{flex:none}.stage .mode-suggest{flex-wrap:wrap;justify-content:center;max-width:none;left:8px;right:8px;transform:none}.menu{max-width:calc(100vw - 16px);max-height:calc(100dvh - var(--m-top) - var(--m-nav) - 8px)}.menu-item{min-height:44px}.toasts{bottom:calc(var(--m-nav) + 10px);max-width:calc(100vw - 16px)}.toast{max-width:calc(100vw - 16px)}.modal{max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px)!important}}@media (max-width:900px) and (max-height:520px){:root{--m-nav:calc(46px + env(safe-area-inset-bottom,0px));--m-dock-h:min(60vh, 420px)}.m-nav-btn{min-height:44px}.m-nav-label{display:none}.tc-zone{gap:6px}.stage .mode-suggest,.stage .hint-bar{display:none}}@media (min-width:640px) and (max-width:900px){.topbar .scene-name{flex:0 150px;width:150px;min-width:60px;display:block}.topbar .transport .sim-clock{display:block}}@media (max-width:900px) and (pointer:coarse){.icon-btn,.tbtn,.tab,.menu-btn,.menu-item,.seg-btn{min-height:44px}.icon-btn{min-width:44px}.btn{min-height:44px}.chip,.select,.num-field,.hex-input{min-height:36px}}@media (pointer:coarse){input,select,textarea{font-size:16px}}@media (max-width:900px){.dock .tab-toolbar{white-space:nowrap;flex-wrap:nowrap;min-width:0;overflow:hidden}.dock .tab-toolbar>*{text-overflow:ellipsis;flex:none;max-width:60vw;overflow:hidden}}.tc-overlay{z-index:7;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;--tc-s:1;--tc-o:.7;position:absolute;inset:0}.tc-overlay[hidden]{display:none}.tc-zone{bottom:calc(14px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:12px;display:flex;position:absolute}.tc-zone-left{left:calc(14px + env(safe-area-inset-left,0px));align-items:flex-start}.tc-zone-right{right:calc(14px + env(safe-area-inset-right,0px));align-items:flex-end}.tc-btns{grid-template-columns:repeat(2, max(44px, calc(54px * var(--tc-s))));gap:10px;display:grid}.tc-btn{pointer-events:auto;touch-action:none;width:max(44px, calc(54px * var(--tc-s)));height:max(44px, calc(54px * var(--tc-s)));color:var(--text);font:700 calc(14px * var(--tc-s)) var(--mono);opacity:var(--tc-o);-webkit-backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;background:#18202e9e;border:2px solid #ffffff47;border-radius:50%;padding:0}.tc-btn.pressed{opacity:1;background:var(--accent-bg);border-color:var(--accent);color:var(--accent);transform:scale(.94)}.tc-btn-LT,.tc-btn-RT,.tc-btn-LB,.tc-btn-RB,.tc-btn-Start,.tc-btn-Back{border-radius:14px}.tc-stick{pointer-events:auto;touch-action:none;width:calc(128px * var(--tc-s));height:calc(128px * var(--tc-s));opacity:var(--tc-o);-webkit-tap-highlight-color:transparent;background:radial-gradient(circle,#3ddcff1a,#18202e80 70%);border:2px solid #ffffff40;border-radius:50%;position:relative}.tc-stick.pressed{opacity:1;border-color:var(--accent-line)}.tc-thumb{width:calc(56px * var(--tc-s));height:calc(56px * var(--tc-s));margin:calc(-28px * var(--tc-s)) 0 0 calc(-28px * var(--tc-s));pointer-events:none;background:radial-gradient(circle at 35% 30%,#7be7ff,#1b8fb0);border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 2px 10px #00000080}.stage.has-touch-controls .hint-bar{top:64px;bottom:auto}.stage.has-touch-controls .tool-options{top:8px;bottom:auto}.stage.has-touch-controls .quickbar{display:none}@media (max-width:600px){.touch-tab .row{grid-template-columns:1fr;gap:4px;padding:4px 0 6px}.touch-tab .row-label{white-space:normal;color:var(--text-3);font-size:11.5px}}.touch-tab .cm-group{font:600 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:12px 0 4px}.touch-tab .cm-group:first-child{margin-top:0}.touch-tab .cm-actions{gap:8px;margin-top:10px;display:flex}.tc-choice{flex-wrap:wrap;gap:6px;display:flex}.tc-choice .chip{min-width:44px;height:44px}.empty-state.es{padding:22px 16px}.empty-state .es-art{width:96px;height:72px;margin:0 auto 4px;display:block}.empty-state.es .btn{margin-top:12px}.empty-state.es.compact{padding:10px 12px}.empty-state.es.compact .es-art{width:64px;height:48px}.help-panel{flex-direction:column;height:100%;min-height:0;display:flex}.help-bar{border-bottom:1px solid var(--border);padding:8px 10px}.help-search,.cheat-filter{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);width:100%;color:var(--text);outline:none;padding:7px 10px}.help-search:focus,.cheat-filter:focus{border-color:var(--accent-line)}.help-bar.reading{padding-bottom:6px}.help-body{flex:1;min-height:0;padding:8px 10px 16px;overflow-y:auto}.help-list{flex-direction:column;gap:4px;display:flex}.help-item{text-align:left;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-s);flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.help-item:hover,.help-item:focus-visible{background:var(--hover);border-color:var(--border-2)}.help-item b{font-size:12.5px;font-weight:600}.help-item span{color:var(--text-2);font-size:12px;line-height:1.4}.help-item mark,.help-doc mark{color:inherit;background:#ffd54f47;border-radius:2px;padding:0 1px}.help-head{background:var(--panel);z-index:1;padding:4px 0 6px;position:sticky;top:-8px}.help-back{color:var(--accent);background:0 0;border:0;align-items:center;gap:4px;padding:2px 4px;display:inline-flex}.help-back .icon{width:14px;height:14px;transform:rotate(180deg)}.help-doc{color:var(--text);overflow-wrap:anywhere;font-size:13px;line-height:1.55}.help-doc h1{margin:4px 0 6px;font-size:18px}.help-doc h2{border-top:1px solid var(--border);margin:18px 0 4px;padding-top:6px;font-size:14.5px}.help-doc h3{color:var(--accent-2);margin:14px 0 2px;font-size:13px}.help-doc h4{color:var(--text-2);margin:10px 0 2px;font-size:12.5px}.help-doc p{color:var(--text-2);margin:6px 0}.help-doc ul,.help-doc ol{color:var(--text-2);margin:6px 0;padding-left:20px}.help-doc li{margin:2px 0}.help-doc strong{color:var(--text)}.help-doc a{color:var(--accent);text-decoration:none}.help-doc a:hover{text-decoration:underline}.help-doc code{font:11.5px var(--mono);background:var(--raised);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:0 4px}.help-doc pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);padding:8px 10px;overflow-x:auto}.help-doc pre code{background:0 0;border:0;padding:0}.help-doc blockquote{border-left:3px solid var(--accent-line);background:var(--accent-bg);color:var(--text-2);border-radius:0 var(--radius-s) var(--radius-s) 0;margin:8px 0;padding:4px 10px}.help-doc table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.help-doc th,.help-doc td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:4px 6px}.help-doc th{color:var(--text-3);font-weight:600}.help-doc hr{border:0;border-top:1px solid var(--border);margin:14px 0}.cheat .modal-body{flex-direction:column;gap:10px;min-height:0;display:flex}.cheat-bar{align-items:center;gap:14px;display:flex}.cheat-toggle{color:var(--text-2);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.cheat-list{max-height:56vh;padding-right:6px;overflow-y:auto}.cheat-row{border-bottom-color:var(--border);border-radius:4px;padding:5px 6px}.cheat-row .cheat-label{flex-direction:column;min-width:0;display:flex}.cheat-row small{color:var(--text-3);font-size:11px}.cheat-row.active{background:var(--accent-bg);color:var(--text);outline:1px solid var(--accent-line);outline-offset:-1px}.cheat-row.runnable{cursor:pointer}.cheat-keys{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}.cheat-keys kbd{margin-left:3px}.cheat-or{color:var(--text-3);margin:0 4px 0 8px}.cheat-none{color:var(--text-3);font-size:11px;font-style:italic}.cheat-count{color:var(--text-3);align-self:center;margin-right:auto;font-size:12px}.cheat .modal-foot{align-items:center}.cheat .empty-state{grid-column:1/-1}.statusbar .status-tip{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;max-width:46ch;margin-left:14px;font-size:12px;overflow:hidden}.statusbar .status-tip b{color:var(--accent-2);margin-right:4px;font-weight:600}@media (max-width:1100px){.statusbar .status-tip{display:none}}.dock .dock-groups.row{align-items:stretch}.diag-panel,.prof-panel{flex:1 1 0;min-height:0;max-height:100%;padding:8px 12px 10px;overflow:auto}.diag-cols{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 24px;display:grid}.diag-sec h5{font:650 11px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:8px 0 4px}.diag-sec dl{font:12px var(--mono);grid-template-columns:auto 1fr;gap:2px 12px;margin:0;display:grid}.diag-sec dt{color:var(--text-3);font-family:var(--font)}.diag-sec dd{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.diag-sec dd.bad{color:var(--danger)}.diag-sec dd.warn{color:var(--warn)}.diag-sec dd.ok{color:var(--run)}.prof-top{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.prof-graph{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);flex:150px;width:100%;min-width:0;height:116px;display:block}.prof-table{border-collapse:collapse;font:12px var(--mono);font-variant-numeric:tabular-nums;flex:none}.prof-table th{font:600 11px var(--font);color:var(--text-3);text-align:right;padding:0 6px 3px}.prof-table th:first-child{text-align:left}.prof-table{align-self:flex-start}.prof-table td{text-align:right;color:var(--text-2);padding:1px 6px}.prof-table td:first-child{text-align:left;color:var(--text);font-family:var(--font)}.prof-sw{vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin-right:6px;display:inline-block}.prof-note{color:var(--text-3);margin:6px 0 0;font-size:11.5px}.err-screen{z-index:400;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#04060ac7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.err-screen.boot{background:var(--bg-deep);min-height:100vh;position:static}.err-card{background:var(--panel);border:1px solid var(--border-2);width:min(640px,100%);max-height:calc(100vh - 32px);color:var(--text);font:14px/1.5 var(--font);border-radius:14px;padding:22px 24px;overflow-y:auto;box-shadow:0 30px 90px #0009}.err-card h2{margin:0 0 6px;font-size:18px}.err-card p{color:var(--text-2);margin:6px 0}.err-card .err-detail{font:12px var(--mono);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);color:var(--danger);white-space:pre-wrap;overflow-wrap:anywhere;max-height:120px;padding:8px 10px;overflow:auto}.err-card h3{font:650 11px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:16px 0 6px}.err-actions{flex-wrap:wrap;gap:8px;display:flex}.err-card .cap-list{margin:6px 0;padding:0;list-style:none}.err-card .cap-list li{border-bottom:1px solid var(--border);color:var(--text-2);padding:4px 0}.err-card .cap-list li b{color:var(--text)}.err-card .cap-list li.fail b{color:var(--danger)}.err-card .cap-list li.warn b{color:var(--warn)}.err-card .btn{font-size:13px}.degraded-bar{z-index:300;background:var(--panel);border:1px solid var(--warn);border-radius:var(--radius);max-width:min(720px,100vw - 32px);color:var(--text-2);box-shadow:var(--shadow);align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.dock .dock-tabs{scrollbar-width:none;overflow-x:auto}.dock .dock-tabs::-webkit-scrollbar{display:none}.tour-layer{z-index:130;pointer-events:none;position:fixed;inset:0}.tour-dim{pointer-events:auto;background:#04060aad;transition:none;position:fixed}.tour-layer.interactive .tour-dim{pointer-events:none;background:#04060a80}.tour-ring{border:2px solid var(--accent);box-shadow:0 0 0 4px var(--accent-bg), 0 0 24px #3ddcff59;pointer-events:none;border-radius:10px;animation:2s ease-in-out infinite tour-pulse;position:fixed}.tour-ring[hidden]{display:none}@keyframes tour-pulse{50%{box-shadow:0 0 0 7px #3ddcff12,0 0 30px #3ddcff80}}.tour-card,.tour-hint{background:var(--panel-2);border:1px solid var(--border-2);box-shadow:var(--shadow);color:var(--text);font-family:var(--font);border-radius:12px}.tour-card{pointer-events:auto;outline:none;width:340px;max-width:calc(100vw - 24px);padding:14px 16px 12px;animation:.18s ease-out tour-in;position:fixed}.tour-card:focus-visible{box-shadow:var(--shadow), 0 0 0 2px var(--accent-line)}@keyframes tour-in{0%{opacity:0;transform:translateY(4px)}}.tour-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.tour-counter{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:11.5px;font-weight:600}.tour-dots{flex-wrap:wrap;flex:1;gap:4px;min-width:0;display:flex}.tour-dots i{background:var(--border-2);border-radius:50%;width:6px;height:6px}.tour-dots i.done{background:var(--accent-line)}.tour-dots i.on{background:var(--accent)}.tour-close{margin:-4px -6px -4px 0}.tour-title{margin:0 0 6px;font-size:16px;font-weight:650}.tour-body{color:var(--text-2);font-size:13.5px;line-height:1.5}.tour-body b{color:var(--text)}.tour-body kbd,.tour-hint kbd{font:11.5px var(--mono);background:var(--raised);border:1px solid var(--border-2);color:var(--text);border-radius:5px;padding:1px 6px}.tour-wait{color:var(--accent-2);margin-top:8px;font-size:12.5px}.tour-wait:before{content:"";background:var(--accent-2);border-radius:50%;width:7px;height:7px;margin-right:7px;animation:1.2s ease-in-out infinite tour-blink;display:inline-block}@keyframes tour-blink{50%{opacity:.25}}.tour-foot{align-items:center;gap:8px;margin-top:12px;display:flex}.tour-foot .grow{flex:1}.tour-foot .btn[hidden]{display:none}.tour-foot .ghost{color:var(--text-3);background:0 0;border-color:#0000;padding-left:0}.tour-foot .ghost:hover{color:var(--text)}.tour-hint{z-index:118;flex-direction:column;gap:8px;width:420px;max-width:calc(100vw - 24px);padding:11px 14px 10px;animation:.2s ease-out tour-hint-in;display:flex;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}@keyframes tour-hint-in{0%{opacity:0;transform:translate(-50%,6px)}}.tour-hint.leaving{opacity:0;transition:opacity .25s}.tour-hint-row{align-items:flex-start;gap:10px;display:flex}.tour-hint-ic{color:var(--accent);flex:none;margin-top:1px;display:inline-flex}.tour-hint-ic svg{width:18px;height:18px}.tour-hint-text{color:var(--text-2);flex:1;font-size:13px;line-height:1.45}.tour-hint-text b{color:var(--text)}.tour-hint-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.tour-hint-actions .btn{padding:4px 10px;font-size:12px}.tour-hint-actions .ghost{color:var(--text-3);background:0 0;border-color:#0000}.tour-hint-actions .ghost:hover{color:var(--text)}@media (prefers-reduced-motion:reduce){.tour-ring,.tour-wait:before,.tour-card,.tour-hint{animation:none}}.gfx-status{color:var(--text-3);margin:0 0 8px;padding:0 2px;font-size:11.5px;line-height:1.45}.gfx-reset{white-space:nowrap}.section .section .section-head .badge.on{color:var(--accent)}.btn.active{border-color:var(--accent);color:var(--accent)}.damage-bar{background:var(--bg);border-radius:3px;height:6px;margin-top:4px;overflow:hidden}.damage-fill{background:var(--warn,#ffb03a);width:0;height:100%;transition:width .2s}.section-body>.switch{padding:4px 0;display:flex}.gfx-reset-row{padding-top:8px}.section .section .section-head .badge{color:var(--text-2);padding:2px 7px}.section .section .section-head .badge.on{color:var(--accent);background:var(--accent-bg,var(--bg))}.section .section>.section-body{padding-left:0;padding-right:0}.section-head:focus-visible{outline:2px solid var(--accent-line,var(--accent));outline-offset:-2px}.switch-input:focus-visible+.switch-track{box-shadow:0 0 0 2px var(--panel), 0 0 0 4px var(--accent)}.dtb-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.dtb-spacer{flex:1}.dtb-examples{max-width:220px}.dtb-code{resize:vertical;background:var(--bg-deep);width:100%;height:44vh;min-height:300px;color:var(--text);border:1px solid var(--border-2);border-radius:var(--radius-s);font:12.5px/1.5 var(--mono);tab-size:2;white-space:pre;padding:10px 12px;overflow:auto}.dtb-code:focus{border-color:var(--accent-line);box-shadow:0 0 0 2px var(--accent-bg);outline:none}.dtb-status{min-height:20px;color:var(--text-2);margin:8px 0 4px;font-size:12px}.dtb-status.ok{color:var(--run)}.dtb-status.error{color:var(--danger)}.dtb-status.busy{color:var(--pause)}.dtb-log{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-s);max-height:96px;font:11.5px/1.45 var(--mono);color:var(--text-2);white-space:pre-wrap;margin:0;padding:6px 10px;overflow:auto}.dtb-log:empty{display:none}.dtb-help{color:var(--text-2);margin-top:10px;font-size:12px}.dtb-help summary{cursor:pointer;color:var(--text)}.dtb-help ul{margin:6px 0 6px 18px;padding:0}.dtb-help li{margin:3px 0}.dtb-note{color:var(--text-3)}.plg-list{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.plg-item{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--panel-2);align-items:flex-start;gap:10px;padding:10px;display:flex}.plg-item.error{border-color:var(--danger)}.plg-item-main{flex:1;min-width:0}.plg-state{background:var(--raised);color:var(--text-2);border-radius:99px;padding:1px 6px;font-size:11px}.plg-state.running{color:var(--run)}.plg-state.error{color:var(--danger)}.plg-chips{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.plg-chip{font:11px var(--mono);background:var(--accent-bg);color:var(--accent);border-radius:4px;padding:1px 6px}.plg-error{color:var(--danger);margin-top:4px;font-size:12px}.plg-muted{color:var(--text-3)}.plg-text{color:var(--text-2);margin:6px 0;font-size:12.5px}.plg-heading{color:var(--text);margin:12px 0 6px;font-size:12px}.plg-row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.plg-column{flex-direction:column;gap:8px;display:flex}.plg-field{color:var(--text-2);flex-direction:column;gap:3px;font-size:12px;display:flex}.plg-check{flex-direction:row;align-items:center;gap:6px}.plg-perm{align-items:flex-start;gap:8px;margin:6px 0;font-size:12.5px;display:flex}.plg-paste{height:120px;min-height:120px}.plg-panel{padding:10px 12px;overflow:auto}.plg-divider{border:0;border-top:1px solid var(--border);width:100%}.plg-table{border-collapse:collapse;width:100%;font-size:12px}.plg-table th,.plg-table td{text-align:left;border-bottom:1px solid var(--border);padding:3px 6px}.plg-bar{background:var(--raised);border-radius:3px;height:6px;overflow:hidden}.plg-bar-fill{background:var(--accent);height:100%}.dtb-examples,.modal input.plain,.plg-panel input:not([type=checkbox]),.plg-panel select{background:var(--bg-deep);color:var(--text);border:1px solid var(--border-2);border-radius:var(--radius-s);padding:5px 8px}.dtb-status{min-height:36px}.plg-chip,.plg-state{color:var(--text)}.collab-dialog{flex-direction:column;gap:12px;display:flex}.collab-note{color:var(--text-2);margin:0;font-size:12.5px;line-height:1.45}.collab-field{align-items:center;gap:10px;display:flex}.collab-field>span{color:var(--text-2);flex:none;font-size:12.5px}.collab-cards{grid-template-columns:1fr 1fr;gap:12px;display:grid}.collab-card{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:8px;padding:12px;display:flex}.collab-card h4{margin:0;font-size:13px}.collab-row{align-items:center;gap:8px;width:100%;display:flex}.collab-room{letter-spacing:.12em;border-radius:var(--radius-s);background:var(--accent-bg);border:1px solid var(--accent-line);-webkit-user-select:all;user-select:all;margin-right:auto;padding:5px 9px;font:600 14px/1 ui-monospace,monospace}.collab-peers{flex-direction:column;gap:5px;margin:8px 0;padding:0;list-style:none;display:flex}.collab-peers li{align-items:center;gap:8px;font-size:13px;display:flex}.collab-dot{border-radius:50%;flex:none;width:10px;height:10px}.collab-sel{color:var(--text-3)}.collab-details{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-2);padding:8px 12px}.collab-details summary{cursor:pointer;font-size:13px;font-weight:600}.collab-details[open] summary{margin-bottom:8px}.collab-step{color:var(--text-2);align-items:center;gap:8px;margin:8px 0 6px;font-size:12.5px;display:flex}.collab-code{box-sizing:border-box;resize:vertical;background:var(--bg);width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-s);word-break:break-all;padding:7px 10px;font:11px/1.35 ui-monospace,monospace}.collab-code:focus{border-color:var(--accent-line);outline:none}.collab-layer{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.collab-outline{border:2px solid var(--peer,var(--accent));box-shadow:0 0 0 1px #00000073, 0 0 12px color-mix(in srgb, var(--peer,var(--accent)) 55%, transparent);border-radius:6px;position:absolute;top:0;left:0}.collab-label{background:var(--peer,var(--accent));color:#06121a;white-space:nowrap;border-radius:4px 4px 4px 0;padding:1px 6px;font:600 11px/16px system-ui,sans-serif;position:absolute;top:-20px;left:-2px}.collab-chip{z-index:6;border:1px solid var(--accent-line);background:var(--glass);color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;padding:4px 10px;font-size:12px;position:absolute;top:12px;right:12px}.collab-chip:hover{background:var(--hover)}.collab-chip[data-status=connecting]{border-color:var(--warn)}@media (max-width:640px){.collab-cards{grid-template-columns:1fr}}.layer-head{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;grid-template-columns:24px 1fr 56px;gap:6px;padding:0 2px 2px;font-size:10.5px;display:grid}.layer-list{flex-direction:column;gap:3px;margin-bottom:8px;display:flex}.layer-row{grid-template-columns:24px 1fr 56px;align-items:center;gap:6px;display:grid}.layer-idx{color:var(--text-3);font:600 11px var(--mono);text-align:right}.layer-name{border:1px solid var(--border);background:var(--bg);height:24px;color:var(--text);border-radius:5px;min-width:0;padding:0 8px;font-size:12px}.layer-trigger{accent-color:var(--accent,#35c9ff);justify-self:center}.layer-matrix-wrap{width:100%;padding-bottom:4px;overflow-x:auto}.layer-matrix{border-collapse:collapse;font-size:10px}.layer-matrix th{color:var(--text-3);font:500 8px var(--mono);text-align:center;padding:0}.layer-matrix .layer-matrix-name{text-align:right;white-space:nowrap;font:500 10px var(--font,inherit);max-width:56px;padding-right:4px;overflow:hidden}.layer-matrix td{text-align:center;padding:0}.layer-matrix td.blank{background:color-mix(in srgb, var(--border) 25%, transparent)}.layer-cell{width:15px;height:15px;accent-color:var(--accent,#35c9ff);cursor:pointer;margin:1px}.mask-grid{grid-template-columns:repeat(8,1fr);gap:3px;width:100%;display:grid}.mask-grid .chip{min-width:0;padding:0}.mask-grid .chip.on{background:color-mix(in srgb, var(--accent,#35c9ff) 22%, var(--bg));border-color:var(--accent,#35c9ff);color:var(--text)}.stack-col{flex-direction:column;gap:6px;width:100%;display:flex}.layer-matrix tr:hover td:not(.blank){background:color-mix(in srgb, var(--accent,#35c9ff) 14%, transparent)}.layer-cell:focus-visible,.chip:focus-visible,.mask-grid .chip:focus-visible{outline:2px solid var(--accent,#35c9ff);outline-offset:1px}.viewport-canvas.tool-softattach,.viewport-canvas.tool-softcut,.viewport-canvas.tool-softrope{cursor:crosshair}.sf-cut-overlay{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.sf-cut-line{stroke:var(--danger);stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 4;filter:drop-shadow(0 0 3px #ff5d73b3)}.jt-picker{z-index:110;background:var(--panel-2);border:1px solid var(--border-2);width:312px;max-height:calc(100vh - 16px);box-shadow:var(--shadow);border-radius:10px;padding:10px 10px 4px;position:fixed;overflow-y:auto}.jt-picker-title{margin:0 2px 4px;font-size:13px;font-weight:600}.jt-group{letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:8px 2px 4px;font-size:10.5px}.jt-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.jt-tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-s);color:var(--text-2);flex-direction:column;align-items:center;gap:2px;min-width:0;padding:6px 4px 5px;display:flex}.jt-tile:hover:not(:disabled){background:var(--hover);border-color:var(--border-2);color:var(--text)}.jt-tile:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}.jt-tile.current{border-color:var(--accent-line);background:var(--accent-bg);color:var(--text)}.jt-tile:disabled{opacity:.38;cursor:not-allowed}.jt-name{text-align:center;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11.5px;line-height:1.2;overflow:hidden}.jt-dia{width:100%;height:40px}.jt-dia .b{stroke:currentColor;fill:none}.jt-dia .j{stroke:var(--accent)}.jt-dia .t{stroke:currentColor;opacity:.6;stroke-width:1.1px}.jt-dia .w{stroke:var(--text-3);stroke-width:1.3px}.jt-dia .d{fill:var(--accent);stroke:none}.jt-tile.current .jt-dia .b{stroke:var(--text)}.jt-type-row{align-items:center;gap:8px;min-width:0;display:flex}.jt-type-row .jt-dia{width:52px;height:36px;color:var(--text-2);flex:none}.jt-type-row .readout{flex:1;min-width:0}.dof-card{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--panel);margin:0 0 6px;padding:6px 7px 7px}.dof-card[data-mode=free],.dof-card[data-mode=limited]{border-color:var(--border-2)}.dof-head{justify-content:space-between;align-items:center;gap:6px;margin-bottom:0;display:flex}.dof-name{white-space:nowrap;font-size:12px;font-weight:600}.dof-name small{color:var(--text-3);margin-left:4px;font-weight:400}.dof-card[data-mode=locked] .dof-grid{display:none}.dof-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;margin-top:7px;display:grid}.dof-f{flex-direction:column;gap:2px;min-width:0;display:flex}.dof-f>span{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.dof-card[data-mode=free] .dof-limit{display:none}.dof-note{color:var(--text-3);margin:0 0 8px;font-size:11px}.jt-info{color:var(--text-3);padding:2px 0 6px;font-size:11.5px;line-height:1.45}.jt-info b{color:var(--text-2);font-weight:600;font-family:var(--mono);font-size:11.5px}.jt-actions{flex-wrap:wrap;gap:6px;padding:4px 0;display:flex}.joint-options{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;width:max-content;max-width:calc(100% - 150px);margin:0 auto;padding:6px 10px;display:flex;top:58px;left:0;right:0}.joint-options.hidden{display:none}.joint-options .jo-group{align-items:center;gap:5px;display:flex}.joint-options .jo-group.hidden{display:none}.joint-options .jo-group.disabled{opacity:.4}.joint-options .jo-label{color:var(--text-3);font:600 10px var(--font);letter-spacing:.08em;text-transform:uppercase}.joint-options .jo-select{background:var(--bg);max-width:150px;height:26px;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-s);outline:none;padding:0 6px;font-size:12px}.joint-options .jo-select:hover{border-color:var(--border-2)}.joint-options .jo-select:focus-visible,.joint-options .jo-btn:focus-visible,.joint-options .jo-seg:focus-visible{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.joint-options .jo-segs{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-s);gap:2px;padding:2px;display:inline-flex}.joint-options .jo-seg{color:var(--text-2);background:0 0;border:0;border-radius:4px;padding:3px 8px;font-size:12px}.joint-options .jo-seg:hover:not(:disabled){color:var(--text);background:var(--hover)}.joint-options .jo-seg.on{background:var(--raised);color:var(--accent);box-shadow:0 0 0 1px var(--border-2) inset}.joint-options .jo-seg:disabled{cursor:default}.joint-options .jo-btn{border-radius:var(--radius-s);border:1px solid var(--border-2);background:var(--raised);height:26px;color:var(--text-2);align-items:center;gap:5px;padding:0 9px;font-size:12px;display:inline-flex}.joint-options .jo-btn .icon{width:14px;height:14px}.joint-options .jo-btn:hover:not(:disabled){color:var(--text);background:var(--hover)}.joint-options .jo-btn.on{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-line)}.joint-options .jo-btn.primary{background:var(--accent);border-color:var(--accent);color:#031a21;font-weight:600}.joint-options .jo-btn:disabled{opacity:.4;cursor:default}.viewport-canvas.joint-handle-hover{cursor:grab}.sf-caption{color:var(--text-3);margin:2px 0 6px;font-size:11.5px;line-height:1.45}.sf-caption.sf-inline{white-space:nowrap;margin:0}.sf-hint{margin:4px 0 6px}.sf-warn-text{color:var(--warn)}.sf-actions{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.sf-actions .btn{flex:none}.sf-shape-icon{color:var(--accent);flex:none;display:inline-flex}.sf-shape-icon .icon{width:16px;height:16px}.sf-warnings{flex-direction:column;gap:8px;display:flex}.sf-warning{border-radius:var(--radius-s);background:#ffb34714;border:1px solid #ffb34766;gap:8px;padding:8px 10px;display:flex}.sf-warning-icon{width:16px;height:16px;color:var(--warn);flex:none;margin-top:1px}.sf-warning-body{min-width:0;color:var(--text);flex-direction:column;align-items:flex-start;gap:6px;font-size:12px;line-height:1.45;display:flex}.sf-warning-body .btn{max-width:100%}.sf-list{flex-direction:column;gap:8px;display:flex}.sf-att{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--panel-2);padding:6px 8px}.sf-att-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.sf-att-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.sf-att-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);border:1px solid var(--border-2);border-radius:999px;flex:none;padding:0 7px;font-size:10.5px}.sf-bar{background:var(--bg);border:1px solid var(--border);border-radius:999px;height:8px;margin:4px 0;overflow:hidden}.sf-bar-fill{background:var(--run);border-radius:999px;width:0;height:100%;transition:width .15s,background .15s}.sf-bar[data-tier=ok] .sf-bar-fill{background:var(--accent)}.sf-bar[data-tier=heavy] .sf-bar-fill{background:var(--warn)}.sf-bar[data-tier=excessive] .sf-bar-fill{background:var(--danger)}.btn:disabled{opacity:.45;cursor:not-allowed}.data-banner{z-index:900;background:var(--panel);border:1px solid var(--border-2);border-left:3px solid var(--accent);max-width:min(760px,100vw - 32px);box-shadow:var(--shadow);color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:8px 10px 8px 14px;display:flex;position:fixed;top:54px;left:50%;transform:translate(-50%)}.data-banner.warn{border-left-color:#f5b83d}.data-banner.error{border-left-color:#ff5d73}.data-banner-text{flex:1;line-height:1.35}.data-banner-actions{gap:6px;display:inline-flex}.rp-toolbar{gap:8px;margin-bottom:10px;display:flex}.rp-list{flex-direction:column;gap:8px;max-height:46vh;padding-right:4px;display:flex;overflow:auto}.rp-card{border:1px solid var(--border-2);background:var(--panel-2);border-radius:10px;grid-template-columns:96px 1fr auto;align-items:center;gap:12px;padding:8px;display:grid}.rp-thumb{object-fit:cover;background:var(--bg-deep);width:96px;height:60px;color:var(--text-3);border-radius:6px;justify-content:center;align-items:center;display:flex}.rp-title{font-weight:600}.rp-meta,.rp-diff{color:var(--text-2);font-size:11.5px}.rp-diff{color:var(--text-3)}.rp-actions{gap:6px;display:inline-flex}.rp-settings{margin-top:14px}.data-row{justify-content:space-between;align-items:center;gap:12px;padding:4px 0;display:flex}.data-row input{width:84px}.data-warning{color:var(--text);background:#f5b83d1f;border:1px solid #f5b83d73;border-radius:8px;padding:8px 10px}.quota-label{color:var(--text-2);margin-bottom:4px}.quota-bar{background:var(--bg-deep);border:1px solid var(--border-2);border-radius:6px;height:8px;overflow:hidden}.quota-bar i{background:linear-gradient(90deg, var(--accent), var(--accent-2));height:100%;display:block}.storage-row{border-bottom:1px solid var(--border-2);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:7px 0;display:grid}.storage-size{color:var(--text-2);font:12px var(--mono)}.cap-form{flex-direction:column;gap:4px;display:flex}.cap-form .row{grid-template-columns:96px minmax(0,1fr)}.cap-formats{width:100%}.cap-formats .seg-btn{flex:1;justify-content:center}.cap-formats .seg-btn:disabled{opacity:.4;cursor:not-allowed}.cap-dur{align-items:center;gap:6px;width:100%;display:flex}.cap-dur .cap-duration{width:90px}.cap-switches{gap:6px;padding:8px 0;display:grid}.cap-switch.disabled{opacity:.45;pointer-events:none}.cap-errors:empty{display:none}.cap-errors{color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-s);background:#ff5d7314;padding:6px 8px;font-size:12px;line-height:1.45}.cap-info{margin-top:4px;font-size:12px}.cap-hint{color:var(--text-3);margin-top:2px;font-size:11.5px}.capture-indicator{z-index:110;background:var(--glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--danger);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:6px 8px 8px 12px;font-size:12.5px;display:flex;position:fixed;top:54px;left:50%;overflow:hidden;transform:translate(-50%)}.capture-indicator .cap-dot{background:var(--danger);border-radius:50%;flex:none;width:10px;height:10px;animation:1s ease-in-out infinite cap-pulse}.capture-indicator.encoding .cap-dot{background:var(--warn)}.capture-indicator .cap-rec{font:600 11px var(--mono);letter-spacing:.08em;color:var(--danger)}.capture-indicator .cap-label{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}.capture-indicator .btn{padding:3px 10px;font-size:12px}.capture-indicator .cap-bar{background:var(--border);height:3px;position:absolute;bottom:0;left:0;right:0}.capture-indicator .cap-bar-fill{background:var(--danger);width:0;height:100%;transition:width .12s linear}@keyframes cap-pulse{0%,to{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.capture-indicator .cap-dot{animation:none}}#app.embed{grid-template-rows:minmax(0,1fr)}#app.embed .workspace{grid-template-columns:0 minmax(0,1fr) 0}.embed-bar{z-index:6;background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--border-2);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;align-items:center;gap:4px;padding:4px 6px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.embed-bar .icon-btn:disabled{opacity:.4;cursor:default}.embed-clock{font-variant-numeric:tabular-nums;min-width:44px;color:var(--text-2,var(--text));text-align:right;padding:0 6px;font-size:12px}.embed-notice{z-index:7;color:#ffe4e4;background:#782828e6;border:1px solid #ff8c8c80;border-radius:8px;padding:8px 12px;font-size:12px;position:absolute;top:12px;left:12px;right:12px}.embed-dialog{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;display:grid}.embed-dialog .embed-opts{flex-direction:column;gap:8px;display:flex}.embed-dialog .embed-opts>label:not(.switch){justify-content:space-between;align-items:center;gap:8px;display:flex}.embed-dialog .embed-opts input[type=number]{width:76px}.embed-dialog .embed-preview{border:1px solid var(--border-2);background:var(--bg-deep);border-radius:8px;min-height:200px;max-height:360px;overflow:auto}.embed-dialog .embed-preview .embed-scale{position:relative}.embed-dialog .embed-preview iframe{transform-origin:0 0;background:#0a0d13;border:0;max-width:none;display:block;position:absolute;top:0;left:0}.embed-dialog textarea.embed-code{box-sizing:border-box;width:100%;min-height:74px;font:12px/1.4 var(--mono,ui-monospace, monospace);resize:vertical;background:var(--panel-2);color:var(--text);border:1px solid var(--border-2);border-radius:8px;grid-column:1/-1;padding:8px}.embed-dialog .embed-note{color:var(--text-3,var(--text));grid-column:1/-1;font-size:12px}@media (max-width:760px){.embed-dialog{grid-template-columns:minmax(0,1fr)}}.share-dialog{grid-template-columns:minmax(0,1fr) 220px;gap:16px;display:grid}.share-dialog .share-thumb{border:1px solid var(--border-2);background:var(--bg-deep);border-radius:8px;width:100%;display:block}.share-dialog .share-facts{color:var(--text-3,var(--text));margin-top:6px;font-size:12px}.share-dialog .share-qr{box-sizing:border-box;background:#fff;border-radius:8px;width:220px;height:220px;padding:8px}.share-dialog .share-qr svg{width:100%;height:100%;display:block}.share-dialog .share-url{box-sizing:border-box;width:100%;font:12px/1.3 var(--mono,ui-monospace, monospace);grid-column:1/-1}.share-dialog .share-warn{color:#ffd27a;grid-column:1/-1;font-size:12px}.share-dialog .share-actions{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}@media (max-width:640px){.share-dialog{grid-template-columns:minmax(0,1fr)}}.qol-hidden{display:none!important}body.qol-presenting{cursor:default}body.qol-presenting .viewport-host{position:fixed;inset:0}.qol-exit-hint{z-index:90;border:1px solid var(--border-2);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--text);cursor:pointer;opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:12px;transition:opacity .35s,transform .35s;display:inline-flex;position:fixed;top:14px;left:50%;transform:translate(-50%,-6px)}.qol-exit-hint.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.qol-exit-hint kbd{border:1px solid var(--border-2);background:var(--raised);font:11px var(--mono);color:var(--text-2);border-radius:4px;padding:1px 6px}.qol-caption{z-index:80;pointer-events:none;color:#fff;text-shadow:0 2px 14px #000000b3,0 0 2px #00000080;--cap-size:40px;max-width:80vw;transition:opacity .2s linear;position:fixed}.qol-cap-title{font-size:var(--cap-size);letter-spacing:-.01em;font-weight:700;line-height:1.15}.qol-cap-sub{font-size:calc(var(--cap-size) * .45);opacity:.92;margin-top:4px;line-height:1.3}.qol-caption.pos-top-left{text-align:left;top:5vmin;left:5vmin}.qol-caption.pos-top{text-align:center;top:5vmin;left:50%;transform:translate(-50%)}.qol-caption.pos-top-right{text-align:right;top:5vmin;right:5vmin}.qol-caption.pos-center{text-align:center;top:50%;left:50%;transform:translate(-50%,-50%)}.qol-caption.pos-bottom-left{text-align:left;bottom:5vmin;left:5vmin}.qol-caption.pos-bottom{text-align:center;bottom:5vmin;left:50%;transform:translate(-50%)}.qol-caption.pos-bottom-right{text-align:right;bottom:5vmin;right:5vmin}.qol-present .qol-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.qol-present .qol-grid.two{grid-template-columns:repeat(2,1fr)}.qol-present .qol-grid .btn{justify-content:center}.qol-present .qol-inputs{flex-direction:column;gap:6px;margin:4px 0 8px;display:flex}.qol-present .qol-inputs input{border-radius:var(--radius-s);border:1px solid var(--border-2);background:var(--bg-deep);width:100%;color:var(--text);padding:6px 9px}.qol-present .qol-inputs input:focus{border-color:var(--accent-line);outline:none}.qol-present .qol-capture-info{font-variant-numeric:tabular-nums;margin:8px 0 0}.tile{position:relative}.fav-star{color:var(--text-3);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;margin-left:auto;padding:0 3px;font-size:15px;line-height:1}.fav-star:hover,.fav-star:focus-visible{color:var(--warn);background:var(--hover);outline:none}.fav-star.on{color:#ffcf4d}.fav-star:before{content:"☆"}.fav-star.on:before{content:"★"}.tile .fav-star{opacity:0;margin:0;font-size:13px;transition:opacity .12s;position:absolute;top:2px;right:2px}.tile:hover .fav-star,.tile .fav-star.on,.tile .fav-star:focus-visible{opacity:1}.card.has-thumb{align-items:center;gap:10px;display:flex}.card.has-thumb .qol-card-text{flex:1;min-width:0}.scene-thumb{object-fit:cover;border:1px solid var(--border-2);background:var(--bg);border-radius:5px;flex:none;width:72px;height:40.5px;display:block}.qol-drop{z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;background:#080a0fb8;justify-content:center;align-items:center;transition:opacity .12s;display:flex;position:fixed;inset:0}.qol-drop.show{opacity:1}.qol-drop-card{text-align:center;border:2px dashed var(--accent-line);background:var(--accent-bg);width:min(560px,80vw);color:var(--text);border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:44px 32px;display:flex}.qol-drop-card .icon.big{width:44px;height:44px;color:var(--accent)}.qol-drop-title{font-size:20px;font-weight:650}.qol-drop-detail{color:var(--text-2);font-size:13px}.qol-drop.bad .qol-drop-card{background:#ff5d731a;border-color:#ff5d7399}.qol-drop.bad .qol-drop-card .icon.big{color:var(--danger)}html,body{overscroll-behavior:none}.viewport-canvas{touch-action:none;overscroll-behavior:none}.viewport-canvas.nav-pan{cursor:grab}.viewport-canvas.nav-pan:active{cursor:grabbing}.ctl-legend{z-index:6;pointer-events:none;flex-direction:column-reverse;align-items:flex-start;gap:6px;max-width:min(380px,100% - 24px);max-height:calc(100% - 150px);display:flex;position:absolute;bottom:12px;left:64px}.ctl-pill{pointer-events:auto;border:1px solid var(--border-2);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);color:var(--text-2);font:600 11.5px var(--font);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 10px;display:inline-flex}.ctl-pill:hover{border-color:var(--accent-line)}.ctl-pill:disabled{cursor:default}.ctl-pill:disabled:hover{border-color:var(--border-2)}.ctl-pill .ctl-ctx{color:var(--text);letter-spacing:.02em}.ctl-pill .ctl-caret{color:var(--text-3);font-weight:500}.ctl-dot{background:var(--accent);width:8px;height:8px;color:var(--accent);border-radius:50%;box-shadow:0 0 8px}.ctl-legend[data-ctx=simulating] .ctl-dot,.ctl-legend[data-ctx=drive] .ctl-dot{background:var(--run);color:var(--run)}.ctl-legend[data-ctx=grab] .ctl-dot,.ctl-legend[data-ctx=placing] .ctl-dot{background:var(--pause);color:var(--pause)}.ctl-legend[data-ctx=fly] .ctl-dot,.ctl-legend[data-ctx=play] .ctl-dot{color:#a78bfa;background:#a78bfa}.ctl-body{pointer-events:auto;border:1px solid var(--border-2);background:var(--glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);min-width:270px;max-width:100%;box-shadow:var(--shadow);color:var(--text-2);border-radius:12px;padding:10px 12px 8px;font-size:12px;overflow:auto}.ctl-body[hidden]{display:none}.ctl-blurb{color:var(--text-3);margin:0 0 6px;font-size:11.5px;line-height:1.35}.ctl-sec h4{font:650 10.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:8px 0 3px}.ctl-list{flex-direction:column;display:flex}.ctl-row{border-radius:6px;align-items:baseline;gap:0 10px;padding:2px 4px;transition:background 80ms;display:flex}.ctl-keys{flex-wrap:wrap;flex:none;align-items:baseline;gap:3px;min-width:92px;display:inline-flex}.ctl-keys kbd{text-align:center;min-width:17px}.ctl-gesture{color:var(--text);font-size:11.5px;font-weight:600}.ctl-act{min-width:0;color:var(--text-2);flex:1}.ctl-why{color:var(--warn);flex-basis:100%;margin:0 0 3px 102px;font-size:11px;font-style:normal;line-height:1.3}.ctl-row.off{opacity:.78;flex-wrap:wrap}.ctl-row.off .ctl-act{text-decoration:line-through;-webkit-text-decoration-color:var(--text-3);text-decoration-color:var(--text-3)}.ctl-row.off kbd{opacity:.55}.ctl-row.down{background:var(--accent-bg)}.ctl-row.down kbd{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.ctl-row.down .ctl-act{color:var(--text)}.stage.has-touch-controls .ctl-legend{display:none}@media (max-width:900px){.ctl-legend{display:none}}.nav-tab{flex-direction:column;gap:8px;display:flex}.nav-status{border:1px solid var(--border);background:var(--bg);color:var(--text-2);border-radius:8px;padding:8px 10px}.nav-presets{flex-wrap:wrap;gap:6px;display:flex}.nav-sheet{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:6px 8px}.nav-sheet .ctl-keys{min-width:150px}.drv-hud{z-index:7;pointer-events:none;position:absolute;inset:0}.drv-hud[hidden]{display:none}.drv-top{pointer-events:auto;border:1px solid var(--border-2);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:12px;padding:6px 8px 6px 16px;display:inline-flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.drv-name{color:var(--text);font-weight:650}.drv-cam{color:var(--text-3);font-size:11.5px}.drv-exit{border:1px solid var(--accent-line);background:var(--accent-bg);color:var(--accent);font:650 12px var(--font);cursor:pointer;border-radius:999px;padding:5px 14px}.drv-exit:hover{background:var(--accent);color:var(--accent-ink)}.drv-exit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.drv-gauge{width:156px;height:156px;position:absolute;bottom:22px;right:22px}.drv-gauge[hidden]{display:none}.drv-arc{filter:drop-shadow(0 4px 14px #00000073);width:100%;height:100%;position:absolute;inset:0}.drv-arc circle{fill:none;stroke-width:7px;stroke-linecap:round}.drv-arc .bg{stroke:#ffffff29}.drv-arc .fg{stroke:var(--accent);transition:stroke-dasharray .12s linear}.drv-gauge-text{color:#fff;text-shadow:0 2px 10px #0009;flex-direction:column;justify-content:center;align-items:center;padding-top:6px;display:flex;position:absolute;inset:0}.drv-speed-n{font:700 40px var(--mono);font-variant-numeric:tabular-nums;line-height:1}.drv-gauge-text small{font:600 11px var(--font);letter-spacing:.1em;text-transform:uppercase;opacity:.8}.drv-aux{font:600 11px var(--mono);opacity:.9;flex-direction:column;align-items:center;min-height:14px;margin-top:4px;line-height:1.25;display:flex}.drv-note{background:var(--glass);border:1px solid var(--border-2);color:var(--text-2);border-radius:999px;padding:4px 12px;font-size:12px;position:absolute;top:64px;left:50%;transform:translate(-50%)}.drv-note:empty{display:none}.drv-note.warn{color:var(--warn);border-color:#ffb34780}.drv-hud.play .drv-gauge,.drv-hud.play .drv-note{display:none}@media (max-width:900px){.topbar .tbtn.drive,.topbar .tbtn.play-mode{display:none}}@media (min-width:901px){.topbar .transport{margin-left:var(--tb-shift,0px)}.topbar.fit-drive .tbtn.drive>span{display:none}.topbar.fit-drive .tbtn.drive{padding:0}.topbar.fit-chip .mode-chip,.topbar.fit-clock .sim-clock,.topbar.fit-scale .transport .timescale{display:none}}.imm-hidden{display:none!important}body.immersive #app .workspace{grid-template-columns:minmax(0,1fr)!important}body.immersive .stage{z-index:4;position:fixed;inset:0}body.immersive .viewport-canvas{cursor:crosshair}body.immersive-drive .viewport-canvas{cursor:grab}body.immersive .ctl-legend{z-index:8;left:12px}.placeable{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.placeable.armed{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-bg)}canvas.placing{cursor:crosshair}.place-hud{z-index:8;pointer-events:none;background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--accent-line);max-width:min(94%,880px);box-shadow:var(--shadow);color:var(--text);text-align:center;border-radius:14px;justify-items:center;gap:4px;padding:8px 14px 9px;font-size:12.5px;display:grid;position:absolute;bottom:100px;left:50%;transform:translate(-50%)}.place-hud[hidden]{display:none}.place-hud-main{color:var(--text);font-weight:600}.place-hud-sub{color:var(--text-2);flex-wrap:wrap;justify-content:center;gap:4px 12px;font-size:11.5px;display:flex}.place-hud-sub b{color:var(--accent);font-weight:650}.place-hud-sub .muted{color:var(--text-3)}.place-flag{border-radius:999px;padding:0 7px;font-weight:600}.place-flag.warn{color:var(--warn);background:var(--warn-bg)}.place-flag.bad{color:var(--danger);background:#ff5d731f}.place-hud-actions{pointer-events:auto;gap:8px;margin-top:2px;display:flex}.place-hud-actions[hidden]{display:none}.place-chip{z-index:10000;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--accent-line);color:var(--accent);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 7px;font-size:12px;font-weight:600;display:inline-flex;position:fixed;top:0;left:0}.place-chip[hidden]{display:none}.place-chip.cancel{border-color:var(--danger);color:var(--danger)}.place-chip-icon{width:16px;height:16px;display:inline-flex}.place-chip-icon svg{width:100%;height:100%}.v-label.place-label{font-weight:600}.v-label.place-label.ok{border-color:var(--accent-line);color:var(--accent)}.v-label.place-label.warn{border-color:var(--warn);color:var(--warn)}.v-label.place-label.bad{border-color:var(--danger);color:var(--danger)}.shape-palette{display:block;position:relative}.shape-search{align-items:center;gap:6px;margin:8px 10px 2px;display:flex;position:relative}.shape-search>.icon{width:14px;height:14px;color:var(--text-3);pointer-events:none;position:absolute;left:9px}.shape-search .shape-search-input{padding-left:29px;padding-right:28px}.shape-search .shape-search-clear{position:absolute;right:4px}.shape-search .shape-search-clear[hidden]{display:none}.shape-status{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.shape-group-title{text-align:left;background:0 0;border:0;align-items:center;gap:6px;width:100%;display:flex}button.shape-group-title{cursor:pointer}button.shape-group-title:hover{color:var(--text-2)}button.shape-group-title:focus-visible{outline:1px solid var(--accent-line);outline-offset:-1px;border-radius:var(--radius-s)}.shape-group-title .caret{width:12px;height:12px;transition:transform .15s}.shape-group-title.closed .caret{transform:rotate(-90deg)}.shape-group-title i{font:500 10px var(--mono);color:var(--text-3);letter-spacing:0;margin-left:auto;font-style:normal}.shape-group-title.static{cursor:default}.shape-tiles{grid-template-columns:repeat(3,1fr);padding-bottom:6px}.shape-tile{justify-content:flex-start;gap:4px;min-height:78px;padding:7px 3px 6px;position:relative}.shape-tile .tile-art{flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.shape-tile .tile-art img{pointer-events:none;-webkit-user-select:none;user-select:none;width:40px;height:40px;display:block}.shape-tile .tile-art .icon{width:26px;height:26px}.shape-tile .tile-name{-webkit-line-clamp:2;text-align:center;overflow-wrap:break-word;-webkit-box-orient:vertical;max-width:100%;padding:0 2px;font-size:11px;line-height:1.15;display:-webkit-box;overflow:hidden}.shape-tile[data-key]:after{content:attr(data-key);font:600 9px var(--mono);color:var(--text-3);position:absolute;top:3px;left:4px}.shape-tile:hover[data-key]:after{color:var(--text-2)}.shape-tile:focus-visible{outline:1px solid var(--accent);outline-offset:1px;border-color:var(--accent-line);color:var(--text)}.shape-palette .empty-state .icon.big{width:28px;height:28px}.ch-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.ch-grid{flex-wrap:wrap;flex:1;align-content:flex-start;gap:8px;min-height:0;padding:6px;display:flex;overflow:auto}.ch-widget{background:var(--panel);border:1px solid var(--border-2);border-radius:var(--radius);flex-direction:column;flex:none;max-width:100%;height:100%;min-height:168px;display:flex;position:relative;overflow:hidden}.ch-widget.fixed-h{height:auto;min-height:0}.ch-widget.dragging{opacity:.45}.ch-widget.drop-before{box-shadow:-3px 0 0 var(--accent)}.ch-widget.drop-after{box-shadow:3px 0 0 var(--accent)}.ch-head{border-bottom:1px solid var(--border);flex-wrap:nowrap;flex:none;align-items:center;gap:3px;min-width:0;padding:4px 6px;display:flex}.ch-grip{width:20px;height:22px;color:var(--text-3);cursor:grab;flex:none;justify-content:center;align-items:center;display:inline-flex}.ch-grip:hover{color:var(--text)}.ch-grip .icon{width:14px;height:14px}.ch-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:4px;flex:0 auto;min-width:24px;max-width:150px;padding:2px 4px;font-size:12.5px;font-weight:600;overflow:hidden}.ch-title:hover{background:var(--hover)}.ch-spacer{flex:1;min-width:4px}.ch-modes{flex:none}.ch-modes .seg-btn{padding:3px 6px}.ch-btn{border-radius:var(--radius-s);min-width:24px;height:24px;color:var(--text-2);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:4px;padding:0 6px;font-size:12px;display:inline-flex}.ch-btn:hover{background:var(--hover);color:var(--text)}.ch-btn .icon{width:14px;height:14px}.ch-btn.on{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-line)}.ch-add{border-color:var(--border-2)}.ch-more{font-size:15px;line-height:1}.ch-live .ch-dot{background:var(--text-3);border-radius:50%;width:7px;height:7px}.ch-live.on .ch-dot{background:var(--run);box-shadow:0 0 6px var(--run)}.ch-sub{border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:10px;padding:4px 8px;display:flex}.ch-field{color:var(--text-3);align-items:center;gap:5px;font-size:11.5px;display:inline-flex}.ch-field .select{width:auto;max-width:150px;height:22px}.ch-check input{margin:0}.ch-hint{color:var(--text-3);margin-left:auto;font-size:11px}.ch-plot{flex:1;min-width:0;min-height:80px;position:relative}.ch-canvas{cursor:crosshair;touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.ch-canvas:focus-visible{outline:1px solid var(--accent-line);outline-offset:-1px}.ch-legend{border-top:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:2px 10px;min-height:28px;max-height:64px;padding:4px 8px 5px;font-size:11.5px;display:flex;overflow-y:auto}.ch-empty{color:var(--text-3)}.ch-chip{align-items:center;gap:5px;min-width:0;display:inline-flex}.ch-chip.off .ch-name,.ch-chip.off .ch-val{opacity:.4;text-decoration:line-through}.ch-chip.off .ch-sw{opacity:.35}.ch-sw{border:1px solid #ffffff40;border-radius:3px;flex:none;width:12px;height:12px;padding:0}.ch-name{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;border-radius:3px;max-width:150px;padding:0 2px;font-size:11.5px;overflow:hidden}.ch-name:hover{color:var(--text);background:var(--hover)}.ch-val{font:11.5px var(--mono);font-variant-numeric:tabular-nums;color:var(--text);min-width:64px;font-weight:500}.ch-warn{color:var(--warn);cursor:help;font-weight:700}.ch-chip.err .ch-name{color:var(--warn)}.ch-axis{background:var(--bg);border:1px solid var(--border-2);color:var(--text-3);font:10px var(--mono);border-radius:3px;width:16px;height:16px;padding:0}.ch-axis:hover{color:var(--text)}.ch-chipmore{color:var(--text-3);background:0 0;border:0;border-radius:3px;padding:0 3px;line-height:1}.ch-chipmore:hover{color:var(--text);background:var(--hover)}.ch-stats{border-top:1px solid var(--border);font:11px var(--mono);flex:none;max-height:110px;padding:4px 8px;overflow:auto}.ch-st{font-variant-numeric:tabular-nums;grid-template-columns:minmax(110px,2.4fr) repeat(8,minmax(38px,1fr));gap:6px;padding:1px 0;display:grid}.ch-st span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ch-st span+span{text-align:right}.ch-st.head{color:var(--text-3);font-family:var(--font)}.ch-resize{cursor:nwse-resize;background:linear-gradient(135deg, transparent 55%, var(--text-3) 55%, var(--text-3) 62%, transparent 62%, transparent 76%, var(--text-3) 76%, var(--text-3) 83%, transparent 83%);opacity:.7;width:14px;height:14px;position:absolute;bottom:0;right:0}.ch-resize:hover{opacity:1}.ch-emptystate{color:var(--text-2);flex:1;max-width:760px;padding:14px 18px;overflow:auto}.ch-emptystate p{margin:4px 0 10px;line-height:1.5}.ch-empty-title{color:var(--text);font-size:13.5px;font-weight:600}.ch-emptystate code,.td code,.ch-panel code{font-family:var(--mono);background:var(--bg);color:var(--accent-2);border-radius:4px;padding:1px 5px;font-size:11.5px}.ch-presets{flex-wrap:wrap;gap:6px;display:flex}.ch-addchart{white-space:nowrap;flex:none;height:24px}@media (max-width:1500px){.ch-addchart .ch-addlabel{display:none}.ch-addchart{padding:3px 7px}}.td{flex-direction:column;gap:10px;display:flex}.td-pick{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.td-field{color:var(--text-3);flex-direction:column;gap:3px;min-width:0;font-size:11.5px;display:flex}.td-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.td-list{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--bg);height:210px;padding:4px;overflow-y:auto}.td-group{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;padding:7px 8px 3px;font-size:10.5px}.td-sig{text-align:left;width:100%;color:var(--text);background:0 0;border:0;border-radius:5px;grid-template-columns:minmax(0,1fr) auto 54px;align-items:center;gap:8px;padding:4px 8px;display:grid}.td-sig:hover{background:var(--hover)}.td-sig code{color:var(--text-3);background:0 0}.td-sig-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.td-sig-unit{color:var(--text-3);text-align:right;font-size:11px}.td-none{color:var(--text-3);text-align:center;padding:14px}.td-expr{font-family:var(--mono)}.td-status{color:var(--text-3);min-height:17px;font-size:12px}.td-status.ok{color:var(--run)}.td-status.bad{color:var(--danger)}.td-help{color:var(--text-3);margin:0;font-size:11.5px;line-height:1.55}.td-colorrow{align-items:center;gap:8px;display:flex}.td-color{border:1px solid var(--border-2);background:0 0;border-radius:5px;width:34px;height:26px;padding:0}.td-swatches{gap:4px;display:flex}.td-swatch{border:1px solid #fff3;border-radius:4px;width:16px;height:16px;padding:0}.td-details summary{cursor:pointer;color:var(--text-2);font-size:12px}.td-aliases{flex-direction:column;align-items:flex-start;gap:6px;padding:8px 0 0;display:flex}.td-alias{grid-template-columns:90px 18px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;display:grid}@media (max-width:760px){.td-pick,.td-row{grid-template-columns:1fr}}.dock:has(.ch-panel:not([style*=none])){height:max(var(--dock-h), 300px)}.ch-addtile{border:1px dashed var(--border-2);border-radius:var(--radius);width:132px;height:100%;min-height:168px;color:var(--text-3);background:0 0;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:6px;display:flex}.ch-addtile:hover{color:var(--text);border-color:var(--accent-line);background:var(--accent-bg)}.ch-addtile .icon{width:20px;height:20px}.tool-options{z-index:5;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;max-width:calc(100% - 140px);padding:7px 14px;font-size:12px;display:flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%)}.tool-options[hidden]{display:none}.to-item{color:var(--text-2);align-items:center;gap:7px;display:inline-flex}.to-item[hidden]{display:none}.to-label{font:650 10px var(--font);letter-spacing:.07em;text-transform:uppercase;color:var(--text-3)}.to-select{background:var(--bg);color:var(--text);border:1px solid var(--border-2);border-radius:var(--radius-s);font:500 12px var(--font);padding:3px 6px}.to-select:focus-visible,.to-range:focus-visible,.to-color:focus-visible,.to-swatch:focus-visible{outline:2px solid var(--accent-line);outline-offset:1px}.to-range-wrap{align-items:center;gap:6px;display:inline-flex}.to-range{width:92px;accent-color:var(--accent)}.to-read{min-width:44px;font:600 11px var(--mono);color:var(--text)}.to-color{border:1px solid var(--border-2);cursor:pointer;background:0 0;border-radius:5px;width:26px;height:22px;padding:0}.to-swatches{gap:4px;display:inline-flex}.to-swatch{width:18px;height:18px;box-shadow:0 0 0 1px var(--border-2);cursor:pointer;border:2px solid #0000;border-radius:50%;padding:0}.to-swatch.on{border-color:var(--text)}.hist-panel{flex-direction:column;flex:1;min-height:0;display:flex}.hist-list{flex-direction:column;gap:1px;padding:6px;display:flex}.hist-row{border-radius:var(--radius-s);color:var(--text-2);cursor:pointer;border:1px solid #0000;align-items:center;gap:9px;padding:5px 8px;display:flex}.hist-row:hover{background:var(--hover);color:var(--text)}.hist-row:focus-visible{border-color:var(--accent-line);outline:none}.hist-row .hist-n{text-align:right;width:22px;font:11px var(--mono);color:var(--text-3);flex:none}.hist-row .hist-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.hist-row.current{background:var(--accent-bg);border-color:var(--accent-line);color:var(--text);font-weight:600}.hist-row .hist-now{font:650 9.5px var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.hist-row.redo{opacity:.5;font-style:italic}.hist-row.redo:hover{opacity:.85}.hist-branch{border-top:1px dashed var(--border-2);color:var(--text-3);margin:6px 4px 3px;padding:4px 8px;font-size:11px}.hist-foot{border-top:1px solid var(--border);color:var(--text-3);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:12px;display:flex}.hist-limit{background:var(--bg-deep);width:58px;color:var(--text);border:1px solid var(--border-2);border-radius:var(--radius-s);padding:3px 6px}.menu-item .menu-chev{color:var(--text-3);font-size:15px;line-height:1}.menu-item.menu-back{color:var(--text-2)}.menu-item:focus-visible{background:var(--hover);outline:none}.addmenu{z-index:110;background:var(--panel-2);border:1px solid var(--border-2);width:280px;max-height:min(460px,100vh - 24px);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;display:flex;position:fixed;overflow:hidden}.addmenu-search{background:var(--bg-deep);color:var(--text);border:1px solid var(--border-2);border-radius:var(--radius-s);outline:none;margin:6px;padding:7px 10px}.addmenu-search:focus{border-color:var(--accent-line)}.addmenu-list{min-height:0;padding:0 5px 5px;overflow-y:auto}.addmenu-head{color:var(--text-3);font:650 10px var(--font);letter-spacing:.09em;text-transform:uppercase;padding:8px 9px 3px}.addmenu-item{color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:9px;padding:6px 9px;display:flex}.addmenu-item .icon{color:var(--text-2)}.addmenu-item .grow{flex:1}.addmenu-item.on{background:var(--accent-bg)}.addmenu-tag{color:var(--text-3);font-size:11px}.addmenu-empty{text-align:center;color:var(--text-3);padding:18px 10px}.panel.right .tabs{scrollbar-width:none;overflow-x:auto}.panel.right .tabs .tab{flex:none;padding-left:8px;padding-right:8px}.panel.right .tabs #tab-history{gap:0;font-size:0}.pwa-update{z-index:60;background:var(--panel-2);border:1px solid var(--border-2);border-left:3px solid var(--accent);max-width:min(520px,100vw - 32px);box-shadow:var(--shadow);color:var(--text);border-radius:10px;align-items:center;gap:14px;padding:10px 12px 10px 14px;font-size:12.5px;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:16px;left:16px}.pwa-update-text{flex-direction:column;gap:2px;min-width:0;display:flex}.pwa-update-text span{color:var(--text-2)}.pwa-update-actions{flex:none;gap:6px;display:flex}@media (max-width:520px){.pwa-update{flex-direction:column;align-items:stretch}.pwa-update-actions{justify-content:flex-end}}
