.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#0f1115;--panel:#161922;--panel-2:#1c2030;--border:#2a2f3a;--text:#e5e7eb;--muted:#8b94a6;--accent:#6ea8fe;--accent-2:#4f8cff;--ok:#50fa7b;--warn:#f88;--pending:#ffb86c;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.4}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}body{margin:0}.mono{font-family:JetBrains Mono,Menlo,Consolas,monospace}.muted{color:var(--muted)}.small{font-size:12px}.app{background:var(--bg);grid-template-rows:auto auto 1fr;height:100vh;display:grid}.topbar{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:12px;padding:8px 12px;display:flex}.topbar-group{align-items:center;gap:6px;display:flex}.autostart-toggle{border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.autostart-toggle input{cursor:pointer;margin:0}.topbar-spacer{flex:1}.status-dot{background:var(--muted);border-radius:50%;width:8px;height:8px;display:inline-block}.status-dot.connected{background:var(--ok)}.status-dot.error{background:var(--warn)}.tabs{border-bottom:1px solid var(--border);background:var(--panel);white-space:nowrap;gap:0;padding:0 12px;display:flex;overflow-x:auto}.tab{color:var(--muted);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 12px;font-size:13px;font-weight:600}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-hint{background:var(--border);color:var(--text);border-radius:8px;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:500}.tab-host{padding:12px;overflow:auto}.tab-body{gap:12px;display:grid}.tab-body.overview{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start}@media (width<=900px){.tab-body.overview{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:6px;min-width:0;padding:10px 12px}.panel h2{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px;font-size:13px;font-weight:600}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}button{background:var(--border);color:var(--text);cursor:pointer;border:1px solid #0000;border-radius:4px;padding:6px 12px;font-size:13px;font-weight:600}button.primary{background:var(--accent);color:#0b0d11}button.primary:hover{background:var(--accent-2)}button.ghost{border-color:var(--border);color:var(--text);background:0 0}button.ghost:hover{background:var(--panel-2)}button.small{padding:2px 8px;font-size:11px;line-height:1.4}button:disabled{background:var(--border);color:var(--muted);cursor:not-allowed}input[type=text],input[type=number],select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:13px}textarea{resize:vertical}.kv{grid-template-columns:max-content 1fr;gap:4px 12px;margin:0;display:grid}.kv dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;align-self:center;font-size:12px}.kv dd{margin:0}.slaves{flex-direction:column;display:flex;overflow:hidden}.slaves-scroll{border:1px solid var(--border);background:var(--bg);border-radius:4px;font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:12.5px;overflow:auto}.slaves-table{border-collapse:collapse;width:100%}.slaves-table th,.slaves-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 10px}.slaves-table th{background:var(--panel);color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:500;position:sticky;top:0}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:2px 6px;font-size:11px;font-weight:600;display:inline-block}.badge.running{color:var(--ok);background:#50fa7b29}.badge.lost,.badge.blocked,.badge.error{color:var(--warn);background:#f8888829}.badge.provisioning,.badge.schema-reading,.badge.numbering,.badge.awaiting-announce{color:var(--pending);background:#ffb86c29}.badge.awaiting-start{color:var(--accent,#8be9fd);background:#8be9fd29}.badge.suspended{color:var(--pending);background:#ffb86c29}.badge.idle{background:var(--border);color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:16px;font-style:italic}.raw-can{flex-direction:column;gap:8px;min-height:calc(100vh - 180px);display:flex}.raw-can-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.raw-can-scroll{border:1px solid var(--border);background:var(--bg);border-radius:4px;flex:1;min-height:200px;font-size:12px;overflow:auto}.raw-can-grid-head,.raw-can-grid-row{border-bottom:1px solid var(--border);grid-template-columns:60px 90px 56px 110px 110px 40px minmax(140px,1fr) minmax(160px,2.4fr);align-items:center;height:22px;padding:0 8px;font-size:12px;display:grid}.raw-can-grid-head{background:var(--panel);color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:500}.raw-can-grid-row>div{white-space:nowrap;text-overflow:ellipsis;padding-right:6px;overflow:hidden}.raw-can-grid-row:hover{background:#ffffff08}.raw-can-grid-row.tx{color:var(--accent)}.raw-can-grid-row .hex{letter-spacing:.02em;color:var(--text);font-size:11.5px}.tag{letter-spacing:.04em;border-radius:2px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}.tag.rx{color:var(--ok);background:#50fa7b29}.tag.tx{color:var(--accent);background:#6ea8fe38}details>summary{cursor:pointer;padding:2px 0;list-style:none}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"▸";width:1em;color:var(--muted);transition:transform .1s;display:inline-block}details[open]>summary:before{content:"▾"}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text);font-size:13px;font-weight:600}.schema-scroll{border:1px solid var(--border);background:var(--bg);border-radius:4px;max-height:60vh;margin-top:6px;overflow:auto}.schema-table{border-collapse:collapse;width:100%;font-size:12.5px}.schema-table th,.schema-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:top;padding:4px 8px}.schema-table th{background:var(--panel);color:var(--muted);text-transform:uppercase;z-index:1;font-size:11px;font-weight:500;position:sticky;top:0}.frame-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:10px;display:grid}.frame-card{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.frame-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.frame-id{font-weight:700}.frame-layout{background:var(--bg);border:1px solid var(--border);border-radius:3px;align-items:stretch;height:22px;display:flex;overflow:hidden}.frame-segment{background:linear-gradient(#6ea8fe59,#6ea8fe2e);border-right:1px solid #0006;flex:none;align-items:center;min-width:0;padding:0 6px;display:flex}.frame-segment:last-child{border-right:none}.frame-segment.empty-segment{background:0 0}.frame-segment-label{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.row-selectable{cursor:pointer}.row-selectable.selected{background:#6ea8fe1f}.row-selectable:hover{background:#ffffff08}.endpoint-list{flex-direction:column;gap:6px;display:flex}.endpoint-card{background:var(--panel-2);border:1px solid var(--border);border-radius:4px;padding:6px 10px}.endpoint-card>summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:4px;list-style:none;display:flex}.endpoint-card>summary:before{content:"▸";width:1em;color:var(--muted);display:inline-block}.endpoint-card[open]>summary:before{content:"▾"}.endpoint-path{font-weight:600}.endpoint-body{grid-template-columns:minmax(0,1fr) minmax(220px,1fr);gap:12px;margin-top:8px;display:grid}@media (width<=700px){.endpoint-body{grid-template-columns:1fr}}.endpoint-section{flex-direction:column;gap:6px;min-width:0;display:flex}.fields-form{flex-direction:column;gap:4px;display:flex}.field-row{grid-template-columns:minmax(120px,1fr) minmax(0,2fr);align-items:center;gap:8px;display:grid}.field-label{text-align:right}.field-row>input[type=text]{width:100%}.field-error{color:var(--warn);grid-column:2}.fields-form-actions{justify-content:flex-end;margin-top:6px;display:flex}.tab-body.graphs{height:100%}.graphs{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(240px,320px) minmax(0,1fr);align-items:stretch;gap:12px;display:grid}@media (width<=900px){.graphs{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}}.graphs-picker{flex-direction:column;min-height:0;display:flex}.graphs-chart{flex-direction:column;gap:8px;min-height:0;display:flex}.graphs-chart-empty{flex:1;place-items:center;display:grid}.series-picker{flex-direction:column;flex:1;gap:4px;min-height:0;margin-top:6px;display:flex;overflow-y:auto}@media (width<=900px){.series-picker{flex:none;max-height:240px}}.series-pick{background:var(--panel-2);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:3px;align-items:center;gap:4px;padding:3px 8px;display:flex}.series-pick.checked{border-color:var(--accent);background:#6ea8fe1f}.topic-caret{text-align:center;width:1em;color:var(--muted);-webkit-user-select:none;user-select:none}.topic-row-dirty>td{border-left:2px solid var(--pending)}.topic-fields-row>td{background:var(--bg);border-bottom:1px solid var(--border);padding:6px 8px}.field-toggles{flex-wrap:wrap;gap:4px 8px;display:flex}.field-toggle{background:var(--panel-2);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:3px;align-items:center;gap:6px;padding:2px 8px;font-size:12.5px;display:inline-flex}.field-toggle:hover{background:#ffffff0a}.field-toggle.disabled{cursor:not-allowed;color:var(--muted);opacity:.6}.field-toggle input[type=checkbox]{width:13px;height:13px;accent-color:var(--accent);margin:0}.field-toggle.dirty{border-color:var(--pending)}.field-toggle.dirty .field-name:after{content:" •";color:var(--pending)}.field-toggle .field-name{font-family:JetBrains Mono,Menlo,Consolas,monospace}.apply-bar{border:1px solid var(--pending);background:#ffb86c1a;border-radius:4px;align-items:center;gap:8px;margin-top:6px;padding:6px 10px;font-size:12.5px;display:flex}.apply-bar-msg{color:var(--text);flex:1}.uplot-container{background:var(--bg);border-radius:4px;padding:8px}.uplot .u-legend{color:var(--text);font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:11.5px}.uplot .u-legend th,.uplot .u-axis{color:var(--muted)}
