:root{--scene-bg:#eef2fc;--ground:#dfe6f8;--floor:#f7f9fe;--floor-line:#e2e8f7;--panel:#fffffff2;--solid:#ffffff;--fg:#141a33;--muted:#6b7392;--line:#e4e9f5;--sunk:#f1f4fd;--accent:#2f63e6;--accent-soft:#e8eefe;--shadow:#2a3f8a1f;--s-move:#2f63e6;--s-load:#1ea755;--s-charge:#d08a00;--s-idle:#717a95;--s-crit:#de3b3b;--f-display:var(--font-display),var(--font-body),system-ui,sans-serif;--f-body:var(--font-body),system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:var(--font-mono),ui-monospace,Menlo,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--scene-bg:#10162a;--ground:#161e36;--floor:#273152;--floor-line:#313c60;--panel:#171f38f2;--solid:#171f38;--fg:#e9edfa;--muted:#9aa4c4;--line:#2a3458;--sunk:#1f2845;--accent:#6f97ff;--accent-soft:#22305c;--shadow:#0000004d;--s-move:#6f97ff;--s-load:#46d081;--s-charge:#f0b43c;--s-idle:#9aa4c4;--s-crit:#ff7676;color-scheme:dark}}:root[data-theme=dark]{--scene-bg:#10162a;--ground:#161e36;--floor:#273152;--floor-line:#313c60;--panel:#171f38f2;--solid:#171f38;--fg:#e9edfa;--muted:#9aa4c4;--line:#2a3458;--sunk:#1f2845;--accent:#6f97ff;--accent-soft:#22305c;--shadow:#0000004d;--s-move:#6f97ff;--s-load:#46d081;--s-charge:#f0b43c;--s-idle:#9aa4c4;--s-crit:#ff7676;color-scheme:dark}*,:after,:before{box-sizing:border-box}body,html{height:100%}html{padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}[hidden]{display:none!important}body{margin:0;background:var(--scene-bg);color:var(--fg);font-family:var(--f-body);font-size:14px;overflow:hidden}#stage{position:fixed;inset:0}#stage canvas{display:block;width:100%;height:100%;touch-action:none}.card{background:var(--panel);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 32px var(--shadow),0 2px 6px var(--shadow)}.mono{font-family:var(--f-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button{font:500 13px var(--f-body);color:var(--fg);background:var(--solid);border:1px solid var(--line);border-radius:9px;padding:7px 11px;cursor:pointer}button.on,button:hover{border-color:var(--accent)}button.on{background:var(--accent);color:var(--solid)}button:disabled{opacity:.45;cursor:not-allowed}[tabindex]:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h2.lbl{font:600 12px var(--f-display);letter-spacing:.12em;text-transform:uppercase}.hint,h2.lbl{margin:0;color:var(--muted)}.hint{font-size:11.5px;line-height:1.5}.hint code{font-family:var(--f-mono);font-size:11px;background:var(--sunk);padding:1px 4px;border-radius:4px;word-break:break-all}.top{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));height:52px;display:flex;align-items:center;gap:12px;padding:0 10px 0 12px;z-index:5}.logo{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,#4f86f7,var(--accent));display:grid;place-items:center;flex:none}.logo svg{width:18px;height:18px}.top h1{margin:0;font:700 17px var(--f-display);letter-spacing:.01em;white-space:nowrap}.spacer{flex:1 1;min-width:0}.top.float{left:auto;height:48px;gap:10px;padding:0 6px 0 8px}body.mapmode .kpis,body.mapmode .poseask.docked,body.mapmode .tools{top:calc(10px + env(safe-area-inset-top,0px))}body.mapmode .kpis.full{padding-right:calc(max(var(--topbar-w, 250px), 230px) + 22px)}.top.float.mini{padding:0 6px;gap:0}.top-fold svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}body.mapmode .kpi-more{position:absolute;top:0;right:0;max-width:none;width:calc(max(var(--topbar-w, 250px), 230px) + 12px);padding-top:calc(var(--topbar-h, 48px) + 10px)}body.mapmode .top.float{box-shadow:0 2px 10px rgba(0,0,0,.12)}.chip{font-size:12px;color:var(--muted);background:var(--sunk);border-radius:8px;padding:6px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chip b{color:var(--fg);font-weight:600}.conn{display:flex;align-items:center;gap:7px;border-radius:999px;padding:6px 12px;font:600 12px var(--f-body);border:0;white-space:nowrap}.conn i{width:8px;height:8px;border-radius:50%;background:currentColor}.conn.ok{color:var(--s-load);background:color-mix(in srgb,var(--s-load) 13%,transparent)}.conn.demo{color:var(--s-charge);background:color-mix(in srgb,var(--s-charge) 15%,transparent)}.conn.wait{color:var(--s-move);background:color-mix(in srgb,var(--s-move) 13%,transparent)}.conn.bad{color:var(--s-crit);background:color-mix(in srgb,var(--s-crit) 13%,transparent)}.conn.wait i{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.25}}.icon{width:36px;height:34px;padding:0;display:grid;place-items:center;flex:none}.icon svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tools{position:fixed;top:calc(74px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:4px;padding:6px;z-index:4}.tools button{width:calc(44px * var(--rail-s,1));height:calc(44px * var(--rail-s,1));padding:0;display:grid;place-items:center;border:0;background:transparent;border-radius:calc(10px * var(--rail-s,1));position:relative}.tools button:hover{background:var(--sunk)}.tools button.on{background:var(--accent);color:var(--solid)}.tools svg{width:calc(20px * var(--rail-s,1));height:calc(20px * var(--rail-s,1));stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tools hr{border:0;border-top:1px solid var(--line);margin:4px 6px}.tools button[data-key]:after{content:attr(data-key);position:absolute;right:3px;bottom:2px;font:600 calc(9px * var(--rail-s,1)) var(--f-mono);opacity:.55}.poseask{position:fixed;z-index:7;width:290px;max-width:calc(100vw - 32px);padding:12px;display:grid;grid-gap:10px;gap:10px;animation:paSlide .18s ease-out;transform-origin:left center}.poseask.below{animation-name:paDrop;transform-origin:top left}.poseask:before{content:"";position:absolute;left:-7px;top:22px;width:12px;height:12px;background:var(--panel);border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}.poseask.below:before{left:22px;top:-7px;border-bottom:0;border-top:1px solid var(--line);transform:rotate(45deg)}.pa-hd{display:flex;align-items:flex-start;gap:8px}.pa-hd b{flex:1 1;font:600 14px/1.35 var(--f-display);color:var(--fg)}.pa-x{width:26px;height:26px;padding:0;display:grid;place-items:center;border:0;background:transparent;border-radius:8px;flex:none}.pa-x:hover{background:var(--sunk)}.pa-x svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}.pa-go{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 12px;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));background:var(--accent-soft);color:var(--fg);font-weight:600;font-size:13.5px}.pa-go:hover{border-color:var(--accent)}.pa-go small{display:block;font-weight:400;font-size:11.5px;color:var(--muted);margin-top:2px}.pa-ic{width:40px;height:40px;border-radius:10px;background:var(--accent);color:var(--solid);display:grid;place-items:center;flex:none}.pa-ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.pa-note{margin:0;font-size:11.5px;color:var(--muted);line-height:1.45}@keyframes paSlide{0%{opacity:0;transform:translateX(-10px) scaleX(.96)}to{opacity:1;transform:none}}@keyframes paDrop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.poseask{animation:none}}.tools button.modebtn{grid-auto-rows:auto;align-content:center;gap:1px}.tools button.modebtn.nav{color:var(--accent);background:var(--accent-soft)}.tools button.modebtn.slam{color:var(--solid);background:var(--s-load)}.tools button.modebtn.open{box-shadow:0 0 0 2px var(--accent)}.tools button.modebtn svg{width:calc(18px * var(--rail-s,1));height:calc(18px * var(--rail-s,1))}.tools button.modebtn .mtag{font:700 calc(8.5px * var(--rail-s,1))/1 var(--f-mono);letter-spacing:.04em}.tools button:disabled{opacity:.35;cursor:not-allowed}.tools button.rec:before{content:"";position:absolute;top:4px;right:4px;width:7px;height:7px;border-radius:50%;background:var(--s-crit);box-shadow:0 0 0 2px var(--panel);animation:pulse 1s infinite}.modepanel{width:340px;max-height:calc(100vh - 110px);overflow:auto;gap:12px}.mode-sw,.modepanel .pa-hd{align-items:center}.mode-sw{display:flex;gap:4px;flex:none}.mode-sw i{font-style:normal;color:var(--muted);font-size:12px}.mode-sw .ms{width:28px;height:28px;border-radius:8px;display:grid;place-items:center}.mode-sw .ms svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mode-sw .ms.nav{background:var(--accent-soft);color:var(--accent)}.mode-sw .ms.slam{background:color-mix(in srgb,var(--s-load) 16%,transparent);color:var(--s-load)}.pa-go.slam{border-color:color-mix(in srgb,var(--s-load) 40%,var(--line));background:color-mix(in srgb,var(--s-load) 10%,transparent)}.pa-go.slam .pa-ic{background:var(--s-load)}.pa-go:disabled{opacity:.5;cursor:not-allowed}.sl-step{display:grid;grid-gap:8px;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.sl-step h4{margin:0;display:flex;align-items:center;gap:8px;font:600 13.5px var(--f-display)}.sl-step h4 i{font-style:normal;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font:700 11.5px var(--f-mono)}.sl-step .hint{margin:0}.sl-note{margin:0;font-size:12px;padding:8px 10px;border-radius:9px;background:color-mix(in srgb,var(--s-load) 12%,transparent)}.sl-note.bad{background:color-mix(in srgb,var(--s-crit) 12%,transparent)}.field small.bad,.sl-note.bad{color:var(--s-crit)}.logobtn{border:0;padding:0;cursor:pointer;transition:transform .15s,box-shadow .15s}.logobtn:hover{transform:scale(1.07)}.logobtn.on{box-shadow:0 0 0 3px var(--accent-soft),0 0 0 5px var(--accent)}.logo.sm{width:26px;height:26px;border-radius:7px}.logo.sm svg{width:15px;height:15px}.blk{position:fixed;z-index:6;top:calc(74px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;overflow:hidden;background:var(--solid);animation:blkIn .2s ease-out}@keyframes blkIn{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}.blk.dragging{-webkit-user-select:none;-moz-user-select:none;user-select:none;animation:none}.blk.dragging .blk-body{pointer-events:none}.blk:not(.narrow) .blk-side{order:-1;border-left:0;border-right:1px solid var(--line)}.blk.float{background:transparent;box-shadow:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.blk.float .blk-hd{background:var(--solid);box-shadow:0 4px 16px rgba(0,0,0,.12)}.blk.float .blk-hd,.blk.float .blk-side{border-radius:12px;border:1px solid var(--line)}.blk.float .blk-side{background:color-mix(in srgb,var(--sunk) 92%,transparent);margin:8px 8px 0 0}.blk.float .blocklyMainBackground{fill:transparent!important;stroke:none!important}.blk.float .blocklySvg{background:transparent!important}.blk.float .blocklyFlyoutBackground{fill:#1b2540;fill-opacity:.88}.blk.float .blk-ws{background:color-mix(in srgb,var(--solid) 72%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border-radius:12px;margin-top:8px;border:1px solid var(--line);box-shadow:0 6px 20px rgba(0,0,0,.14);overflow:hidden}.blk.float.viewing .blk-ws{background:color-mix(in srgb,var(--solid) 45%,transparent);backdrop-filter:none;-webkit-backdrop-filter:none}.blk.float .blocklyText{paint-order:stroke;stroke:rgba(0,0,0,.25);stroke-width:2px}.blk.float.viewing,.blk.float.viewing .blk-body,.blk.float.viewing .blk-ws{pointer-events:none}.blk.float.viewing .blk-grip,.blk.float.viewing .blk-hd,.blk.float.viewing .blk-side{pointer-events:auto}.blk.float.viewing .blk-ws{opacity:.85}.blk-hd .blk-mode.on{background:var(--s-load);color:#fff}.blk.jig .blocklyBlockCanvas>.blocklyDraggable{filter:url(#mtJig)}.mt-round{pointer-events:none}.mt-round rect{fill:#e03131;stroke:#fff;stroke-width:2;filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.mt-round text{fill:#fff;font:700 13px var(--f-mono,ui-monospace,monospace);text-anchor:middle;dominant-baseline:central}.blk.jig .blocklyPathLight{stroke-width:2.5px;stroke-opacity:.95}.blk.jig .blocklyPathDark{stroke-width:2px;fill-opacity:.9}.blk-grip{position:absolute;left:0;top:0;bottom:0;width:12px;cursor:col-resize;z-index:200;touch-action:none}.blk-grip:after{content:"";position:absolute;left:3px;top:50%;width:4px;height:48px;margin-top:-24px;border-radius:2px;background:var(--line);transition:background .15s}.blk-grip:hover:after,.blk.dragging .blk-grip:after{background:var(--accent)}.blk-grip:hover,.blk.dragging .blk-grip{background:color-mix(in srgb,var(--accent) 14%,transparent)}.blk.narrow .blk-body{flex-direction:column}.blk.narrow .blk-side{order:0;width:auto;height:34%;border-left:0;border-top:1px solid var(--line)}.blk.narrow .blk-hd .hint{display:none}.blk-hd{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line);flex-wrap:wrap}.blk-hd b{font:600 15px var(--f-display)}.blk-hd .spacer{flex:1 1}.blk-hd button,.blk-hd select{height:32px;padding:0 12px;font-size:13px}.blk-hd .pa-x{width:32px;padding:0}.blk-hd button.on{background:var(--accent);color:var(--solid)}.blk-run{background:var(--s-load)!important}.blk-run,.blk-stop{color:#fff!important;border:0;font-weight:700}.blk-stop{background:var(--s-crit)!important}.blk-body{flex:1 1;display:flex;min-height:0}.blk-ws{flex:1 1;position:relative;min-width:0}.blk-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:14px}.blk>.blk-loading{position:static;flex:1 1}.blk-side{width:290px;border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--sunk)}.blk-stat{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 12px;gap:4px 12px;padding:10px 12px;font-size:12.5px;border-bottom:1px solid var(--line)}.blk-stat span{color:var(--muted)}.blk-stat b{text-align:right;font-weight:600}.blk-stat b.run{color:var(--s-load)}.blk-code{margin:0;max-height:40%;overflow:auto;padding:10px 12px;font:12px/1.5 var(--f-mono);background:#0f1730;color:#cfe0ff;border-bottom:1px solid var(--line);white-space:pre}.blk-out{flex:1 1;overflow:auto;padding:8px 12px;font:12.5px/1.5 var(--f-mono)}.blk-out .hd{display:flex;justify-content:space-between;align-items:center;font:600 12.5px var(--f-display);margin-bottom:4px;position:-webkit-sticky;position:sticky;top:0;background:var(--sunk)}.blk-out .hd button{height:24px;padding:0 8px;font-size:11.5px}.blk-out .hd .sp{flex:1 1}.blk-out .hd{gap:6px}.blk-sidebtn{position:relative}.blk-sidebtn .badge{top:-6px;right:-6px}.blk-out p{margin:0 0 2px;word-break:break-word}.blk-out p.info{color:var(--muted)}.blk-out p.err{color:var(--s-crit)}.blk .blocklyToolbox,.blk .blocklyToolboxDiv{font-family:var(--f-body,inherit);background:#1b2540!important;padding-top:6px}.blk .blocklyToolboxCategory,.blk .blocklyTreeRow{margin:2px 6px!important;border-radius:8px;height:auto!important;min-height:30px;padding:3px 8px 3px 4px!important;display:flex;align-items:center}.blk .blocklyToolboxCategoryLabel,.blk .blocklyTreeLabel{color:#eef3ff!important;font:600 13.5px var(--f-body,inherit)!important}.blk .blocklyToolboxCategory:not(.blocklyToolboxSelected):hover,.blk .blocklyTreeRow:not(.blocklyTreeSelected):hover{background:#2c3a5f!important}.blk .blocklyToolboxSelected .blocklyToolboxCategoryLabel,.blk .blocklyTreeSelected .blocklyTreeLabel{color:#fff!important}.blk .blocklyToolboxCategoryIcon,.blk .blocklyTreeIcon{display:none}.blk .blocklyFlyoutBackground{fill:#e9eef8;fill-opacity:.97}@media (max-width:720px){.blk{left:8px;right:8px;width:auto!important}.blk-grip,.blk-side{display:none}}.tools button.viewbtn{grid-auto-rows:auto;align-content:center;gap:1px}.tools button.viewbtn svg{width:calc(18px * var(--rail-s,1));height:calc(18px * var(--rail-s,1))}.tools button.viewbtn .mtag{font:700 calc(8.5px * var(--rail-s,1))/1 var(--f-mono)}.tools button.viewbtn.open{background:var(--sunk);box-shadow:0 0 0 2px var(--accent)}.viewpick{position:fixed;z-index:7;display:flex;gap:6px;padding:6px;animation:paSlide .15s ease-out}.viewpick button{width:62px;height:56px;padding:0;border:0;border-radius:10px;background:transparent;display:grid;place-items:center;grid-gap:2px;gap:2px;align-content:center;font:700 12px var(--f-mono)}.viewpick button:hover{background:var(--sunk)}.viewpick button.on{background:var(--accent);color:var(--solid)}.viewpick svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.blk-pick{display:inline-flex;align-items:center;gap:6px}.blk-pick svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.blk-pick.on{background:#e08a00!important;color:#fff!important;border-color:#e08a00!important}.blk-chip{font:600 12px var(--f-mono)!important;background:color-mix(in srgb,#e08a00 14%,transparent)!important;border-color:color-mix(in srgb,#e08a00 40%,var(--line))!important}.toast.okk{color:var(--s-load);border-color:color-mix(in srgb,var(--s-load) 40%,var(--line));font-weight:600}.kpis{position:fixed;top:calc(74px + env(safe-area-inset-top,0px));left:calc(max(16px,env(safe-area-inset-left,0px)) + 24px + 44px * var(--rail-s,1));right:calc(var(--side-w, 350px) + 26px);display:flex;flex-wrap:wrap;gap:10px;z-index:4;pointer-events:none}.kpis>*{pointer-events:auto}.kpi{padding:12px 14px 12px 12px;min-width:150px;max-width:240px;flex:1 1 150px;display:grid;grid-template-columns:42px 1fr;grid-gap:0 12px;gap:0 12px;align-items:center}.kpi .ic{grid-row:1/4;width:42px;height:42px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.kpi .ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.kpi span{font-size:12.5px;color:var(--fg);font-weight:500}.kpi b{display:block;font:700 22px var(--f-display);white-space:nowrap;line-height:1.2}.kpi small{font-size:11.5px;color:var(--muted)}.kpi>b,.kpi>small,.kpi>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi small.grade{display:flex;align-items:center;gap:6px;font-weight:600}.kpi .ic.sigic{display:flex;align-items:flex-end;justify-content:center;gap:3px;padding-bottom:8px}.kpi .ic.sigic i{display:block;width:5px;border-radius:2px;background:var(--line)}.kpi .ic.battic{padding:5px 0 4px}.battic-body{position:relative;width:20px;height:32px;border:2px solid var(--fg);border-radius:4px;padding:2px;display:flex;flex-direction:column;gap:2px;opacity:.9}.battic-body:before{content:"";position:absolute;left:50%;top:-5px;transform:translateX(-50%);width:8px;height:3px;border-radius:2px 2px 0 0;background:var(--fg)}.battic-body i{flex:1 1;position:relative;border-radius:1.5px;background:var(--line);overflow:hidden}.battic-body em{position:absolute;left:0;right:0;bottom:0;border-radius:1.5px}.kpi-state{position:relative}.kpi-play{border:0;padding:0;cursor:pointer;background:var(--s-load)!important;color:#fff!important;box-shadow:0 2px 8px color-mix(in srgb,var(--s-load) 45%,transparent);transition:transform .12s}.kpi-play:hover{transform:scale(1.06)}.kpi-play svg{fill:currentColor!important;stroke:none!important}.kpi-play.run{background:var(--s-crit)!important;box-shadow:0 2px 8px color-mix(in srgb,var(--s-crit) 45%,transparent)}.wp-more{display:inline-flex;align-items:center;gap:3px;border:0;background:transparent;padding:0;font:inherit;color:var(--accent);cursor:pointer;white-space:nowrap}.wp-more svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}.wp-more[aria-expanded=true] svg{transform:rotate(180deg)}.wp-pop{position:absolute;top:calc(100% + 8px);left:0;width:320px;max-height:min(60vh,520px);overflow:auto;padding:8px;z-index:8;pointer-events:auto;animation:paDrop .15s ease-out;background:var(--solid)}.wp-pop .box{background:transparent;padding:4px}.np-back{position:fixed;inset:0;z-index:20;background:#0b102055;display:grid;place-items:center;padding:16px}.np{width:min(1020px,100%);height:min(780px,calc(100vh - 32px));flex-direction:column;overflow:hidden;background:var(--solid)}.np,.np-hd{display:flex}.np-hd{align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.np-hd b{font:600 16px var(--f-display)}.np-ft .sp,.np-hd .sp{flex:1 1}.np-ft button,.np-hd button{height:32px;padding:0 12px;font-size:13px}.seg{display:flex;background:var(--sunk);border-radius:9px;padding:3px;gap:3px}.seg button{border:0;background:transparent;height:28px!important;padding:0 14px!important;font-weight:600}.seg button.on{background:var(--accent);color:var(--solid)}.np-warn{margin:0;padding:8px 14px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--s-move) 10%,transparent);border-bottom:1px solid var(--line)}.np-body{flex:1 1;min-height:0;overflow:auto}.np-basic{padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));grid-gap:12px;gap:12px;align-content:start}.np-row{display:flex;align-items:center;gap:10px;padding:6px 4px;border-radius:8px}.np-row.dirty{background:color-mix(in srgb,var(--accent) 10%,transparent)}.np-row.off{opacity:.5}.np-lb{flex:1 1;min-width:0;font-size:13px}.np-lb small{display:block;font:11px var(--f-mono);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.np-in{display:flex;align-items:center;gap:6px}.np-in input{width:96px;text-align:right}.np-in em{font-style:normal;font-size:12px;color:var(--muted);min-width:40px}.np-adv{display:grid;grid-template-columns:240px 1fr;overflow:hidden}.np-nodes{overflow:auto;border-right:1px solid var(--line);padding:8px;display:flex;flex-direction:column;gap:2px;background:var(--sunk)}.np-nodes button{text-align:left;border:0;background:transparent;padding:7px 9px;border-radius:7px;font:12.5px var(--f-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.np-nodes button.on{background:var(--accent);color:var(--solid)}.np-table{overflow:auto;padding:8px 12px}.np-tools{display:flex;gap:8px;position:-webkit-sticky;position:sticky;top:-8px;background:var(--solid);padding:6px 0 8px;z-index:1}.np-tools input{flex:1 1}.np-table table{width:100%;border-collapse:collapse;font-size:12.5px}.np-table th{text-align:left;font-weight:600;color:var(--muted);padding:6px}.np-table td,.np-table th{border-bottom:1px solid var(--line)}.np-table td{padding:5px 6px;vertical-align:top}.np-table td small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.np-table td input[type=number],.np-table td input[type=text]{width:100%;min-width:140px;font-family:var(--f-mono)}.np-table tr.dirty td{background:color-mix(in srgb,var(--accent) 9%,transparent)}.np-table .ro{margin-left:6px;font-size:10px;padding:1px 6px;border-radius:999px;background:var(--sunk);color:var(--muted)}.np-ft{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}.np-note{font-size:12.5px;color:var(--s-load);max-width:60%;overflow:hidden;text-overflow:ellipsis}.np-note.bad{color:var(--s-crit)}button.btnlink{cursor:pointer}@media (max-width:720px){.np-adv,.np-basic{grid-template-columns:1fr}.np-adv{grid-template-rows:120px 1fr}.np-nodes{border-right:0;border-bottom:1px solid var(--line)}}.side{position:fixed;top:calc(74px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:350px;flex-direction:column;z-index:4;overflow:hidden}.side,.tabs{display:flex}.tabs{gap:4px;background:var(--sunk);border-radius:9px;padding:3px;margin:10px 10px 6px}.side{transition:height .25s ease}.side-more{display:flex;align-items:center;gap:8px;margin:0 10px 6px;padding:4px 6px 4px 8px;border:0;border-radius:8px;background:transparent;text-align:left;min-height:28px}.side-more:hover{background:var(--sunk)}.sm-sum{flex:1 1;display:flex;align-items:center;gap:8px;min-width:0}.sm-txt{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-more .chev{width:18px;height:18px;flex:none;stroke:var(--accent);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}.side-more[aria-expanded=true] .chev{transform:rotate(180deg)}@media (min-width:901px){.side.shut{display:none}.kpis.full{right:max(16px,env(safe-area-inset-right,0px))}}.side-more{order:-1;margin-top:8px}@media (max-width:900px){.side-more{display:none}}.kpi-more{cursor:pointer;text-align:left;font:inherit;color:inherit;border:1px solid var(--line)}.kpi-more:hover{border-color:var(--accent)}.kpi-more .more-b{display:flex;align-items:center;gap:4px;color:var(--accent)}.kpi-more .chev{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.kpi-more small{display:flex;align-items:center;gap:6px}.sm-badge{min-width:18px;height:18px;border-radius:9px;background:var(--s-crit);color:#fff;font:600 10.5px/18px var(--f-mono);text-align:center;padding:0 4px;flex:none}@media (max-width:720px){.side-more{display:none}}.tabs button{flex:1 1;border:0;padding:6px 4px;font-size:12.5px;background:transparent;position:relative}.tabs button.on{background:var(--solid);color:var(--fg);box-shadow:0 1px 3px #0002}.badge{position:absolute;top:1px;right:4px;min-width:15px;height:15px;border-radius:8px;background:var(--s-crit);color:#fff;font:600 10px/15px var(--f-mono);padding:0 3px}.pane{overflow:auto;padding:4px 12px 14px;display:flex;flex-direction:column;gap:12px;min-height:0;flex:1 1}.box{background:var(--sunk);border-radius:12px;padding:12px;display:grid;grid-gap:10px;gap:10px}.box .hd{display:flex;justify-content:space-between;align-items:center;gap:8px}.box h3{margin:0;font:600 15px var(--f-display)}.kv{display:grid;grid-template-columns:auto 1fr;grid-gap:5px 12px;gap:5px 12px;font-size:12.5px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;text-align:right;font-family:var(--f-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kv dd.v-warn{color:var(--s-move);font-weight:600}.kv dd.v-bad{color:var(--s-crit);font-weight:600}.prog{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .4s}.btns{display:flex;gap:8px;flex-wrap:wrap}.btns button{flex:1 1}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.p-move{color:var(--s-move);background:color-mix(in srgb,var(--s-move) 13%,transparent)}.p-load{color:var(--s-load);background:color-mix(in srgb,var(--s-load) 13%,transparent)}.p-charge{color:var(--s-charge);background:color-mix(in srgb,var(--s-charge) 15%,transparent)}.p-idle{color:var(--s-idle);background:color-mix(in srgb,var(--s-idle) 15%,transparent)}.p-crit{color:var(--s-crit);background:color-mix(in srgb,var(--s-crit) 13%,transparent)}.wps{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.wps li{display:grid;grid-template-columns:24px 1fr auto;align-items:center;grid-gap:8px;gap:8px;font-size:12.5px;padding:4px 0}.wps li .n{width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--solid);display:grid;place-items:center;font:600 11px var(--f-mono)}.wps li.cur .n{box-shadow:0 0 0 3px var(--accent-soft)}.wps li button{padding:2px 8px;font-size:12px}.chk{display:flex;align-items:center;gap:8px;font-size:13px}.chk input{accent-color:var(--accent);width:16px;height:16px;flex:none}.disp{display:grid;grid-template-columns:auto 12px 1fr;align-items:center;grid-gap:8px;gap:8px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line)}.disp-wrap:last-child .disp{border-bottom:0}.disp input{accent-color:var(--accent);width:16px;height:16px}.disp .sw{width:12px;height:12px;border-radius:3px}.disp span{display:flex;flex-direction:column;min-width:0}.disp small{font:500 11px var(--f-mono);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-weight:600;color:var(--muted);font-size:11px}td,th{padding:6px 4px;border-bottom:1px solid var(--line)}td{vertical-align:top}td.t{word-break:break-all}td.r,td.t{font-family:var(--f-mono)}td.r{text-align:right;white-space:nowrap}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px}.log{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.log li{font-size:12px;line-height:1.45;display:grid;grid-template-columns:auto 1fr;grid-gap:2px 8px;gap:2px 8px}.log .src,.log time{font:500 11px var(--f-mono);color:var(--muted)}.log .msg{grid-column:1/-1;word-break:break-word}.lv{font:600 10px var(--f-mono);border-radius:4px;padding:1px 5px;margin-right:6px}.lv20{color:var(--s-move);background:color-mix(in srgb,var(--s-move) 13%,transparent)}.lv30{color:var(--s-charge);background:color-mix(in srgb,var(--s-charge) 15%,transparent)}.lv40,.lv50{color:var(--s-crit);background:color-mix(in srgb,var(--s-crit) 13%,transparent)}.lv10{color:var(--s-idle);background:color-mix(in srgb,var(--s-idle) 15%,transparent)}.copy{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:3;padding:6px 12px;border-radius:10px;font-size:11.5px;color:var(--muted);white-space:nowrap;pointer-events:none}.copy b{color:var(--fg);font-weight:600}.tele{position:fixed;left:max(16px,env(safe-area-inset-left,0px));bottom:calc(58px + env(safe-area-inset-bottom,0px));width:300px;padding:12px 14px 14px;display:grid;grid-gap:10px;gap:10px;z-index:4}.tele .hd{display:flex;justify-content:space-between;align-items:center}.tele .row{display:grid;grid-template-columns:132px 1fr;grid-gap:14px;gap:14px;align-items:center}#joy{width:132px;height:132px;border-radius:50%;background:radial-gradient(circle,var(--solid) 0 34%,var(--sunk) 35%);border:1px solid var(--line);position:relative;touch-action:none;cursor:-webkit-grab;cursor:grab}#joy:after,#joy:before{content:"";position:absolute;background:var(--line)}#joy:before{left:50%;top:10px;bottom:10px;width:1px}#joy:after{top:50%;left:10px;right:10px;height:1px}#knob{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--accent);box-shadow:0 4px 12px #1f56c955;z-index:1;transition:transform .12s}#joy.drag #knob{transition:none}.tele .vals{display:grid;grid-gap:6px;gap:6px;font-size:12px}.tele .vals b{font:600 18px var(--f-mono);display:block}label.rng{display:flex;flex-direction:column;gap:4px;font-size:12.5px}label.rng span{display:flex;justify-content:space-between;gap:8px}label.rng output{font:500 12px var(--f-mono);color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent)}#estop{background:var(--s-crit);border-color:var(--s-crit);color:#fff;font:700 14px var(--f-display);letter-spacing:.06em;padding:10px}#estop.on{background:var(--solid);color:var(--s-crit)}.drawer{position:fixed;top:calc(74px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:350px;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px;z-index:7}.drawer .hd{display:flex;justify-content:space-between;align-items:center}.field{display:flex;flex-direction:column;gap:4px;font-size:12.5px}.field small{color:var(--muted);font:500 10.5px var(--f-mono)}input[type=number],input[type=text],select{font:12.5px var(--f-mono);color:var(--fg);background:var(--sunk);border:1px solid var(--line);border-radius:8px;padding:7px 9px;width:100%;box-sizing:border-box;min-width:0}select{font-family:var(--f-body)}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.sep{border:0;border-top:1px solid var(--line);margin:2px 0}.warn{font-size:12px;line-height:1.5;border-radius:10px;padding:10px 12px;background:color-mix(in srgb,var(--s-charge) 12%,transparent);color:var(--fg)}.toast{transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));padding:9px 14px;font-size:13px;z-index:6;white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis}.toast,.wait{position:fixed;left:50%}.wait{top:50%;transform:translate(-50%,-50%);padding:16px 20px;font-size:14px;z-index:3;text-align:center;max-width:300px}.wait b{display:block;font:600 15px var(--f-display);margin-bottom:4px}@media (max-width:1240px){.kpi:nth-child(4){display:none}}@media (max-width:1060px){.kpi:nth-child(3){display:none}}@media (max-width:900px){.chip,.kpis{display:none}}@media (max-width:720px){.top h1{font-size:15px}.tools{flex-direction:row;padding:4px;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));overflow-x:auto;scrollbar-width:none}.tools hr{border-top:0;border-left:1px solid var(--line);margin:6px 2px}.tools button{width:calc(40px * var(--rail-s,1));height:calc(40px * var(--rail-s,1));flex:none}.side{top:auto;left:max(16px,env(safe-area-inset-left,0px));width:auto;max-height:44%}.side.min .pane{display:none}.tele{width:auto;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:6}.copy{font-size:10.5px;padding:4px 10px}.drawer{left:max(16px,env(safe-area-inset-left,0px));width:auto}.drawer,.toast{top:calc(128px + env(safe-area-inset-top,0px))}.toast{bottom:auto}}@media (prefers-reduced-motion:reduce){.conn.wait i{animation:none}}.sheetBtn{display:none;border:0;background:transparent;padding:4px 8px;font-size:12px;color:var(--muted)}@media (max-width:720px){.sheetBtn{display:inline-block}}.warn.bad{background:color-mix(in srgb,var(--s-crit) 12%,transparent)}.coord:empty:before{content:"x – y – ม."}.toast.bad{color:var(--s-crit);border-color:color-mix(in srgb,var(--s-crit) 40%,var(--line));font-weight:600}.btnlink{display:inline-flex;align-items:center;gap:6px;font:500 13px var(--f-body);color:var(--fg);background:var(--solid);border:1px solid var(--line);border-radius:9px;padding:7px 11px;text-decoration:none;white-space:nowrap}.btnlink:hover{border-color:var(--accent);color:var(--accent)}.btnlink svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#edstage{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}#edstage.pan{cursor:-webkit-grab;cursor:grab}.edpanel{position:fixed;top:calc(74px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:320px;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:12px;z-index:4}.swatchbtn i{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line);display:block}.tools button.swatchbtn.on{background:var(--accent-soft)}.tools button.swatchbtn.on i{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.edpanel code{font-family:var(--f-mono);font-size:11px;background:var(--sunk);padding:1px 4px;border-radius:4px;word-break:break-all}@media (max-width:900px){.btnlink{padding:7px 9px}}@media (max-width:720px){.edpanel{top:auto;left:max(16px,env(safe-area-inset-left,0px));width:auto;max-height:42%}.top .btnlink{font-size:0;gap:0}.top .btnlink svg{width:17px;height:17px}}.obspick button{width:84px;height:68px;font:600 12px var(--f-sans,inherit)}.obspick button small{font:500 10px var(--f-mono);opacity:.7}.obspick button:disabled{opacity:.4;cursor:default}.obspick button:disabled:hover{background:transparent}.tools button.obsbtn.open{box-shadow:0 0 0 2px var(--accent)}.tools button .obsn{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:8px;background:#ff5a00;color:#fff;font:700 9px/15px var(--f-mono);text-align:center}.disp.hasgear{grid-template-columns:auto 12px 1fr auto}.dgear{width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;display:grid;place-items:center;color:var(--muted);cursor:pointer}.dgear:hover{background:var(--sunk);color:var(--ink,inherit)}.dgear.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.dgear svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sv{margin:2px 0 8px 24px;padding:6px 10px;border-left:2px solid var(--accent);background:var(--sunk);border-radius:0 8px 8px 0;display:flex;flex-direction:column}.sv-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;grid-gap:8px;gap:8px;padding:4px 0;font-size:12px;border-bottom:1px dashed var(--line)}.sv-row>span:first-child{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-row input[type=number],.sv-row input[type=text],.sv-row select{width:100%;min-width:0;height:26px;font:500 12px var(--f-mono);padding:0 6px}.sv-row input[type=checkbox]{justify-self:start;accent-color:var(--accent);width:16px;height:16px}.sv-in{display:flex;align-items:center;gap:6px;min-width:0}.sv-in input[type=number]{flex:1 1}.sv-in input[type=range]{flex:1 1;min-width:0;accent-color:var(--accent)}.sv-in input[type=color]{width:30px;height:24px;padding:0;border:1px solid var(--line);border-radius:5px;background:none;flex:none}.sv-in code,.sv-in em{font:500 11px var(--f-mono);color:var(--muted);font-style:normal}.sv-note{margin:6px 0 0;font-size:11px;color:var(--muted)}.sv-foot{display:flex;justify-content:flex-end;padding-top:8px}.sv-foot button{font-size:12px;padding:4px 10px}.routep{position:fixed;z-index:7;width:300px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px;animation:paSlide .15s ease-out;font-size:12.5px}.routep.below{max-height:calc(100vh - 140px)}.rp-modes{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px}.rp-modes button{display:flex;flex-direction:column;align-items:center;gap:3px;border:2px solid var(--line);background:var(--panel);padding:9px 2px 7px;border-radius:12px;font-size:11.5px;font-weight:700;cursor:pointer;transition:transform .08s,box-shadow .15s,border-color .15s}.rp-modes button:hover{transform:translateY(-1px);border-color:var(--accent)}.rp-modes button:active{transform:translateY(1px)}.rp-modes .rp-ic{font-size:20px;line-height:1}.rp-modes button.first{border-color:#17a35c;color:#17a35c}.rp-modes button.on{background:var(--accent);border-color:var(--accent);color:var(--solid);box-shadow:0 4px 12px rgba(31,86,201,.35)}.rp-modes button.first.on{background:#17a35c;border-color:#17a35c;box-shadow:0 4px 12px rgba(23,163,92,.4)}.rp-howto{margin:0;padding:8px 10px;border-radius:10px;background:var(--sunk);font-size:12px;font-weight:600;line-height:1.45}.rp-howto.m-node{background:rgba(23,163,92,.12);color:#128a4d}.rp-howto.m-delete{background:rgba(207,58,58,.1);color:var(--s-crit)}.rp-opts{display:flex;flex-direction:column;gap:4px}.rp-opts label,.rp-sel label.chk{display:flex;align-items:center;gap:6px}.rp-opts input,.rp-sel input[type=checkbox]{accent-color:var(--accent)}.rp-stat{display:flex;justify-content:space-between;align-items:center;color:var(--muted)}.rp-stat b{color:var(--fg)}.rp-leg{display:flex;align-items:center;gap:4px;font-size:11px}.rp-leg i{display:inline-block;width:14px;height:4px;border-radius:2px;margin-left:4px}.rp-leg i.two{background:repeating-linear-gradient(90deg,#d4f20f 0 4px,#121212 4px 6px)}.rp-leg i.one{background:repeating-linear-gradient(90deg,#2b7bff 0 4px,#121212 4px 6px)}.rp-robot,.rp-sel{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);border-radius:10px}.rp-sh{font-weight:700;display:flex;justify-content:space-between;gap:6px}.rp-sh small{font:500 10.5px var(--f-mono);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-sel>label:not(.chk){display:grid;grid-template-columns:70px 1fr;align-items:center;grid-gap:6px;gap:6px}.rp-name input,.rp-sel input[type=number]{width:100%;min-width:0;height:28px;font:500 12px var(--f-mono);padding:0 6px}.rp-dir{display:flex;gap:4px}.rp-dir button{flex:1 1;font-size:11.5px;padding:5px 2px}.rp-dir button.on{background:var(--accent);color:var(--solid);border-color:var(--accent)}.rp-row{display:flex;gap:6px}.rp-row>*{flex:1 1;min-width:0}.rp-row button{font-size:12px;padding:6px 4px}.rp-row button.pri{background:var(--accent);color:var(--solid);border-color:var(--accent)}.rp-row button:disabled{opacity:.45;cursor:default}.rp-row select{height:30px;font-size:12px}.rp-name{display:flex;flex-direction:column;gap:4px}.rp-name span{display:flex;align-items:center;gap:4px}.rp-name em{font:500 11px var(--f-mono);color:var(--muted);font-style:normal}.rp-link{border:0;background:none;color:var(--accent);padding:2px 0;text-align:left;font-size:12px;cursor:pointer}.rp-link:disabled{color:var(--muted);cursor:default}.rp-del{color:var(--s-crit)}.rp-val{margin:0;padding:6px 8px 6px 22px;border-radius:8px;background:var(--sunk);font-size:11.5px;display:flex;flex-direction:column;gap:2px}.rp-err,.rp-sh small.bad,.rp-status.bad,.rp-val li.bad{color:var(--s-crit)}.rp-err,.rp-status{margin:0;font-size:11.5px}.rp-run .rp-row button.pri.on{background:#ff8a00;border-color:#ff8a00}.rp-track{font-size:12px;padding:6px 8px;border-radius:8px;background:var(--sunk)}.rp-track.tracking b{color:#e07a00}.rp-track.succeeded b{color:var(--s-load)}.rp-track.failed b{color:var(--s-crit)}.rp-fb{margin:0;display:grid;grid-template-columns:auto 1fr;grid-gap:3px 8px;gap:3px 8px;font-size:11.5px}.rp-fb dt{color:var(--muted)}.rp-fb dd{margin:0;word-break:break-word}.btnlink.on{background:var(--accent);color:var(--solid);border-color:var(--accent)}.lang{position:relative;flex:none}.icon.lang-btn{width:auto;padding:0 9px;display:flex;align-items:center;gap:5px;font:700 11.5px var(--f-mono)}.lang-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:170px;padding:5px;display:flex;flex-direction:column;gap:2px}.lang-menu button{display:flex;align-items:center;gap:9px;width:100%;height:34px;padding:0 10px;border:0;border-radius:8px;background:transparent;text-align:left;font-size:13.5px;color:var(--fg)}.lang-menu button:hover{background:var(--accent-soft)}.lang-menu button.on{background:var(--accent);color:var(--solid)}.lang-menu .flag{font-size:17px;line-height:1}.lang-menu small{margin-left:auto;font:600 10.5px var(--f-mono);opacity:.65}.sl-keys{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:8px 0 4px;padding:8px 10px;border-radius:10px;background:var(--accent-soft);font-size:12.5px;line-height:1.5}.sl-keys .kbd-set{display:inline-flex;gap:3px}.sl-keys kbd{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border:solid var(--line);border-width:1px 1px 3px;border-radius:6px;background:var(--solid);color:var(--fg);font:700 12px var(--f-mono)}.poseask.docked{top:calc(74px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));z-index:5}.poseask.docked:before{display:none}.wait.startmode{max-width:360px;width:calc(100vw - 32px);display:grid;grid-gap:10px;gap:10px;text-align:left;z-index:6;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}.wait.startmode>span{color:var(--muted);font-size:13px;line-height:1.5}.sm-go{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border-radius:12px;text-align:left;font-weight:600}.sm-go small{display:block;font-weight:400;font-size:11.5px;color:var(--muted);margin-top:2px}.sm-go .pa-ic{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:var(--accent-soft);color:var(--accent)}.sm-go .pa-ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.sm-go.slam .pa-ic{background:#fde8e8;color:#c0392b}.sm-nav{display:grid;grid-gap:6px;gap:6px;padding-top:8px;border-top:1px dashed var(--line)}.sm-nav select{height:34px}.kpi-batt{position:relative;pointer-events:auto}.batt-pop{width:330px;display:grid;grid-gap:10px;gap:10px;padding:12px;right:0;left:auto}.bp-hd{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.bp-hd b{font:700 14px var(--f-display)}.bp-conf{font-size:11px;padding:2px 8px;border-radius:9px;background:var(--sunk)}.bp-conf.low{color:#b26a00}.bp-conf.mid{color:var(--accent)}.bp-conf.high{color:var(--s-load)}.bp-big{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px}.bp-big div{background:var(--sunk);border-radius:10px;padding:8px;display:grid;grid-gap:2px;gap:2px;text-align:center}.bp-big span{font-size:11px;color:var(--muted)}.bp-big b{font:700 15px var(--f-display);white-space:nowrap}.bp-dl{margin:0;display:grid;grid-template-columns:auto 1fr;grid-gap:4px 10px;gap:4px 10px;font-size:12px}.bp-dl dt{color:var(--muted)}.bp-dl dd{margin:0;text-align:right;word-break:break-word}.bp-dl dd.mono{font:500 11px var(--f-mono)}.bp-cfg{display:grid;grid-template-columns:1.4fr .8fr 1fr;grid-gap:6px;gap:6px;padding-top:8px;border-top:1px dashed var(--line)}.bp-cfg label{display:grid;grid-gap:3px;gap:3px;font-size:11px;color:var(--muted)}.bp-cfg input,.bp-cfg select{height:30px;min-width:0;width:100%;font-size:12px;padding:0 6px}.bp-note{margin:0;font-size:11.5px;color:var(--muted);line-height:1.5}.bp-reset{justify-self:start;font-size:12px;padding:5px 10px}.bp-learn{border-top:1px dashed var(--line);padding-top:6px;display:grid;grid-gap:6px;gap:6px}.bp-learn summary{cursor:pointer;font-size:12px;color:var(--muted)}.bp-model{margin:0;font:500 11px var(--f-mono)}.sp{width:min(560px,100%);max-height:calc(100vh - 32px);flex-direction:column;overflow:hidden;background:var(--solid)}.sp,.sp-hd{display:flex}.sp-hd{align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.sp-hd b{font:600 16px var(--f-display)}.sp-hd .ms{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#fde8e8;color:#c0392b}.sp-hd .ms svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}.sp-sp{flex:1 1}.sp-body{overflow:auto;padding:4px 14px 10px;display:grid;grid-gap:0;gap:0;min-height:230px;align-content:start}.sp-top{display:grid;grid-gap:8px;gap:8px;padding:10px 14px 4px}.sp-file{display:grid;grid-gap:4px;gap:4px;font-size:12px;color:var(--muted)}.sp-file select{height:32px}.sp-tabs{display:flex;gap:2px;padding:6px 14px 0;border-bottom:1px solid var(--line);overflow-x:auto}.sp-tabs button{border:0;border-bottom:3px solid transparent;border-radius:8px 8px 0 0;background:transparent;padding:8px 12px;font-weight:600;font-size:13px;color:var(--muted);white-space:nowrap}.sp-tabs button.on{color:var(--accent);border-bottom-color:var(--accent);background:var(--accent-soft)}.sp-save{display:flex;gap:8px;flex-wrap:wrap;padding:8px 14px;border-top:1px dashed var(--line);font-size:13px}.sp-fn,.sp-save{align-items:center}.sp-fn{display:inline-flex;gap:2px}.sp-fn,.sp-fn input{font:500 13px var(--f-mono)}.sp-fn input{width:140px;height:30px;padding:0 6px}.sp-save button{height:30px;padding:0 12px}.sp-save small.bad{color:var(--s-crit)}.sp-msg{margin:0 14px 6px}.sp-presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.sp-presets button{height:28px;padding:0 10px;font-size:12px;border-radius:999px}.sp-row{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line)}.sp-lb{display:grid;grid-gap:1px;gap:1px;font-size:13px}.sp-lb small{font-size:11px;color:var(--muted);line-height:1.4}.sp-in{display:flex;align-items:center;gap:6px}.sp-in input{width:92px;height:30px;text-align:right;font:500 13px var(--f-mono);padding:0 8px}.sp-in em{font-style:normal;font-size:11.5px;color:var(--muted);min-width:44px}.sp-check input{width:18px;height:18px}.sp-note{margin:0;font-size:11.5px;color:var(--muted);line-height:1.5}.sp-ft{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}.sp-ft .sp-note{max-width:220px}.sp-ft>button:first-child{height:38px;padding:0 14px}.sp-go{width:auto!important;padding:6px 14px 6px 8px!important}.field textarea{width:100%;min-height:60px;resize:vertical;font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line);background:var(--solid)}.field textarea,.map-note{border-radius:8px;color:var(--fg)}.map-note{margin:0;padding:6px 9px;background:var(--sunk);font-size:12px;line-height:1.5;white-space:pre-wrap}.btns.seg{gap:4px}.btns.seg button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding-left:6px;padding-right:6px}.zdot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}.btns.seg .zdot{margin-right:0}.go{position:fixed;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(12px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:var(--scene-bg);-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.go-top{gap:10px;height:48px}.go-logo,.go-top{display:flex;align-items:center}.go-logo{gap:8px;font:700 18px var(--f-display);-webkit-touch-callout:none}.go-logo svg{width:30px;height:30px}.go-sp{flex:1 1}.go-batt{position:relative;display:inline-flex;align-items:center;width:64px;height:24px;border-radius:7px;border:2px solid var(--muted);overflow:hidden}.go-batt i{position:absolute;left:0;top:0;bottom:0;background:var(--s-load);opacity:.35}.go-batt.low i{background:var(--s-crit);opacity:.5}.go-batt em{position:relative;width:100%;text-align:center;font-style:normal;font-size:12px;font-weight:600}.go-conn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted)}.go-conn i{width:10px;height:10px;border-radius:50%;background:var(--s-crit)}.go-conn.ok i{background:var(--s-load)}.go-lead{margin:14px 2px 10px;color:var(--muted);font-size:15px}.go-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px}.go-btn{--c:#1f56c9;position:relative;min-height:112px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:10px;padding:16px;border-radius:20px;border:0;background:var(--c);color:#fff;text-align:left;box-shadow:0 8px 20px var(--shadow);font:600 20px var(--f-display);line-height:1.2;touch-action:manipulation}.go-btn:active{transform:scale(.97)}.go-btn:disabled{opacity:.5}.go-btn.cur{outline:4px solid var(--fg);outline-offset:3px;opacity:1}.go-pin{position:absolute;top:14px;left:16px;width:22px;height:22px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#ffffffd9}.go-name{word-break:break-word}.go-msg{margin-top:12vh;text-align:center;padding:0 12px}.go-msg-ic{font-size:56px}.go-msg h2{margin:12px 0 8px;font:700 22px var(--f-display)}.go-msg p{margin:0;color:var(--muted);font-size:15px;line-height:1.6;word-break:break-word}.go-sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));background:#0b1226a6}.go-sheet.run{align-items:center}.go-card{width:100%;max-width:440px;background:var(--solid);border-radius:24px;padding:24px 20px 20px;text-align:center;box-shadow:0 20px 50px #0006}.go-card h2{margin:10px 0 6px;font:600 22px var(--f-display);line-height:1.3;word-break:break-word}.go-big{font-size:30px!important;font-weight:700!important}.go-k{margin:4px 0;color:var(--muted);font-size:15px}.go-dot{display:inline-block;width:44px;height:44px;border-radius:50%}.go-dot.pulse{animation:goPulse 1.4s ease-in-out infinite}@keyframes goPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.8);opacity:.6}}@media (prefers-reduced-motion:reduce){.go-dot.pulse{animation:none}}.go-res{font-size:52px}.go-row{display:flex;gap:10px;margin-top:18px}.go-row button{flex:1 1;min-height:56px;border-radius:16px;font:600 18px var(--f-display)}.go-yes{background:var(--accent);border-color:transparent;color:#fff}.go-prog{height:10px;border-radius:5px;background:var(--sunk);overflow:hidden;margin:14px 0 8px}.go-prog i{display:block;height:100%;background:var(--accent);transition:width .5s}.go-stop{width:100%;min-height:76px;margin-top:16px;border-radius:20px;border:0;background:#de3b3b;color:#fff;font:700 28px var(--f-display);letter-spacing:.04em;box-shadow:0 8px 20px #de3b3b55;touch-action:manipulation}.go-stop:active{transform:scale(.98)}.stations{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.stations li{display:grid;grid-template-columns:22px 1fr auto auto auto;align-items:center;grid-gap:6px;gap:6px}.stations li.cur input{border-color:var(--accent)}.stations input{min-width:0;font:500 13px var(--f-body);padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--solid);color:var(--fg)}.stations li button{padding:3px 8px;font-size:12px}.stations .st-dot{width:20px;height:20px;padding:0;border-radius:50%;border:2px solid var(--solid);box-shadow:0 0 0 1px var(--line)}.logbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.logbar .sp{flex:1 1}.logbar .chk{margin:0}.lognew{font-size:12px;padding:4px 9px;background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.logbox{flex:1 1 auto;min-height:180px;max-height:70vh;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line);padding-top:8px}.nf-ic{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;margin-left:6px;vertical-align:3px;border-radius:50%;border:0;background:transparent;color:var(--s-crit);cursor:pointer}.nf-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.nf-ic.on,.nf-ic:hover{background:color-mix(in srgb,var(--s-crit) 14%,transparent)}.pill-row{display:inline-flex;align-items:center}.pill-row .nf-ic{margin-left:4px;vertical-align:0}.nf-pop{position:fixed;z-index:60;width:min(380px,calc(100vw - 24px));max-height:min(70vh,560px);overflow:auto;padding:14px 16px;background:var(--solid);animation:paDrop .15s ease-out}.nf-pop.up{transform:translateY(-100%)}.nf-pop h4{margin:0 0 6px;font:700 15px var(--f-display);color:var(--s-crit)}.nf-d{font-size:13px;line-height:1.55}.nf-d,.nf-msg{margin:0 0 8px}.nf-msg{padding:6px 8px;border-radius:8px;background:var(--sunk);font-size:12px;word-break:break-word}.nf-h{display:block;margin:10px 0 4px;font:600 12px var(--f-display);color:var(--muted);letter-spacing:.04em}.nf-hints{margin:0;padding-left:18px;font-size:13px;line-height:1.55}.nf-hints li+li{margin-top:3px}.nf-kv{margin-top:10px}.nf-logs{margin:0;padding:0;list-style:none;font-size:12px;line-height:1.45;display:flex;flex-direction:column;gap:5px}.nf-logs .src{font:500 11px var(--f-mono);color:var(--muted)}.blk-burger{position:relative;width:38px;padding:0!important;display:inline-flex;align-items:center;justify-content:center}.blk-burger svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.blk-burger .badge{top:-6px;right:-6px}.blk-menu{position:fixed;z-index:190;width:240px;max-height:calc(100vh - 90px);overflow:auto;padding:8px;display:flex;flex-direction:column;gap:5px;background:var(--solid)}.blk-menu .tts,.blk-menu .tts-btn,.blk-menu>button,.blk-menu>select{width:100%}.blk-menu .tts-btn,.blk-menu>button{height:34px;padding:0 12px;font-size:13px;justify-content:flex-start;text-align:left;display:flex;align-items:center;gap:6px}.blk-menu>select{height:34px;font-size:13px}.blk-menu>button.on{background:var(--accent);color:var(--solid)}.blk-menu>button.blk-mode.on{background:var(--s-load);color:#fff}.blk-menu>.blk-sidebtn .badge{top:-6px;right:-6px}.blk-menu hr{border:0;border-top:1px solid var(--line);margin:3px 0}.tts{position:relative;display:flex}.tts-btn{display:inline-flex;align-items:center;gap:5px}.tts-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.tts-btn.on{background:var(--accent-soft);border-color:var(--accent)}.tts-pop{position:fixed;z-index:200;max-height:calc(100vh - 100px);overflow:auto;width:300px;padding:12px;display:flex;flex-direction:column;gap:9px;background:var(--solid)}.tts-h{font:600 13.5px var(--f-display)}.tts-pop label{display:flex;flex-direction:column;gap:4px;font-size:12.5px}.tts-pop label output{float:right;font-family:var(--f-mono);color:var(--muted)}.tts-pop select{font:500 12.5px var(--f-body);padding:5px 6px;border-radius:8px;border:1px solid var(--line);background:var(--solid);color:var(--fg);max-width:100%}.tts-pop input[type=range]{accent-color:var(--accent)}.robo{position:relative;display:flex}.robo-btn{width:38px;height:38px;padding:0;display:grid;place-items:center;border-radius:10px;background:transparent;border:1px solid transparent}.robo-btn.on,.robo-btn:hover{background:var(--accent-soft);border-color:var(--line)}.robo-ic{display:block}.robo-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:60;width:290px;max-width:calc(100vw - 16px);box-sizing:border-box;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--solid)}.robo-menu:has(.th-grid){width:340px}.robo-tabs{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px;padding:3px;border-radius:10px;background:var(--accent-soft)}.robo-tabs button{padding:6px 8px;font-size:12.5px;font-weight:600;border:0;border-radius:8px;background:transparent;color:var(--muted)}.robo-tabs button.on{background:var(--solid);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.15)}.robo-h{font:600 12px var(--f-display);color:var(--muted);letter-spacing:.04em}.robo-model{display:flex;align-items:center;gap:10px;text-align:left;padding:8px;border-radius:12px}.robo-model span{display:flex;flex-direction:column;gap:2px;min-width:0}.robo-model b{font-size:13.5px}.robo-model small{font-size:11.5px;color:var(--muted)}.robo-model.on{border-color:var(--accent);background:var(--accent-soft)}.lvl-list{display:flex;flex-direction:column;gap:6px}.lvl-item{display:flex;align-items:center;gap:10px;text-align:left;padding:8px;border-radius:12px}.lvl-item span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.lvl-item b{font-size:13.5px}.lvl-item small{font-size:11.5px;color:var(--muted)}.lvl-item.on{border-color:var(--accent);background:var(--accent-soft)}.lvl-item.on,.lvl-item.on b{color:var(--fg)}.lvl-badge{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font:700 13px var(--f-mono)}.lvl-item.on .lvl-badge{background:var(--accent);color:#fff}body.lvl-L2 .kpi-estop .estop-btn{transform:translateY(-50%) scale(1.2);transform-origin:right center}.robo-colors{display:grid;grid-template-columns:repeat(9,1fr);grid-gap:6px;gap:6px}.robo-sw{position:relative;aspect-ratio:1;width:100%;padding:0;border-radius:50%;border:2px solid var(--solid);box-shadow:0 0 0 1px var(--line);cursor:pointer;display:grid;place-items:center}.robo-sw.on{box-shadow:0 0 0 2px var(--accent)}.robo-custom{background:conic-gradient(#f33,#fc3,#3c6,#3cf,#36f,#c3f,#f33);color:#fff;font:700 15px var(--f-mono);text-shadow:0 1px 2px #0008}.robo-custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.obs-hint{max-width:220px;padding:4px 8px 2px;font-size:11px}.sl-ctl{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin:4px 0 10px}.sl-ctl button{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;font-size:13px;font-weight:600}.sl-ctl button svg{width:16px;height:16px;flex:none}.sl-explore{display:flex;align-items:center;gap:10px;margin:2px 0 10px;padding:8px 10px;border-radius:10px;border:1px solid var(--line,rgba(127,127,127,.3));font-size:12.5px;line-height:1.4}.sl-explore.on{border-color:#e8822e;background:rgba(232,130,46,.08)}.sl-explore button{display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:600;white-space:nowrap;flex:none}.sl-explore button svg{width:16px;height:16px}.sl-explore small{opacity:.75}.sl-explore.on button{background:var(--s-crit);border-color:var(--s-crit);color:#fff}.sl-ctl button[aria-expanded=true]{border-color:var(--s-crit);color:var(--s-crit)}.sl-confirm{margin:0 0 10px;padding:10px 12px;border-radius:10px;border:1px solid color-mix(in srgb,var(--s-crit) 45%,var(--line));background:color-mix(in srgb,var(--s-crit) 8%,var(--solid))}.sl-confirm p{margin:0 0 8px;font-size:13px;line-height:1.5}.sl-confirm b{color:var(--s-crit)}.sl-confirm .btns{display:flex;gap:8px;justify-content:flex-end}.sl-confirm button.on.bad{background:var(--s-crit);border-color:var(--s-crit);color:#fff}.kpi .ic.map-rec{position:relative;background:color-mix(in srgb,var(--s-crit) 12%,var(--solid));color:var(--s-crit)}.kpi .ic.map-rec svg{animation:map-blink 1.2s ease-in-out infinite}.rec-dot{position:absolute;top:5px;right:5px;width:9px;height:9px;border-radius:50%;background:#e5262f;box-shadow:0 0 0 2px var(--solid);animation:rec-pulse 1.2s ease-in-out infinite}.kpi-map .map-b{color:var(--s-crit)}@keyframes map-blink{0%,to{opacity:1}50%{opacity:.25}}@keyframes rec-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.7);opacity:.45}}@media (prefers-reduced-motion:reduce){.kpi .ic.map-rec svg,.rec-dot{animation:none}}.q-pop{width:380px;max-height:calc(100vh - 140px)}.q-head{margin:4px 6px 8px;font-size:12px;color:var(--muted)}.q-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.q-list li{padding:8px 8px 7px;border-radius:10px;background:var(--sunk);display:grid;grid-gap:3px;gap:3px}.q-list li.on{box-shadow:inset 0 0 0 2px var(--accent)}.q-row{display:flex;align-items:center;gap:8px}.q-name{font-weight:700;font-size:13px;margin-right:auto;text-align:left}button.q-name{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;padding:0;cursor:pointer;color:var(--fg)}.q-pop b.q-name{font:700 13px var(--f-body);display:inline;white-space:normal}.q-eye{font-weight:500;font-size:11px;color:var(--accent);margin-left:4px}.q-eye,.q-val{white-space:nowrap}.q-val{font-size:12.5px}.q-pill{font-size:11px;font-weight:700;color:#fff;padding:2px 8px;border-radius:99px;white-space:nowrap}.q-pill.none{background:var(--line);color:var(--muted)}.q-rule{font-size:11px;color:var(--muted)}.q-pen{font-size:11.5px;line-height:1.4}.q-pen,.q-tip{color:var(--s-charge)}.q-tip{margin:8px 6px 4px;font-size:12.5px;line-height:1.45}.q-tip.ok{color:var(--s-load)}.q-pop .hint{margin:8px 6px 2px}.kpi-state.kpi-map{position:relative;z-index:9}.sl-trail{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;margin:2px 0 8px}.sl-trail .mono{color:var(--muted);font-size:12px}.kpi.kpi-split{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;padding:8px 10px;min-width:250px;max-width:300px;flex:1.4 1 250px;position:relative}.ks-half{display:flex;flex-direction:column;min-width:0;justify-content:center}.ks-speed{align-items:center;position:relative;padding-right:8px;border-right:1px solid var(--line)}.ks-speed b{font-size:15px;line-height:1.1;margin-top:-2px}.ks-lidar small,.ks-speed small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ks-lidar{padding-left:12px;gap:2px}.ks-lidar span{font-size:12.5px;color:var(--muted)}.ks-lidar b{font-size:18px}.dial{width:96px;height:54px;display:block}.dial-arc{fill:none;stroke:var(--line);stroke-width:6;stroke-linecap:round}.dial-val{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;transition:d .3s}.dial-tick{stroke:var(--muted);stroke-width:1.2}.dial-num{font:600 7px var(--f-mono);fill:var(--muted);text-anchor:middle}.dial-limit{stroke:var(--s-crit);stroke-width:2.5;stroke-linecap:round}.dial-needle line{stroke:var(--fg);stroke-width:2.2;stroke-linecap:round}.dial-needle{transition:transform .3s cubic-bezier(.3,1.4,.5,1)}.dial-hub{fill:var(--fg)}.ks-lim{position:absolute;top:-2px;right:6px;width:24px;height:24px;padding:3px;border-radius:7px;display:grid;place-items:center;background:var(--sunk);border:1px solid var(--line);color:var(--accent);cursor:pointer}.ks-lim svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ks-lim.on{background:var(--accent);color:#fff;border-color:var(--accent)}.ks-pop{width:290px;padding:12px;display:grid;grid-gap:10px;gap:10px}.ks-pop-h{font-size:13px}.ks-pop .rng{display:grid;grid-gap:4px;gap:4px;font-size:12.5px}.ks-pop .rng span{display:flex;justify-content:space-between}.ks-pop .hint{margin:0;font-size:11.5px}.ks-map{font-size:12px;padding:6px 8px}.kpi.kpi-split:has(.ks-pop),.kpi.kpi-split:has(.lm-pop){z-index:9}.ks-big{display:flex;flex-direction:column;align-items:center;padding:4px 0 2px;border-bottom:1px solid var(--line)}.dial.big{width:190px;height:auto}.dial.big .dial-num{font-size:5px}.ks-pop{max-height:calc(100vh - 150px)}.ks-big b{font-size:22px;line-height:1.1}.ks-big small{font-size:12px;color:var(--muted)}.ks-tip{justify-content:space-between;gap:8px;width:100%;padding:7px 9px;font-size:12px;text-align:left;border-radius:9px;background:var(--accent-soft);border:1px solid var(--line);color:inherit;cursor:pointer}.ks-tip,.ks-tip i{display:flex;align-items:center}.ks-tip i{gap:2px;font-style:normal;font-weight:600;color:var(--accent);white-space:nowrap}.ks-tip svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}.ks-tip.open svg{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.dial-needle,.dial-val{transition:none}}@media (max-width:1240px){.kpi.kpi-split:nth-child(4){display:grid}}.dial-safe{stroke:var(--s-charge);stroke-width:2.5;stroke-linecap:round}.kpi .ic.th-btn{position:relative;border:0;cursor:pointer;padding:0}.kpi .ic.th-btn.on{box-shadow:inset 0 0 0 2px var(--accent)}.th-dot{position:absolute;right:4px;bottom:4px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 2px var(--solid)}.kpi-area:has(.th-pop){z-index:9}.th-pop{width:340px;padding:10px;display:grid;grid-gap:8px;gap:8px}.th-h{font-size:13px;padding:2px 4px}.th-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.th-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--solid);border-radius:10px;padding:5px 5px 6px;cursor:pointer;display:grid;grid-gap:4px;gap:4px;justify-items:center;font-size:11px;line-height:1.25;color:var(--fg);text-align:center}.th-item.sel,.th-item:hover{border-color:var(--accent)}.th-item.sel{box-shadow:0 0 0 2px var(--accent-soft)}.th-sw{width:100%;height:auto;display:block;border-radius:6px}.th-pop .hint{margin:0 4px}.kpi-wifi{position:relative;pointer-events:auto}.kpi-wifi .kpi-hit{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;z-index:1}.kpi-wifi.on,.kpi-wifi:hover{border-color:var(--accent)}.nx-mini{font-weight:500;color:var(--muted)}.net-dock{position:fixed;z-index:6;width:420px;max-width:calc(100vw - 32px);overflow:auto;padding:12px;background:var(--solid);animation:paDrop .15s ease-out}.net-dock.left{left:max(16px,env(safe-area-inset-left,0px))}.net-dock.right{right:max(16px,env(safe-area-inset-right,0px))}.net-dock .dock-hd{cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.net-dock.dragging{box-shadow:0 12px 32px rgba(0,0,0,.25);opacity:.96;animation:none}.net-dock.dragging .dock-hd{cursor:-webkit-grabbing;cursor:grabbing}.net-snap{position:fixed;z-index:5;width:420px;max-width:calc(100vw - 32px);bottom:calc(16px + env(safe-area-inset-bottom,0px));border:2px dashed var(--accent);border-radius:16px;background:var(--accent-soft);pointer-events:none}.net-snap.left{left:max(16px,env(safe-area-inset-left,0px))}.net-snap.right{right:max(16px,env(safe-area-inset-right,0px))}.nx-hd{align-items:center!important}.nx-hd b{flex:1 1}.nx-dock{display:flex;gap:4px;margin-left:6px}.nx-dock button{width:28px;height:28px;padding:0;display:grid;place-items:center;border-radius:8px;background:var(--sunk);border:1px solid var(--line);color:var(--muted);cursor:pointer}.nx-dock button.sel{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.nx-dock button:hover{color:var(--fg)}.nx-dock svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.nx{display:grid;grid-gap:12px;gap:12px;font-size:12.5px;align-content:start}.nx .bp-hd{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.nx .bp-hd small{color:var(--muted);font-size:11px}.nx-tips{padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:var(--sunk)}.nx-tips.warn{border-color:var(--s-charge)}.nx-tips.bad{border-color:var(--s-crit)}.nx-tips ul{margin:6px 0 0;padding-left:18px;display:grid;grid-gap:5px;gap:5px}.nx-tips li{line-height:1.45}.nx .v-ok{color:var(--s-load)}.nx .v-warn{color:var(--s-charge)}.nx .v-bad{color:var(--s-crit)}.nx-tips li.v-bad,.nx-tips li.v-warn{color:var(--fg)}.nx-tips li.v-warn::marker{color:var(--s-charge)}.nx-tips li.v-bad::marker{color:var(--s-crit)}.nx-sec{display:grid;grid-gap:6px;gap:6px;align-content:start;padding-top:10px;border-top:1px solid var(--line)}.nx-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.nx-h span{font-weight:600}.nx-h small{font-weight:400;color:var(--muted);font-size:11px}.nx-h b{font-size:14px;white-space:nowrap}.nx-sub{color:var(--muted);font-size:11.5px}.nx .bp-dl,.nx-sub{margin:0}.nx-how{justify-self:start;display:flex;align-items:center;gap:2px;padding:2px 6px;font-size:11.5px;font-weight:600;color:var(--accent);background:transparent;border:0;cursor:pointer}.nx-how svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}.nx-how.open svg{transform:rotate(180deg)}.nx .hint{margin:0;font-size:11.5px;line-height:1.5}.nx-tab{width:100%;border-collapse:collapse;font-size:11.5px;table-layout:fixed}.nx-tab th{text-align:left;font-weight:600;color:var(--muted);padding:3px 4px;border-bottom:1px solid var(--line)}.nx-tab td:nth-child(n+2),.nx-tab th:nth-child(n+2){text-align:right;width:68px}.nx-tab td:nth-child(4),.nx-tab th:nth-child(4){width:80px}.nx-tab td{padding:3px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nx-tab td:first-child{position:relative}.nx-bar{position:absolute;left:0;top:3px;bottom:3px;background:var(--accent-soft);border-radius:3px;z-index:-1}.nx-tab tbody{position:relative;z-index:0}.nx-spark svg{width:100%;height:64px;display:block}.nx-axis{stroke:var(--line);stroke-width:1}path.nx-l-robot,path.nx-l-web{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}path.nx-l-robot{stroke:#e8822e}path.nx-l-web{stroke:var(--accent)}.nx-leg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11px;color:var(--muted)}.nx-leg span{display:flex;align-items:center;gap:5px}.nx-leg i{display:inline-block;width:12px;height:3px;border-radius:2px}.nx-leg i.nx-l-robot{background:#e8822e}.nx-leg i.nx-l-web{background:var(--accent)}.nx-leg .mono{margin-left:auto}.q-tabs{display:flex;gap:4px;padding:3px;border-radius:10px;background:var(--sunk);margin-bottom:8px}.q-tabs button{flex:1 1;padding:6px 8px;font-size:12.5px;font-weight:600;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.q-tabs button.sel{background:var(--solid);color:var(--fg);box-shadow:0 1px 3px rgba(0,0,0,.12)}.sc{display:grid;grid-gap:10px;gap:10px;font-size:12px}.sc-verdict{margin:0;padding:8px 10px;border-radius:9px;font-weight:700;font-size:13px;border:1px solid var(--line)}.sc-verdict.ok{color:var(--s-load);border-color:var(--s-load)}.sc-verdict.bad{color:var(--s-crit);border-color:var(--s-crit)}.sc-verdict.wait{color:var(--muted)}.sc-err{margin:0;color:var(--s-crit);font-size:11.5px}.sc h5{margin:0 0 4px;font-size:12px;font-weight:700;color:var(--muted)}.sc ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px}.sc li{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:7px}.sc li>div{flex:1 1;min-width:0;display:grid;grid-gap:1px;gap:1px}.sc li code{font:600 11.5px var(--f-mono);overflow-wrap:anywhere}.sc li small{font-size:10.5px;color:var(--muted)}.sc li small.sc-what{color:var(--fg);opacity:.8}.sc li i{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:13px}.sc li.sc-ok i{color:#fff;background:var(--s-load)}.sc li.sc-bad{background:color-mix(in srgb,var(--s-crit) 9%,transparent)}.sc li.sc-bad code,.sc li.sc-bad small.sc-what{color:var(--s-crit);opacity:1}.sc li.sc-bad i{color:#fff;background:var(--s-crit)}.sc li.sc-opt i,.sc li.sc-wait i{color:var(--muted);background:var(--sunk)}.kpis:has(.wp-pop){z-index:8}.si{display:grid;grid-gap:10px;gap:10px;font-size:12px}.si-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted)}.si-hd button{padding:4px 10px;font-size:11.5px}.si h5{margin:2px 0 4px;font-size:12px;color:var(--muted)}.si dl{margin:0;display:grid}.si dl>div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 2px;border-bottom:1px solid var(--line)}.si dt{display:grid;grid-gap:1px;gap:1px;min-width:0}.si dt code{font-size:11.5px;overflow-wrap:anywhere}.si dt small{color:var(--muted);font-size:11px}.si dd{margin:0;text-align:right;white-space:nowrap;font-size:11.5px;max-width:45%;overflow:hidden;text-overflow:ellipsis}.si .hint{margin:0;font-size:11px}.ks-lidar{position:relative}.lm-btn{top:-2px;right:2px}.lm-pop{width:440px;max-width:calc(100vw - 32px);max-height:calc(100vh - 150px);right:0;left:auto;padding:12px}.lm{display:grid;grid-gap:10px;gap:10px;font-size:12px}.lm-hd{display:flex;align-items:center;gap:8px}.lm-hd b{flex:none}.lm-hd small{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lm-hd b{font-size:13px}.lm-hd small{color:var(--muted)}.lm-pics{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.lm-fit svg,.lm-pics>svg{width:100%;height:auto;aspect-ratio:1;display:block;border-radius:12px;background:var(--sunk);border:1px solid var(--line)}.lm-fv{font:700 12px var(--f-display);text-anchor:middle;fill:var(--muted)}.lm-fv.ok{fill:var(--s-load)}.lm-fv.mid{fill:var(--s-charge)}.lm-fv.bad{fill:var(--s-crit)}.lm-wl{font:500 7px var(--f-mono);fill:var(--muted)}.lm-wall{fill:var(--line)}.lm-dot{fill:#e5484d}.lm-dot.out{fill:none;stroke:#e5484d;stroke-width:1.2}.lm-band3{fill:var(--s-load);opacity:.13}.lm-crit{display:grid;grid-gap:6px;gap:6px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--sunk)}.lm-crit p{margin:0;font-size:11px}.lm-crit table{width:100%;border-collapse:collapse;font-size:11px}.lm-crit th{text-align:left;font-weight:600;color:var(--muted);padding:2px 4px;border-bottom:1px solid var(--line)}.lm-crit td{padding:3px 4px}.lm-crit tr.on td{font-weight:700;background:var(--accent-soft)}.lm-fs{font:600 7.5px var(--f-mono);fill:var(--fg)}.lm-fs,.lm-fs2{text-anchor:middle}.lm-fs2{font:500 6.5px var(--f-mono);fill:var(--muted)}.lm-top{display:block}.lm-ring{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:3 3}.lm-rt{font:600 8px var(--f-mono);fill:var(--muted)}.lm-axis{stroke:var(--line);stroke-width:.6}.lm-pts{fill:none;stroke:#e5484d;stroke-width:2.6;stroke-linecap:round}.lm-robot{fill:var(--accent)}.lm-kv{display:grid;grid-template-columns:1fr 1fr;grid-gap:4px 14px;gap:4px 14px}.lm-kv small{grid-column:1/-1}.lm-kv div{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.lm-kv span{color:var(--muted)}.lm-kv b{font-size:15px}.lm-kv small{color:var(--muted);font-size:10.5px}.lm-count{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.lm-count div{display:grid;grid-gap:1px;gap:1px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--sunk)}.lm-count span{color:var(--muted);font-size:11.5px}.lm-count b{font-size:20px;line-height:1.15}.lm-count small{color:var(--muted)}.lm-ok b{color:var(--s-load)}.lm-bad b{color:var(--fg)}.lm-bad.hi{border-color:var(--s-charge)}.lm-bad.hi b{color:var(--s-charge)}.lm-sub{margin:0;color:var(--muted);font-size:11px}.lm-bands{display:grid;grid-gap:6px;gap:6px}.lm-bt{font-weight:600}.lm-band{display:grid;grid-template-columns:56px 1fr 96px;grid-gap:8px;gap:8px;align-items:center}.lm-band i{display:block;height:10px;border-radius:5px;background:var(--sunk);border:1px solid var(--line);overflow:hidden}.lm-band em{display:block;height:100%;background:var(--accent);border-radius:5px;transition:width .2s}.lm-band b{text-align:right;font-size:11.5px;font-weight:600}.lm .hint{margin:0;font-size:11px;line-height:1.5}.qa-top{display:grid;grid-gap:4px;gap:4px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--sunk)}.qa-cap{font-size:11px;letter-spacing:.06em;color:var(--muted)}.qa-score{display:flex;align-items:baseline;gap:6px}.qa-score b{font-size:28px;line-height:1.1}.qa-score span{font-size:15px;color:var(--muted)}.qa-grade{margin-left:auto;font-style:normal;font-weight:700;font-size:12px;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,currentColor 14%,transparent)}.qa-bar{height:8px;background:color-mix(in srgb,var(--line) 70%,transparent);overflow:hidden}.qa-bar,.qa-bar em{display:block;border-radius:4px}.qa-bar em{height:100%;background:var(--line);transition:width .3s}.qa-top small{font-size:11px;color:var(--muted)}.qa-h{margin:12px 0 6px;font-size:13px}.qa-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:9px;gap:9px}.qa-list li{display:grid;grid-gap:3px;gap:3px}.qa-list li>div{display:flex;justify-content:space-between;gap:8px}.qa-list li b,.qa-list li>div{font-size:12.5px}.qa-list li small{font-size:10.5px;color:var(--muted)}.lm-fit-btn{position:relative;padding:0;border:0;background:none;cursor:zoom-in;display:block;width:100%}.lm-fit-btn:hover .lm-fit svg{border-color:var(--accent)}.lm-zoom-ic{position:absolute;top:6px;right:8px;font-size:13px;color:var(--muted)}.lm-zoom-back{position:fixed;inset:0;z-index:30;background:#0b102066;display:grid;place-items:center;padding:16px}.lm-zoom{width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:14px;display:grid;grid-gap:10px;gap:10px;background:var(--solid);font-size:12.5px}.lm-zoom-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}.lm-zoom-hd b{font-size:14px}.lm-zoom-hd button{width:30px;height:30px;padding:0;border-radius:8px}.lm-zoom .lm-fit svg{width:100%;height:auto;max-height:60vh}.lm-zoom .hint{margin:0;font-size:12px;line-height:1.55}.lm-verdict{margin:0;font:700 22px var(--f-display);text-align:center}.lm-verdict.ok{color:var(--s-load)}.lm-verdict.mid{color:var(--s-charge)}.lm-verdict.bad{color:var(--s-crit)}.lm-metrics{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.lm-metrics div{display:grid;grid-gap:2px;gap:2px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--sunk)}.lm-metrics span{font-size:12px;color:var(--muted);font-weight:600}.lm-metrics b{font-size:22px;line-height:1.15}.lm-metrics small{font-size:11.5px;color:var(--muted);line-height:1.4}.lm-sum{margin:0;font-size:13px;font-weight:600}.qa-more{display:grid;grid-template-columns:1fr 1fr;grid-gap:2px 12px;gap:2px 12px;margin:4px 0 0;font-size:11.5px}.qa-more div{display:flex;justify-content:space-between;gap:6px;border-bottom:1px dashed var(--line);padding:2px 0}.qa-more dt{color:var(--muted)}.qa-more dd{margin:0;font-weight:600}.qa-note{display:block;margin-top:4px;line-height:1.45}.kpi-area .kpi-hit{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer;z-index:1}.kpi-area{position:relative}.kpi-area.on{box-shadow:0 0 0 2px var(--accent)}.net-dock:has(.fp){width:620px}.fp{display:grid;grid-gap:8px;gap:8px;font-size:12px}.fp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.fp-bar span{flex:1 1;min-width:0;font-weight:600}.fp-bar label{display:flex;align-items:center;gap:4px;cursor:pointer}.fp-bar button{padding:5px 10px;font-size:12px}.fp-svg{width:100%;height:auto;max-height:calc(100vh - 300px);display:block;border-radius:8px;border:1px solid var(--line);background:#f6f8fb}.fp-dim{fill:#1d3f9e}.fp-dim text{stroke:none}.fp-dim.strong{stroke-width:1.4}.fp-legend{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:11.5px}.fp-legend span{display:flex;align-items:center;gap:5px}.fp-k{display:inline-block;width:18px;height:0;border-top:3px solid #0f1b33}.fp-k.open{border-top:2px dashed #d9480f}.fp-k.obst{height:10px;border:1px solid #1b2a4a;background:repeating-linear-gradient(45deg,#1b2a4a 0 1px,transparent 1px 4px)}.fp-k.start{width:10px;height:10px;border:2px solid #2f9e44;border-radius:50%}.fp-k.robot{width:10px;height:10px;border:0;background:#e03131;border-radius:50%}.fp-wrap{position:relative}.fp-svg{touch-action:none;cursor:zoom-in}.fp-svg.zoomed{cursor:-webkit-grab;cursor:grab}.fp-svg.zoomed:active{cursor:-webkit-grabbing;cursor:grabbing}.fp-zoom{position:absolute;right:8px;top:8px;display:flex;align-items:center;gap:4px;padding:3px;border-radius:9px;background:color-mix(in srgb,var(--solid) 88%,transparent);box-shadow:0 1px 4px rgba(0,0,0,.15)}.fp-zoom button{width:28px;height:28px;padding:0;font-size:16px;line-height:1;display:grid;place-items:center}.fp-zoom span{min-width:42px;text-align:center;font-size:11px;color:var(--muted)}.fp-svg,.fp-svg text{-moz-user-select:none;user-select:none;-webkit-user-select:none}.fp-zoom button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.fp-wrap:-webkit-full-screen{background:#f6f8fb;display:grid;place-items:center;padding:12px}.fp-wrap:fullscreen{background:#f6f8fb;display:grid;place-items:center;padding:12px}.fp-wrap:-webkit-full-screen .fp-svg{width:100%;height:100%;max-height:none;border:0}.fp-wrap:fullscreen .fp-svg{width:100%;height:100%;max-height:none;border:0}.fp-wrap:-webkit-full-screen .fp-zoom{right:16px;top:16px}.fp-wrap:fullscreen .fp-zoom{right:16px;top:16px}.fp-bar button.on{border-color:#c2410c;color:#c2410c;background:color-mix(in srgb,#c2410c 8%,var(--solid))}.fp-edit{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:6px 8px;border-radius:10px;border:1px solid color-mix(in srgb,#c2410c 40%,var(--line));background:color-mix(in srgb,#c2410c 5%,var(--solid))}.fp-edit button{padding:5px 10px;font-size:12px}.fp-edit button.sel{border-color:#c2410c;background:#c2410c;color:#fff}.fp-edit small{flex-basis:100%;color:var(--muted);font-size:11.5px}.fp-svg.edit.draw{cursor:crosshair}.fp-svg.edit.erase{cursor:pointer}.fp-k.edited{border-top:3px solid #c2410c}.fp-file{gap:6px}.fp-file button{padding:5px 10px;font-size:12px}.fp-img{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px 12px;gap:6px 12px;padding:8px 10px;border-radius:10px;border:1px solid var(--line)}.fp-img .rng{margin:0;font-size:11.5px}.fp-img-btns{grid-column:1/-1;display:flex;gap:6px}.fp-img-btns button{padding:5px 10px;font-size:12px}.fp-img-btns button.sel{border-color:#c2410c;background:#c2410c;color:#fff}.fp-svg.edit.image{cursor:move}.cv{display:grid;grid-gap:10px;gap:10px;margin:4px 0 10px;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--solid);font-size:12px}.cv-styles{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:6px;gap:6px}.cv-styles button{display:grid;grid-gap:3px;gap:3px;justify-items:start;text-align:left;padding:7px;border-radius:9px;font-size:11.5px;line-height:1.3}.cv-styles button.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.cv-styles small{color:var(--muted);font-size:10.5px}.cv-prev{display:flex;width:100%;height:16px;border-radius:4px;overflow:hidden;border:1px solid var(--line);background:#fff}.cv-prev span{flex:1 1}.cv-legend{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.cv-legend li{display:grid;grid-template-columns:22px 58px 1fr;grid-gap:6px;gap:6px;align-items:center;line-height:1.35}.cv-legend i{display:block;width:22px;height:14px;border-radius:3px;border:1px solid var(--line);background-color:#fff}.cv-legend i.cv-free{background:#fff}.cv-legend span{color:var(--muted)}.cv-help summary{cursor:pointer;font-weight:600}.cv-help p{margin:6px 0 0;line-height:1.5;color:var(--muted)}.kpi-estop{position:relative;padding-right:66px;grid-template-columns:1fr}.kpi-estop>.ic{display:none}.kpi-estop.stopped{border-color:var(--s-crit);box-shadow:0 0 0 2px color-mix(in srgb,var(--s-crit) 35%,transparent)}.kpi-estop.stopped>small{color:var(--s-crit);font-weight:600}.estop-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:52px;height:52px;padding:0;border-radius:50%;display:grid;place-content:center;grid-gap:0;gap:0;background:radial-gradient(circle at 35% 30%,#ff6b6b,#d61f1f 60%,#a90f0f);color:#fff;border:3px solid #ffd43b;box-shadow:0 2px 6px rgba(0,0,0,.25),inset 0 -3px 0 rgba(0,0,0,.2);cursor:pointer;line-height:1.05;z-index:2}.estop-btn b{font:800 13px var(--f-display,inherit);letter-spacing:.04em}.kpi-estop .estop-btn small{font-size:10px;font-weight:600;opacity:.95;color:#fff}.estop-btn:hover{filter:brightness(1.08)}.estop-btn:active{transform:translateY(-50%) scale(.95)}.estop-btn.on{background:radial-gradient(circle at 35% 30%,#69db7c,#2f9e44 60%,#237032);border-color:#fff;animation:estopPulse 1.2s ease-in-out infinite}@keyframes estopPulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--s-crit) 30%,transparent),inset 0 -3px 0 rgba(0,0,0,.2)}}.am-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px;margin:0}.am-stats div{padding:6px 8px;border-radius:8px;border:1px solid var(--line)}.am-stats dt{font-size:10.5px;color:var(--muted)}.am-stats dd{margin:2px 0 0;font-size:14px;font-weight:700}.am-verdict{margin:0;line-height:1.45}.estop-float{position:fixed;z-index:20;display:flex;align-items:center;gap:12px;padding:10px 16px 10px 8px;background:var(--solid);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;box-shadow:0 8px 24px rgba(0,0,0,.18);border:2px solid #ffd43b}.estop-float:active{cursor:-webkit-grabbing;cursor:grabbing}.estop-float.stopped{border-color:var(--s-crit)}.estop-float .ef-btn{position:static;transform:none;width:72px;height:72px;flex:none}.estop-float .ef-btn:active{transform:scale(.95)}.estop-float .ef-btn b{font-size:17px}.estop-float .ef-btn small{font-size:12px;color:#fff}.ef-grip{color:var(--muted);font-size:14px;letter-spacing:-2px;writing-mode:vertical-rl}.ef-txt{display:grid;grid-gap:2px;gap:2px;line-height:1.3}.ef-txt b{font-size:14px}.ef-txt small{font-size:12px;color:var(--muted)}.estop-float.stopped .ef-txt b{color:var(--s-crit)}.ef-hint{font-size:10.5px!important;opacity:.8}.cv-legend li.cv-color{grid-template-columns:auto 1fr;gap:10px;margin-top:4px}.cv-sw{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cv-sw button{width:20px;height:20px;padding:0;border-radius:50%;border:2px solid var(--solid);box-shadow:0 0 0 1px var(--line);cursor:pointer}.cv-sw button.sel{box-shadow:0 0 0 2px var(--accent)}.cv-pick{position:relative;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#f33,#fc3,#3c6,#3cf,#36f,#c3f,#f33);color:#fff;font:700 13px var(--f-mono);text-shadow:0 1px 2px #0008;cursor:pointer}.cv-pick input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.cv-fills{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:4px;gap:4px}.cv-fills button{display:grid;grid-gap:2px;gap:2px;justify-items:center;padding:3px 2px;border-radius:7px;font-size:10px}.cv-fills button.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.cv-fills i{display:block;width:100%;height:18px;border-radius:4px;border:1px solid var(--line)}.cv-fills small{font-size:10px;color:var(--muted)}.cv-w{display:flex;align-items:center;gap:8px;margin:0}.cv-w input{flex:1 1}.cv-w output{min-width:40px;font-size:11.5px}.cv-two{display:grid;grid-gap:8px;gap:8px}.cv-two-note{margin:0;font-size:11.5px;line-height:1.45;color:var(--muted)}.cv-line{display:grid;grid-gap:6px;gap:6px;padding:8px;border-radius:9px;border:1px solid var(--line)}.cv-line-h{display:flex;align-items:center;gap:6px;font-size:12px}.cv-line-h svg{width:34px;height:8px}.cv-row{display:grid;grid-template-columns:84px 1fr;grid-gap:8px;gap:8px;align-items:center;font-size:11.5px}.cv-row>span:first-child{color:var(--muted)}.cv-dashes{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:4px;gap:4px}.cv-dashes button{display:grid;grid-gap:1px;gap:1px;justify-items:center;padding:4px 2px;border-radius:7px}.cv-dashes button.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.cv-dashes svg{width:100%;height:8px}.cv-dashes small{font-size:9.5px;color:var(--muted)}.dyaml{height:24px;padding:0 6px;margin-right:2px;border-radius:6px;font:700 10px var(--f-mono);letter-spacing:.03em;color:var(--muted);background:transparent;border:1px solid var(--line);cursor:pointer}.dyaml:hover{color:var(--accent)}.dyaml.on,.dyaml:hover{border-color:var(--accent)}.dyaml.on{color:#fff;background:var(--accent)}.disp.hasgear:has(.dyaml){grid-template-columns:auto 12px 1fr auto auto;gap:6px}.cy{position:fixed;z-index:40;width:520px;max-width:calc(100vw - 24px);max-height:calc(100vh - 100px);flex-direction:column;gap:8px;padding:0 0 10px;background:var(--solid);box-shadow:0 14px 40px rgba(0,0,0,.25)}.cy,.cy-hd{display:flex}.cy-hd{align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none}.cy-hd:active{cursor:-webkit-grabbing;cursor:grabbing}.cy-hd small{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:11px}.cy-x{width:28px;height:28px;padding:0;font-size:18px;line-height:1}.cy-note{margin:0 12px;font-size:11.5px}.cy-list{overflow:auto;display:grid;grid-gap:4px;gap:4px;padding:0 12px}.cy-row{display:grid;grid-template-columns:1fr 170px;grid-gap:10px;gap:10px;align-items:center;padding:5px 6px;border-radius:8px;border:1px solid transparent}.cy-row.ch{border-color:var(--accent);background:var(--accent-soft)}.cy-row.bad{border-color:var(--s-crit)}.cy-k{display:grid;grid-gap:1px;gap:1px;min-width:0}.cy-k b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis}.cy-k small{font-size:10.5px;color:var(--muted);line-height:1.3}.cy-row input:not([type]),.cy-row input[type=text]{width:100%;padding:4px 6px;font-size:12px}.cy-row input[type=checkbox]{justify-self:start}.cy-err,.cy-ok{margin:0 12px;font-size:12px;line-height:1.4}.cy-ok{color:var(--s-load)}.cy-err{color:var(--s-crit)}.cy-ft{display:flex;gap:6px;align-items:center;padding:0 12px;flex-wrap:wrap;justify-content:flex-start}.cy-ft .sp{flex:1 0 100%;height:0}.cy-ft .sp+button{margin-left:auto}.cy-ft button{padding:6px 10px;font-size:12px}.cy-apply{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.cy-apply:disabled{opacity:.5}.cy-prev{border:1px solid var(--accent);color:var(--accent);background:transparent}.cy-prev.on,.cy-prev.on:disabled{background:var(--accent-soft);color:var(--accent);opacity:1;cursor:default}.cy-prev.stale{background:var(--accent);color:#fff}.cy-prev-note{margin:6px 14px 0;padding:6px 8px;border-radius:7px;font-size:12px;background:var(--accent-soft);color:var(--accent)}.cy-inv{display:flex;align-items:center;gap:8px;margin:8px 14px 0;padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;cursor:pointer}.cy-inv input{accent-color:#2f9e44;width:16px;height:16px}.cy-inv span{color:var(--muted)}.cy-inv:has(input:checked){border-color:#2f9e44;background:rgba(47,158,68,.08)}.disp.navonly{opacity:.45}.disp.navonly button{pointer-events:none}.mapping-note{padding:10px 12px;font-size:12.5px}.nx-wifi{width:30px;height:30px;padding:0;margin-left:auto;margin-right:4px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}.nx-wifi svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.nx-wifi svg circle{fill:currentColor;stroke:none}.nx-wifi:hover{color:var(--accent);border-color:var(--accent)}.nx-wifi.on{color:#fff;background:#2f9e44;border-color:#2f9e44}.nx-wmap{margin:8px 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px}.nx-wmap-hd{display:flex;align-items:baseline;gap:8px;font-size:13px}.nx-wmap-hd small{color:var(--muted);flex:1 1}.nx-wmap-clr{padding:2px 8px;font-size:11.5px}.nx-wmap-legend{display:flex;gap:3px;margin-top:6px}.nx-wmap-legend span{flex:1 1;text-align:center;font-size:10.5px;color:#fff;padding:3px 2px;border-radius:4px;text-shadow:0 1px 1px #0005;white-space:nowrap}.net-dock.below{z-index:9}.vp{position:fixed;inset:0;overflow:auto;background:var(--bg);color:var(--ink)}.vp-top{max-width:1180px;margin:0 auto;padding:22px 20px 6px}.vp-back{font-size:13px;color:var(--muted);text-decoration:none}.vp-back:hover{color:var(--accent)}.vp-title h1{font-size:26px;margin:10px 0 4px;letter-spacing:-.01em}.vp-title p{margin:0;color:var(--muted);font-size:14px;max-width:760px;line-height:1.55}.vp-body{max-width:1180px;margin:0 auto;padding:16px 20px 40px}.vp-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);width:100%;padding:0;text-align:left;cursor:pointer;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--card);color:inherit;font:inherit;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:box-shadow .2s,border-color .2s,transform .2s}.vp-hero+.vp-hero{margin-top:18px}.vp-hero:hover{border-color:var(--accent);box-shadow:0 12px 32px rgba(28,60,120,.14);transform:translateY(-2px)}.vp-hero:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.vp-pic{position:relative;background:linear-gradient(160deg,#fbf7ef,#efe6d6);display:flex;align-items:center;justify-content:center}.vp-pic img{display:block;width:100%;height:auto;mix-blend-mode:multiply}.vp-badge{position:absolute;left:16px;top:16px;background:#2b8a3e;color:#fff;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px}.vp-info{display:flex;flex-direction:column;gap:10px;padding:26px 26px 24px;border-left:1px solid var(--line)}.vp-kicker{color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.vp-info h2{margin:0;font-size:24px}.vp-info p{margin:0;color:var(--muted);font-size:14px;line-height:1.55}.vp-facts{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin:4px 0}.vp-facts div{border:1px solid var(--line);border-radius:12px;padding:8px 10px}.vp-facts dt{font-size:11.5px;color:var(--muted)}.vp-facts dd{margin:2px 0 0;font-size:17px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.vp-list{margin:0;padding-left:18px;font-size:13px;line-height:1.6;color:var(--muted)}.vp-go{margin-top:auto;align-self:flex-start;background:var(--accent);color:#fff;font-size:14px;padding:10px 18px;border-radius:10px}.vp-go,.vp-sec{font-weight:600}.vp-sec{font-size:13px;color:var(--muted);margin:28px 0 10px}.vp-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:12px;gap:12px}.vp-soon{display:flex;gap:14px;align-items:center;padding:14px;border:1px dashed var(--line);border-radius:14px;color:var(--muted)}.vp-soon svg{width:84px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;opacity:.6}.vp-soon div{display:flex;flex-direction:column;gap:3px}.vp-soon b{color:var(--ink);font-size:15px}.vp-soon span{font-size:12.5px;line-height:1.45}.vp-soon small{font-size:12px}@media (max-width:860px){.vp-hero{grid-template-columns:1fr}.vp-info{border-left:0;border-top:1px solid var(--line)}.vp-title h1{font-size:22px}}.kpi.lidar-alarm{animation:lidarBlink 1s ease-in-out infinite}@keyframes lidarBlink{50%{background:color-mix(in srgb,var(--s-crit) 32%,var(--solid));border-color:var(--s-crit);box-shadow:0 0 0 3px color-mix(in srgb,var(--s-crit) 35%,transparent)}}.kpi.lidar-alarm .ks-lidar b,.kpi.lidar-alarm .ks-lidar small{color:var(--s-crit)!important}.lz-veil{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:rgba(10,14,26,.45);padding:16px}.lz-dlg{max-width:380px;width:100%;padding:22px 22px 18px;text-align:center;background:var(--solid);border:2px solid var(--s-crit);box-shadow:0 18px 48px rgba(0,0,0,.35)}.lz-dlg h3{margin:8px 0 6px;font-size:20px;color:var(--s-crit)}.lz-dlg p{margin:6px 0;font-size:14px;line-height:1.5}.lz-dlg button{margin-top:12px;min-width:120px;height:38px;border:0;border-radius:8px;font-weight:700;cursor:pointer}.lz-dlg button,.lz-ic{background:var(--s-crit);color:#fff}.lz-ic{width:46px;height:46px;margin:0 auto;border-radius:50%;font:800 28px/46px system-ui,sans-serif;animation:pulse 1s ease-in-out infinite}.bp-dl dd.nx-out{grid-column:1/-1;text-align:left;margin:-2px 0 4px}.nx-out ol{margin:0;padding:6px 8px;list-style:none;display:grid;grid-gap:3px;gap:3px;max-height:150px;overflow:auto;border-radius:8px;background:color-mix(in srgb,var(--s-crit) 7%,transparent);border-left:3px solid var(--s-crit)}.nx-out li{font:500 11px var(--f-mono);color:var(--ink)}.nx-out li.bad{color:var(--s-crit);font-weight:700}.nx-out-more{margin:4px 0 0;padding:2px 8px;font:600 11px var(--f-ui,system-ui);color:var(--s-crit);background:none;border:1px solid color-mix(in srgb,var(--s-crit) 40%,transparent);border-radius:999px;cursor:pointer}.nx-out-more:hover{background:color-mix(in srgb,var(--s-crit) 10%,transparent)}.cls-page{min-height:100vh;background:var(--sunk);color:var(--fg);padding:24px 16px;flex-direction:column;gap:14px}.cls-brand,.cls-page{display:flex;align-items:center}.cls-brand{gap:10px}.cls-brand b{font-size:18px}.cls-brand small{color:var(--muted)}.cls-logo{width:34px;height:34px;border-radius:10px;background:var(--accent);color:#fff;display:grid;place-items:center;font:800 13px system-ui,sans-serif}.cls-join{width:100%;max-width:420px;padding:22px;gap:14px}.cls-join,.cls-join form{display:flex;flex-direction:column}.cls-join form{gap:12px}.cls-join label{display:flex;flex-direction:column;gap:6px;font-weight:600}.cls-join input{height:46px;font-size:18px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--solid);color:var(--fg)}.cls-join input.cls-code{font:700 28px var(--f-mono,ui-monospace,monospace);letter-spacing:.3em;text-align:center}.cls-join small{color:var(--muted)}.cls-go{height:46px;border:0;border-radius:10px;background:var(--accent);color:#fff;font-weight:700;font-size:16px;cursor:pointer;padding:0 18px}.cls-go:disabled{opacity:.5;cursor:default}.cls-ghost{height:32px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--fg);padding:0 12px;cursor:pointer}.cls-wait{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:10px 0}.cls-wait b{font-size:22px}.cls-wait p{margin:0;color:var(--muted)}.cls-spin{width:42px;height:42px;border-radius:50%;border:4px solid var(--accent-soft);border-top-color:var(--accent);animation:clsSpin 1s linear infinite}@keyframes clsSpin{to{transform:rotate(1turn)}}.cls-robot{width:56px;height:56px;border-radius:50%;box-shadow:0 0 0 6px color-mix(in srgb,currentColor 0%,var(--accent-soft))}.cls-err{color:var(--s-crit);font-weight:600;margin:0}.cls-warn{margin:0;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--s-charge) 14%,transparent);font-size:13px}.cls-st{font-size:12px;color:var(--muted);margin:0}.cls-st.open{color:var(--s-load)}.cls-st.down{color:var(--s-crit)}.cls-muted{color:var(--muted);font-size:13px;margin:0}.cls-teacher{align-items:stretch;max-width:1280px;margin:0 auto;width:100%}.cls-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 16px}.cls-head .cls-st{flex:1 1}.cls-stopall{height:48px;padding:0 26px;border:0;border-radius:12px;background:var(--s-crit);color:#fff;font:800 18px system-ui,sans-serif;cursor:pointer;box-shadow:0 6px 18px color-mix(in srgb,var(--s-crit) 40%,transparent)}.cls-stopall.on{background:var(--s-load)}.cls-box{padding:18px;display:flex;flex-direction:column;gap:10px;max-width:520px}.cls-box p{margin:0;color:var(--muted)}.cls-row{display:flex;gap:10px;align-items:center}.cls-row input{height:40px;border-radius:9px;border:1px solid var(--line);padding:0 10px;background:var(--solid);color:var(--fg);font-size:16px;width:120px}.cls-main{display:grid;grid-template-columns:minmax(220px,280px) 1fr;grid-gap:14px;gap:14px;align-items:start}.cls-code-card{padding:16px;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;grid-row:span 2}.cls-code-card small{color:var(--muted)}.cls-bigcode{font:800 64px/1 var(--f-mono,ui-monospace,monospace);letter-spacing:.12em;color:var(--accent)}.cls-url{font-size:12px;word-break:break-all;padding:6px 8px;border-radius:8px;background:var(--sunk)}.cls-waiting{padding:14px;display:flex;flex-direction:column;gap:10px}.cls-sec-h{justify-content:space-between;gap:10px;flex-wrap:wrap}.cls-sec-h,.cls-sec-h label{display:flex;align-items:center}.cls-sec-h label{gap:8px;font-size:13px;white-space:nowrap}.cls-sec-h b{margin-right:auto}.cls-groups{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.cls-chip{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 12px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--line);cursor:-webkit-grab;cursor:grab;font-weight:700}.cls-chip.off{opacity:.55}.cls-chip select,.cls-rc-g select,.cls-sec-h select{height:28px;border-radius:7px;border:1px solid var(--line);background:var(--solid);color:var(--fg)}.cls-x{width:26px;height:26px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:16px}.cls-robots{grid-column:2;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:12px;gap:12px}.cls-robot-card{padding:12px;display:flex;flex-direction:column;gap:8px;border-top:6px solid var(--rc)}.cls-robot-card.drop{outline:2px dashed var(--accent);outline-offset:-4px}.cls-robot-card.off{opacity:.6}.cls-rc-h{display:flex;align-items:center;gap:8px}.cls-rc-h b{flex:1 1}.cls-dot{width:16px;height:16px;border-radius:50%;background:var(--rc);box-shadow:0 0 0 3px color-mix(in srgb,var(--rc) 25%,transparent)}.cls-stop1{height:28px;padding:0 10px;border:0;border-radius:7px;background:var(--s-crit);color:#fff;font-weight:700;cursor:pointer}.cls-rc-s{gap:4px 10px;font-size:11px;color:var(--muted)}.cls-rc-g,.cls-rc-s{display:flex;flex-wrap:wrap}.cls-rc-g{align-items:center;gap:6px;padding:8px;border-radius:10px;background:color-mix(in srgb,var(--rc) 12%,transparent)}.cls-rc-g b{width:100%}.cls-rc-g.off b{opacity:.6}.cls-rc-g small{width:100%;color:var(--s-crit)}.cls-rc-empty{padding:16px 8px;text-align:center;border:2px dashed var(--line);border-radius:10px;color:var(--muted);font-size:13px}.cls-roles{grid-column:1/-1}@media (max-width:760px){.cls-main{grid-template-columns:1fr}.cls-robots{grid-column:1}.cls-code-card{grid-row:auto}.cls-bigcode{font-size:48px}}.clsbar{position:fixed;z-index:40;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:8px 10px 8px 12px;border-radius:14px;background:var(--solid);border:2px solid var(--rc);box-shadow:0 8px 24px var(--shadow);max-width:calc(100vw - 32px)}.clsbar-dot{width:30px;height:30px;border-radius:50%;background:var(--rc);flex:none}.clsbar-t{display:flex;flex-direction:column;line-height:1.2;min-width:0}.clsbar-t b{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clsbar-st,.clsbar-t small{color:var(--muted)}.clsbar-st{font-size:11px}.clsbar-st.open{color:var(--s-load)}.clsbar-st.down{color:var(--s-crit);font-weight:700}.clsbar button{height:30px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--fg);padding:0 10px;cursor:pointer}.clsstop{position:fixed;z-index:45;left:0;right:0;top:0;padding:14px 16px;text-align:center;background:var(--s-crit);color:#fff;font:800 18px system-ui,sans-serif;box-shadow:0 6px 20px rgba(0,0,0,.25)}.clsnote{position:fixed;z-index:46;left:50%;transform:translateX(-50%);bottom:92px;padding:10px 16px;border-radius:12px;background:var(--fg);color:var(--solid);font-weight:600;max-width:calc(100vw - 32px)}@media (max-width:640px){.clsbar{bottom:12px}.clsbar-st{display:none}}.ts-wrap{position:fixed;top:0;bottom:0;left:0;right:var(--side-w,350px);display:grid;place-items:center;z-index:7;pointer-events:none;padding:clamp(24px,22vh,176px) 16px 16px}.ts{pointer-events:auto;position:relative;isolation:isolate;width:min(560px,100%);padding:0 14px 14px;animation:ts-in .3s cubic-bezier(.2,.9,.3,1.2)}.ts:before{content:"";position:absolute;inset:clamp(26px,9%,50px) 0 0;z-index:-1;border-radius:34px 34px 44px 44px;background:linear-gradient(180deg,color-mix(in srgb,var(--body) 90%,#fff) 0,var(--body) 35%,color-mix(in srgb,var(--body) 70%,#000) 100%);box-shadow:0 26px 60px #0b123066,inset 0 2px 0 #ffffff40}.ts-head{display:block;width:100%;height:auto}.ts-lid,.ts-pupil{transform-box:fill-box;transform-origin:center}.ts-lid{transition:transform .09s ease-in}.ts-pupil{transition:transform .25s ease-out}.ts-panel{position:relative;margin-top:-2px;padding:6px 24px 26px;background:#07080b;border-radius:0 0 30px 30px;color:#fff;text-align:center}.ts-title{margin:0 0 4px;font:700 clamp(21px,3vw,29px)/1.3 var(--f-display);overflow-wrap:anywhere}.ts-count{margin:10px auto 0;max-width:420px;color:#c9d4f2;font-size:15px}.ts-count p{margin:0 0 8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ts-bar{height:6px;border-radius:99px;background:#ffffff1f;overflow:hidden}.ts-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffd23a,#ff8a3a);transition:width .2s linear}.ts-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:14px;gap:14px;margin-top:18px}.ts-btns button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;min-height:84px;padding:12px 16px;border-radius:18px;color:#fff;background:linear-gradient(180deg,color-mix(in srgb,var(--c) 86%,#fff),var(--c));box-shadow:0 6px 0 color-mix(in srgb,var(--c) 60%,#000),0 10px 22px #00000059;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:transform .08s,box-shadow .08s}.ts-btns button:hover{filter:brightness(1.07)}.ts-btns button:active{transform:translateY(5px);box-shadow:0 1px 0 color-mix(in srgb,var(--c) 60%,#000),0 4px 10px #00000059}.ts-btns button:focus-visible{outline:3px solid #fff;outline-offset:3px}.ts-lbl{font:700 20px/1.2 var(--f-display);overflow-wrap:anywhere}.ts-sub{font-size:13px;opacity:.85}@keyframes ts-in{0%{opacity:0;transform:scale(.92) translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ts{animation:none}.ts-pupil{transition:none}}@media (max-width:640px){.ts-wrap{right:0}.ts-panel{padding:4px 14px 18px}}.cls-venue{max-width:170px}.rc.compact{border-top:0;padding-top:0}.rc-demo{color:var(--muted)}.rc-run{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:grid;grid-template-columns:1fr auto;grid-gap:6px 10px;gap:6px 10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--solid);border:1px solid var(--line)}.rc-steps{display:flex;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.rc-steps span{padding:2px 8px;border-radius:99px;background:var(--sunk)}.rc-steps span.done{color:var(--s-load)}.rc-steps span.done:before{content:"✓ "}.rc-steps span.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.rc-bar{grid-column:1;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}.rc-bar i{display:block;height:100%;background:var(--accent);transition:width .2s linear}.rc-stop{grid-row:1/span 2;grid-column:2;min-width:72px}.rc-verdict{margin:0;padding:10px 12px;border-radius:10px;font:700 17px var(--f-display);text-align:center}.rc-verdict.ok{color:var(--s-load);background:color-mix(in srgb,var(--s-load) 13%,transparent)}.rc-verdict.warn{color:var(--s-charge);background:color-mix(in srgb,var(--s-charge) 14%,transparent)}.rc-verdict.bad{color:var(--s-crit);background:color-mix(in srgb,var(--s-crit) 13%,transparent)}.rc-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:5px;gap:5px;font-size:12.5px}.rc-list li{display:grid;grid-template-columns:1.4em 1fr;grid-gap:0 2px;gap:0 2px;align-items:baseline}.rc-list li b{font-weight:800}.rc-list li.ok b{color:var(--s-load)}.rc-list li.warn b{color:var(--s-charge)}.rc-list li.bad b{color:var(--s-crit)}.rc-list li small{grid-column:2;color:var(--muted);font-size:11.5px}.sm-ready{display:grid;grid-gap:8px;gap:8px;padding:10px;border-radius:12px;border:1px solid var(--line);background:var(--sunk)}.sm-ready-h{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:13px}.sm-ready-h b.ok{color:var(--s-load)}.sm-ready-h b.warn{color:var(--s-charge)}.sm-warn{display:grid;grid-gap:8px;gap:8px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--s-charge) 13%,transparent);font-size:13px}.sm-warn .btns{justify-content:flex-end}.rc-stop{background:var(--s-crit)!important;border-color:var(--s-crit)!important;color:#fff!important}.rc-gyro{background:var(--sunk)}.slamfix{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:5;padding:7px 14px;font:600 13px var(--f-mono);display:grid;justify-items:center;grid-gap:2px;gap:2px;pointer-events:auto;white-space:nowrap}.slamfix small{font:500 11.5px var(--f-body,inherit)}.slamfix.ok{color:var(--s-load)}.slamfix.warn{color:var(--s-charge)}.slamfix.bad{color:var(--s-crit);box-shadow:0 0 0 2px color-mix(in srgb,var(--s-crit) 40%,transparent)}.slipbox{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(120px + env(safe-area-inset-bottom,0px));z-index:6;display:grid;grid-gap:8px;gap:8px;width:min(460px,calc(100vw - 32px))}.slipbox .card{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;font-size:13px}.slipbox .card>span{display:grid;grid-gap:2px;gap:2px;flex:1 1 220px}.slipbox small{color:var(--muted);font-size:11.5px}.slip-alert{display:grid!important;border:2px solid var(--s-crit);background:color-mix(in srgb,var(--s-crit) 12%,var(--solid))!important}.slip-alert b{color:var(--s-crit);font:700 17px var(--f-display)}.slip-pause{border:1px solid var(--s-charge)}.slip-pause b{color:var(--s-charge)}.slip-fit.ok{color:var(--s-load)}.slip-fit.mid{color:var(--s-charge)}.slip-fit.bad{color:var(--s-crit)}.slip-bump{border:1px solid var(--s-charge)}.sl-bumper{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12.5px;padding:8px 10px;border-radius:10px;background:var(--sunk)}.sl-bumper b{font-size:13px;margin-right:auto}.sl-bumper label{display:flex;align-items:center;gap:4px;white-space:nowrap}.sl-bumper input{width:56px}.sl-bumper small{color:var(--s-charge)}.sl-bumper button{padding:4px 12px}.sl-bumper .sl-bumper-now{flex-basis:100%;color:var(--muted)}