:root{color-scheme:dark;--font-ui: "Chakra Petch", "Segoe UI", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Mono", ui-monospace, monospace;--font-display: "Orbitron", "Chakra Petch", system-ui, sans-serif;--ground: #05080d;--surface: #0b1422;--surface-raised: #111d30;--surface-glass: rgba(11, 20, 34, .86);--line: rgba(0, 229, 255, .22);--line-strong: #2b7a92;--ink: #e8f6ff;--ink-muted: #9db8c7;--ink-subtle: #6f8fa0;--primary: #00e5ff;--primary-dim: #0a7f92;--accent: #ff9356;--on-accent: #1a0a02;--grid-line: rgba(0, 229, 255, .07);--grid-major: rgba(0, 229, 255, .16);--glow-primary: 0 0 0 1px rgba(0, 229, 255, .55), 0 0 18px rgba(0, 229, 255, .28);--glow-accent: 0 0 0 1px rgba(255, 147, 86, .7), 0 0 16px rgba(255, 147, 86, .35);--window-shadow: 0 18px 40px rgba(0, 0, 0, .55);--chamfer-sm: 6px;--chamfer-lg: 14px;--mode: var(--primary);--c-dark: #cfe6f2;--c-darkest: #e8f6ff;--c-orange: #ff9356;--c-lg: rgba(0, 229, 255, .18);--c-lgt: #2b7a92;--c-mid: #9db8c7;--c-faint: #111d30;--c-err: #ff4d6d;--c-white: #0b1422;--c-ok-bg: rgba(77, 255, 176, .14);--c-warn-bg: rgba(255, 176, 32, .16);--c-sel-bg: rgba(255, 147, 86, .16)}html,body,#root{margin:0;height:100%}body{background:var(--ground);color:var(--ink)}a{color:var(--primary)}.app *{box-sizing:border-box}.app button,.app input,.app select,.app textarea{font-family:inherit}.app{position:relative;width:100%;height:100vh;min-width:1024px;min-height:640px;background:var(--ground);font-family:var(--font-ui);color:var(--ink);font-variant-numeric:tabular-nums;outline:none;overflow:hidden;font-size:13px}.app ::-webkit-scrollbar{width:8px;height:8px}.app ::-webkit-scrollbar-thumb{background:#1d3550}.app ::-webkit-scrollbar-track{background:transparent}.mono,.app .inp,.app .sel,.tb td,.tn .tm,.row .un,.pm{font-family:var(--font-mono)}.btn{font-size:11.5px;font-weight:600;letter-spacing:.03em;height:26px;padding:0 9px;border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);border-radius:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;clip-path:polygon(0 0,calc(100% - var(--chamfer-sm)) 0,100% var(--chamfer-sm),100% 100%,var(--chamfer-sm) 100%,0 calc(100% - var(--chamfer-sm)))}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.4;cursor:default;border-color:var(--line-strong);color:var(--ink)}.btn.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.on:hover{box-shadow:var(--glow-accent);color:var(--on-accent)}.btn.sm{height:22px;font-size:11px;padding:0 7px}.ib{width:24px;height:24px;padding:0;justify-content:center;border-color:transparent;background:transparent;color:var(--ink-muted);clip-path:none}.ib:hover{border-color:var(--line)}.sep{width:1px;height:22px;background:var(--line);margin:0 4px}.inp{font-size:12px;height:24px;border:1px solid var(--line-strong);padding:0 6px;width:100%;background:var(--surface-raised);color:var(--ink);border-radius:0;font-variant-numeric:tabular-nums;text-align:right;min-width:0}.inp.txt{text-align:left;font-family:var(--font-ui)}.inp:focus{outline:none;border-color:var(--primary);box-shadow:var(--glow-primary)}.inp[readonly]{background:var(--surface);color:var(--ink-muted);border-color:var(--line)}.inp.bad{border-color:var(--c-err);box-shadow:0 0 0 1px var(--c-err)}.sel{font-size:11.5px;height:24px;border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);border-radius:0;width:100%;min-width:0}.sel:focus{outline:none;border-color:var(--primary)}.app input[type=range]{accent-color:var(--primary)}.app input[type=checkbox]{accent-color:var(--accent)}.pn{display:flex;flex-direction:column;min-height:0;min-width:0;background:transparent}.ph{display:flex;align-items:center;gap:6px;height:32px;padding:0 4px 0 10px;border-bottom:1px solid var(--line);flex:0 0 auto;background:var(--surface-raised)}.pt{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--ink);flex:0 1 auto;min-width:40px;overflow:hidden;text-overflow:ellipsis}.ph>:not(.pt):not(.pm){flex-shrink:0}.pm{font-size:10.5px;color:var(--ink-subtle);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv{position:relative;flex:1 1 0px;min-height:0;min-width:0;overflow:hidden;background:var(--ground)}.cv canvas{position:absolute;left:0;top:0;display:block;touch-action:none}.scr{flex:1 1 0px;min-height:0;overflow:auto}.tn{display:flex;align-items:center;gap:6px;width:100%;min-height:22px;border:0;border-left:2px solid transparent;background:transparent;text-align:left;font-size:12px;color:var(--ink);cursor:pointer;padding:2px 8px}.tn:hover{background:#00e5ff0f}.tn.on{background:var(--c-sel-bg);border-left-color:var(--accent)}.tn .tm{margin-left:auto;font-size:10.5px;color:var(--ink-subtle);white-space:nowrap}.tg{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);padding:10px 8px 3px;opacity:.85}.dot{width:7px;height:7px;background:var(--c-err);flex:0 0 auto;display:inline-block;box-shadow:0 0 6px var(--c-err)}.row{display:grid;grid-template-columns:minmax(0,1fr) 96px 30px;gap:6px;align-items:center;padding:2px 10px;border-left:2px solid transparent}.row.on{background:var(--c-sel-bg);border-left-color:var(--accent)}.row .lb{font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;color:var(--ink-muted)}.row .lb.pk{cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}.row .un{font-size:10.5px;color:var(--ink-subtle)}.row.wide{grid-template-columns:minmax(0,1fr)}.pv{grid-column:1 / -1;justify-self:start;font-size:10px;padding:1px 6px;margin-top:-1px}.pv-imported{background:#9db8c729;color:var(--ink-muted)}.pv-fitted{background:#6f8a5740;color:#c9e0b5}.pv-edited{background:var(--primary-dim);color:var(--ink)}.pv-accepted{border:1px solid var(--line-strong);color:var(--ink)}.pv-rejected{border:1px solid var(--c-err);color:var(--c-err)}.hd{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);padding:10px 10px 3px;border-top:1px solid var(--line);margin-top:4px;opacity:.9}.hd.first{border-top:0;margin-top:0}.nt{font-size:11.5px;color:var(--ink-muted);padding:3px 10px;line-height:1.45}.nt code{font-family:var(--font-mono);color:var(--ink)}.tabs{display:flex;gap:0;height:30px;border-bottom:1px solid var(--line);flex:0 0 auto}.tab{border:0;border-bottom:2px solid transparent;background:transparent;font-size:11.5px;font-weight:600;padding:0 10px;cursor:pointer;color:var(--ink-subtle);letter-spacing:.04em}.tab.on{border-bottom-color:var(--primary);color:var(--ink)}.num{text-align:right}.chip{font-size:11px;font-weight:600;height:24px;font-family:var(--font-mono);padding:0 10px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;display:inline-flex;align-items:center;gap:6px;color:var(--ink);border-radius:999px}.chip.err{border-color:var(--c-err);color:var(--c-err)}.st{font-size:10px;padding:1px 5px}.gh{display:grid;gap:6px;padding:4px 10px;background:var(--surface-raised);border-bottom:1px solid var(--line);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);position:sticky;top:0;z-index:1}.gr{display:grid;gap:6px;align-items:center;width:100%;min-height:26px;padding:2px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;font-size:11.5px;font-family:var(--font-mono);color:var(--ink)}.gr>span,.gr>button.lnk{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.gr{cursor:pointer}button.gr:hover{background:#00e5ff0f}.gr.on{background:var(--c-sel-bg)}.c1{display:flex;align-items:center;gap:6px}.lnk{border:0;background:transparent;padding:0;font:inherit;color:var(--primary);text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}.sw{display:inline-block;width:10px;height:10px;border:1px solid var(--ink-muted);flex:0 0 auto}.trw{background:#00e5ff0a}.kv{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:2px 10px;font-size:12px}.kk{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-muted)}.kvv{font-family:var(--font-mono);font-size:11.5px;text-align:right;white-space:nowrap}.b-ok{background:var(--c-ok-bg);color:#8dffcc}.b-warn{background:var(--c-warn-bg);color:#ffc95c}.b-bad{border:1px solid var(--c-err);color:var(--c-err)}.b-user{background:var(--primary-dim);color:var(--ink)}.b-info{background:#9db8c729;color:var(--ink-muted)}.toast{position:absolute;left:50%;bottom:72px;transform:translate(-50%);background:var(--surface-glass);border:1px solid var(--primary);box-shadow:var(--glow-primary);color:var(--ink);font-size:13px;padding:10px 14px;display:flex;gap:12px;align-items:center;z-index:80;max-width:680px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{position:absolute;top:0;right:0;bottom:0;left:0;background:#02060ab3;z-index:90;display:flex;align-items:center;justify-content:center}.modal>div{background:var(--surface);width:720px;height:70%;display:flex;flex-direction:column;border:1px solid var(--primary);box-shadow:var(--glow-primary),var(--window-shadow);clip-path:polygon(0 0,calc(100% - var(--chamfer-lg)) 0,100% var(--chamfer-lg),100% 100%,var(--chamfer-lg) 100%,0 calc(100% - var(--chamfer-lg)))}.modal textarea{flex:1;border:0;padding:10px;font-family:var(--font-mono);font-size:12px;resize:none;background:var(--ground);color:var(--ink)}.legend{display:flex;gap:12px;padding:3px 10px;border-bottom:1px solid var(--line);font-size:10.5px;flex-wrap:wrap;font-family:var(--font-mono);color:var(--ink-muted)}.legend b{font-weight:600;color:var(--ink)}.btn.kebab{width:20px;height:20px;padding:0;justify-content:center;border-color:transparent;background:transparent;color:var(--ink-subtle);flex:none;clip-path:none}.btn.kebab:hover,.btn.kebab[aria-expanded=true]{border-color:var(--line-strong);background:var(--surface-raised);color:var(--ink)}.menu{position:fixed;z-index:200;width:260px;background:var(--surface);border:1px solid var(--primary);box-shadow:var(--glow-primary),var(--window-shadow);padding:4px 0;font-family:var(--font-ui)}.menu-it{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;height:28px;padding:0 10px;border:0;background:transparent;color:var(--ink);font-size:12px;text-align:left;cursor:pointer}.menu-it.hi:not(:disabled){background:#00e5ff1a;color:var(--primary)}.menu-it:disabled{color:var(--ink-subtle);cursor:default}.menu-it.danger:not(:disabled){color:var(--c-err)}.menu-kbd{font-family:var(--font-mono, monospace);font-size:10.5px;color:var(--ink-subtle)}.menu-sep{height:1px;background:var(--line);margin:3px 0}.menu-title{padding:4px 10px 6px;font:600 10.5px/14px var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--primary);border-bottom:1px solid var(--line);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-empty{padding:4px 10px;font-size:12px;color:var(--ink-subtle)}.tn .kebab{margin-left:4px;visibility:hidden}.tn:hover .kebab,.tn.on .kebab,.tn .kebab[aria-expanded=true]{visibility:visible}.ep{position:fixed;right:18px;bottom:72px;z-index:150;width:470px;max-width:calc(100vw - 36px);background:var(--surface-glass);border:1px solid var(--accent);box-shadow:var(--glow-accent),var(--window-shadow);font-family:var(--font-ui);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ep-hd{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--line);font-size:12px}.ep-hint{font-size:10.5px;color:var(--ink-subtle)}.ep-row{display:grid;grid-template-columns:minmax(0,1fr) 96px 28px auto;align-items:center;gap:6px;padding:3px 8px;border-left:2px solid transparent;cursor:pointer;font-size:12px}.ep-row.on{background:var(--c-sel-bg);border-left-color:var(--accent)}.ep-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ep-unit{color:var(--ink-subtle);font-size:10.5px}.ep-sug{display:flex;gap:3px}.ep-sug .btn{height:20px;padding:0 5px;font-size:10.5px}.vt-float{position:absolute;top:calc(8px + var(--ruler-top, 0px));z-index:4;display:flex;gap:6px;flex-wrap:wrap;align-items:center;max-width:calc(100% - 16px - var(--ruler-left, 0px));pointer-events:none}.vt-float>*{pointer-events:auto}.vt-left{left:calc(8px + var(--ruler-left, 0px));right:210px}.vt-right{right:8px;justify-content:flex-end}.vt-float .btn,.vt-float .sel,.vt-float .inp{background:var(--surface-glass);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;box-shadow:0 2px 10px #00000059}.vt-float .btn.on{background:var(--accent)}.vt-float .btn.magic{background:linear-gradient(90deg,#6f42c18c,#ff935659)}.vt-float .vt-group{display:flex;gap:4px;align-items:center;padding:2px 8px;border-radius:999px;background:var(--surface-glass);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 10px #00000059;font-size:11px;white-space:nowrap}.vt-show{position:relative}.vt-count{display:inline-block;min-width:14px;padding:0 4px;border-radius:7px;background:var(--line-strong);font-size:10px;text-align:center}.vt-menu{position:fixed;font-family:var(--font-ui);color:var(--ink);min-width:230px;max-height:70vh;overflow:auto;background:var(--surface-raised);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 8px 24px #00000073;display:flex;flex-direction:column;gap:1px;font-size:12px;z-index:9500}.vt-menu>label{display:flex;gap:8px;align-items:center;padding:5px 8px;border-radius:6px;cursor:pointer;white-space:nowrap}.vt-menu>label:hover{background:var(--line)}.vt-menu>label.off{color:var(--ink-subtle);cursor:default}.vt-menu input[type=checkbox]{accent-color:#FF9356}.vt-extra{border-top:1px solid var(--line);margin-top:4px;padding:6px 8px 2px;display:flex;flex-direction:column;gap:6px}.vt-extra .sel,.vt-extra .inp{width:100%!important}.cv-step{position:absolute;top:4px;display:flex;gap:2px;z-index:2}.cv-step .btn.ib{background:var(--surface-glass)}.rain-legend{position:absolute;left:8px;bottom:8px;background:var(--surface-glass);border:1px solid var(--line);color:var(--ink);font-size:11px;line-height:1.5;padding:6px 8px;pointer-events:none;max-width:340px}.rain-legend.clip-panel{pointer-events:auto;max-width:420px}.rain-bar{display:flex;gap:0;align-items:center;margin:3px 0}.rain-bar span{flex:1;min-width:38px;text-align:center;color:#05080d;font-weight:600;padding:1px 0}.rain-bar em{font-style:normal;margin-left:6px}.btn.magic{background:#ff5fd81f;border-color:#ff5fd8;color:#ffc4f0}.btn.magic:hover{box-shadow:0 0 12px #ff5fd873;color:#ffe3f8}.shell{position:absolute;top:0;right:0;bottom:0;left:0}.vp{position:absolute;top:56px;right:0;bottom:0;left:76px;z-index:0;display:flex}.vp>.pn{flex:1}.vp>.pn>.ph{position:absolute;top:calc(8px + var(--ruler-top, 0px));left:calc(8px + var(--ruler-left, 0px));right:auto;max-width:calc(100% - 240px - var(--ruler-left, 0px));z-index:5;background:var(--surface-glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.vp .vt-left{top:calc(50px + var(--ruler-top, 0px));right:8px}.modebar{position:absolute;top:0;left:0;right:0;height:56px;z-index:20;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--surface-glass);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:8px;font:700 12px/1 var(--font-display);letter-spacing:.14em;color:var(--primary);white-space:nowrap;padding-right:6px}.logo{display:inline-flex;flex-direction:column;align-items:center;font-family:var(--font-display);line-height:1}.logo-runo{font-weight:700;letter-spacing:.1em;margin-right:-.1em;color:var(--ink)}.logo-cad{display:flex;align-items:center;font-weight:600;font-size:.36em;letter-spacing:1.05em;margin:.5em -1.05em 0 0;color:var(--primary)}.logo-cur{display:inline-block;width:.6em;height:1.1em;margin-left:-.35em;background:var(--accent)}.logo-cur.always{animation:logo-blink 1.1s steps(1) infinite}.logo-cur.once{animation:logo-blink 1.1s steps(1) 4}@keyframes logo-blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.logo-cur{animation:none!important}}.modebar>*{flex-shrink:0}.modes{display:flex;align-items:center;gap:2px;margin:0 8px;flex:0 1 auto;min-width:214px}.modebar .sel{max-width:170px;text-overflow:ellipsis}@media (max-width: 1360px){.brand-t{display:none}}@media (max-width: 1180px){.modebar{gap:6px}.mode-label,.modebar .sc-label{display:none}.mode{flex-basis:44px;min-width:38px}.modes{min-width:160px;margin:0 4px}.modebar .sel{max-width:120px}}.mode{width:142px;flex:0 1 142px;min-width:52px;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;padding:0;cursor:pointer;color:var(--ink-subtle)}.mode-disc{flex:0 0 auto;width:30px;height:30px;border-radius:999px;display:grid;place-items:center;border:1.5px solid var(--m);color:var(--m);background:var(--surface);transition:box-shadow 80ms}.mode-label{font:600 8.5px/11px var(--font-display);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.mode:hover .mode-disc{box-shadow:0 0 12px var(--m)}.mode.on{color:var(--ink)}.mode.on .mode-disc{background:var(--m);color:var(--ground);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--m),0 0 18px var(--m)}.mode:focus-visible .mode-disc{outline:2px solid var(--ink);outline-offset:3px}.toolrail{position:absolute;top:56px;bottom:0;left:0;width:76px;z-index:20;display:flex;flex-direction:column;gap:1px;padding:6px 0;background:var(--surface-glass);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow-y:auto}.tr-head{font:600 10px/12px var(--font-ui);letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;color:var(--m);text-align:center;padding:2px 4px 8px;border-bottom:1px solid var(--line);margin-bottom:4px}.tool{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 3px;background:none;border:0;color:var(--ink-subtle);cursor:pointer;font:500 10.5px/13px var(--font-ui);text-align:center}.tool:hover{color:var(--ink)}.tool.on{color:var(--m)}.tool.on:before{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:var(--m);box-shadow:0 0 8px var(--m)}.tool.soon{opacity:.45}.tool:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.tool-badge{position:absolute;top:3px;right:12px;min-width:14px;height:14px;padding:0 3px;font:600 9.5px/14px var(--font-mono);color:var(--ground);background:var(--c-err)}.win{position:absolute;z-index:30;display:flex;flex-direction:column;min-width:240px;min-height:120px;background:var(--surface-glass);border:1px solid var(--line);box-shadow:var(--window-shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);clip-path:polygon(0 0,calc(100% - var(--chamfer-lg)) 0,100% var(--chamfer-lg),100% 100%,var(--chamfer-lg) 100%,0 calc(100% - var(--chamfer-lg)));animation:win-in .12s ease-out}.win.active{border-color:var(--primary);box-shadow:var(--glow-primary),var(--window-shadow)}.win>.pn{flex:1;min-height:0}.win .ph{cursor:grab;-webkit-user-select:none;user-select:none}.win.active .ph{border-bottom-color:var(--primary)}.win .ph:before{content:"";width:7px;height:7px;background:var(--m);box-shadow:0 0 8px var(--m);flex:0 0 auto;margin-right:2px}.win-ctl{display:inline-flex;gap:0;margin-left:2px}.win-ctl button{width:22px;height:22px;display:grid;place-items:center;background:transparent;border:1px solid transparent;color:var(--ink-subtle);cursor:pointer;padding:0}.win-ctl button:hover{color:var(--primary);border-color:var(--line)}.ph-help{width:20px;height:20px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:transparent;border:1px solid var(--line);color:var(--ink-subtle);font:600 11px var(--font-ui);cursor:pointer;padding:0}.ph-help:hover,.ph-help.on{color:var(--primary);border-color:var(--primary)}.ph-help-box{max-width:320px;padding:10px 12px;gap:6px;white-space:normal}.ph-help-box ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:3px;color:var(--ink-subtle);line-height:1.4}.win-resize{position:absolute;right:2px;bottom:2px;width:14px;height:14px;cursor:nwse-resize;border-right:1.5px solid var(--primary-dim);border-bottom:1.5px solid var(--primary-dim);z-index:3}@keyframes win-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes od-spin{to{transform:rotate(360deg)}}.od-spin{display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:od-spin .8s linear infinite;vertical-align:-1px}@media (prefers-reduced-motion: reduce){.od-spin{animation-duration:2.4s}}.dock{position:absolute;left:50%;bottom:16px;transform:translate(-50%);z-index:40;display:flex;gap:8px;padding:6px 8px;background:var(--surface-glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);max-width:calc(100% - 200px);overflow-x:auto}.dock-chip{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-muted);font:500 12px/1 var(--font-ui);cursor:pointer;white-space:nowrap}.dock-chip:before{content:"";width:6px;height:6px;border-radius:999px;background:var(--m);box-shadow:0 0 6px var(--m)}.dock-chip:hover{color:var(--ink);border-color:var(--m)}.hud-right{position:absolute;right:12px;top:66px;z-index:22;display:flex;gap:6px}@media (prefers-reduced-motion: reduce){.win{animation:none}.mode-disc{transition:none}}.tbl{border-collapse:collapse;width:100%;font-size:11.5px}.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:3px 5px;text-align:left;vertical-align:top}.tbl th{color:var(--ink-muted);font-weight:500}.views{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line)}.views .btn.ib{border-color:transparent}.tool-need{position:absolute;top:6px;right:12px;width:7px;height:7px;border-radius:999px;background:#ffb020;box-shadow:0 0 6px #ffb020}.win-next{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:5px 8px;border-top:1px solid var(--line);font:500 11.5px/1.35 var(--font-ui);color:var(--ink-muted);flex:0 0 auto}.win-need{display:inline-flex;align-items:baseline;gap:6px}.win-need>span[aria-hidden]{color:#ffb020;font-weight:800}.win-need .lnk{white-space:nowrap}.cmd-handle{position:fixed;left:76px;right:0;bottom:0;height:10px;z-index:140;cursor:ns-resize;display:flex;align-items:center;justify-content:center;gap:8px}.cmd-handle span{width:60px;height:4px;border-radius:2px;background:var(--line-strong)}.cmd-handle b{display:none}.cmd-handle:hover{background:var(--surface-glass);height:18px}.cmd-handle:hover b{display:inline;font:600 10px var(--font-ui);color:var(--ink-subtle);letter-spacing:.06em;text-transform:uppercase}.cmd{position:fixed;left:76px;right:0;bottom:0;z-index:140;display:flex;flex-direction:column;background:var(--surface-glass);border-top:1px solid var(--accent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font:12px var(--font-mono)}.cmd .cmd-handle.open{position:absolute;top:-5px;bottom:auto;left:0;height:10px}.cmd-bar{display:flex;gap:6px;align-items:center;padding:4px 10px;border-bottom:1px solid var(--line);font-family:var(--font-ui)}.cmd-bar b{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-right:6px}.cmd-bar .sel{max-width:160px}.cmd-brief{margin:4px 10px;min-height:70px;font-family:var(--font-mono);font-size:11.5px}.cmd-log{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 10px}.cmd-e{display:flex;gap:8px;padding:2px 0;line-height:1.45;white-space:pre-wrap}.cmd-who{flex:0 0 auto;width:12px;color:var(--ink-subtle)}.cmd-at{flex:0 0 auto;width:58px;color:var(--ink-subtle);font-size:10.5px;font-variant-numeric:tabular-nums}.cmd-steps .cmd-at{display:inline-block;width:58px}.cmd-run .cmd-txt{font-variant-numeric:tabular-nums}.cmd-user .cmd-txt{color:var(--ink)}.cmd-ai .cmd-txt{color:var(--primary)}.cmd-cmd .cmd-txt{color:var(--ink-muted)}.cmd-err .cmd-txt{color:var(--c-err)}.cmd-meta{color:var(--ink-subtle);font-size:10.5px}.cmd-steps{color:var(--ink-muted);font-size:11px;margin-top:2px}.cmd-steps .bad{color:var(--c-err)}.cmd-ref{font:inherit;padding:0 4px;margin:0 1px;border:1px solid var(--accent);border-radius:3px;background:transparent;color:var(--accent);cursor:pointer}.cmd-in{display:flex;gap:4px;align-items:center;padding:4px 10px 6px;border-top:1px solid var(--line);flex-wrap:wrap}.cmd-in .inp{flex:1 1 200px;min-width:120px}.cmd-chip{display:inline-flex;gap:4px;align-items:center;padding:1px 6px;border-radius:999px;background:var(--accent);color:var(--ground);font-size:11px;white-space:nowrap}.cmd-chip.ro{margin-right:4px;opacity:.8}.cmd-chip button{border:0;background:none;color:inherit;cursor:pointer;padding:0;font:inherit}.gpu{display:inline-flex;gap:6px;align-items:center}.gpu-chip{display:inline-flex;gap:5px;align-items:center;padding:1px 7px;border:1px solid var(--line);font:10.5px var(--font-mono);color:var(--ink-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.gpu-chip i{width:6px;height:6px;flex:none;background:var(--ink-subtle)}.gpu-chip.busy{color:#ffc95c;background:var(--c-warn-bg)}.gpu-chip.busy i{background:#ffc95c;animation:gpu-pulse 1s ease-in-out infinite alternate}.gpu-chip.ok{color:var(--ink);background:var(--c-ok-bg)}.gpu-chip.ok i{background:#4dffb0;box-shadow:0 0 5px #4dffb0}@keyframes gpu-pulse{0%{opacity:1}to{opacity:.3}}@media (prefers-reduced-motion: reduce){.gpu-chip.busy i{animation:none}}.gpu-modal>div{font-family:var(--font-ui);color:var(--ink)}.gpu-dlg{display:flex;flex-direction:column;gap:10px;padding:12px;font-size:12px}.gpu-dlg .inp{width:100%;box-sizing:border-box}.gpu-dlg p{margin:0;color:var(--ink-muted);line-height:1.45}.gpu-dlg label{display:flex;flex-direction:column;gap:4px;color:var(--ink)}.gpu-dlg .gpu-err{color:var(--c-err)}.gpu-act{display:flex;gap:6px;justify-content:flex-end}
