@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4cf2300e9c8272f7-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_188709{font-family:Geist,Geist Fallback;font-style:normal}.__variable_188709{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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 Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap");:root{--signal-stable:#2ad054;--signal-stable-hover:#18b341;--signal-volatile:#FFD700;--signal-danger:#FF3131;--signal-neutral:#B0BEC5;--signal-stable-muted:rgba(0,255,65,0.15);--signal-volatile-muted:rgba(255,215,0,0.15);--signal-danger-muted:rgba(255,49,49,0.15);--signal-neutral-muted:rgba(176,190,197,0.15);--signal-stable-border:rgba(0,255,65,0.3);--signal-volatile-border:rgba(255,215,0,0.3);--signal-danger-border:rgba(255,49,49,0.3);--signal-stable-glow:rgba(0,255,65,0.4);--signal-stable-glow-soft:rgba(0,255,65,0.08);--signal-volatile-glow:rgba(255,215,0,0.4);--signal-danger-glow:rgba(255,49,49,0.4);--signal-danger-glow-soft:rgba(255,49,49,0.08);--signal-neutral-glow:rgba(176,190,197,0.32);--brand-primary:var(--signal-stable);--brand-primary-hover:var(--signal-stable-hover);--brand-primary-muted:var(--signal-stable-muted);--brand-secondary:#1FB6B6;--brand-secondary-hover:#00A6A6;--brand-secondary-muted:rgba(31,182,182,0.16);--bg-primary:#0B0E11;--bg-secondary:#12171C;--bg-tertiary:#1A2028;--bg-glass:rgba(18,23,28,0.8);--border-default:rgba(255,255,255,0.08);--border-subtle:rgba(255,255,255,0.04);--border-focus:var(--signal-stable);--text-primary:#FFFFFF;--text-secondary:rgba(255,255,255,0.7);--text-tertiary:rgba(255,255,255,0.5);--text-muted:rgba(255,255,255,0.3);--hover-overlay:rgba(255,255,255,0.05);--active-overlay:rgba(255,255,255,0.1);--modal-backdrop-bg:rgba(0,0,0,0.7);--skeleton-base:rgba(255,255,255,0.08);--skeleton-highlight:rgba(255,255,255,0.18);--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:"JetBrains Mono","SF Mono",Consolas,monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--space-0:0;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow-md:0 4px 6px rgba(0,0,0,0.4);--shadow-lg:0 10px 25px rgba(0,0,0,0.5);--shadow-xl:0 20px 40px rgba(0,0,0,0.6);--glow-stable:0 0 20px var(--signal-stable-glow);--glow-stable-soft:0 0 20px var(--signal-stable-glow-soft);--glow-volatile:0 0 20px var(--signal-volatile-glow);--glow-danger:0 0 20px var(--signal-danger-glow);--glow-danger-soft:0 0 20px var(--signal-danger-glow-soft);--glass-blur:blur(12px);--glass-bg:rgba(18,23,28,0.7);--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--transition-spring:300ms cubic-bezier(0.34,1.56,0.64,1);--z-dropdown:100;--z-sticky:200;--z-modal-backdrop:300;--z-modal:400;--z-toast:500;--touch-target-min:48px;--input-height-sm:32px;--input-height-md:40px;--input-height-lg:48px}.leaflet-container{width:100%;height:100%;z-index:0}.leaflet-tooltip{background:#fff!important;border:1px solid rgba(0,0,0,.08)!important;border-radius:10px!important;box-shadow:0 4px 20px rgba(0,0,0,.1)!important;padding:10px 14px!important;font-family:var(--font-geist-sans,Inter,sans-serif)!important;font-size:12px!important;color:#374151!important;line-height:1.5!important;max-width:280px!important}.leaflet-tooltip-top:before{border-top-color:#fff!important}.leaflet-tooltip-bottom:before{border-bottom-color:#fff!important}[data-theme=dark] .leaflet-tooltip{background:#1a2028!important;border-color:rgba(255,255,255,.08)!important;color:#e4e6eb!important;box-shadow:0 4px 20px rgba(0,0,0,.4)!important}[data-theme=dark] .leaflet-tooltip-top:before{border-top-color:#1a2028!important}[data-theme=dark] .leaflet-tooltip-bottom:before{border-bottom-color:#1a2028!important}.gw-cluster-large,.gw-cluster-medium,.gw-cluster-small,.gw-station-pin{background:transparent!important;border:none!important}.marker-cluster-large,.marker-cluster-large div,.marker-cluster-medium,.marker-cluster-medium div,.marker-cluster-small,.marker-cluster-small div{background:transparent!important}[data-theme=light]{--bg-primary:#FFFFFF;--bg-secondary:#F5F7FA;--bg-tertiary:#EBEEF2;--bg-glass:rgba(255,255,255,0.9);--border-default:rgba(0,0,0,0.1);--border-subtle:rgba(0,0,0,0.05);--border-focus:#0066FF;--text-primary:#0B0E11;--text-secondary:rgba(11,14,17,0.7);--text-tertiary:rgba(11,14,17,0.5);--text-muted:rgba(11,14,17,0.3);--hover-overlay:rgba(0,0,0,0.03);--active-overlay:rgba(0,0,0,0.06);--modal-backdrop-bg:rgba(11,14,17,0.42);--skeleton-base:rgba(11,14,17,0.08);--skeleton-highlight:rgba(11,14,17,0.16);--select-dropdown-bg:#FFFFFF;--select-shadow-strong:rgba(0,0,0,0.1);--select-shadow-soft:rgba(0,0,0,0.05);--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 6px rgba(0,0,0,0.08);--shadow-lg:0 10px 25px rgba(0,0,0,0.1);--shadow-xl:0 20px 40px rgba(0,0,0,0.15);--glass-bg:rgba(255,255,255,0.8)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background-color:#f7f8fb;color-scheme:light}html[data-gw-theme=dark]{background-color:#0A1627;color-scheme:dark}body{font-size:var(--text-base);line-height:var(--leading-normal);background-color:var(--bg-primary);min-height:100vh}body,h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}.mono,[data-mono],code,pre{font-family:var(--font-mono)}a{color:var(--signal-stable);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--text-primary)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}::selection{background-color:var(--signal-stable-muted);color:var(--text-primary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-muted{color:var(--text-muted)}.text-stable{color:var(--signal-stable)}.text-volatile{color:var(--signal-volatile)}.text-danger{color:var(--signal-danger)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fadeIn{animation:fadeIn var(--transition-base) ease-out}.animate-slideUp{animation:slideUp var(--transition-slow) ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.SplashScreen_splash__gKlCk{--splash-bg:#f4f7fb;--splash-radial:rgba(31,182,182,0.12);--splash-card-bg:rgba(255,255,255,0.9);--splash-card-border:rgba(18,60,115,0.2);--splash-card-shadow:0 16px 34px rgba(18,60,115,0.12);--splash-title:#1f2933;--splash-subtitle:rgba(31,41,51,0.76);--splash-progress-bg:rgba(18,60,115,0.12);--splash-progress-bar:#1fb6b6;--splash-progress-glow:rgba(31,182,182,0.36);--splash-logo-glow:rgba(31,182,182,0.24);position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--splash-bg);background-image:radial-gradient(circle at 50% 50%,var(--splash-radial) 0,transparent 50%)}.SplashScreen_splash__gKlCk[data-theme=dark]{--splash-bg:#0a1627;--splash-radial:rgba(31,182,182,0.14);--splash-card-bg:rgba(18,36,58,0.9);--splash-card-border:rgba(176,190,197,0.22);--splash-card-shadow:0 20px 40px rgba(0,0,0,0.32);--splash-title:#ffffff;--splash-subtitle:rgba(232,240,250,0.78);--splash-progress-bg:rgba(176,190,197,0.2);--splash-progress-bar:#1fb6b6;--splash-progress-glow:rgba(31,182,182,0.4);--splash-logo-glow:rgba(31,182,182,0.26)}.SplashScreen_card__Z9BOd{display:flex;flex-direction:column;gap:16px;align-items:center;padding:32px;background:var(--splash-card-bg);border:1px solid var(--splash-card-border);border-radius:24px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--splash-card-shadow);min-width:280px}.SplashScreen_logo__r573E{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:8px;animation:SplashScreen_logoPulse__iw5na 3s ease-in-out infinite}.SplashScreen_logo__r573E img{border-radius:16px;box-shadow:0 0 24px var(--splash-logo-glow)}@keyframes SplashScreen_logoPulse__iw5na{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}.SplashScreen_text__P_N26{text-align:center;display:flex;flex-direction:column;gap:4px}.SplashScreen_title__u2DKX{margin:0;font-size:20px;font-weight:600;color:var(--splash-title);letter-spacing:-.02em}.SplashScreen_subtitle__5cmgV{margin:0;font-size:13px;color:var(--splash-subtitle)}.SplashScreen_progress__ZH_oh{width:100%;height:4px;background:var(--splash-progress-bg);border-radius:999px;overflow:hidden;margin-top:12px}.SplashScreen_progressBar__7jGuZ{display:block;height:100%;width:30%;background:var(--splash-progress-bar);border-radius:999px;box-shadow:0 0 10px var(--splash-progress-glow);animation:SplashScreen_slide__yyqu7 1.5s ease-in-out infinite}@keyframes SplashScreen_slide__yyqu7{0%{transform:translateX(-100%)}50%{transform:translateX(50%)}to{transform:translateX(200%)}}.NetworkStatus_container__PV5LN{position:fixed;bottom:24px;left:24px;z-index:9999;animation:NetworkStatus_slideIn__Orpui .3s ease-out}@keyframes NetworkStatus_slideIn__Orpui{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.NetworkStatus_toast__IGn5Q{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#ffffff;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.15),0 0 0 1px rgba(0,0,0,.05);min-width:300px;max-width:420px}.NetworkStatus_icon___bPoA{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px}.NetworkStatus_wifiOff__zz_TK{color:#65676b}.NetworkStatus_wifiOn__LX_tv{color:#31a24c}.NetworkStatus_message__VfMLw{flex:1 1;margin:0;font-size:15px;font-weight:400;color:#1c1e21;line-height:1.4}.NetworkStatus_refreshButton__dl2jp{flex-shrink:0;padding:8px 16px;background:transparent;border:1px solid #10b981;border-radius:6px;color:#10b981;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease}.NetworkStatus_refreshButton__dl2jp:hover{background:rgba(16,185,129,.08)}.NetworkStatus_refreshButton__dl2jp:active{background:rgba(16,185,129,.15)}.NetworkStatus_closeButton__ot9OM{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#e4e6eb;border:none;border-radius:50%;color:#1c1e21;cursor:pointer;transition:background .15s ease}.NetworkStatus_closeButton__ot9OM:hover{background:#d8dadf}.NetworkStatus_closeButton__ot9OM svg{width:16px;height:16px}@media (max-width:480px){.NetworkStatus_container__PV5LN{bottom:16px;left:16px;right:16px}.NetworkStatus_toast__IGn5Q{min-width:unset;max-width:unset;width:100%;padding:14px 16px;gap:10px}.NetworkStatus_message__VfMLw{font-size:14px}.NetworkStatus_refreshButton__dl2jp{padding:6px 12px;font-size:13px}.NetworkStatus_closeButton__ot9OM{width:28px;height:28px}.NetworkStatus_closeButton__ot9OM svg{width:14px;height:14px}}