:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-canvas:#0c0f13;--surface-panel:#121721;--surface-raised:#171d28;--surface-inset:#0e1319;--surface-hover:#1b2230;--border-subtle:#1f2733;--border-strong:#2c3644;--text-primary:#e7edf4;--text-secondary:#9aa7b6;--text-muted:#6b7887;--accent:#3fb8a3;--accent-strong:#2f9d8a;--accent-soft:#3fb8a324;--accent-contrast:#04231e;--up:#35c48d;--down:#e2586a;--warn:#d8a13f;--focus:#6fd8c4;--radius:4px;--radius-lg:6px;--font-sans:"Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", Menlo, Consolas, "Liberation Mono", monospace;--shadow-panel:0 1px 0 #ffffff05, 0 8px 24px #00000059;--duration:.14s;--shell-nav:232px;--shell-topbar:52px}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-canvas:#f4f6f8;--surface-panel:#fff;--surface-raised:#fff;--surface-inset:#eef1f5;--surface-hover:#e9edf2;--border-subtle:#dde3ea;--border-strong:#c3ccd7;--text-primary:#141a21;--text-secondary:#4d5a68;--text-muted:#7b8794;--accent:#0f7d6d;--accent-strong:#0b6558;--accent-soft:#0f7d6d1a;--accent-contrast:#fff;--up:#0f8a5f;--down:#c0334a;--warn:#8a5f10;--focus:#0f7d6d;--shadow-panel:0 1px 2px #1018200f, 0 12px 28px #10182014}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--surface-canvas);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:13px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}::selection{background:var(--accent-soft)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--text-secondary)}.faint{color:var(--text-muted)}.shell{grid-template-columns:var(--shell-nav) minmax(0, 1fr);min-height:100dvh;display:grid}.shell-nav{background:var(--surface-panel);border-right:1px solid var(--border-subtle);flex-direction:column;gap:4px;height:100dvh;padding:10px 8px;display:flex;position:sticky;top:0;overflow-y:auto}.shell-brand{align-items:center;gap:8px;padding:6px 8px 12px;display:flex}.shell-brand-mark{border-radius:var(--radius);background:var(--accent);width:26px;height:26px;color:var(--accent-contrast);font-family:var(--font-mono);place-items:center;font-size:12px;font-weight:700;display:grid}.shell-brand-name{letter-spacing:-.01em;font-size:13px;font-weight:600}.shell-brand-sub{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px}.nav-group{margin-top:10px}.nav-group-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);padding:6px 8px 4px;font-size:10px}.nav-item{border-radius:var(--radius);color:var(--text-secondary);text-align:left;cursor:pointer;width:100%;transition:background var(--duration) ease, color var(--duration) ease;background:0 0;border:1px solid #0000;align-items:center;gap:9px;padding:7px 8px;display:flex}.nav-item:hover{background:var(--surface-hover);color:var(--text-primary);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.nav-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.shell-main{flex-direction:column;min-width:0;display:flex}.topbar{height:var(--shell-topbar);border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb, var(--surface-canvas) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;align-items:center;gap:10px;padding:0 14px;display:flex;position:sticky;top:0}.topbar-title{font-size:13px;font-weight:600}.topbar-spacer{flex:1}.page{align-content:start;gap:14px;max-width:1560px;padding:16px;display:grid}.page-split{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:14px;display:grid}@media (max-width:1080px){.page-split{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.panel-head{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;min-height:42px;padding:9px 12px;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-secondary);font-size:12px;font-weight:600}.panel-sub{color:var(--text-muted);font-size:11px}.panel-body{padding:12px}.panel-body.flush{padding:0}.panel-foot{border-top:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:8px;padding:9px 12px;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}.metric{gap:3px;display:grid}.metric-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:10.5px}.metric-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:19px;font-weight:600}.metric-note{color:var(--text-muted);font-size:11px}.button{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background var(--duration) ease, border-color var(--duration) ease, transform var(--duration) ease;justify-content:center;align-items:center;gap:6px;padding:6px 11px;font-size:12px;font-weight:500;display:inline-flex}.button:hover:not(:disabled){background:var(--surface-hover);border-color:color-mix(in srgb, var(--accent) 40%, var(--border-strong))}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.button.ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.button.ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary);border-color:#0000}.button.danger{color:var(--down);border-color:color-mix(in srgb, var(--down) 35%, var(--border-strong))}.button.icon{padding:6px 7px}.button.sm{padding:4px 8px;font-size:11.5px}.field{gap:4px;min-width:0;display:grid}.field-label{color:var(--text-secondary);font-size:11px}.field-hint{color:var(--text-muted);font-size:10.5px}.field-error{color:var(--down);font-size:11px}.input,.select,.textarea{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-inset);width:100%;color:var(--text-primary);padding:6px 8px;font-family:inherit;font-size:12px}.input.num,.input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.input::placeholder{color:var(--text-muted)}.select{cursor:pointer}textarea.input{resize:vertical;min-height:68px}.toggle-row{justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.switch{border:1px solid var(--border-strong);background:var(--surface-inset);cursor:pointer;width:34px;height:19px;transition:background var(--duration) ease;border-radius:999px;flex:none;position:relative}.switch[aria-checked=true]{background:var(--accent);border-color:var(--accent)}.switch:after{content:"";background:var(--text-secondary);width:13px;height:13px;transition:transform var(--duration) ease, background var(--duration) ease;border-radius:50%;position:absolute;top:2px;left:2px}.switch[aria-checked=true]:after{background:var(--accent-contrast);transform:translate(15px)}.segmented{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface-inset);gap:2px;padding:2px;display:inline-flex}.segmented button{border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;transition:background var(--duration) ease, color var(--duration) ease;background:0 0;border:none;padding:4px 9px;font-size:11.5px}.segmented button:hover{color:var(--text-primary)}.segmented button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tag{letter-spacing:.02em;border:1px solid var(--border-strong);color:var(--text-secondary);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:1px 7px;font-size:10.5px;display:inline-flex}.tag.accent{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--accent);background:var(--accent-soft)}.tag.up{border-color:color-mix(in srgb, var(--up) 45%, transparent);color:var(--up)}.tag.down{border-color:color-mix(in srgb, var(--down) 45%, transparent);color:var(--down)}.tag.warn{border-color:color-mix(in srgb, var(--warn) 45%, transparent);color:var(--warn)}.table-wrap{max-height:100%;overflow:auto}table.data{border-collapse:collapse;width:100%;font-size:12px}table.data th{z-index:1;text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);background:var(--surface-panel);border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:7px 10px;font-size:10.5px;font-weight:500;position:sticky;top:0}table.data th.sortable{cursor:pointer}table.data th.sortable:hover{color:var(--text-primary)}table.data td{border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:6px 10px}table.data tbody tr:hover td{background:var(--surface-hover)}table.data td.num,table.data th.num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}table.data tr.dim td{opacity:.5}.empty{text-align:center;color:var(--text-secondary);justify-items:center;gap:6px;padding:28px 16px;display:grid}.empty-title{color:var(--text-primary);font-size:13px;font-weight:600}.empty-body{max-width:46ch;color:var(--text-muted);font-size:12px}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--surface-inset) 25%, var(--surface-hover) 37%, var(--surface-inset) 63%);background-size:400% 100%;height:14px;animation:1.4s infinite skeleton}@keyframes skeleton{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.toast-stack{z-index:60;gap:8px;max-width:380px;display:grid;position:fixed;bottom:14px;right:14px}.toast{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-raised);box-shadow:var(--shadow-panel);animation:toast-in var(--duration) ease;align-items:flex-start;gap:8px;padding:9px 11px;font-size:12px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.toast.success{border-color:color-mix(in srgb, var(--up) 45%, transparent)}.toast.warning{border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.toast.error{border-color:color-mix(in srgb, var(--down) 45%, transparent)}.toast-body{flex:1;min-width:0}.backdrop{z-index:50;background:#04070a9e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(680px,100%);max-height:min(86dvh,900px);box-shadow:var(--shadow-panel);flex-direction:column;display:flex}.dialog.wide{width:min(1040px,100%)}.dialog-head{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;padding:11px 14px;display:flex}.dialog-title{flex:1;font-size:13px;font-weight:600}.dialog-body{gap:12px;padding:14px;display:grid;overflow:auto}.dialog-foot{border-top:1px solid var(--border-subtle);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:11px 14px;display:flex}.workspace-grid{gap:8px;min-height:620px;display:grid}.workspace-grid.single{grid-template-rows:minmax(620px,1fr);grid-template-columns:minmax(0,1fr)}.workspace-grid.two-horizontal{grid-template-rows:repeat(2,minmax(310px,1fr));grid-template-columns:minmax(0,1fr)}.workspace-grid.two-vertical{grid-template-rows:minmax(620px,1fr);grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid.four{grid-template-rows:repeat(2,minmax(310px,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:900px){.workspace-grid.two-vertical,.workspace-grid.four{grid-template-rows:none;grid-template-columns:minmax(0,1fr)}}.chart-panel{background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.chart-panel.focused{border-color:color-mix(in srgb, var(--accent) 50%, var(--border-subtle))}.chart-panel-head{border-bottom:1px solid var(--border-subtle);align-items:center;gap:8px;min-height:34px;padding:5px 8px;display:flex}.chart-symbol{font-family:var(--font-mono);letter-spacing:.01em;font-size:12px;font-weight:600}.chart-stage{background:var(--surface-inset);flex:1;min-height:0;position:relative}.chart-canvas-host{position:absolute;inset:0}.chart-overlay{pointer-events:none;position:absolute;inset:0}.chart-overlay.active{pointer-events:auto;cursor:crosshair}.chart-legend{border-radius:var(--radius);background:color-mix(in srgb, var(--surface-panel) 86%, transparent);border:1px solid var(--border-subtle);pointer-events:none;gap:2px;max-width:min(560px,100% - 20px);padding:6px 8px;font-size:11px;display:grid;position:absolute;top:6px;left:8px}.legend-row{flex-wrap:wrap;align-items:baseline;gap:7px;display:flex}.legend-values{font-family:var(--font-mono);font-variant-numeric:tabular-nums;gap:7px;display:flex}.legend-swatch{border-radius:2px;width:8px;height:8px;display:inline-block}.indicator-legend-item{pointer-events:auto;align-items:center;gap:6px;display:flex}.legend-action{color:var(--text-muted);cursor:pointer;background:0 0;border:none;place-items:center;padding:0 2px;display:inline-grid}.legend-action:hover{color:var(--text-primary)}.drawing-rail{background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-direction:column;align-self:start;gap:2px;padding:4px;display:flex}.tool-button{border-radius:var(--radius);width:30px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:grid}.tool-button:hover{background:var(--surface-hover);color:var(--text-primary)}.tool-button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.chart-layout{grid-template-columns:40px minmax(0,1fr);align-items:start;gap:8px;display:grid}@media (max-width:760px){.chart-layout{grid-template-columns:minmax(0,1fr)}.drawing-rail{flex-direction:row;overflow-x:auto}}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row.tight{gap:4px}.spread{justify-content:space-between;align-items:center;gap:10px;display:flex}.stack{gap:8px;display:grid}.scroll-y{max-height:420px;overflow-y:auto}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.suggestion-list{border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--surface-inset);gap:2px;max-height:240px;margin:8px 0 0;padding:4px;list-style:none;display:grid;overflow-y:auto}.suggestion-list .suggestion{text-align:left;grid-template-columns:96px 1fr auto;justify-content:start;align-items:baseline;gap:8px;width:100%;display:grid}.suggestion-list .suggestion .suggestion-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.divider{background:var(--border-subtle);height:1px;margin:4px 0}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.color-input{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-inset);cursor:pointer;width:28px;height:24px;padding:0}.swatch-row{align-items:center;gap:6px;display:flex}.heat{border-radius:var(--radius);text-align:right;min-width:46px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding:1px 5px;display:inline-block}.list-reset{margin:0;padding:0;list-style:none}.rule-row{grid-template-columns:minmax(120px,1.4fr) minmax(96px,1fr) minmax(70px,.7fr) minmax(70px,.7fr) auto;align-items:end;gap:6px;display:grid}@media (max-width:900px){.rule-row{grid-template-columns:minmax(0,1fr)}}
