:root{--bg:#f4f6f9;--panel:#fff;--panel-2:#f7f8fa;--line:#e1e5eb;--text:#1c2330;--muted:#667085;--accent:#2f6fed;--accent-soft:#e6eeff;--hot:#f97316;--good:#12805c;--good-soft:#e3f5ee;--bad:#d13438;--bad-soft:#fdeceb;--warn:#9a6700;--warn-soft:#fff5e0;--input:#fff;--shadow:0 6px 24px #1018281f;--radius:8px;--font:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--chart-bg:#fff;--chart-grid:#eceff3;--chart-axis:#c8ced8;--chart-ink:#667085;--ph-a:#2a78d6;--ph-b:#eb6834;--ph-c:#1baf7a;--ref:#8a93a3;--results-w:440px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#11151b;--panel:#171c24;--panel-2:#1c222c;--line:#2a313c;--text:#e4e9f0;--muted:#8e99a8;--accent:#5b8dff;--accent-soft:#1e2a45;--good:#3ccf91;--good-soft:#13291f;--bad:#ff6b6b;--bad-soft:#321a1b;--warn:#f2c14e;--warn-soft:#2f2615;--input:#11151b;--shadow:0 6px 24px #00000080;--chart-bg:#151a21;--chart-grid:#232a34;--chart-axis:#343d4a;--chart-ink:#8e99a8;--ph-a:#3987e5;--ph-b:#d95926;--ph-c:#199e70;--ref:#7d8796;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.4 var(--font);grid-template-columns:300px minmax(0, 1fr) 6px var(--results-w);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"tb tb tb tb""panel view split results";display:grid;overflow:hidden}button,input,select{font:inherit;color:inherit}#toolbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:5;flex-wrap:nowrap;grid-area:tb;align-items:center;gap:6px;padding:6px 10px;display:flex;overflow:hidden}.brand{letter-spacing:.2px;align-items:center;gap:8px;margin-right:4px;font-weight:700;display:flex}.logo{background:conic-gradient(from -30deg, var(--ph-a) 0 33.3%, var(--ph-b) 0 66.6%, var(--ph-c) 0);border-radius:50%;flex:none;width:18px;height:18px;position:relative}.logo:after{content:"";box-shadow:0 0 0 2px var(--panel);background:linear-gradient(90deg,#c8484e 0 50%,#4a6fc9 50%);border-radius:50%;position:absolute;inset:4px}.proj-name{background:0 0;border:1px solid #0000;border-radius:6px;flex:0 150px;width:150px;min-width:60px;padding:4px 6px;font-weight:500}.proj-name:hover,.proj-name:focus{border-color:var(--line);background:var(--input);outline:none}.tb-group{border-left:1px solid var(--line);gap:2px;padding:0 6px;display:flex}.tb{cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;padding:5px 9px}.tb:hover:not(:disabled){background:var(--panel-2);border-color:var(--line)}.tb:disabled{opacity:.4;cursor:default}.tb.icon-btn{justify-content:center;align-items:center;padding:5px 7px;display:inline-flex}.tb.icon-btn svg{width:17px;height:17px}.tb.primary{background:var(--accent);color:#fff;min-width:88px;font-weight:600}.tb.primary:hover{filter:brightness(1.08);background:var(--accent)}select.tb.nav{border-color:var(--line);background:var(--input);max-width:150px}.speed-wrap{align-items:center;gap:4px;display:flex}.speed-lbl{color:var(--muted);font-size:12px}.spacer{flex:1}.menu-wrap{position:relative}.menu{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;min-width:240px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.menu[hidden]{display:none}.menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:7px 10px}.menu button:hover{background:var(--accent-soft)}.menu hr{border:0;border-top:1px solid var(--line);width:100%;margin:4px 0}.run-state{white-space:nowrap;border-radius:99px;padding:3px 8px;font-size:12px;font-weight:600}.run-state:empty{display:none}.run-state.good{color:var(--good);background:var(--good-soft)}.run-state.bad{color:var(--bad);background:var(--bad-soft)}.run-state.warn{color:var(--warn);background:var(--warn-soft)}.run-state.idle{color:var(--muted);background:var(--panel-2)}.mobile-only{display:none}#panel,#results{background:var(--panel);overscroll-behavior:contain;min-height:0;overflow-y:auto}#panel{border-right:1px solid var(--line);grid-area:panel}#results{border-left:1px solid var(--line);flex-direction:column;grid-area:results;gap:10px;padding:10px 12px 20px;display:flex}#splitter{cursor:col-resize;background:var(--panel);border-left:1px solid var(--line);grid-area:split;position:relative}#splitter:after{content:"";border-left:1px solid var(--line);border-right:1px solid var(--line);width:3px;height:34px;margin-top:-17px;position:absolute;top:50%;left:1px}#splitter:hover,#splitter.drag{background:var(--accent-soft)}.panel-h{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);align-items:center;gap:8px;margin:4px 0 0;font-size:12px;font-weight:600;display:flex}.panel-h .grow{flex:1}.section{border-bottom:1px solid var(--line)}.section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 14px;font-weight:600;list-style:none;display:flex}.section>summary::-webkit-details-marker{display:none}.section>summary:before{content:"▸";color:var(--muted);width:10px;transition:transform .15s;display:inline-block}.section[open]>summary:before{transform:rotate(90deg)}.section>summary .badge{color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:99px;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:600}.section>summary .badge.bad{color:var(--bad);background:var(--bad-soft);border-color:#0000}.section>summary .badge.warn{color:var(--warn);background:var(--warn-soft);border-color:#0000}.sbody{flex-direction:column;gap:8px;padding:0 14px 14px;display:flex}.sub{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-top:2px;font-size:11px}.hint{color:var(--muted);font-size:12px}.neg{color:var(--bad)}.pos{color:var(--good)}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field[hidden],.check[hidden]{display:none!important}.field .lbl{color:var(--muted);font-size:11.5px}.field .ctl{align-items:center;gap:6px;min-width:0;display:flex}.field .unit{color:var(--muted);white-space:nowrap;font-size:11.5px}.field input[type=number],.field input[type=text],.field select{border:1px solid var(--line);background:var(--input);border-radius:6px;width:100%;min-width:0;padding:5px 7px}.field input:focus,.field select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field input[type=range]{accent-color:var(--accent);flex:1;min-width:0}.check{cursor:pointer;align-items:center;gap:7px;display:flex}.check input{accent-color:var(--accent);margin:0}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.grid2.checks{gap:6px 8px}.row{align-items:center;display:flex}.row.gap{gap:6px}.row.wrap{flex-wrap:wrap}.seg-row{gap:4px}.seg{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:2px;display:flex}.seg button{cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:5px;flex:1;padding:5px 6px}.seg button.on{background:var(--panel);color:var(--accent);font-weight:600;box-shadow:0 1px 3px #00000026}.btn{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:6px 10px;font-weight:500}.btn:hover:not(:disabled){filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:default}.btn.ghost{color:var(--accent);background:0 0}.btn.ghost:hover{background:var(--accent-soft)}.btn.small{padding:3px 8px;font-size:12px}.btn.wide{width:100%;padding:8px}.btn.danger{background:var(--bad);border-color:var(--bad)}.console{flex-direction:column;gap:9px;display:flex}.console .top{align-items:center;gap:8px;display:flex}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-weight:600;display:inline-flex;position:relative}.switch input{opacity:0;pointer-events:none;position:absolute}.switch .track{background:var(--line);border-radius:99px;flex:none;width:36px;height:20px;transition:background .15s;position:relative}.switch .track:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.switch input:checked+.track{background:var(--good)}.switch input:checked+.track:after{transform:translate(16px)}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.chip{background:var(--panel-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;border-radius:99px;padding:2px 8px;font-size:11.5px;font-weight:600;overflow:hidden}.chip.good{color:var(--good);background:var(--good-soft);border-color:#0000}.chip.bad{color:var(--bad);background:var(--bad-soft);border-color:#0000}.chip.warn{color:var(--warn);background:var(--warn-soft);border-color:#0000}.setpoint{flex-direction:column;gap:4px;display:flex}.setpoint .big{align-items:baseline;gap:6px;display:flex}.setpoint .big input{border:1px solid var(--line);background:var(--input);border-radius:6px;width:90px;padding:3px 6px;font-size:18px;font-weight:600}.setpoint input[type=range]{width:100%;accent-color:var(--accent)}.brake-row{grid-template-columns:1fr auto;align-items:stretch;gap:6px;display:grid}.brake-btn{border:1px solid var(--bad);background:var(--bad-soft);color:var(--bad);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;letter-spacing:.3px;border-radius:8px;padding:9px 10px;font-weight:700}.brake-btn.on{background:var(--bad);color:#fff;box-shadow:0 0 0 3px color-mix(in srgb, var(--bad) 30%, transparent)}.fault-banner{border-radius:var(--radius);background:var(--bad-soft);color:var(--bad);align-items:center;gap:8px;padding:8px 10px;font-weight:600;display:flex}.fault-banner[hidden]{display:none}.fault-banner span{flex:1}.lib-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-2);flex-direction:column;gap:4px;padding:8px 10px;font-size:12px;display:flex}.lib-card .t{font-size:12.5px;font-weight:600}.lib-card .kv{font-variant-numeric:tabular-nums;grid-template-columns:1fr 1fr;gap:2px 10px;display:grid}.lib-card .kv span:nth-child(odd){color:var(--muted)}.checks-list{flex-direction:column;gap:6px;display:flex}.check-item{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:8px;padding:7px 9px;font-size:12px;display:flex}.check-item .ic{text-align:center;flex:none;width:14px;font-weight:700}.check-item.error{background:var(--bad-soft);color:var(--bad)}.check-item.warn{background:var(--warn-soft);color:var(--warn)}.check-item.info{background:var(--panel-2);color:var(--muted);border-color:var(--line)}.check-item:hover{border-color:currentColor}.status{border-radius:var(--radius);flex-direction:column;gap:2px;padding:9px 10px;font-size:12.5px;display:flex}.status.good{background:var(--good-soft);color:var(--good)}.status.bad{background:var(--bad-soft);color:var(--bad)}.status.warn{background:var(--warn-soft);color:var(--warn)}.status.idle{background:var(--panel-2);color:var(--muted)}.status .sline{color:var(--text);opacity:.85;font-size:12px}.scope-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.scope-head .ttl{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-right:auto;font-size:12px;font-weight:600}.scope-head select{border:1px solid var(--line);background:var(--input);border-radius:6px;max-width:150px;padding:3px 6px;font-size:12px}.chart-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--chart-bg);padding:6px 8px 4px}.chart-top{flex-wrap:wrap;align-items:center;gap:8px;min-height:22px;display:flex}.chart-top .ct{cursor:pointer;border:1px solid #0000;border-radius:5px;align-items:center;gap:5px;min-width:0;margin-left:-5px;padding:2px 5px;font-size:12px;font-weight:600;display:inline-flex;position:relative}.chart-top .ct-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chart-top .ct .caret{color:var(--muted);font-size:10px}.chart-top .ct select{opacity:0;cursor:pointer;width:100%;height:100%;font-size:12px;position:absolute;inset:0}.chart-top .ct select option,.chart-top .ct select optgroup{background:var(--panel);color:var(--text)}.chart-top .ct:hover,.chart-top .ct:focus-within{border-color:var(--line);background:var(--input)}.chart-top .cu{color:var(--muted);font-size:11.5px}.legend{color:var(--muted);flex-wrap:wrap;gap:10px;margin:1px 0 2px;font-size:11.5px;display:flex}.legend .li{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;display:inline-flex}.legend .li.off{opacity:.4}.legend .key{border-top:2px solid;border-radius:2px;width:12px;height:0}.legend .key.wash{opacity:.35;border:0;border-radius:2px;height:8px}.legend .val{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.chart-canvas{touch-action:none;cursor:crosshair;width:100%;display:block}.chart-tip{z-index:30;pointer-events:none;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);font-variant-numeric:tabular-nums;border-radius:6px;min-width:120px;padding:5px 8px;font-size:11.5px;position:fixed}.chart-tip .tt{color:var(--muted);margin-bottom:3px}.chart-tip .tr{align-items:center;gap:6px;display:flex}.chart-tip .tr b{margin-left:auto;padding-left:10px}.chart-tip .key{border-top:2px solid;width:10px;height:0}.insp{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.insp-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px;display:flex}.insp-head .ttl{flex:1;min-width:0;font-weight:700}.insp-head .ttl small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;font-weight:400;display:block;overflow:hidden}.insp-body{flex-direction:column;gap:8px;padding:8px 10px 10px;display:flex}.insp-empty{color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);text-align:center;padding:10px;font-size:12px}.metrics{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.metrics.two{grid-template-columns:1fr 1fr}.metric{background:var(--panel-2);border:1px solid var(--line);border-radius:7px;flex-direction:column;min-width:0;padding:5px 7px;display:flex}.metric .ml{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.metric .mv{white-space:nowrap;font-size:15px;font-weight:600}.metric small{color:var(--muted);font-size:11px;font-weight:400}.metric.hot .mv{color:var(--bad)}.kvt{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.kvt td{border-bottom:1px solid var(--line);padding:3px 2px}.kvt td:first-child{color:var(--muted)}.kvt td.num{text-align:right}.kvt tr.tot td{color:var(--text);font-weight:700}.bars{flex-direction:column;gap:4px;display:flex}.bar-row{cursor:pointer;grid-template-columns:112px 1fr 64px;align-items:center;gap:6px;font-size:12px;display:grid}.bar-row .bl{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-row .bt{background:var(--accent);border-radius:0 4px 4px 0;min-width:1px;height:10px}.bar-row .bv{text-align:right;font-variant-numeric:tabular-nums}.bar-row:hover .bl{color:var(--text)}.warn-box{background:var(--warn-soft);color:var(--warn);border-radius:var(--radius);padding:7px 9px;font-size:12px}#viewport{touch-action:none;grid-area:view;min-width:0;min-height:0;position:relative;overflow:hidden}#viewport canvas{display:block}.label-layer{pointer-events:none;position:absolute;inset:0}.comp-label{pointer-events:auto;cursor:pointer;background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--line);white-space:nowrap;border-radius:6px;gap:5px;padding:1px 6px;font-size:11px;display:flex;box-shadow:0 1px 4px #0000002e}.comp-label .n{font-weight:600}.comp-label .v{color:var(--muted);font-variant-numeric:tabular-nums}.comp-label .v:empty{display:none}.comp-label.sel{border-color:var(--accent);outline:1px solid var(--accent)}.comp-label.hov{border-color:var(--accent)}#hud{pointer-events:none;background:color-mix(in srgb, var(--panel) 86%, transparent);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:8px;max-width:calc(100% - 160px);padding:10px 12px;display:flex;position:absolute;top:12px;left:12px}#hud .hero{align-items:baseline;gap:8px;display:flex}#hud .hero .num{letter-spacing:-.5px;font-size:40px;font-weight:650;line-height:1}#hud .hero .u{color:var(--muted);font-weight:600}#hud .hero .ref{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:4px;font-size:12px}#hud .tiles{grid-template-columns:repeat(3,minmax(70px,auto));gap:4px 14px;display:grid}#hud .tile .k{color:var(--muted);font-size:11px}#hud .tile .v{white-space:nowrap;font-size:13.5px;font-weight:600}#hud .tile .v small{color:var(--muted);font-weight:400}#hud .state{flex-wrap:wrap;align-items:center;gap:6px;display:flex}#phasor{background:color-mix(in srgb, var(--panel) 88%, transparent);border:1px solid var(--line);width:168px;box-shadow:var(--shadow);pointer-events:none;border-radius:10px;padding:6px 8px 4px;position:absolute;bottom:30px;right:12px}#phasor .pt{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}#phasor svg{width:100%;height:auto;display:block}#phasor .lg{color:var(--muted);flex-wrap:wrap;gap:2px 8px;font-size:10.5px;display:flex}#phasor .lg i{vertical-align:middle;border-top:2px solid;width:10px;height:0;margin-right:3px;display:inline-block}#toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);z-index:4;border-radius:8px;max-width:calc(100% - 32px);padding:7px 14px;font-size:12.5px;position:absolute;top:12px;left:50%;transform:translate(-50%)}#nav-hint{color:var(--muted);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;font-size:11px;position:absolute;bottom:8px;left:12px;right:190px;overflow:hidden}[hidden]{display:none!important}@media (max-width:1500px){.tb-group.views .tb[data-view=right]{display:none}:root{--results-w:400px}}@media (max-width:1280px){body{grid-template-columns:280px minmax(0, 1fr) 6px var(--results-w)}.proj-name,.tb-group.views .tb[data-view=top],select#nav-preset{display:none}#hud .hero .num{font-size:32px}}@media (max-width:900px){body{grid-template:"tb""view"1fr/1fr}#splitter{display:none}.mobile-only{display:inline-block}.proj-name,.tb-group.views,select.tb.nav#nav-preset,.run-state,.brand,.speed-lbl{display:none}#toolbar{scrollbar-width:none;gap:2px;padding:6px;overflow-x:auto}#toolbar .tb{padding:5px 7px}.tb-group{border:0;order:5;padding:0}#toggle-panel{order:0}#btn-run{order:1}#toggle-results{order:2}.spacer{display:none}.menu-wrap{position:static}.menu{position:fixed;top:46px;left:auto;right:8px}#panel,#results{z-index:10;width:min(380px,92vw);box-shadow:var(--shadow);transition:transform .2s;position:fixed;top:48px;bottom:0}#panel{left:0;transform:translate(-105%)}#results{right:0;transform:translate(105%)}body.panel-open #panel,body.results-open #results{transform:none}#nav-hint,#phasor{display:none}#hud{max-width:calc(100% - 24px);padding:8px 10px}#hud .hero .num{font-size:28px}#hud .tiles{grid-template-columns:repeat(3,auto)}}@media (min-width:901px){body.panel-open #panel{transform:none}}
