:root{--bg: #0c0d10;--bg-surface: #14161a;--bg-elev: #1c1f25;--border: #2a2e36;--text: #e5e7eb;--text-dim: #94a3b8;--text-mute: #64748b;--accent: #3b82f6;--accent-hover: #60a5fa;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--font-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--stage-ingest: #79c0ff;--stage-features: #a371f7;--stage-signals: #ffa657;--stage-ml: #7ee787;--stage-cross: #d2a8ff}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100vh}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{font-family:inherit;font-size:inherit}input,select,textarea{font-family:inherit;font-size:inherit;background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:3px;padding:.5rem .75rem;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-dim{color:var(--text-dim)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;padding:1rem}.grid{display:grid;gap:1rem}.grid-2{grid-template-columns:1fr 1fr}@media (max-width: 768px){.grid-2{grid-template-columns:1fr}}.ws-badge.svelte-bg9lgg{position:fixed;bottom:1rem;right:1rem;display:flex;align-items:center;gap:.3rem;padding:.25rem .6rem;border-radius:4px;font-size:.7rem;font-family:var(--font-mono, monospace);z-index:1000;background:var(--bg-surface, #1e2130);border:1px solid var(--border, #334155);opacity:.85;pointer-events:none;user-select:none}.ws-badge.svelte-bg9lgg:hover{opacity:1}.dot.svelte-bg9lgg{font-size:.55rem}.ws-fresh.svelte-bg9lgg{border-color:var(--success, #10b981)}.ws-fresh.svelte-bg9lgg .dot:where(.svelte-bg9lgg){color:var(--success, #10b981)}.ws-fresh.svelte-bg9lgg .txt:where(.svelte-bg9lgg){color:var(--success, #10b981)}.ws-stale.svelte-bg9lgg{border-color:var(--warning, #f59e0b)}.ws-stale.svelte-bg9lgg .dot:where(.svelte-bg9lgg){color:var(--warning, #f59e0b)}.ws-stale.svelte-bg9lgg .txt:where(.svelte-bg9lgg){color:var(--warning, #f59e0b)}.ws-old.svelte-bg9lgg{border-color:var(--danger, #ef4444)}.ws-old.svelte-bg9lgg .dot:where(.svelte-bg9lgg){color:var(--danger, #ef4444)}.ws-old.svelte-bg9lgg .txt:where(.svelte-bg9lgg){color:var(--danger, #ef4444)}.ws-disconnected.svelte-bg9lgg{border-color:var(--text-mute, #6b7280)}.ws-disconnected.svelte-bg9lgg .dot:where(.svelte-bg9lgg){color:var(--text-mute, #6b7280)}.ws-disconnected.svelte-bg9lgg .txt:where(.svelte-bg9lgg){color:var(--text-mute, #6b7280)}.crumbs.svelte-mhuuw7{color:var(--text-dim, #94a3b8);font-size:.83rem;padding:.4rem 1.5rem 0;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.crumbs.svelte-mhuuw7 a:where(.svelte-mhuuw7){color:var(--text-dim, #94a3b8);text-decoration:none;transition:color .15s}.crumbs.svelte-mhuuw7 a:where(.svelte-mhuuw7):hover{color:var(--accent, #3b82f6)}.crumbs.svelte-mhuuw7 .sep:where(.svelte-mhuuw7){opacity:.5;user-select:none}.crumbs.svelte-mhuuw7 [aria-current=page]:where(.svelte-mhuuw7){color:var(--text, #e5e7eb)}.toast.svelte-ukig97{display:grid;grid-template-columns:auto 1fr auto;gap:.625rem;align-items:start;padding:.625rem .75rem;background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--text-mute);border-radius:5px;box-shadow:0 4px 14px #0006;min-width:260px;max-width:360px;pointer-events:auto}.toast[data-tone=info].svelte-ukig97{border-left-color:var(--accent, #3b82f6)}.toast[data-tone=success].svelte-ukig97{border-left-color:var(--success, #22c55e)}.toast[data-tone=warning].svelte-ukig97{border-left-color:var(--warning, #f59e0b)}.toast[data-tone=danger].svelte-ukig97{border-left-color:var(--danger, #ef4444)}.glyph.svelte-ukig97{font-size:.95rem;line-height:1.1;width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;font-weight:700}.toast[data-tone=info].svelte-ukig97 .glyph:where(.svelte-ukig97){color:var(--accent);background:#3b82f61f}.toast[data-tone=success].svelte-ukig97 .glyph:where(.svelte-ukig97){color:var(--success);background:#10b9811f}.toast[data-tone=warning].svelte-ukig97 .glyph:where(.svelte-ukig97){color:var(--warning);background:#f59e0b1f}.toast[data-tone=danger].svelte-ukig97 .glyph:where(.svelte-ukig97){color:var(--danger);background:#ef44441f}.body.svelte-ukig97{display:flex;flex-direction:column;gap:.15rem;min-width:0}.title.svelte-ukig97{font-size:.78rem;font-weight:600;color:var(--text);line-height:1.25}.message.svelte-ukig97{font-size:.7rem;color:var(--text-dim);line-height:1.35;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.close.svelte-ukig97{background:transparent;border:none;color:var(--text-mute);font-size:.85rem;line-height:1;padding:.15rem .35rem;cursor:pointer;border-radius:3px;flex-shrink:0}.close.svelte-ukig97:hover{color:var(--text);background:var(--bg-elev)}.toast-container.svelte-17po2bw{position:fixed;bottom:1rem;right:1rem;z-index:1000;display:flex;flex-direction:column-reverse;gap:.4rem;pointer-events:none;max-width:320px}@media (max-width: 600px){.toast-container.svelte-17po2bw{bottom:1rem;left:1rem;right:1rem;max-width:none}}.topbar.svelte-12qhfyh{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:var(--bg-surface);border-bottom:1px solid var(--border);font-size:.875rem}.brand.svelte-12qhfyh{font-weight:700;letter-spacing:.1em;color:var(--accent)}nav.svelte-12qhfyh{display:flex;gap:1.25rem;align-items:center}.actions.svelte-12qhfyh{display:flex;align-items:center}nav.svelte-12qhfyh a:where(.svelte-12qhfyh){color:var(--text-dim);text-decoration:none;padding:.25rem 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}nav.svelte-12qhfyh a:where(.svelte-12qhfyh):hover,nav.svelte-12qhfyh a.active:where(.svelte-12qhfyh){color:var(--text);border-color:var(--accent)}.nav-sep.svelte-12qhfyh{width:1px;height:1rem;background:var(--border);margin:0 .25rem}.nav-external.svelte-12qhfyh{color:var(--text-mute);font-size:.92em}.nav-external.svelte-12qhfyh:hover{color:var(--accent);border-color:transparent}.nav-dropdown.svelte-12qhfyh{position:relative}.nav-dropdown.svelte-12qhfyh summary:where(.svelte-12qhfyh){list-style:none;cursor:pointer;color:var(--text-dim);padding:.25rem 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;user-select:none}.nav-dropdown.svelte-12qhfyh summary:where(.svelte-12qhfyh)::-webkit-details-marker{display:none}.nav-dropdown.svelte-12qhfyh summary:where(.svelte-12qhfyh):hover{color:var(--text)}.nav-dropdown.active.svelte-12qhfyh summary:where(.svelte-12qhfyh){color:var(--text);border-color:var(--accent)}.nav-dropdown[open].svelte-12qhfyh summary:where(.svelte-12qhfyh){color:var(--text)}.nav-menu.svelte-12qhfyh{position:absolute;top:100%;left:0;margin-top:.5rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:.5rem 0;min-width:180px;display:flex;flex-direction:column;box-shadow:0 4px 12px #0000004d;z-index:100}.nav-menu.svelte-12qhfyh a:where(.svelte-12qhfyh){padding:.5rem 1rem;border-bottom:none;border-left:2px solid transparent}.nav-menu.svelte-12qhfyh a:where(.svelte-12qhfyh):hover,.nav-menu.svelte-12qhfyh a.active:where(.svelte-12qhfyh){background:var(--bg-elev);border-bottom:none;border-left-color:var(--accent)}.userbox.svelte-12qhfyh{display:flex;align-items:center;gap:.75rem}.user.svelte-12qhfyh{color:var(--text);font-weight:500}.role.svelte-12qhfyh{color:var(--text-dim);font-size:.75rem;text-transform:uppercase;padding:.125rem .5rem;background:var(--bg-elev);border-radius:2px}.logout.svelte-12qhfyh{background:transparent;color:var(--text-dim);border:1px solid var(--border);padding:.25rem .75rem;border-radius:3px;cursor:pointer;font-size:.75rem}.logout.svelte-12qhfyh:hover{color:var(--text);border-color:var(--accent)}main.svelte-12qhfyh{padding:1.5rem}main.full.svelte-12qhfyh{padding:0;min-height:100vh}
