.signin-root{--bg: #0f1115;--ink: #e8e6df;--muted: #8b93a3;--edge: #262b36;--accent: #7b9fd4;--danger: #d98b8b;min-height:100vh;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;color-scheme:dark}.signin-grid{display:grid;min-height:100vh}@media(min-width:1024px){.signin-grid{grid-template-columns:minmax(0,1fr) 732px}}.signin-art{position:relative;display:none;min-height:100vh;overflow:hidden;background:var(--bg)}@media(min-width:1024px){.signin-art{display:flex}}.signin-art-bg{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;width:100%;object-fit:cover;opacity:.28;filter:grayscale(.5) brightness(.55)}.signin-art-wash{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#262c3ab8,#181c25cc 42%,#0f1115f0)}.signin-art-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0f11151a,#0f11158c)}.signin-art-grid{position:absolute;top:10%;bottom:-8%;left:-14%;right:-10%;opacity:.16;mix-blend-mode:screen}.signin-art-grid img{height:100%;width:100%;max-width:none;object-fit:cover;object-position:center;filter:grayscale(1) brightness(1.6) contrast(1.1)}.signin-art-copy{position:relative;z-index:1;display:flex;align-items:flex-end;height:100%;width:100%;padding:0 44px 44px}.signin-art-copy p{max-width:562px;font-size:40px;line-height:1.15;letter-spacing:-.03em;color:var(--ink)}@media(min-width:1280px){.signin-art-copy{padding:0 64px 64px}.signin-art-copy p{font-size:48px}}.signin-panel{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:32px 24px}@media(min-width:640px){.signin-panel{padding:40px}}.signin-col{width:100%;max-width:560px}@media(min-width:1024px){.signin-col{max-width:400px}}.signin-brand{display:flex;justify-content:center;margin-bottom:60px}.signin-brand img{width:208px;height:auto;object-fit:contain}.signin-heading{text-align:center}.signin-heading h1{font-size:24px;font-weight:500;line-height:24px;color:var(--ink)}.signin-heading p{margin-top:10px;font-size:14px;line-height:1;color:var(--muted)}.signin-form{margin-top:56px;display:flex;flex-direction:column}.signin-fields{display:flex;flex-direction:column;gap:28px}.signin-field{border-bottom:1px solid var(--edge);padding-bottom:2px}.signin-field:focus-within{border-bottom-color:var(--accent)}.signin-field{display:grid;grid-template-columns:88px 1fr;align-items:baseline;gap:10px;min-height:28px}.signin-field label{font-size:16px;font-weight:400;line-height:1.2;color:var(--ink)}.signin-field input{min-width:0;width:100%;border:0;background:transparent;padding:0;font:inherit;font-size:16px;line-height:1.2;color:var(--ink)}.signin-field input:focus{outline:none}.signin-field input:-webkit-autofill,.signin-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--ink);-webkit-box-shadow:0 0 0 1000px var(--bg) inset;caret-color:var(--ink)}.signin-actions{margin-top:8px;padding-top:4px;display:flex;align-items:center;gap:16px}.signin-actions label{display:flex;align-items:center;gap:10px;font-size:14px;line-height:20px;color:var(--muted);cursor:pointer}.signin-actions input[type=checkbox]{width:13px;height:13px;margin:0;accent-color:var(--accent);cursor:pointer}.signin-error{margin-top:8px;font-size:14px;color:var(--danger)}.signin-info{margin-top:8px;font-size:14px;line-height:1.35;color:var(--muted)}.signin-textbtn{margin-left:auto;background:none;border:0;padding:0;font:inherit;font-size:14px;line-height:20px;color:var(--accent);cursor:pointer}.signin-textbtn:hover{text-decoration:underline}.signin-submit{margin-top:56px;height:40px;width:100%;border:0;border-radius:6px;background:var(--accent);color:var(--bg);font:inherit;font-size:16px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.signin-submit:hover:not(:disabled){background:#8fb0de}.signin-submit:disabled{opacity:.35;cursor:default}.signin-or{display:flex;align-items:center;gap:12px;margin-top:20px;font-size:13px;line-height:18px;color:var(--muted)}.signin-or:before,.signin-or:after{content:"";flex:1;height:1px;background:var(--edge)}.signin-google{margin-top:16px;height:40px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--edge);border-radius:6px;background:#fff;color:#1f1f1f;font:inherit;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.signin-google:hover:not(:disabled){background:#ececec}.signin-google:disabled{opacity:.35;cursor:default}.signin-footer{margin-top:24px;text-align:center;font-size:14px;line-height:20px;color:var(--muted)}.signin-footer a,.signin-footer button{color:var(--accent);text-decoration:none}.signin-footer button{background:none;border:0;padding:0;font:inherit;cursor:pointer}.signin-footer a:hover,.signin-footer button:hover{text-decoration:underline}:root{--color-ink: #0a0a0a;--color-ink-muted: #71716e;--color-ink-faint: #9a9a97;--color-icon: #8f8f8c;--color-hairline: #e7e7e4;--color-rail: #fcfcfb;--color-hover: #f3f3f1;--color-active: #f1f1ef;--color-surface: #ffffff;--color-on-ink: #ffffff;--color-accent: var(--color-ink);--color-scrim: rgba(0,0,0,.4);--color-series-1: #3a3733;--color-series-2: #3f7cb0;--color-series-3: #c2551f;--color-series-4: #3f9e7c;--color-series-5: #8a5cc4;--color-series-6: #c25c7c;--color-danger: #e11d48;--color-danger-bg: #ffe4e6;--color-danger-border: #fecdd3;--color-warning: #d97706;--color-warning-bg: #ffedd5;--color-warning-border: #fdba74;--color-success: #059669;--color-success-bg: #d1fae5;--color-map-class-ht: #D55E00;--color-map-class-lt: #C4A000;--color-map-class-dual: #CC79A7;--color-map-class-dtc: #E69F00;--color-map-class-feeder-pillar: #009E73;--color-map-class-ug-ht: #0072B2;--color-map-class-ug-lt: #56B4E9;--color-map-class-unknown: #adb5bd;--color-map-reliability-likelihood-unlikely: #c2c2be;--color-map-reliability-likelihood-possible: #d9a441;--color-map-reliability-likelihood-likely: #dd6b20;--color-map-reliability-likelihood-very-likely: #b91c1c;--color-map-reliability-cause-vegetation: #2a9d8f;--color-map-reliability-cause-animal: #4a8fbf;--color-map-reliability-cause-sabotage: #7a7ec8;--color-map-reliability-cause-overload: #c9897a;--color-map-reliability-cause-other: #8e939c;--color-selection-accent: #7c74a6;--color-network-line-hv: #71716e;--color-network-line-mv: #52525b;--color-network-line-lv: #a1a1aa;--color-network-bus-mv: #52525b;--color-network-bus-other: #a1a1aa;--color-network-ss-marker: #78716c;--color-network-ss-marker-stroke: #44403c;--color-network-pole-stroke: #18181b;--color-network-dt-rest-stroke: #a1a1aa;--color-network-dt-rest-fill: #d4d4d8;--color-network-casing: #ffffff;--color-network-boundary-fill: #71716e;--color-network-boundary-stroke: #52525b;--color-network-underlay-line-mv: #a8a8a4;--color-network-underlay-line-lv: #c0c0bc;--color-network-underlay-bus: #a8a8a4;--color-network-underlay-dt-stroke: #9a9a96;--color-network-underlay-dt-fill: #d0d0cc;--color-network-underlay-ss: #9a9a96;--color-map-consumer-needs-review: #ef4444;--color-map-consumer-pravah: #3b82f6;--color-map-consumer-kept: #52525b;--color-map-consumer-corrected: #22c55e;--color-map-consumer-field: #f59e0b;--color-map-dt-flagged: #ef4444;--color-map-dt-clear: #22c55e;--color-map-dt-flagged-bright: #ff1f1f;--color-map-ghost: #2563eb;--color-map-ops-no-data: #9aa0a6;--color-map-ops-good-strong: #3fa65a;--color-map-ops-good: #72c94f;--color-map-ops-watch: #ead64a;--color-map-ops-elevated: #f29a4b;--color-map-ops-risk-high: #e15d64;--color-map-ops-risk-critical: #c83d4c;--color-map-ops-loading-marker: #2f87a8;--map-stroke-hv: 2px;--map-stroke-mv: 1.9px;--map-stroke-lv: 1.15px;--map-stroke-emphasis: 3px;--map-stroke-casing-streets: 2px;--map-stroke-casing-satellite: 4px;--map-line-opacity: .55;--map-line-opacity-satellite: .85;--map-point-consumer: 3.5px;--map-point-consumer-hover: 4.5px;--map-point-consumer-review: 4.5px;--map-point-bus: 3px;--map-point-pole-stroke: 1px;--map-point-pole-radius: 2.6px;--map-dt-size: 5px;--map-dt-size-selected: 9px;--map-ss-marker-radius: 5px;--map-dim-opacity: .28;--map-dim-opacity-deep: .1;--map-underlay-line-opacity: .72;--map-underlay-line-opacity-satellite: .78;--map-focus-ring: 1.5px;--map-tolerance-lt-m: 50;--map-tolerance-dt-m: 100;--map-minzoom-dt: 11;--map-minzoom-lv-bus: 12;--map-minzoom-pole: 17;--map-boundary-fill-opacity: .08;--map-boundary-stroke-opacity: .34;--map-boundary-stroke: 1px;--map-attention-stroke-low: 1.5px;--map-attention-stroke-mid: 3px;--map-attention-stroke-high: 5px;--map-impact-stroke-low: var(--map-attention-stroke-low);--map-impact-stroke-mid: var(--map-attention-stroke-mid);--map-impact-stroke-high: var(--map-attention-stroke-high);--radius-sm: 2px;--radius-base: 3px;--radius-full: 9999px;--border-hairline: 1px;--font-sans: Inter, system-ui, sans-serif;--font-mono: "Fragment Mono", ui-monospace, monospace;--weight-regular: 400;--weight-medium: 500;--text-mono-label: 10px;--text-mono-meta: 11px;--text-body-sm: 12px;--text-body: 13px;--text-header-title: 14px;--text-section-title: 16px;--text-chart-title: 13px;--text-value-lg: 18px;--tracking-tight: -.01em;--tracking-mono-label: .14em;--leading-tight: 1.2;--leading-relaxed: 1.6;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--space-16: 64px;--space-label: 4px;--space-lead: 8px;--space-stack: 12px;--space-inline: 8px;--space-section: 16px;--space-viz-gap-x: 64px;--space-viz-gap-y: 24px;--space-viz-block: 20px;--space-section-block: 48px;--space-action-lead: 48px;--size-control-sm: 32px;--size-control: 36px;--size-control-lg: 40px;--size-icon: 16px;--size-scrollbar: 4px;--size-header: 48px;--size-sidebar: 220px;--size-sidebar-collapsed: 56px;--size-modal: 420px;--size-drawer: 360px;--size-chart-plot: 320px;--size-chart-bar: 32px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--elevation-none: none;--elevation-menu: 0 4px 12px -4px rgba(20, 15, 10, .12);--elevation-modal: 0 16px 48px -16px rgba(20, 15, 10, .35);--elevation-focus: 0 0 0 2px rgba(0, 0, 0, .06);--glass-blur: 14px;--glass-saturate: 1.12;--glass-bg: rgba(255, 255, 255, .72);--glass-bg-rail: rgba(252, 252, 251, .78);--motion-fast: .12s;--motion-base: .2s;--motion-orchestrated: .5s;--motion-easing: cubic-bezier(.2, 0, 0, 1)}@theme{ --color-ink: #0a0a0a; --color-ink-muted: #71716e; --color-ink-faint: #9a9a97; --color-icon: #8f8f8c; --color-hairline: #e7e7e4; --color-rail: #fcfcfb; --color-hover: #f3f3f1; --color-active: #f1f1ef; --color-surface: #ffffff; --color-on-ink: #ffffff; --color-series-1: #3a3733; --color-series-2: #3f7cb0; --color-series-3: #c2551f; --color-series-4: #3f9e7c; --color-series-5: #8a5cc4; --color-series-6: #c25c7c; --radius-sm: 2px; --radius-base: 3px; --font-sans: Inter, system-ui, sans-serif; --font-mono: "Fragment Mono", ui-monospace, monospace; --breakpoint-sm: 640px; --breakpoint-md: 768px; --breakpoint-lg: 1024px; --breakpoint-xl: 1280px; }[data-theme=dark],[data-theme=pravah-dark]{color-scheme:dark;--color-ink: #e8eaed;--color-ink-muted: #9aa0a6;--color-ink-faint: #80868b;--color-icon: #9aa0a6;--color-hairline: #2d2d2d;--color-surface: #0f0f0f;--color-rail: #161616;--color-card: #1e1e1e;--color-hover: #2a2a2a;--color-active: #303030;--color-on-ink: #0f0f0f;--color-scrim: rgba(0, 0, 0, .65);--color-grid: #3c4043;--color-grid-strong: #4a4e51;--color-axis: #5f6368;--color-forecast: #6cb6ff;--color-actual: #f0d78c;--color-series-2: #6cb6ff;--color-series-3: #e8a87a;--color-series-4: #7dcea0;--color-danger-bg: #3b1118;--color-danger-border: #5c1a24;--color-warning-bg: #3a2410;--color-warning-border:#5c3a16;--color-success-bg: #0f2e22;--elevation-menu: 0 4px 16px -4px rgba(0, 0, 0, .55);--elevation-modal: 0 16px 48px -16px rgba(0, 0, 0, .65);--elevation-focus: 0 0 0 2px rgba(232, 234, 237, .12);--glass-bg: rgba(15, 15, 15, .78);--glass-bg-rail: rgba(22, 22, 22, .82)}[data-theme=slate]{color-scheme:dark;--color-ink: #d4d4d4;--color-ink-muted: #9d9d9d;--color-ink-faint: #6e6e6e;--color-icon: #cccccc;--color-hairline: #3c3c3c;--color-surface: #1e1e1e;--color-rail: #252526;--color-card: #2d2d2d;--color-hover: #2a2d2e;--color-active: #37373d;--color-on-ink: #1e1e1e;--color-grid: #3c3c3c;--color-grid-strong: #505050;--color-axis: #6e6e6e;--color-forecast: #569cd6;--color-actual: #d7ba7d;--color-series-2: #569cd6;--color-series-3: #ce9178;--color-series-4: #4ec9b0;--color-series-5: #c586c0;--color-series-6: #d7ba7d;--color-success: #4ec9b0;--color-danger: #f14c4c}[data-theme=one-dark]{color-scheme:dark;--color-ink: #abb2bf;--color-ink-muted: #7f848e;--color-ink-faint: #5c6370;--color-icon: #7f848e;--color-hairline: #3b4048;--color-surface: #21252b;--color-rail: #282c34;--color-card: #2c313c;--color-hover: #2c313a;--color-active: #3e4451;--color-on-ink: #21252b;--color-grid: #3b4048;--color-grid-strong: #4b5263;--color-axis: #5c6370;--color-forecast: #61afef;--color-actual: #e5c07b;--color-series-2: #61afef;--color-series-3: #e5c07b;--color-series-4: #98c379;--color-series-5: #c678dd;--color-series-6: #e06c75;--color-success: #98c379;--color-danger: #e06c75}[data-theme=dracula]{color-scheme:dark;--color-ink: #f8f8f2;--color-ink-muted: #bfbfbf;--color-ink-faint: #6272a4;--color-icon: #6272a4;--color-hairline: #44475a;--color-surface: #191a21;--color-rail: #21222c;--color-card: #282a36;--color-hover: #343746;--color-active: #44475a;--color-on-ink: #191a21;--color-grid: #3d4052;--color-grid-strong: #44475a;--color-axis: #6272a4;--color-forecast: #8be9fd;--color-actual: #ff79c6;--color-series-2: #8be9fd;--color-series-3: #ffb86c;--color-series-4: #50fa7b;--color-series-5: #bd93f9;--color-series-6: #ff79c6;--color-success: #50fa7b;--color-danger: #ff5555}[data-theme=monokai]{color-scheme:dark;--color-ink: #f8f8f2;--color-ink-muted: #cfcfc2;--color-ink-faint: #75715e;--color-icon: #75715e;--color-hairline: #3e3d32;--color-surface: #1e1f1c;--color-rail: #23241f;--color-card: #272822;--color-hover: #3e3d32;--color-active: #49483e;--color-on-ink: #1e1f1c;--color-grid: #3e3d32;--color-grid-strong: #49483e;--color-axis: #75715e;--color-forecast: #66d9ef;--color-actual: #f92672;--color-series-2: #66d9ef;--color-series-3: #fd971f;--color-series-4: #a6e22e;--color-series-5: #ae81ff;--color-series-6: #f92672;--color-success: #a6e22e;--color-danger: #f92672}[data-theme=tokyo-night]{color-scheme:dark;--color-ink: #c0caf5;--color-ink-muted: #9aa5ce;--color-ink-faint: #565f89;--color-icon: #565f89;--color-hairline: #3b4261;--color-surface: #16161e;--color-rail: #1a1b26;--color-card: #1f2335;--color-hover: #24283b;--color-active: #3b4261;--color-on-ink: #16161e;--color-grid: #292e42;--color-grid-strong: #3b4261;--color-axis: #565f89;--color-forecast: #7aa2f7;--color-actual: #ff9e64;--color-series-2: #7aa2f7;--color-series-3: #ff9e64;--color-series-4: #9ece6a;--color-series-5: #bb9af7;--color-series-6: #f7768e;--color-success: #9ece6a;--color-danger: #f7768e}[data-theme=nord]{color-scheme:dark;--color-ink: #eceff4;--color-ink-muted: #d8dee9;--color-ink-faint: #7b88a1;--color-icon: #81a1c1;--color-hairline: #3b4252;--color-surface: #2e3440;--color-rail: #3b4252;--color-card: #434c5e;--color-hover: #434c5e;--color-active: #4c566a;--color-on-ink: #2e3440;--color-grid: #3b4252;--color-grid-strong: #4c566a;--color-axis: #7b88a1;--color-forecast: #88c0d0;--color-actual: #ebcb8b;--color-series-2: #88c0d0;--color-series-3: #d08770;--color-series-4: #a3be8c;--color-series-5: #b48ead;--color-series-6: #bf616a;--color-success: #a3be8c;--color-danger: #bf616a}[data-theme=mocha]{color-scheme:dark;--color-ink: #cdd6f4;--color-ink-muted: #a6adc8;--color-ink-faint: #6c7086;--color-icon: #6c7086;--color-hairline: #45475a;--color-surface: #1e1e2e;--color-rail: #181825;--color-card: #313244;--color-hover: #313244;--color-active: #45475a;--color-on-ink: #1e1e2e;--color-grid: #313244;--color-grid-strong: #45475a;--color-axis: #6c7086;--color-forecast: #89b4fa;--color-actual: #f38ba8;--color-series-2: #89b4fa;--color-series-3: #fab387;--color-series-4: #a6e3a1;--color-series-5: #cba6f7;--color-series-6: #f38ba8;--color-success: #a6e3a1;--color-danger: #f38ba8}[data-theme=night]{color-scheme:dark;--color-ink: #d6deeb;--color-ink-muted: #9fb3c8;--color-ink-faint: #637777;--color-icon: #82aaff;--color-hairline: #122d42;--color-surface: #011627;--color-rail: #011221;--color-card: #0b2942;--color-hover: #0b2942;--color-active: #1d3b53;--color-on-ink: #011627;--color-grid: #1d3b53;--color-grid-strong: #2b4a67;--color-axis: #5f7e97;--color-forecast: #82aaff;--color-actual: #f78c6c;--color-series-2: #82aaff;--color-series-3: #f78c6c;--color-series-4: #addb67;--color-series-5: #c792ea;--color-series-6: #ff5874;--color-success: #addb67;--color-danger: #ef5350}[data-theme=solarized]{color-scheme:dark;--color-ink: #839496;--color-ink-muted: #657b83;--color-ink-faint: #586e75;--color-icon: #586e75;--color-hairline: #0a3941;--color-surface: #002b36;--color-rail: #00212b;--color-card: #073642;--color-hover: #073642;--color-active: #0a4450;--color-on-ink: #002b36;--color-grid: #0a3941;--color-grid-strong: #1a4d58;--color-axis: #586e75;--color-forecast: #268bd2;--color-actual: #b58900;--color-series-2: #268bd2;--color-series-3: #cb4b16;--color-series-4: #859900;--color-series-5: #6c71c4;--color-series-6: #d33682;--color-success: #859900;--color-danger: #dc322f}[data-theme]:not([data-theme=pravah-light]){--color-switch-track: var(--color-ink-faint);--color-danger-bg: #3b1118;--color-danger-border: #5c1a24;--color-warning-bg: #3a2410;--color-warning-border: #5c3a16;--color-success-bg: #0f2e22;--color-scrim: rgba(0, 0, 0, .65);--elevation-menu: 0 4px 16px -4px rgba(0, 0, 0, .55);--elevation-modal: 0 16px 48px -16px rgba(0, 0, 0, .65);--elevation-focus: 0 0 0 2px rgba(232, 234, 237, .12)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-relaxed);color:var(--color-ink);background:var(--color-surface);-webkit-font-smoothing:antialiased}button,input,select{font-family:inherit}.boot{min-height:100%;display:grid;place-items:center;background:var(--color-surface)}.boot-stack{display:flex;flex-direction:column;align-items:center;gap:var(--space-stack)}.boot-mark{font-size:var(--text-header-title);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-ink)}.boot-tag{font-family:var(--font-mono);font-size:var(--text-mono-label);letter-spacing:var(--tracking-mono-label);text-transform:uppercase;color:var(--color-ink-faint)}.boot-status{font-size:var(--text-body-sm);color:var(--color-ink-muted)}.shell{display:grid;grid-template-columns:var(--size-sidebar) minmax(0,1fr);grid-template-rows:var(--size-header) minmax(0,1fr);height:100%;overflow:hidden;background:var(--color-surface)}.workspace{grid-column:2;grid-row:1 / -1;display:grid;grid-template-rows:var(--size-header) minmax(0,1fr);min-width:0;min-height:0;position:relative;overflow:hidden}.view-stack{grid-column:1;grid-row:1 / -1;display:grid;grid-template-rows:var(--size-header) minmax(0,1fr);min-width:0;min-height:0}.view-stack.is-away{display:none}.rail{grid-row:1 / -1;display:flex;flex-direction:column;background:var(--color-rail);border-right:var(--border-hairline) solid var(--color-hairline);min-height:0;height:100%;overflow:hidden}.rail-brand{display:flex;align-items:center;gap:var(--space-inline);height:var(--size-header);padding:0 var(--space-3);border-bottom:var(--border-hairline) solid var(--color-hairline);flex-shrink:0}.rail-parent{font-size:var(--text-body);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-ink)}.rail-rule{width:var(--border-hairline);height:var(--space-3);background:var(--color-hairline)}.rail-product{font-size:var(--text-body);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-ink)}.rail-nav{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3);flex:1;min-height:0;overflow-y:auto}.rail-split{height:var(--border-hairline);background:var(--color-hairline);margin:var(--space-2) 0}.nav-item{display:flex;align-items:center;gap:var(--space-2);height:var(--size-control-sm);padding:0 var(--space-2);border:0;border-radius:var(--radius-base);background:transparent;color:var(--color-ink-muted);font-size:var(--text-body);text-align:left;cursor:pointer;position:relative}.nav-item:hover{background:var(--color-hover);color:var(--color-ink)}.nav-item.is-active{background:var(--color-active);color:var(--color-ink);font-weight:var(--weight-medium)}.nav-item.is-active:before{content:"";position:absolute;left:0;top:var(--space-1);bottom:var(--space-1);width:2px;background:var(--color-accent);border-radius:0}.rail-foot{padding:var(--space-3);border-top:var(--border-hairline) solid var(--color-hairline);flex-shrink:0}.rail-meta{font-family:var(--font-mono);font-size:var(--text-mono-meta);color:var(--color-ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header{display:flex;align-items:center;justify-content:space-between;height:var(--size-header);padding:0 var(--space-6);border-bottom:var(--border-hairline) solid var(--color-hairline);background:var(--color-surface);min-width:0;z-index:2}.header-left{display:flex;align-items:center;gap:var(--space-3);min-width:0}.header-title{margin:0;font-size:var(--text-header-title);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-ink);white-space:nowrap}.period-wrap{position:relative;flex-shrink:0}.period{display:inline-flex;align-items:center;gap:var(--space-2);height:var(--size-control-sm);padding:0 var(--space-3);border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-body);font-weight:var(--weight-medium);cursor:pointer}.period:hover{background:var(--color-hover)}.period:focus-visible{outline:none;box-shadow:var(--elevation-focus)}.period-chevron{color:var(--color-ink-faint);font-size:var(--text-body-sm)}.period-custom{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-3) var(--space-3);border-top:var(--border-hairline) solid var(--color-hairline);margin-top:var(--space-1)}.date-input{height:var(--size-control-sm);padding:0 var(--space-2);border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-body-sm)}.header-right{display:flex;align-items:center;gap:var(--space-3);color:var(--color-ink-faint);font-size:var(--text-body-sm)}.header-signout{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:0;color:var(--color-ink-muted);font:inherit;font-size:var(--text-body-sm);font-weight:var(--weight-medium);cursor:pointer}.header-signout:hover{color:var(--color-ink)}.export-wrap{position:relative;flex-shrink:0}.menu{position:absolute;top:calc(100% + var(--space-1));left:0;z-index:20;min-width:var(--size-sidebar);max-height:var(--size-chart-plot);overflow:auto;padding:var(--space-1);border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-card, var(--color-surface));box-shadow:var(--elevation-menu)}.menu-end{left:auto;right:0}.menu-item{display:block;width:100%;text-align:left;border:0;border-radius:var(--radius-sm);background:transparent;padding:var(--space-2) var(--space-3);color:var(--color-ink-muted);font-size:var(--text-body);cursor:pointer}.menu-item:hover{background:var(--color-hover);color:var(--color-ink)}.menu-item.is-selected{background:var(--color-active);color:var(--color-ink);font-weight:var(--weight-medium)}.menu-item .menu-meta{display:block;font-family:var(--font-mono);font-size:var(--text-mono-meta);color:var(--color-ink-faint);font-weight:var(--weight-regular)}.stage{padding:var(--space-6);overflow:auto;min-width:0;min-height:0;background:var(--color-surface)}.kpi{display:flex;border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-card, var(--color-surface))}.kpi-cell{flex:1;display:flex;flex-direction:column;gap:var(--space-label);padding:var(--space-4) var(--space-5);border-right:var(--border-hairline) solid var(--color-hairline)}.kpi-cell:last-child{border-right:0}.kpi-label{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-ink-faint)}.kpi-value{font-family:var(--font-mono);font-size:var(--text-value-lg);font-weight:var(--weight-medium);font-variant-numeric:tabular-nums;color:var(--color-ink);line-height:var(--leading-tight)}.kpi-meta{font-size:var(--text-body-sm);color:var(--color-ink-faint)}.panel{border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-card, var(--color-surface))}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-4) 0}.panel-tools{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.segmented{display:inline-flex;padding:var(--space-label);border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-surface)}.segmented button{height:var(--size-control-sm);padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink-muted);font-size:var(--text-body-sm);cursor:pointer}.segmented button:hover{background:var(--color-hover);color:var(--color-ink)}.segmented button.is-on{background:var(--color-active);color:var(--color-ink);font-weight:var(--weight-medium)}.panel-titles{display:flex;flex-direction:column;gap:var(--space-label)}.panel-title{margin:0;font-size:var(--text-chart-title);font-weight:var(--weight-medium);color:var(--color-ink)}.panel-unit{font-size:var(--text-body-sm);font-weight:var(--weight-regular);color:var(--color-ink-muted)}.panel-sub{margin:0;font-size:var(--text-body-sm);color:var(--color-ink-muted)}.panel-body{padding:var(--space-4)}.panel-plot{width:100%;height:calc(var(--size-chart-plot) + var(--space-16))}.viz{display:flex;flex-direction:column;gap:var(--space-viz-gap-y);margin-top:var(--space-viz-block)}.viz-section{display:flex;flex-direction:column;gap:var(--space-viz-block)}.section-title{margin:0;font-size:var(--text-section-title);font-weight:var(--weight-medium);color:var(--color-ink)}.field{display:flex;flex-direction:column;gap:var(--space-label)}.field-label{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-ink-faint)}.field-value{font-family:var(--font-mono);font-size:var(--text-body);font-variant-numeric:tabular-nums;color:var(--color-ink)}.slider{display:flex;align-items:center;gap:var(--space-inline)}.slider input[type=range]{width:calc(var(--size-sidebar) - var(--space-8));accent-color:var(--color-ink)}.btn{display:inline-flex;align-items:center;justify-content:center;height:var(--size-control-sm);padding:0 var(--space-3);border-radius:var(--radius-base);border:var(--border-hairline) solid transparent;font-size:var(--text-body);font-weight:var(--weight-medium);cursor:pointer}.btn:focus-visible{outline:none;box-shadow:var(--elevation-focus)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--color-ink);color:var(--color-on-ink)}.btn-ghost{background:var(--color-surface);color:var(--color-ink-muted);border-color:var(--color-hairline)}.btn-ghost:hover{background:var(--color-hover);color:var(--color-ink)}.btn-icon{width:var(--size-control-sm);padding:0;color:var(--color-ink-faint);background:transparent;border-color:transparent}.btn-icon:hover{background:var(--color-hover);color:var(--color-ink)}.icon{width:var(--size-icon);height:var(--size-icon);display:block}.switch{display:inline-flex;align-items:center;gap:var(--space-inline);cursor:pointer}.switch-track{position:relative;width:calc(var(--size-icon) + var(--space-5));height:calc(var(--size-icon) + var(--space-2));padding:0;border:var(--border-hairline) solid var(--color-ink-faint);border-radius:var(--radius-full);background:var(--color-switch-track, var(--color-hairline));cursor:pointer}.switch-track.is-on{background:var(--color-ink);border-color:var(--color-ink)}.switch-track:focus-visible{outline:none;box-shadow:var(--elevation-focus)}.switch-knob{position:absolute;top:var(--space-label);left:var(--space-label);width:var(--size-icon);height:var(--size-icon);border-radius:var(--radius-full);background:var(--color-surface)}.switch-track.is-on .switch-knob{left:auto;right:var(--space-label)}.switch-label{font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--color-ink-faint)}.theme-switch{position:relative;flex-shrink:0;width:calc(var(--size-icon) * 2 + var(--space-2));height:calc(var(--size-icon) + var(--space-2));padding:0;border:0;border-radius:var(--radius-full);background:var(--color-ink);cursor:pointer}.theme-switch:focus-visible{outline:none;box-shadow:var(--elevation-focus)}.theme-switch-knob{position:absolute;top:var(--space-label);left:var(--space-label);width:var(--size-icon);height:var(--size-icon);display:grid;place-items:center;border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-ink);transition:left var(--motion-fast) var(--motion-easing)}.theme-switch.is-dark .theme-switch-knob{left:calc(100% - var(--size-icon) - var(--space-label))}.theme-switch .icon{width:var(--size-icon);height:var(--size-icon)}@media(prefers-reduced-motion:reduce){.theme-switch-knob{transition:none}}.banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-danger-bg);border:var(--border-hairline) solid var(--color-hairline);border-left:2px solid var(--color-danger);border-radius:var(--radius-base);color:var(--color-ink);font-size:var(--text-body)}.banner p{margin:0;color:var(--color-ink-muted)}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-12) var(--space-6);gap:var(--space-label)}.empty h2{margin:0;font-size:var(--text-section-title);font-weight:var(--weight-medium);color:var(--color-ink)}.empty p{margin:0;color:var(--color-ink-muted);max-width:var(--size-modal)}.empty .btn{margin-top:var(--space-stack)}.skel{border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-hover);animation:pulse 1.2s ease-in-out infinite}.skel-kpi{height:calc(var(--size-header) + var(--space-8))}.skel-plot{height:var(--size-chart-plot);margin-top:var(--space-viz-gap-y)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3);margin-top:var(--space-viz-block)}.theme-card{display:flex;flex-direction:column;gap:var(--space-label);padding:var(--space-3);border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-card, var(--color-surface));color:var(--color-ink);text-align:left;cursor:pointer}.theme-card:hover{background:var(--color-hover)}.theme-card.is-on{background:var(--color-active);box-shadow:var(--elevation-focus)}.theme-swatch{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;height:var(--size-control);border-radius:var(--radius-sm);overflow:hidden}.theme-card-name{font-size:var(--text-body);font-weight:var(--weight-medium)}.theme-card-meta{font-family:var(--font-mono);font-size:var(--text-mono-meta);color:var(--color-ink-faint)}.settings-card{margin-top:var(--space-viz-block);padding:var(--space-4);border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-card, var(--color-surface))}.settings-stack{display:flex;flex-direction:column;gap:var(--space-stack);align-items:flex-start}.chip-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);height:var(--size-control-sm);padding:0 var(--space-3);border:var(--border-hairline) solid var(--color-hairline);border-radius:var(--radius-base);background:var(--color-surface);color:var(--color-ink);font-size:var(--text-body-sm);font-weight:var(--weight-medium);cursor:pointer}.chip:hover{background:var(--color-hover)}.chip-x{color:var(--color-ink-faint)}.settings-add{display:flex;align-items:flex-end;gap:var(--space-3);margin-top:var(--space-3)}.settings-add .date-input{width:calc(var(--size-control) * 2)}@keyframes pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.skel{animation:none}}.driver-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-viz-gap-x) var(--space-viz-gap-y)}.accuracy-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-viz-gap-x) var(--space-viz-gap-y)}.accuracy-grid .panel,.driver-grid .panel{min-width:0}@media(max-width:1023px){.driver-grid,.accuracy-grid{grid-template-columns:1fr;gap:var(--space-viz-gap-y)}}@media(max-width:767px){.kpi{flex-direction:column}.kpi-cell{border-right:0;border-bottom:var(--border-hairline) solid var(--color-hairline)}.kpi-cell:last-child{border-bottom:0}.header{padding:0 var(--space-4)}.stage{padding:var(--space-4)}}
