:root{--bg: #f6f7f9;--panel: #ffffff;--editor-bg: #ffffff;--sidebar: #eef0f4;--border: #dde1e8;--text: #1c2230;--muted: #5d6576;--faint: #9aa1ae;--accent: #4f6bed;--accent-text: #ffffff;--stop: #d64545;--good: #2f8f5b;--bad: #c93c3c;--hover: #e3e7ee;--active-line: rgba(40, 60, 110, .045);--selection: #bccbfb;--selection-blurred: #dde3f3;--selection-match: rgba(79, 107, 237, .14);--syn-keyword: #8a3ab9;--syn-comment: #8b93a1;--syn-string: #2e7d4f;--syn-number: #b5531b;--syn-type: #0f7b8a;--syn-function: #3b5bdb;--syn-constant: #a8326e;--led-green: #2f9e5b;--led-red: #d93838;--led-amber: #d98e04;--led-blue: #3a6fe0;--series-1: #3b5bdb;--series-2: #d9480f;--series-3: #2b8a3e;--series-4: #9c36b5;--mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;color-scheme:light}:root[data-theme=dark]{--bg: #14171d;--panel: #1a1e25;--editor-bg: #1a1e25;--sidebar: #111419;--border: #2b313b;--text: #e3e6ec;--muted: #9aa2b1;--faint: #5f6775;--accent: #6d86f5;--stop: #e05d5d;--good: #5cc28a;--bad: #f07272;--hover: #232833;--active-line: rgba(255, 255, 255, .035);--selection: #3b4f8f;--selection-blurred: #2e3446;--selection-match: rgba(109, 134, 245, .2);--syn-keyword: #c792ea;--syn-comment: #6c7686;--syn-string: #9ccc8a;--syn-number: #f2a56b;--syn-type: #6fd3de;--syn-function: #82aaff;--syn-constant: #f07fb2;--led-green: #4cd17f;--led-red: #ff5c5c;--led-amber: #ffb52e;--led-blue: #6d9bff;--series-1: #82aaff;--series-2: #ff9f5a;--series-3: #6fd38a;--series-4: #d29bf0;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:14px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}button{font:inherit;color:inherit}.app{height:100%;display:grid;grid-template-columns:220px minmax(0,var(--code-fr, 1fr)) 1px minmax(0,var(--output-fr, 1fr))}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);padding:16px 14px;display:flex;flex-direction:column;gap:10px;min-height:0}.brand{font-size:16px;margin-bottom:10px;display:flex;align-items:center;gap:6px}.brand .tag{font-weight:450;font-size:12px;color:var(--muted)}.button{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-radius:7px;border:1px solid var(--border);background:var(--panel);cursor:pointer}.button:hover:not(:disabled){background:var(--hover)}.button:disabled{opacity:.5;cursor:default}.button .chevron{margin-left:auto;color:var(--muted)}.menu>.button{justify-content:flex-start}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.button.primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.button.primary.stop{background:var(--stop);border-color:var(--stop)}.hint{font-size:12px;color:var(--faint);text-align:center;margin-top:-4px}.examples{list-style:none;margin:6px 0 0;padding:4px;border:1px solid var(--border);border-radius:7px;background:var(--panel)}.examples button{width:100%;text-align:left;border:0;background:none;padding:6px 8px;border-radius:5px;cursor:pointer;display:flex;flex-direction:column}.examples button:hover{background:var(--hover)}.examples button.current .title{color:var(--accent)}.examples .title{font-weight:550}.examples .blurb{font-size:12px;color:var(--muted)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}.status{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:baseline}.status .dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--faint)}.status.loading .dot{background:var(--accent);animation:pulse 1s ease-in-out infinite alternate}.status.failed{color:var(--bad)}.status.failed .dot{background:var(--bad)}@keyframes pulse{0%{opacity:.3}}.theme{display:flex;padding:2px;border:1px solid var(--border);border-radius:7px;background:var(--panel)}.theme button{flex:1;padding:4px 0;border:0;border-radius:5px;background:none;font-size:12px;color:var(--muted);cursor:pointer}.theme button:hover{color:var(--text)}.theme button[aria-checked=true]{background:var(--hover);color:var(--text);font-weight:600}.theme button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pane{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--panel)}.splitter{position:relative;background:var(--border);cursor:col-resize;touch-action:none;z-index:1}.splitter:before{content:"";position:absolute;inset:0 -4px}.splitter:hover,.splitter:focus-visible,body.resizing .splitter{background:var(--accent);outline:none}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.pane-header{height:38px;flex:none;display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600}.pane-header .file{font-family:var(--mono);font-weight:500}.badge{font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px}.badge:empty{display:none}.badge.good{color:var(--good)}.badge.bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,transparent)}.badge.live{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.editor{flex:1;min-height:0}.editor .cm-editor{height:100%}.editor .cm-editor.cm-focused{outline:none}.output{flex:1;min-height:0;display:flex;flex-direction:column}.values{flex:none;max-height:45%;overflow:auto;padding:12px 14px;border-bottom:1px solid var(--border)}.console{flex:1;min-height:0;overflow:auto;padding:12px 14px 20px}.output h2{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:4px 0 8px}.values dl{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.value{position:relative;border:1px solid var(--border);border-radius:7px;padding:8px 10px;background:var(--bg);min-width:0}.value dt{font-size:12px;color:var(--muted);font-family:var(--mono)}.value dd{margin:2px 0 0;font-family:var(--mono);font-size:15px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.value .writes{position:absolute;top:7px;right:9px;font-size:11px;color:var(--faint)}.console{font-family:var(--mono);font-size:13px}.console .empty{font-family:system-ui,sans-serif;color:var(--faint);margin:0}.line{white-space:pre-wrap;overflow-wrap:anywhere;padding:1px 0}.line .name{color:var(--syn-function)}.line.info{color:var(--faint);font-style:italic;margin-top:4px}.line.error{color:var(--bad)}.line .at{font-family:var(--mono);font-size:12px;margin-right:8px;padding:0 5px;border:1px solid currentColor;border-radius:4px;background:none;color:var(--bad);cursor:pointer}.pane-header.tabs{padding:0 6px;gap:2px}.tab{height:100%;display:flex;align-items:center;gap:6px;padding:0 10px;border:0;border-bottom:2px solid transparent;background:none;cursor:pointer;color:var(--muted)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}.tab:hover:not(:disabled){color:var(--text)}.tab.add,.tab.remove{font-size:12px;font-weight:500;color:var(--faint)}.tab.remove{margin-left:auto}.editor-stack,.editor-slot{flex:1;min-height:0;display:flex;flex-direction:column}.editor-slot[hidden]{display:none}.panel-source{font-size:12px;font-weight:450;color:var(--muted);font-family:var(--mono)}.output>.values{max-height:none;flex:1 1 auto;min-height:120px}.output>.console{flex:0 1 30%;border-top:1px solid var(--border)}.values>.empty{color:var(--faint);margin:0}.panel{display:flex;flex-direction:column;gap:10px}.container{display:flex;gap:10px;min-width:0;margin:0}.container.column{flex-direction:column}.container.column>*,.panel>*{flex-shrink:0}.container.row{flex-direction:row;flex-wrap:wrap;align-items:stretch}.container.row>*{flex:1 1 160px}fieldset.container{border:1px solid var(--border);border-radius:8px;padding:8px 10px 10px}fieldset.container legend{font-size:12px;color:var(--muted);padding:0 4px}.widget{min-width:0;display:flex;flex-direction:column;gap:4px}.widget-label{font-size:12px;color:var(--muted)}.widget-error{font-size:12px;color:var(--bad)}.unit{margin-left:6px;color:var(--muted);font-size:12px}.unavailable{color:var(--faint)}.readout{font-family:var(--mono);font-size:20px;font-variant-numeric:tabular-nums;padding:4px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.number-row{display:flex;align-items:center}.number-row input,.text-input{width:100%;min-width:0;font:inherit;font-family:var(--mono);padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--editor-bg);color:var(--text)}.slider-row{display:flex;align-items:center;gap:10px}.slider-row input{flex:1;min-width:0;accent-color:var(--accent)}.slider-value{font-family:var(--mono);font-variant-numeric:tabular-nums;min-width:4ch;text-align:right}.panel-button{padding:9px 16px;border-radius:7px;border:1px solid var(--border);background:var(--bg);font-weight:600;cursor:pointer}.panel-button:hover:not(:disabled){background:var(--hover)}.panel-button:disabled{opacity:.45;cursor:default}.panel-button.armed{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.armed-note{font-weight:450;color:var(--accent);font-size:12px}.panel-button.switch.on{background:color-mix(in srgb,var(--accent) 18%,var(--bg));border-color:var(--accent)}.led-row{display:flex;align-items:center;gap:8px}.led-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--led);flex:none}.led-dot.on{background:var(--led);box-shadow:0 0 8px var(--led)}.led-dot.off{background:color-mix(in srgb,var(--led) 15%,transparent)}.led-dot.unavailable{border-style:dashed;border-color:var(--faint)}.led-text{font-size:12px;color:var(--muted)}.widget.Led{--led-ok: var(--led-green);--led-danger: var(--led-red);--led-warning: var(--led-amber);--led-info: var(--led-blue)}.feedback{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--muted);font-family:var(--mono)}.feedback b{color:var(--text);font-weight:600}.feedback .pending{color:var(--led-amber)}.feedback .pending b{color:inherit}.tabs-box{flex-direction:column;gap:8px}.panel-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.panel-tab{padding:6px 12px;border:0;border-bottom:2px solid transparent;background:none;color:var(--muted);font:inherit;font-size:13px;cursor:pointer}.panel-tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.tabs-box>[role=tabpanel][hidden]{display:none}.text-value{font-size:14px}.text-value.large{font-size:18px;font-weight:600}.text-value.block{white-space:pre;font-family:var(--mono);font-size:9px;line-height:1;overflow-x:auto;overflow-y:hidden}.text-value.block.large{font-size:14px;font-weight:400}.chart-box{border:1px solid var(--border);border-radius:8px;padding:8px;background:var(--bg)}.chart-legend{display:flex;gap:14px;font-size:12px;color:var(--muted);font-family:var(--mono);margin-bottom:4px}.swatch{display:inline-block;width:10px;height:3px;margin-right:5px;vertical-align:middle}.chart-body{position:relative;display:flex;gap:6px}.chart-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--faint);font-family:var(--mono);min-width:5ch;text-align:right}.chart-box svg{flex:1;min-width:0;height:180px}.chart-box .zero{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--faint);font-size:13px}.panel-diagnostics{list-style:none;padding:0;margin:12px 0 0;font-family:var(--mono);font-size:13px;color:var(--bad)}.panel-diagnostics li{padding:2px 0}.panel-diagnostics .at{font-family:var(--mono);font-size:12px;margin-right:8px;padding:0 5px;border:1px solid currentColor;border-radius:4px;background:none;color:var(--bad);cursor:pointer}@media(max-width:820px){.app{grid-template-columns:1fr;grid-template-rows:auto minmax(300px,55vh) minmax(240px,1fr);height:auto;min-height:100%}.sidebar{border-right:0;border-bottom:1px solid var(--border)}.sidebar-foot{margin-top:4px}.splitter{display:none}.code-pane{border-bottom:1px solid var(--border)}}
