@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/orbitron-latin-700-normal-4jsRXGGJ.woff2)format("woff2"),url(/assets/orbitron-latin-700-normal-DmYOh-W9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--vh-font-sans:"Geist Variable", "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--vh-font-mono:"Geist Mono Variable", "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--vh-font-display:"Orbitron", "Geist Variable", ui-sans-serif, system-ui, sans-serif;--vh-text-eyebrow:10px;--vh-text-caption:11px;--vh-text-xs:12px;--vh-text-sm:14px;--vh-text-base:15px;--vh-text-md:16px;--vh-text-lg:18px;--vh-text-xl:20px;--vh-text-2xl:22px;--vh-text-3xl:24px;--vh-text-4xl:28px;--vh-text-5xl:32px;--vh-text-battery:40px;--vh-text-session:72px;--vh-weight-light:300;--vh-weight-regular:400;--vh-weight-medium:500;--vh-weight-semibold:600;--vh-weight-bold:700;--vh-weight-extrabold:800;--vh-leading-tight:1.15;--vh-leading-snug:1.3;--vh-leading-normal:1.5;--vh-space-0:0px;--vh-space-1:4px;--vh-space-2:8px;--vh-space-3:12px;--vh-space-4:16px;--vh-space-5:20px;--vh-space-6:24px;--vh-space-8:32px;--vh-space-10:40px;--vh-space-12:48px;--vh-space-16:64px;--vh-space-0_5:2px;--vh-space-1_5:6px;--vh-radius-sm:4px;--vh-radius-md:8px;--vh-radius-tight:12px;--vh-radius-snug:14px;--vh-radius-xl:16px;--vh-radius-card:20px;--vh-radius-sheet:24px;--vh-radius-pill:9999px;--vh-touch-min:44px;--vh-touch-comfortable:48px;--vh-touch-large:56px;--vh-duration-fast:.12s;--vh-duration-base:.2s;--vh-duration-slow:.6s;--vh-ease-out:cubic-bezier(.215, .61, .355, 1);--vh-ease-out-expo:cubic-bezier(.16, 1, .3, 1);--vh-bp-sm:480px;--vh-bp-md:768px;--vh-bp-lg:1024px;--vh-bp-xl:1280px;--vh-z-base:0;--vh-z-sticky:10;--vh-z-shell:20;--vh-z-overlay:50;--vh-z-dialog:60;--vh-z-toast:80;--vh-color-brand:#3aff8c;--vh-color-brand-strong:#6dffaa;--vh-color-brand-soft:#3aff8c24;--vh-color-on-brand:#041208;--vh-color-accent-text:#3aff8c;--vh-color-bg:#05070a;--vh-color-bg-2:#0a0e14;--vh-color-surface:#0e1319;--vh-color-surface-2:#141a22;--vh-color-surface-3:#1b232d;--vh-color-fg:#e8ecf1;--vh-color-fg-muted:#8a94a3;--vh-color-fg-subtle:#808a98;--vh-color-border:#ffffff14;--vh-color-border-strong:#ffffff24;--vh-color-danger:#ff5a6b;--vh-color-danger-soft:#ff5a6b24;--vh-color-warn:#ffb547;--vh-color-warn-soft:#ffb54724;--vh-color-success:#3aff8c;--vh-color-success-soft:#3aff8c1f;--vh-color-info:#4689f6;--vh-color-info-soft:#3b82f629;--vh-color-accent-cyan:#5ee3ff;--vh-color-accent-gold:#ffd36b;--vh-color-glow:#3aff8c59;--vh-color-overlay:#0009;--vh-shadow-card:0 4px 12px #0000001f;--vh-shadow-lift:0 12px 36px #00000073;--vh-shadow-glow:0 0 28px #3aff8c59, 0 0 64px #3aff8c59}[data-theme=dark]{--vh-color-brand:#3aff8c;--vh-color-brand-strong:#6dffaa;--vh-color-brand-soft:#3aff8c24;--vh-color-on-brand:#041208;--vh-color-accent-text:#3aff8c;--vh-color-bg:#05070a;--vh-color-bg-2:#0a0e14;--vh-color-surface:#0e1319;--vh-color-surface-2:#141a22;--vh-color-surface-3:#1b232d;--vh-color-fg:#e8ecf1;--vh-color-fg-muted:#8a94a3;--vh-color-fg-subtle:#808a98;--vh-color-border:#ffffff14;--vh-color-border-strong:#ffffff24;--vh-color-danger:#ff5a6b;--vh-color-danger-soft:#ff5a6b24;--vh-color-warn:#ffb547;--vh-color-warn-soft:#ffb54724;--vh-color-success:#3aff8c;--vh-color-success-soft:#3aff8c1f;--vh-color-info:#4689f6;--vh-color-info-soft:#3b82f629;--vh-color-accent-cyan:#5ee3ff;--vh-color-accent-gold:#ffd36b;--vh-color-glow:#3aff8c59;--vh-color-overlay:#0009;--vh-shadow-card:0 4px 12px #0000001f;--vh-shadow-lift:0 12px 36px #00000073;--vh-shadow-glow:0 0 28px #3aff8c59, 0 0 64px #3aff8c59}[data-theme=light]{--vh-color-brand:#1a7c11;--vh-color-brand-strong:#0f5a0a;--vh-color-brand-soft:#1a7c111f;--vh-color-on-brand:#fff;--vh-color-accent-text:#1a7c11;--vh-color-bg:#f4f6f4;--vh-color-bg-2:#eaeee9;--vh-color-surface:#fff;--vh-color-surface-2:#f8faf7;--vh-color-surface-3:#edf2ec;--vh-color-fg:#0b120e;--vh-color-fg-muted:#4b5360;--vh-color-fg-subtle:#656c79;--vh-color-border:#0b120e14;--vh-color-border-strong:#0b120e24;--vh-color-danger:#d02424;--vh-color-danger-soft:#dc26261a;--vh-color-warn:#ae5009;--vh-color-warn-soft:#b453091f;--vh-color-success:#147b3b;--vh-color-success-soft:#15803d1f;--vh-color-info:#2462e7;--vh-color-info-soft:#2563eb1a;--vh-color-accent-cyan:#007593;--vh-color-accent-gold:#ae5009;--vh-color-glow:#1a7c1159;--vh-color-overlay:#0b120e73;--vh-shadow-card:0 4px 12px #0b120e14;--vh-shadow-lift:0 12px 36px #0b120e2e;--vh-shadow-glow:0 0 28px #1a7c1147, 0 0 64px #1a7c1124}@media (prefers-color-scheme:light){[data-theme=system]{--vh-color-brand:#1a7c11;--vh-color-brand-strong:#0f5a0a;--vh-color-brand-soft:#1a7c111f;--vh-color-on-brand:#fff;--vh-color-accent-text:#1a7c11;--vh-color-bg:#f4f6f4;--vh-color-bg-2:#eaeee9;--vh-color-surface:#fff;--vh-color-surface-2:#f8faf7;--vh-color-surface-3:#edf2ec;--vh-color-fg:#0b120e;--vh-color-fg-muted:#4b5360;--vh-color-fg-subtle:#656c79;--vh-color-border:#0b120e14;--vh-color-border-strong:#0b120e24;--vh-color-danger:#d02424;--vh-color-danger-soft:#dc26261a;--vh-color-warn:#ae5009;--vh-color-warn-soft:#b453091f;--vh-color-success:#147b3b;--vh-color-success-soft:#15803d1f;--vh-color-info:#2462e7;--vh-color-info-soft:#2563eb1a;--vh-color-accent-cyan:#007593;--vh-color-accent-gold:#ae5009;--vh-color-glow:#1a7c1159;--vh-color-overlay:#0b120e73;--vh-shadow-card:0 4px 12px #0b120e14;--vh-shadow-lift:0 12px 36px #0b120e2e;--vh-shadow-glow:0 0 28px #1a7c1147, 0 0 64px #1a7c1124}}:root[data-accent=green]:not([data-theme]),[data-accent=green][data-theme=dark]{--vh-color-brand:#3aff8c;--vh-color-brand-strong:#6dffaa;--vh-color-brand-soft:#3aff8c24;--vh-color-on-brand:#041208;--vh-color-accent-text:#3aff8c;--vh-color-glow:#3aff8c59}[data-accent=green][data-theme=light]{--vh-color-brand:#1a7c11;--vh-color-brand-strong:#0f5a0a;--vh-color-brand-soft:#1a7c111f;--vh-color-on-brand:#fff;--vh-color-accent-text:#1a7c11;--vh-color-glow:#1a7c1159}@media (prefers-color-scheme:light){[data-accent=green][data-theme=system]{--vh-color-brand:#1a7c11;--vh-color-brand-strong:#0f5a0a;--vh-color-brand-soft:#1a7c111f;--vh-color-on-brand:#fff;--vh-color-accent-text:#1a7c11;--vh-color-glow:#1a7c1159}}@media (prefers-color-scheme:dark){[data-accent=green][data-theme=system]{--vh-color-brand:#3aff8c;--vh-color-brand-strong:#6dffaa;--vh-color-brand-soft:#3aff8c24;--vh-color-on-brand:#041208;--vh-color-accent-text:#3aff8c;--vh-color-glow:#3aff8c59}}:root[data-accent=cyan]:not([data-theme]),[data-accent=cyan][data-theme=dark]{--vh-color-brand:#5ee3ff;--vh-color-brand-strong:#9aeeff;--vh-color-brand-soft:#5ee3ff24;--vh-color-on-brand:#04141a;--vh-color-accent-text:#5ee3ff;--vh-color-glow:#5ee3ff59}[data-accent=cyan][data-theme=light]{--vh-color-brand:#007a99;--vh-color-brand-strong:#005d75;--vh-color-brand-soft:#007a991f;--vh-color-on-brand:#fff;--vh-color-accent-text:#006f8c;--vh-color-glow:#007a9959}@media (prefers-color-scheme:light){[data-accent=cyan][data-theme=system]{--vh-color-brand:#007a99;--vh-color-brand-strong:#005d75;--vh-color-brand-soft:#007a991f;--vh-color-on-brand:#fff;--vh-color-accent-text:#006f8c;--vh-color-glow:#007a9959}}@media (prefers-color-scheme:dark){[data-accent=cyan][data-theme=system]{--vh-color-brand:#5ee3ff;--vh-color-brand-strong:#9aeeff;--vh-color-brand-soft:#5ee3ff24;--vh-color-on-brand:#04141a;--vh-color-accent-text:#5ee3ff;--vh-color-glow:#5ee3ff59}}:root[data-accent=gold]:not([data-theme]),[data-accent=gold][data-theme=dark]{--vh-color-brand:#ffd36b;--vh-color-brand-strong:#ffe3a0;--vh-color-brand-soft:#ffd36b24;--vh-color-on-brand:#1a1200;--vh-color-accent-text:#ffd36b;--vh-color-glow:#ffd36b59}[data-accent=gold][data-theme=light]{--vh-color-brand:#b45309;--vh-color-brand-strong:#8a3f07;--vh-color-brand-soft:#b453091f;--vh-color-on-brand:#fff;--vh-color-accent-text:#a04a08;--vh-color-glow:#b4530959}@media (prefers-color-scheme:light){[data-accent=gold][data-theme=system]{--vh-color-brand:#b45309;--vh-color-brand-strong:#8a3f07;--vh-color-brand-soft:#b453091f;--vh-color-on-brand:#fff;--vh-color-accent-text:#a04a08;--vh-color-glow:#b4530959}}@media (prefers-color-scheme:dark){[data-accent=gold][data-theme=system]{--vh-color-brand:#ffd36b;--vh-color-brand-strong:#ffe3a0;--vh-color-brand-soft:#ffd36b24;--vh-color-on-brand:#1a1200;--vh-color-accent-text:#ffd36b;--vh-color-glow:#ffd36b59}}:root[data-accent=plasma]:not([data-theme]),[data-accent=plasma][data-theme=dark]{--vh-color-brand:#ff6bd6;--vh-color-brand-strong:#ff9ce3;--vh-color-brand-soft:#ff6bd624;--vh-color-on-brand:#1a0414;--vh-color-accent-text:#ff6bd6;--vh-color-glow:#ff6bd659}[data-accent=plasma][data-theme=light]{--vh-color-brand:#a21caf;--vh-color-brand-strong:#7e1488;--vh-color-brand-soft:#a21caf1f;--vh-color-on-brand:#fff;--vh-color-accent-text:#a21caf;--vh-color-glow:#a21caf59}@media (prefers-color-scheme:light){[data-accent=plasma][data-theme=system]{--vh-color-brand:#a21caf;--vh-color-brand-strong:#7e1488;--vh-color-brand-soft:#a21caf1f;--vh-color-on-brand:#fff;--vh-color-accent-text:#a21caf;--vh-color-glow:#a21caf59}}@media (prefers-color-scheme:dark){[data-accent=plasma][data-theme=system]{--vh-color-brand:#ff6bd6;--vh-color-brand-strong:#ff9ce3;--vh-color-brand-soft:#ff6bd624;--vh-color-on-brand:#1a0414;--vh-color-accent-text:#ff6bd6;--vh-color-glow:#ff6bd659}}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:light){[data-theme=system]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}@layer vh-base{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--vh-color-bg);color:var(--vh-color-fg);font-family:var(--vh-font-sans);font-size:var(--vh-text-base);line-height:var(--vh-leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3{text-wrap:balance;letter-spacing:-.015em;line-height:var(--vh-leading-tight)}p{text-wrap:pretty}a{color:var(--vh-color-accent-text);text-underline-offset:.2em;text-decoration-thickness:1px}button,input,select,textarea{font:inherit;color:inherit}img,svg{max-width:100%;display:block}::selection{background:var(--vh-color-brand);color:var(--vh-color-on-brand)}:focus{outline:none}:focus-visible{outline:2px solid var(--vh-color-brand);outline-offset:2px;border-radius:var(--vh-radius-sm)}*{scrollbar-width:thin;scrollbar-color:var(--vh-color-border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--vh-color-border-strong);border-radius:var(--vh-radius-pill);background-clip:content-box;border:2px solid #0000}.vh-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vh-skip{left:var(--vh-space-3);top:var(--vh-space-3);z-index:var(--vh-z-toast);padding:var(--vh-space-2) var(--vh-space-4);border-radius:var(--vh-radius-pill);background:var(--vh-color-brand);color:var(--vh-color-on-brand);font-weight:var(--vh-weight-semibold);text-decoration:none;position:fixed;transform:translateY(-200%)}.vh-skip:focus-visible{transform:none}.vh-mono{font-family:var(--vh-font-mono);font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}}@layer vh-components{.vh-button{justify-content:center;align-items:center;gap:var(--vh-space-2);min-height:var(--vh-touch-min);padding:0 var(--vh-space-5);border-radius:var(--vh-radius-pill);font-weight:var(--vh-weight-semibold);font-size:var(--vh-text-sm);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--vh-duration-fast) var(--vh-ease-out), box-shadow var(--vh-duration-base) var(--vh-ease-out), transform var(--vh-duration-fast) var(--vh-ease-out), border-color var(--vh-duration-fast) var(--vh-ease-out);border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.vh-button:active:not(:disabled){transform:scale(.98)}.vh-button:disabled{opacity:.45;cursor:not-allowed}.vh-button[aria-busy=true]{cursor:progress;opacity:.85}.vh-button--sm{min-height:36px;padding:0 var(--vh-space-4);font-size:var(--vh-text-xs)}.vh-button--lg{min-height:var(--vh-touch-large);padding:0 var(--vh-space-8);font-size:var(--vh-text-md)}.vh-button--full{width:100%}.vh-button--primary{background:var(--vh-color-brand);color:var(--vh-color-on-brand);box-shadow:0 0 0 0 var(--vh-color-glow)}.vh-button--primary:hover:not(:disabled){background:var(--vh-color-brand-strong);box-shadow:var(--vh-shadow-glow)}[data-theme=light] .vh-button--primary:hover:not(:disabled),[data-theme=light].vh-button--primary:hover:not(:disabled){color:var(--vh-color-on-brand)}.vh-button--secondary{background:var(--vh-color-surface-2);color:var(--vh-color-fg);border-color:var(--vh-color-border-strong)}.vh-button--secondary:hover:not(:disabled){background:var(--vh-color-surface-3)}.vh-button--ghost{color:var(--vh-color-fg-muted);background:0 0}.vh-button--ghost:hover:not(:disabled){background:var(--vh-color-surface-3);color:var(--vh-color-fg)}.vh-button--danger{background:var(--vh-color-danger-soft);color:var(--vh-color-danger);border-color:var(--vh-color-danger)}.vh-button--danger:hover:not(:disabled){background:var(--vh-color-danger);color:var(--vh-color-bg)}.vh-icon-button{width:var(--vh-touch-min);padding:0}.vh-icon-button.vh-button--sm{width:36px}.vh-icon-button.vh-button--lg{width:var(--vh-touch-large);padding:0}.vh-spinner{border:2px solid var(--vh-color-border-strong);color:var(--vh-color-accent-text);border-top-color:currentColor;border-radius:50%;flex:none;animation:.7s linear infinite vh-spin;display:inline-block}.vh-spinner--sm{width:14px;height:14px;color:inherit}.vh-spinner--md{width:20px;height:20px}.vh-spinner--lg{border-width:3px;width:32px;height:32px}@keyframes vh-spin{to{transform:rotate(360deg)}}.vh-field{gap:6px;display:grid}.vh-field__label{font-size:var(--vh-text-sm);font-weight:var(--vh-weight-medium);color:var(--vh-color-fg);gap:var(--vh-space-2);align-items:baseline;padding:0;display:flex}.vh-field__tag{font-size:var(--vh-text-xs);font-weight:var(--vh-weight-regular);color:var(--vh-color-fg-subtle)}.vh-field__hint{font-size:var(--vh-text-xs);color:var(--vh-color-fg-muted)}.vh-field__error{font-size:var(--vh-text-xs);color:var(--vh-color-danger);font-weight:var(--vh-weight-medium)}.vh-input,.vh-select{min-height:var(--vh-touch-comfortable);background:var(--vh-color-surface-2);border:1px solid var(--vh-color-border-strong);border-radius:var(--vh-radius-tight);transition:border-color var(--vh-duration-fast) var(--vh-ease-out), box-shadow var(--vh-duration-fast) var(--vh-ease-out);align-items:center;display:flex;position:relative}.vh-input:hover,.vh-select:hover{border-color:var(--vh-color-fg-subtle)}.vh-input:focus-within,.vh-select:focus-within{border-color:var(--vh-color-brand);box-shadow:0 0 0 3px var(--vh-color-brand-soft);outline:2px solid var(--vh-color-brand);outline-offset:2px}.vh-input--invalid,.vh-select--invalid,.vh-textarea--invalid{border-color:var(--vh-color-danger)}.vh-input__control,.vh-select__control,.vh-textarea{width:100%;min-width:0;color:var(--vh-color-fg);padding:0 var(--vh-space-4);min-height:calc(var(--vh-touch-comfortable) - 2px);caret-color:var(--vh-color-brand);font-size:var(--vh-text-md);background:0 0;border:0}.vh-input__control:focus-visible,.vh-select__control:focus-visible,.vh-textarea:focus-visible{outline:none}.vh-input__control::placeholder,.vh-textarea::placeholder{color:var(--vh-color-fg-subtle);opacity:1}.vh-input__control:disabled,.vh-select__control:disabled,.vh-textarea:disabled{opacity:.5;cursor:not-allowed}.vh-input__adorn{color:var(--vh-color-fg-muted);padding-left:var(--vh-space-3);display:inline-flex}.vh-input__adorn:last-child{padding:0 var(--vh-space-3) 0 0}.vh-input__adorn+.vh-input__control{padding-left:var(--vh-space-2)}.vh-textarea{border:1px solid var(--vh-color-border-strong);background:var(--vh-color-surface-2);border-radius:var(--vh-radius-tight);padding:var(--vh-space-3) var(--vh-space-4);resize:vertical;line-height:var(--vh-leading-normal);display:block}.vh-textarea:focus-visible{border-color:var(--vh-color-brand);box-shadow:0 0 0 3px var(--vh-color-brand-soft);outline:2px solid var(--vh-color-brand);outline-offset:2px}.vh-select__control{appearance:none;padding-right:var(--vh-space-10);cursor:pointer}.vh-select__control option{background:var(--vh-color-surface);color:var(--vh-color-fg)}.vh-select__chevron{right:var(--vh-space-3);pointer-events:none;color:var(--vh-color-fg-muted);position:absolute}.vh-choice{align-items:flex-start;gap:var(--vh-space-3);min-height:var(--vh-touch-min);padding-block:var(--vh-space-2);display:flex;position:relative}.vh-choice__text{cursor:pointer;gap:2px;padding-top:1px;display:grid}.vh-choice__label{font-size:var(--vh-text-base);color:var(--vh-color-fg)}.vh-choice__description{font-size:var(--vh-text-xs);color:var(--vh-color-fg-muted)}.vh-checkbox,.vh-radio,.vh-switch{appearance:none;cursor:pointer;background:var(--vh-color-surface-2);border:1.5px solid var(--vh-color-fg-subtle);transition:background-color var(--vh-duration-fast) var(--vh-ease-out), border-color var(--vh-duration-fast) var(--vh-ease-out), box-shadow var(--vh-duration-fast) var(--vh-ease-out);flex:none;margin:0}.vh-checkbox,.vh-radio{width:22px;height:22px;margin-top:1px}.vh-checkbox{border-radius:6px}.vh-radio{border-radius:50%}.vh-checkbox:hover:not(:disabled),.vh-radio:hover:not(:disabled),.vh-switch:hover:not(:disabled){border-color:var(--vh-color-brand)}.vh-checkbox:checked,.vh-radio:checked{background:var(--vh-color-brand);border-color:var(--vh-color-brand)}.vh-checkbox{position:relative}.vh-checkbox:after{content:"";border:solid var(--vh-color-on-brand);width:6px;height:11px;transition:transform var(--vh-duration-fast) var(--vh-ease-out-expo);border-width:0 2.5px 2.5px 0;position:absolute;top:2.5px;left:6.5px;transform:rotate(45deg)scale(0)}.vh-checkbox:checked:after{transform:rotate(45deg)scale(1)}.vh-radio:checked{box-shadow:inset 0 0 0 4.5px var(--vh-color-surface-2)}.vh-checkbox:focus-visible,.vh-radio:focus-visible,.vh-switch:focus-visible{outline:2px solid var(--vh-color-brand);outline-offset:2px}.vh-checkbox:disabled,.vh-radio:disabled,.vh-switch:disabled{opacity:.45;cursor:not-allowed}.vh-switch{border-radius:var(--vh-radius-pill);width:44px;height:26px;margin-top:0;position:relative}.vh-switch:after{content:"";background:var(--vh-color-fg-muted);width:17px;height:17px;transition:transform var(--vh-duration-base) var(--vh-ease-out-expo), background-color var(--vh-duration-fast);border-radius:50%;position:absolute;top:3px;left:3px}.vh-switch:checked{background:var(--vh-color-brand);border-color:var(--vh-color-brand)}.vh-switch:checked:after{background:var(--vh-color-on-brand);transform:translate(18px)}.vh-radio-group{gap:var(--vh-space-1);border:0;min-width:0;margin:0;padding:0;display:grid}.vh-radio-group--horizontal{column-gap:var(--vh-space-6);flex-wrap:wrap;display:flex}.vh-radio-group--horizontal>legend{width:100%}.vh-radio-group>legend{margin-bottom:var(--vh-space-1)}.vh-segmented{background:var(--vh-color-surface-2);border:1px solid var(--vh-color-border);border-radius:var(--vh-radius-pill);gap:2px;padding:3px;display:inline-flex}.vh-segmented__item{width:36px;height:34px;color:var(--vh-color-fg-muted);border-radius:var(--vh-radius-pill);cursor:pointer;transition:background-color var(--vh-duration-fast), color var(--vh-duration-fast);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.vh-segmented__item:hover{color:var(--vh-color-fg)}.vh-segmented__item[aria-checked=true]{background:var(--vh-color-brand-soft);color:var(--vh-color-accent-text);box-shadow:inset 0 0 0 1px var(--vh-color-brand)}.vh-card{background:var(--vh-color-surface);border:1px solid var(--vh-color-border);border-radius:var(--vh-radius-card);min-width:0}.vh-card--raised{background:var(--vh-color-surface-2);box-shadow:var(--vh-shadow-card)}.vh-card--brand{background:var(--vh-color-brand-soft);border-color:var(--vh-color-brand)}.vh-card--pad-sm{padding:var(--vh-space-3)}.vh-card--pad-md{padding:var(--vh-space-5)}.vh-card--pad-lg{padding:var(--vh-space-8)}.vh-card__header{justify-content:space-between;align-items:flex-start;gap:var(--vh-space-4);margin-bottom:var(--vh-space-4);display:flex}.vh-card__title{font-size:var(--vh-text-lg);font-weight:var(--vh-weight-semibold)}.vh-card__description{margin-top:var(--vh-space-1);color:var(--vh-color-fg-muted);font-size:var(--vh-text-sm)}.vh-stat{gap:var(--vh-space-2);display:grid}.vh-stat__top{justify-content:space-between;align-items:center;gap:var(--vh-space-3);display:flex}.vh-stat__label{font-size:var(--vh-text-sm);color:var(--vh-color-fg-muted)}.vh-stat__icon{color:var(--vh-color-accent-text);display:inline-flex}.vh-stat__value{font-family:var(--vh-font-mono);font-variant-numeric:tabular-nums;font-size:var(--vh-text-4xl);font-weight:var(--vh-weight-semibold);letter-spacing:-.02em;line-height:1.1}.vh-stat__foot{gap:var(--vh-space-2) var(--vh-space-3);font-size:var(--vh-text-xs);color:var(--vh-color-fg-muted);flex-wrap:wrap;min-height:1.2em;display:flex}.vh-stat__delta{font-family:var(--vh-font-mono);font-weight:var(--vh-weight-medium);color:var(--vh-color-fg-muted)}.vh-stat__delta--good{color:var(--vh-color-success)}.vh-stat__delta--bad{color:var(--vh-color-danger)}.vh-badge{border-radius:var(--vh-radius-pill);font-size:var(--vh-text-xs);font-weight:var(--vh-weight-medium);white-space:nowrap;color:var(--vh-color-fg);background:var(--vh-color-surface-3);border:1px solid var(--vh-color-border);align-items:center;gap:6px;padding:4px 10px 4px 8px;line-height:1.2;display:inline-flex}.vh-badge--sm{font-size:var(--vh-text-caption);padding:2px 8px 2px 6px}.vh-badge__icon{display:inline-flex}.vh-badge--brand{background:var(--vh-color-brand-soft);border-color:var(--vh-color-brand)}.vh-badge--brand .vh-badge__icon{color:var(--vh-color-accent-text)}.vh-badge--success{background:var(--vh-color-success-soft)}.vh-badge--success .vh-badge__icon{color:var(--vh-color-success)}.vh-badge--warn{background:var(--vh-color-warn-soft)}.vh-badge--warn .vh-badge__icon{color:var(--vh-color-warn)}.vh-badge--danger{background:var(--vh-color-danger-soft);border-color:var(--vh-color-danger)}.vh-badge--danger .vh-badge__icon{color:var(--vh-color-danger)}.vh-badge--info{background:var(--vh-color-info-soft)}.vh-badge--info .vh-badge__icon{color:var(--vh-color-info)}.vh-badge--gold{background:var(--vh-color-warn-soft)}.vh-badge--gold .vh-badge__icon{color:var(--vh-color-accent-gold)}.vh-badge--neutral .vh-badge__icon{color:var(--vh-color-fg-muted)}.vh-status--Charging .vh-badge__icon{animation:vh-pulse 1.6s var(--vh-ease-out) infinite}.vh-status--Offline,.vh-status--Unavailable{color:var(--vh-color-fg-muted)}@keyframes vh-pulse{0%,to{opacity:1}50%{opacity:.35}}.vh-money{font-family:var(--vh-font-mono);font-variant-numeric:tabular-nums;font-weight:var(--vh-weight-medium);white-space:nowrap}.vh-money--sm{font-size:var(--vh-text-xs)}.vh-money--md{font-size:var(--vh-text-base)}.vh-money--lg{font-size:var(--vh-text-2xl);font-weight:var(--vh-weight-semibold)}.vh-money--xl{font-size:var(--vh-text-5xl);font-weight:var(--vh-weight-semibold);letter-spacing:-.03em}.vh-money--positive{color:var(--vh-color-success)}.vh-money--negative{color:var(--vh-color-danger)}.vh-skeleton{border-radius:var(--vh-radius-md);background:linear-gradient(90deg, var(--vh-color-border-strong) 0%, var(--vh-color-border) 50%, var(--vh-color-border-strong) 100%);background-size:200% 100%;min-height:1em;animation:1.4s linear infinite vh-shimmer;display:block}.vh-skeleton--circle{border-radius:50%}@keyframes vh-shimmer{to{background-position:-200% 0}}.vh-empty{justify-items:center;gap:var(--vh-space-2);text-align:center;padding:var(--vh-space-12) var(--vh-space-6);display:grid}.vh-empty__icon{border-radius:var(--vh-radius-xl);background:var(--vh-color-brand-soft);width:56px;height:56px;color:var(--vh-color-accent-text);margin-bottom:var(--vh-space-2);place-items:center;display:grid}.vh-empty__title{font-size:var(--vh-text-lg);font-weight:var(--vh-weight-semibold)}.vh-empty__text{max-width:42ch;color:var(--vh-color-fg-muted);font-size:var(--vh-text-sm)}.vh-empty__action{margin-top:var(--vh-space-3)}.vh-avatar{background:var(--vh-color-brand-soft);color:var(--vh-color-accent-text);border:1px solid var(--vh-color-border-strong);font-weight:var(--vh-weight-semibold);-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.vh-avatar--sm{width:28px;height:28px;font-size:var(--vh-text-caption)}.vh-avatar--md{width:40px;height:40px;font-size:var(--vh-text-sm)}.vh-avatar--lg{width:56px;height:56px;font-size:var(--vh-text-lg)}.vh-avatar__image{object-fit:cover;width:100%;height:100%}.vh-avatar__fallback{place-items:center;width:100%;height:100%;display:grid}.vh-tabs__list{gap:var(--vh-space-1);border-bottom:1px solid var(--vh-color-border-strong);display:flex;overflow-x:auto}.vh-tabs__trigger{align-items:center;gap:var(--vh-space-2);min-height:var(--vh-touch-min);padding:0 var(--vh-space-4);color:var(--vh-color-fg-muted);font-weight:var(--vh-weight-medium);font-size:var(--vh-text-sm);cursor:pointer;white-space:nowrap;transition:color var(--vh-duration-fast);background:0 0;border:0;display:inline-flex;position:relative}.vh-tabs__trigger:hover{color:var(--vh-color-fg)}.vh-tabs__trigger[data-state=active]{color:var(--vh-color-accent-text)}.vh-tabs__trigger[data-state=active]:after{content:"";left:var(--vh-space-3);right:var(--vh-space-3);background:var(--vh-color-brand);height:2px;box-shadow:0 0 12px var(--vh-color-glow);border-radius:2px;position:absolute;bottom:-1px}.vh-tabs__trigger:disabled{opacity:.4;cursor:not-allowed}.vh-tabs__badge{font-family:var(--vh-font-mono);font-size:var(--vh-text-caption);border-radius:var(--vh-radius-pill);background:var(--vh-color-surface-3);color:var(--vh-color-fg-muted);padding:1px 6px}.vh-tabs__panel{padding-top:var(--vh-space-5)}.vh-overlay{z-index:var(--vh-z-overlay);background:var(--vh-color-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:vh-fade var(--vh-duration-base) var(--vh-ease-out);position:fixed;inset:0}.vh-surface-overlay{z-index:var(--vh-z-dialog);background:var(--vh-color-surface);color:var(--vh-color-fg);border:1px solid var(--vh-color-border-strong);box-shadow:var(--vh-shadow-lift);flex-direction:column;max-height:100dvh;display:flex;position:fixed}.vh-dialog{border-radius:var(--vh-radius-card);width:min(520px,100vw - 32px);max-height:calc(100dvh - 32px);animation:vh-pop var(--vh-duration-base) var(--vh-ease-out-expo);top:50%;left:50%;transform:translate(-50%,-50%)}.vh-sheet--bottom{border-radius:var(--vh-radius-sheet) var(--vh-radius-sheet) 0 0;max-height:90dvh;animation:vh-up var(--vh-duration-base) var(--vh-ease-out-expo);border-bottom:0;bottom:0;left:0;right:0}@media (width>=768px){.vh-sheet--bottom{width:560px;animation-name:vh-up-centered;left:50%;right:auto;transform:translate(-50%)}}.vh-sheet--right,.vh-sheet--left{width:min(420px,92vw);height:100dvh;top:0;bottom:0}.vh-sheet--right{border-radius:var(--vh-radius-sheet) 0 0 var(--vh-radius-sheet);animation:vh-in-right var(--vh-duration-base) var(--vh-ease-out-expo);border-right:0;right:0}.vh-sheet--left{border-radius:0 var(--vh-radius-sheet) var(--vh-radius-sheet) 0;width:min(300px,86vw);animation:vh-in-left var(--vh-duration-base) var(--vh-ease-out-expo);border-left:0;left:0}.vh-overlay__head{justify-content:space-between;align-items:flex-start;gap:var(--vh-space-4);padding:var(--vh-space-5) var(--vh-space-5) var(--vh-space-3);display:flex}.vh-overlay__title{font-size:var(--vh-text-xl);font-weight:var(--vh-weight-semibold)}.vh-overlay__description{margin-top:var(--vh-space-1);color:var(--vh-color-fg-muted);font-size:var(--vh-text-sm)}.vh-overlay__body{padding:var(--vh-space-2) var(--vh-space-5) var(--vh-space-5);overflow-y:auto}.vh-overlay__foot{justify-content:flex-end;gap:var(--vh-space-3);padding:var(--vh-space-4) var(--vh-space-5);border-top:1px solid var(--vh-color-border);flex-wrap:wrap;display:flex}@keyframes vh-fade{0%{opacity:0}}@keyframes vh-pop{0%{opacity:0;transform:translate(-50%,-48%)scale(.97)}}@keyframes vh-up{0%{transform:translateY(100%)}}@keyframes vh-up-centered{0%{transform:translate(-50%,100%)}}@keyframes vh-in-right{0%{transform:translate(100%)}}@keyframes vh-in-left{0%{transform:translate(-100%)}}.vh-toast-viewport{z-index:var(--vh-z-toast);right:var(--vh-space-4);bottom:var(--vh-space-4);left:var(--vh-space-4);gap:var(--vh-space-2);pointer-events:none;flex-direction:column;align-items:flex-end;margin:0;padding:0;list-style:none;display:flex;position:fixed}.vh-toast{pointer-events:auto;align-items:flex-start;gap:var(--vh-space-3);width:min(380px,100%);padding:var(--vh-space-4);background:var(--vh-color-surface-2);border:1px solid var(--vh-color-border-strong);border-radius:var(--vh-radius-xl);box-shadow:var(--vh-shadow-lift);display:flex}.vh-toast[data-state=open]{animation:vh-toast-in var(--vh-duration-base) var(--vh-ease-out-expo)}.vh-toast[data-state=closed]{animation:vh-fade var(--vh-duration-fast) reverse forwards}.vh-toast[data-swipe=move]{transform:translateX(var(--radix-toast-swipe-move-x))}.vh-toast__icon{flex:none;margin-top:2px}.vh-toast--info .vh-toast__icon{color:var(--vh-color-info)}.vh-toast--success .vh-toast__icon{color:var(--vh-color-success)}.vh-toast--warn .vh-toast__icon{color:var(--vh-color-warn)}.vh-toast--danger .vh-toast__icon{color:var(--vh-color-danger)}.vh-toast__text{flex:1;gap:2px;min-width:0;display:grid}.vh-toast__title{font-weight:var(--vh-weight-semibold);font-size:var(--vh-text-sm)}.vh-toast__description{color:var(--vh-color-fg-muted);font-size:var(--vh-text-sm)}.vh-toast__close{width:28px;height:28px;color:var(--vh-color-fg-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;margin:-4px -6px 0 0;display:grid}.vh-toast__close:hover{background:var(--vh-color-surface-3);color:var(--vh-color-fg)}@keyframes vh-toast-in{0%{opacity:0;transform:translateY(12px)scale(.98)}}.vh-table-wrap{background:var(--vh-color-surface);border:1px solid var(--vh-color-border);border-radius:var(--vh-radius-card);overflow:hidden}.vh-table-scroll{overflow-x:auto}.vh-table{border-collapse:collapse;width:100%;font-size:var(--vh-text-sm)}.vh-table th{text-align:start;font-weight:var(--vh-weight-medium);font-size:var(--vh-text-xs);color:var(--vh-color-fg-muted);padding:var(--vh-space-3) var(--vh-space-4);background:var(--vh-color-surface-2);border-bottom:1px solid var(--vh-color-border-strong);white-space:nowrap;position:sticky;top:0}.vh-table td{padding:var(--vh-space-3) var(--vh-space-4);border-bottom:1px solid var(--vh-color-border);vertical-align:middle;white-space:nowrap}.vh-table tbody tr:last-child td{border-bottom:0}.vh-table tbody tr:hover{background:var(--vh-color-surface-2)}.vh-table__end{text-align:end!important}.vh-table__num{font-family:var(--vh-font-mono);font-variant-numeric:tabular-nums;text-align:end}.vh-table__row--click{cursor:pointer}.vh-table__sort{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.vh-table__sort:hover{color:var(--vh-color-fg)}.vh-table__sort-mark{min-width:1ch;color:var(--vh-color-accent-text);display:inline-block}.vh-table-scroll:focus-visible{outline-offset:-2px}@media (width<=767px){.vh-hide-below-md{display:none}}@media (width<=1023px){.vh-hide-below-lg{display:none}}.vh-pager{align-items:center;gap:var(--vh-space-4);padding:var(--vh-space-3) var(--vh-space-4);border-top:1px solid var(--vh-color-border);flex-wrap:wrap;display:flex}.vh-pager__count{font-family:var(--vh-font-mono);font-size:var(--vh-text-xs);color:var(--vh-color-fg-muted);margin-right:auto}.vh-pager__size{align-items:center;gap:var(--vh-space-2);font-size:var(--vh-text-xs);color:var(--vh-color-fg-muted);display:inline-flex}.vh-pager__size .vh-select{min-height:36px}.vh-pager__size .vh-select__control{min-height:34px;font-size:var(--vh-text-sm)}.vh-pager__buttons{gap:var(--vh-space-2);display:inline-flex}.vh-shell{background:radial-gradient(900px 360px at 70% -120px, var(--vh-color-brand-soft), transparent 70%), var(--vh-color-bg);grid-template-columns:264px minmax(0,1fr);min-height:100dvh;display:grid}.vh-shell:before{content:"";background:var(--vh-color-bg-2);border-right:1px solid var(--vh-color-border);grid-area:1/1}.vh-shell__sidebar{gap:var(--vh-space-6);height:100dvh;padding:var(--vh-space-5) var(--vh-space-3);background:var(--vh-color-bg-2);border-right:1px solid var(--vh-color-border);flex-direction:column;grid-area:1/1;display:flex;position:sticky;top:0;overflow-y:auto}.vh-shell__brand{padding:var(--vh-space-1) var(--vh-space-3);font-family:var(--vh-font-display);font-weight:700;font-size:var(--vh-text-lg);letter-spacing:.04em;align-items:center;gap:var(--vh-space-2);display:flex}.vh-shell__sidebar-foot{padding:var(--vh-space-3);gap:var(--vh-space-3);margin-top:auto;display:grid}.vh-shell__column{flex-direction:column;grid-area:1/2;min-width:0;display:flex}.vh-shell__main{padding:var(--vh-space-6);flex:1;width:100%;min-width:0;max-width:1440px;margin-inline:auto}.vh-shell__main:focus-visible{outline:none}.vh-topbar{z-index:var(--vh-z-shell);align-items:center;gap:var(--vh-space-3);min-height:64px;padding:0 var(--vh-space-6);background:color-mix(in srgb, var(--vh-color-bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--vh-color-border);display:flex;position:sticky;top:0}.vh-topbar__title{font-size:var(--vh-text-xl);font-weight:var(--vh-weight-semibold)}.vh-topbar__actions{align-items:center;gap:var(--vh-space-2);margin-left:auto;display:flex}.vh-topbar__menu{margin-left:-8px;display:none}.vh-nav{gap:var(--vh-space-5);display:grid}.vh-nav__group-label{padding:0 var(--vh-space-3) var(--vh-space-2);font-size:var(--vh-text-caption);font-weight:var(--vh-weight-medium);color:var(--vh-color-fg-subtle);letter-spacing:.08em;text-transform:uppercase}.vh-nav__list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.vh-nav__link{align-items:center;gap:var(--vh-space-3);min-height:var(--vh-touch-min);padding:0 var(--vh-space-3);border-radius:var(--vh-radius-tight);color:var(--vh-color-fg-muted);font-size:var(--vh-text-sm);font-weight:var(--vh-weight-medium);transition:background-color var(--vh-duration-fast), color var(--vh-duration-fast);text-decoration:none;display:flex}.vh-nav__link:hover{background:var(--vh-color-surface-3);color:var(--vh-color-fg)}.vh-nav__link--current{background:var(--vh-color-brand-soft);color:var(--vh-color-accent-text)}.vh-nav__icon{display:inline-flex}.vh-nav__text{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.vh-nav__badge{font-family:var(--vh-font-mono);font-size:var(--vh-text-caption)}.vh-sheet--nav .vh-overlay__body{padding-inline:var(--vh-space-3);flex-direction:column;flex:1;display:flex}.vh-sheet--nav .vh-shell__sidebar-foot{margin-top:auto}@media (width<=1023px){.vh-shell{grid-template-columns:minmax(0,1fr)}.vh-shell:before,.vh-shell__sidebar{display:none}.vh-shell__column{grid-column:1}.vh-topbar{padding:0 var(--vh-space-4)}.vh-topbar__menu{display:inline-flex}.vh-shell__main{padding:var(--vh-space-4)}}}:root{--font-sans:var(--vh-font-sans);--font-mono:var(--vh-font-mono);--font-display:var(--vh-font-display);--r-sm:var(--vh-radius-sm);--r-md:var(--vh-radius-md);--r-tight:var(--vh-radius-tight);--r-card:var(--vh-radius-card);--r-sheet:var(--vh-radius-sheet);--r-pill:999px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--t-xs:12px;--t-sm:14px;--t-base:15px;--t-md:16px;--t-lg:18px;--t-xl:20px;--t-2xl:22px;--t-3xl:24px;--t-4xl:28px;--ease:cubic-bezier(.22, 1, .36, 1);--d-fast:.12s;--d-base:.2s;--touch:44px;--nav-h:68px;--gutter:16px;--content-max:1120px;--brand:var(--vh-color-brand);--brand-strong:var(--vh-color-brand-strong);--brand-soft:var(--vh-color-brand-soft);--on-brand:var(--vh-color-on-brand);--accent-text:var(--vh-color-accent-text);--bg:var(--vh-color-bg);--bg-2:var(--vh-color-bg-2);--surface:var(--vh-color-surface);--surface-2:var(--vh-color-surface-2);--surface-3:var(--vh-color-surface-3);--fg:var(--vh-color-fg);--fg-muted:var(--vh-color-fg-muted);--fg-subtle:var(--vh-color-fg-subtle);--border:var(--vh-color-border);--border-strong:var(--vh-color-border-strong);--danger:var(--vh-color-danger);--warn:var(--vh-color-warn);--success:var(--vh-color-success);--info:var(--vh-color-info);--accent-cyan:var(--vh-color-accent-cyan);--accent-gold:var(--vh-color-accent-gold);--glow:var(--vh-color-glow);--scrim:var(--vh-color-overlay);--shadow-card:0 4px 12px #0000001f;--shadow-lift:0 12px 36px #00000059}.app-shell{grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.app-column{min-width:0}.app-main{padding:var(--s-4) var(--gutter) calc(var(--nav-h) + var(--s-8) + env(safe-area-inset-bottom));width:100%;max-width:var(--content-max);gap:var(--s-5);flex-direction:column;min-width:0;margin-inline:auto;display:flex}.skip-link{left:var(--s-4);background:var(--brand);color:var(--on-brand);padding:var(--s-3) var(--s-4);border-radius:var(--r-pill);z-index:100;font-weight:600;position:absolute;top:-64px}.skip-link:focus{top:var(--s-3)}.topbar{justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--gutter);max-width:var(--content-max);width:100%;margin-inline:auto;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.04em;color:var(--fg);align-items:center;gap:var(--s-2);font-weight:700;font-size:var(--t-lg);text-decoration:none;display:inline-flex}.wordmark svg{color:var(--brand)}.wordmark span b{color:var(--accent-text);font-weight:700}.tabbar{z-index:30;left:50%;bottom:calc(var(--s-3) + env(safe-area-inset-bottom));width:min(100% - 24px,520px);height:var(--nav-h);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border-strong);border-radius:var(--r-pill);box-shadow:var(--shadow-lift);grid-template-columns:repeat(5,1fr);gap:2px;padding:6px;display:grid;position:fixed;transform:translate(-50%)}.tab{color:var(--fg-muted);font-size:var(--t-xs);border-radius:var(--r-pill);min-height:var(--touch);transition:color var(--d-fast) var(--ease), background var(--d-fast) var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:500;text-decoration:none;display:flex}.tab:hover{color:var(--fg)}.tab[aria-current=page],.tab.active{color:var(--accent-text);background:var(--brand-soft)}.tab-charge{color:var(--on-brand);background:var(--brand);box-shadow:0 0 24px var(--glow);font-weight:650}.tab-charge:hover{color:var(--on-brand);background:var(--brand-strong)}.tab-charge[aria-current=page],.tab-charge.active{color:var(--on-brand);background:var(--brand)}@media (width>=900px){.app-shell{grid-template-columns:232px minmax(0,1fr)}.tabbar{width:auto;height:100dvh;padding:var(--s-4) var(--s-3);box-shadow:none;background:var(--bg-2);-webkit-backdrop-filter:none;backdrop-filter:none;border-width:0 1px 0 0;border-radius:0;grid-template-columns:1fr;grid-auto-rows:52px;align-content:start;position:sticky;top:0;bottom:auto;left:0;transform:none}.tab{justify-content:flex-start;gap:var(--s-3);padding-inline:var(--s-4);font-size:var(--t-base);flex-direction:row}.tabbar-brand{display:flex}.app-main{padding-bottom:var(--s-10);padding-top:var(--s-6)}.app-column{flex-direction:column;min-width:0;display:flex}}.tabbar-brand{padding:var(--s-2) var(--s-4) var(--s-4);display:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s-5);box-shadow:var(--shadow-card)}.card-flush{padding:0;overflow:hidden}.card-raised{background:var(--surface-2)}.stack{gap:var(--s-4);flex-direction:column;display:flex}.stack-sm{gap:var(--s-2);flex-direction:column;display:flex}.stack-lg{gap:var(--s-6);flex-direction:column;display:flex}.row{align-items:center;gap:var(--s-3);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.row-wrap{gap:var(--s-2);flex-wrap:wrap;display:flex}.grow{flex:1;min-width:0}.muted{color:var(--fg-muted)}.subtle{color:var(--fg-subtle)}.small{font-size:var(--t-sm)}.tiny{font-size:var(--t-xs)}.eyebrow-less{font-size:var(--t-xs);color:var(--fg-muted)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grid-2{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));display:grid}.grid-3{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));display:grid}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--s-3);flex-wrap:wrap;display:flex}.page-head p{color:var(--fg-muted);margin-top:var(--s-1)}.back-link{align-items:center;gap:var(--s-1);color:var(--fg-muted);min-height:var(--touch);font-size:var(--t-sm);text-decoration:none;display:inline-flex}.back-link:hover{color:var(--fg)}.field{gap:var(--s-2);flex-direction:column;display:flex}.field>label,.field-label{font-size:var(--t-sm);font-weight:600}.field-hint{font-size:var(--t-xs);color:var(--fg-muted)}.input{width:100%;min-height:52px;padding:0 var(--s-4);border-radius:var(--r-tight);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--fg);font-size:var(--t-md);transition:border-color var(--d-fast) var(--ease), box-shadow var(--d-fast) var(--ease)}.input::placeholder{color:var(--fg-subtle)}.input:hover{border-color:color-mix(in srgb, var(--border-strong) 60%, var(--fg-muted))}.input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}textarea.input{padding-block:var(--s-3);min-height:96px}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--fg-muted) 50%), linear-gradient(135deg, var(--fg-muted) 50%, transparent 50%);padding-right:var(--s-8);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px}.input-code{letter-spacing:.4em;text-align:center;font-family:var(--font-mono);font-size:var(--t-3xl)}.form-error{color:var(--danger);font-size:var(--t-sm);padding:var(--s-3) var(--s-4);border-radius:var(--r-tight);background:color-mix(in srgb, var(--danger) 12%, transparent);font-weight:500}.form{gap:var(--s-4);flex-direction:column;display:flex}.chip{align-items:center;gap:var(--s-2);min-height:36px;padding:0 var(--s-4);border-radius:var(--r-pill);border:1px solid var(--border-strong);background:var(--surface);color:var(--fg);font-size:var(--t-sm);cursor:pointer;font-weight:500;text-decoration:none;display:inline-flex}.chip:hover{background:var(--surface-2)}.chip[aria-pressed=true],.chip.selected{background:var(--brand-soft);border-color:var(--brand);color:var(--accent-text)}.chip:has(input:checked){background:var(--brand-soft);border-color:var(--brand);color:var(--accent-text)}.chip:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}.chip input{opacity:0;width:1px;height:1px;position:absolute}.badge{border-radius:var(--r-pill);font-size:var(--t-xs);background:var(--surface-3);color:var(--fg);white-space:nowrap;align-items:center;gap:6px;padding:3px 10px;font-weight:600;display:inline-flex}.badge-available,.badge-success{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success)}.badge-charging,.badge-info,.badge-preparing{background:color-mix(in srgb, var(--info) 16%, transparent);color:var(--info)}:root[data-theme=light] .badge-charging{color:var(--info)}.badge-reserved,.badge-warn{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.badge-faulted,.badge-danger{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.badge-offline,.badge-neutral{background:var(--surface-3);color:var(--fg-muted)}.banner{gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-tight);background:var(--surface-2);border:1px solid var(--border-strong);font-size:var(--t-sm);align-items:flex-start;display:flex}.banner-warn{background:color-mix(in srgb, var(--warn) 12%, var(--surface));border-color:color-mix(in srgb, var(--warn) 40%, transparent)}.banner-danger{background:color-mix(in srgb, var(--danger) 12%, var(--surface));border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.banner-success{background:color-mix(in srgb, var(--success) 12%, var(--surface));border-color:color-mix(in srgb, var(--success) 40%, transparent)}.banner svg{flex:none;margin-top:2px}.list{flex-direction:column;display:flex}.list-row{align-items:center;gap:var(--s-3);padding:var(--s-4);min-height:60px;color:inherit;border-bottom:1px solid var(--border);text-align:left;border-inline:0;cursor:pointer;background:0 0;border-top:0;width:100%;text-decoration:none;display:flex}.list-row:last-child{border-bottom:0}a.list-row:hover,button.list-row:hover{background:var(--surface-2)}.list-icon{border-radius:var(--r-tight);background:var(--brand-soft);width:40px;height:40px;color:var(--accent-text);flex:none;place-items:center;display:grid}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));border-radius:var(--r-tight);background-size:200% 100%;min-height:16px;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.sheet{color:inherit;background:0 0;border:0;width:min(100%,520px);max-width:100%;margin:auto auto 0;padding:0}.sheet::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.sheet-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:var(--s-6) var(--s-5) calc(var(--s-6) + env(safe-area-inset-bottom));gap:var(--s-4);box-shadow:var(--shadow-lift);flex-direction:column;display:flex}@media (width>=600px){.sheet{margin:auto}.sheet-panel{border-radius:var(--r-sheet)}}.empty{text-align:center;padding:var(--s-10) var(--s-4);align-items:center;gap:var(--s-3);color:var(--fg-muted);flex-direction:column;display:flex}.empty h2{color:var(--fg)}.stat{flex-direction:column;gap:2px;display:flex}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--t-2xl);font-weight:600}.stat-label{font-size:var(--t-xs);color:var(--fg-muted)}.switch{flex:none;width:48px;height:28px;display:inline-flex;position:relative}.switch input{appearance:none;border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--border-strong);cursor:pointer;width:100%;height:100%;transition:background var(--d-base) var(--ease);margin:0}.switch input:after{content:"";background:var(--fg);width:20px;height:20px;transition:transform var(--d-base) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked{background:var(--brand);border-color:#0000}.switch input:checked:after{background:var(--on-brand);transform:translate(20px)}.segmented{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--border);gap:2px;padding:4px;display:inline-flex}.segmented label{position:relative}.segmented input{opacity:0;position:absolute;inset:0}.segmented span{min-height:36px;padding:0 var(--s-4);border-radius:var(--r-pill);font-size:var(--t-sm);color:var(--fg-muted);cursor:pointer;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.segmented input:checked+span{background:var(--brand);color:var(--on-brand)}.segmented input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}.live-bar{align-items:center;gap:var(--s-2);font-size:var(--t-xs);color:var(--fg-muted);display:flex}.live-dot{background:var(--success);width:8px;height:8px;box-shadow:0 0 10px var(--glow);border-radius:50%}.live-dot.stale{background:var(--warn);box-shadow:none}.session-banner{z-index:20;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--gutter);background:var(--brand);color:var(--on-brand);font-weight:600;text-decoration:none;display:flex;position:sticky;top:0}.session-banner .num{font-weight:700}.offline-bar{background:var(--warn);color:#1a1204;text-align:center;font-size:var(--t-sm);padding:var(--s-2) var(--s-4);font-weight:600}.install-banner{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-card);background:var(--surface-2);border:1px solid var(--border-strong);display:flex}.only-mobile{display:block}@media (width>=900px){.only-mobile{display:none}.topbar{justify-content:flex-end}}.bare{min-height:100dvh;padding:var(--s-6) var(--gutter);background:radial-gradient(120% 80% at 50% -10%, var(--brand-soft), transparent 60%), var(--bg);place-items:center;display:grid}.bare-panel{gap:var(--s-6);flex-direction:column;width:min(100%,440px);display:flex}.mock-badge{min-height:24px;padding:0 var(--s-3);border:1px dashed var(--warn,currentColor);color:var(--warn,currentColor);letter-spacing:.02em;border-radius:999px;align-items:center;font-size:12px;font-weight:600;display:inline-flex}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--fg);font-family:var(--font-sans);font-size:var(--t-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}h1,h2,h3,p{margin:0}h1{font-size:var(--t-4xl);letter-spacing:-.02em;text-wrap:balance;font-weight:700;line-height:1.1}h2{font-size:var(--t-xl);letter-spacing:-.01em;text-wrap:balance;font-weight:650;line-height:1.2}h3{font-size:var(--t-md);font-weight:600}a:where(:not([class*=vh-button])){color:var(--accent-text);text-underline-offset:3px}img,svg{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit}.num,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}::selection{background:var(--brand);color:var(--on-brand)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-tight)}input,textarea{caret-color:var(--brand)}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
