html,body{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;height:100%}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem}.loading-progress{position:relative;display:inline-block;width:4rem;height:4rem}.loading-progress circle{fill:none;stroke:#e0e0e0;stroke-width:.6rem;transform-origin:50% 50%;transform:rotate(-90deg)}.loading-progress circle:last-child{stroke:#1b6ec2;stroke-dasharray:calc(3.141*var(--blazor-load-percentage,0%)*.8),500%;transition:stroke-dasharray .05s ease-out}.loading-progress-text{position:absolute;text-align:center;font-weight:bold;inset:calc(20px + 1.5rem) 0 0 .15rem}.loading-progress-text:after{content:var(--blazor-load-percentage-text,"Loading")}.app-container{min-height:100vh}.hero-section{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:4rem 0}.feature-card{border:0;box-shadow:0 4px 6px rgba(0,0,0,.1);transition:transform .3s ease}.feature-card:hover{transform:translateY(-5px)}.glass-card{background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px rgba(0,0,0,.1)}@media(max-width:768px){.hero-section{padding:2rem 0;text-align:center}.display-4{font-size:2.5rem}}:root{--primary-gradient:linear-gradient(135deg,#667eea 0%,#764ba2 100%);--dark-bg:#0f0f1a;--darker-bg:#0a0a12;--card-bg:rgba(25,25,40,.8);--card-border:rgba(255,255,255,.1);--card-glow:rgba(102,126,234,.3);--text-primary:#fff;--text-secondary:rgba(255,255,255,.7);--text-muted:rgba(255,255,255,.5);--accent-blue:#4f6afa;--accent-purple:#8b5cf6;--success:#10b981;--warning:#f59e0b;--danger:#ef4444}.map-dashboard.dark-theme{min-height:100vh;background:var(--dark-bg);background-image:radial-gradient(at 80% 20%,rgba(102,126,234,.1) 0%,transparent 50%),radial-gradient(at 20% 80%,rgba(139,92,246,.1) 0%,transparent 50%);font-family:'Inter','Segoe UI',system-ui,sans-serif;padding:0;position:relative;overflow-x:hidden}.map-dashboard.dark-theme::before{content:'';position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 20% 80%,rgba(79,106,250,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(139,92,246,.1) 0%,transparent 50%);animation:backgroundPulse 8s ease-in-out infinite;pointer-events:none;z-index:0}@keyframes backgroundPulse{0%,100%{opacity:.5}50%{opacity:.8}}.dashboard-header{padding:30px 40px 20px;position:relative;z-index:2;border-bottom:1px solid rgba(255,255,255,.1);background:rgba(15,15,26,.8);backdrop-filter:blur(20px)}.header-content{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.title-container{display:flex;align-items:center;gap:16px}.logo-animation{position:relative;width:60px;height:60px;background:var(--primary-gradient);border-radius:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}.rain-drop{position:absolute;width:4px;height:8px;background:#fff;border-radius:2px;opacity:.8;animation:rainFall 2s linear infinite}.rain-drop:nth-child(1){left:20%;animation-delay:0s}.rain-drop:nth-child(2){left:50%;animation-delay:.5s}.rain-drop:nth-child(3){right:20%;animation-delay:1s}@keyframes rainFall{0%{transform:translateY(-20px);opacity:0}50%{opacity:1}100%{transform:translateY(40px);opacity:0}}.dashboard-title{font-size:2.8rem;font-weight:800;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;position:relative;margin:0;color:#fff}.glitch-text{position:relative}.glitch-text::before,.glitch-text::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%}.glitch-text::before{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:glitch-1 2s infinite linear alternate-reverse}.glitch-text::after{background:linear-gradient(135deg,#8b5cf6,#ec4899);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:glitch-2 3s infinite linear alternate-reverse}@keyframes glitch-1{0%{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}100%{transform:translate(0)}}@keyframes glitch-2{0%{transform:translate(0)}20%{transform:translate(2px,-2px)}40%{transform:translate(2px,2px)}60%{transform:translate(-2px,-2px)}80%{transform:translate(-2px,2px)}100%{transform:translate(0)}}.dashboard-subtitle{color:var(--text-secondary);font-size:1.1rem;margin:8px 0 0 0;font-weight:400}.header-stats{display:flex;gap:16px}.stat-pill{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:12px 20px;display:flex;flex-direction:column;align-items:center;min-width:80px;transition:all .3s ease}.stat-pill:hover{background:rgba(255,255,255,.15);transform:translateY(-2px)}.stat-number{font-size:1.5rem;font-weight:700;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.stat-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.dashboard-content{display:grid;grid-template-columns:380px 1fr;gap:24px;padding:30px;position:relative;z-index:1}.neo-card{background:var(--card-bg);backdrop-filter:blur(20px);border:1px solid var(--card-border);border-radius:24px;position:relative;overflow:hidden;transition:all .4s cubic-bezier(.4,0,.2,1)}.neo-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-blue),transparent)}.card-glow{position:absolute;top:0;left:0;right:0;height:100%;background:var(--card-glow);opacity:0;transition:opacity .4s ease;border-radius:24px}.neo-card:hover .card-glow{opacity:.1}.neo-card:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.4),0 0 80px rgba(102,126,234,.1)}.card-header{padding:24px 24px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.card-title{display:flex;align-items:center;gap:12px;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.card-content{padding:24px}.search-card{margin-bottom:20px}.search-input-container{position:relative;margin-bottom:20px}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted);z-index:2}.search-input{width:100%;padding:16px 16px 16px 48px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;color:var(--text-primary);font-size:.9rem;transition:all .3s ease}.search-input:focus{outline:0;border-color:var(--accent-blue);background:rgba(255,255,255,.08);box-shadow:0 0 0 3px rgba(79,106,250,.1)}.search-input::placeholder{color:var(--text-muted)}.input-underline{position:absolute;bottom:0;left:48px;right:0;height:2px;background:var(--primary-gradient);transform:scaleX(0);transition:transform .3s ease}.search-input:focus~.input-underline{transform:scaleX(1)}.filter-toggle{display:flex;align-items:center;gap:12px}.toggle-switch{position:relative;display:inline-block;width:52px;height:28px}.toggle-input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:34px;transition:all .4s ease}.toggle-knob{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:3px;background:var(--text-muted);border-radius:50%;transition:all .4s cubic-bezier(.4,0,.2,1)}.toggle-input:checked+.toggle-slider{background:var(--accent-blue);border-color:var(--accent-blue)}.toggle-input:checked+.toggle-slider .toggle-knob{transform:translateX(24px);background:#fff}.filter-label{color:var(--text-secondary);font-size:.9rem;font-weight:500}.stations-card{margin-bottom:20px}.station-count{background:var(--primary-gradient);color:#fff;padding:4px 12px;border-radius:12px;font-size:.8rem;font-weight:600;margin-left:8px}.station-list-container{max-height:500px;overflow-y:auto}.station-list{display:flex;flex-direction:column;gap:12px}.station-item{position:relative;padding:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;cursor:pointer;transition:all .3s ease;overflow:hidden}.station-glow{position:absolute;top:0;left:0;right:0;height:100%;background:var(--primary-gradient);opacity:0;transition:opacity .3s ease}.station-item:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);transform:translateY(-2px)}.station-item.active{background:rgba(79,106,250,.15);border-color:var(--accent-blue)}.station-item.active .station-glow{opacity:.1}.station-content{position:relative;z-index:2}.station-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.station-name{font-weight:600;color:var(--text-primary);font-size:.95rem}.status-indicator{display:flex;align-items:center;gap:6px}.status-dot{width:8px;height:8px;border-radius:50%;animation:pulse 2s infinite}.status-indicator.active .status-dot{background:var(--success)}.status-indicator.inactive .status-dot{background:var(--warning)}.status-text{font-size:.75rem;font-weight:600;text-transform:uppercase}.status-indicator.active .status-text{color:var(--success)}.status-indicator.inactive .status-text{color:var(--warning)}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.station-details{display:flex;flex-direction:column;gap:8px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.detail-item{display:flex;align-items:center;gap:4px;font-size:.8rem}.detail-icon{font-size:.7rem;opacity:.7}.detail-value{color:var(--text-secondary);font-weight:500}.date-range{display:flex;align-items:center;gap:6px;font-size:.8rem}.date-icon{font-size:.7rem;opacity:.7}.date-text{color:var(--text-muted)}.loading-container{display:flex;flex-direction:column;align-items:center;gap:16px;padding:40px 20px}.pulse-loader{display:flex;gap:4px}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-blue);animation:pulseDots 1.4s ease-in-out infinite both}.pulse-dot:nth-child(1){animation-delay:-.32s}.pulse-dot:nth-child(2){animation-delay:-.16s}@keyframes pulseDots{0%,80%,100%{transform:scale(0)}40%{transform:scale(1)}}.loading-text{color:var(--text-muted);font-size:.9rem}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 20px;text-align:center}.empty-icon{font-size:3rem;opacity:.5;margin-bottom:8px}.empty-title{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0}.empty-description{color:var(--text-muted);font-size:.9rem;margin:0}.analytics-card{margin-top:20px}.selected-station-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.station-name-glow{font-size:1.2rem;font-weight:700;background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin:0}.signal-strength{display:flex;align-items:center;gap:8px}.signal-bars{display:flex;align-items:end;gap:2px;height:16px}.signal-bar{width:3px;background:var(--success);border-radius:1px}.signal-bar:nth-child(1){height:4px}.signal-bar:nth-child(2){height:8px}.signal-bar:nth-child(3){height:12px}.signal-bar:nth-child(4){height:16px}.signal-text{font-size:.75rem;color:var(--success);font-weight:600}.analytics-grid{display:flex;flex-direction:column;gap:12px;margin:24px 0}.analytics-item{display:flex;align-items:center;gap:16px;padding:16px;background:rgba(255,255,255,.05);border-radius:12px;transition:all .3s ease}.analytics-item:hover{background:rgba(255,255,255,.08);transform:translateX(4px)}.analytics-icon{font-size:1.5rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);border-radius:10px}.analytics-data{flex:1}.analytics-value{font-size:1.4rem;font-weight:700;color:var(--text-primary);margin-bottom:2px}.analytics-value .unit{font-size:.9rem;color:var(--text-muted);margin-left:2px}.analytics-label{font-size:.8rem;color:var(--text-muted);font-weight:500}.analytics-trend{font-size:.8rem;font-weight:600;padding:4px 8px;border-radius:6px}.analytics-trend.up{background:rgba(16,185,129,.2);color:var(--success)}.analytics-trend.down{background:rgba(239,68,68,.2);color:var(--danger)}.analytics-sparkline{width:60px;height:30px;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));border-radius:4px;opacity:.6}.data-quality{margin-top:20px}.quality-meter{display:flex;flex-direction:column;gap:8px}.quality-track{height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden}.quality-progress{height:100%;background:var(--primary-gradient);border-radius:3px;transition:width 1s ease-in-out}.quality-text{font-size:.8rem;color:var(--text-muted);font-weight:500}.map-card{height:700px;margin-bottom:24px}.map-controls{display:flex;gap:8px}.control-btn{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:8px 12px;color:var(--text-secondary);cursor:pointer;transition:all .3s ease}.control-btn:hover,.control-btn.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue)}.map-container{height:550px;border-radius:16px;overflow:hidden;position:relative}.map-visualization{height:100%;background:radial-gradient(circle at 30% 40%,rgba(79,106,250,.1) 0%,transparent 50%),radial-gradient(circle at 70% 60%,rgba(139,92,246,.1) 0%,transparent 50%);border:1px solid rgba(255,255,255,.1);position:relative}.map-overlay{position:absolute;top:0;left:0;right:0;bottom:0}.pulse-radar{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:200px;height:200px;border:2px solid rgba(79,106,250,.3);border-radius:50%;animation:radarPulse 3s linear infinite}.pulse-radar::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:150px;height:150px;border:2px solid rgba(139,92,246,.3);border-radius:50%;animation:radarPulse 3s linear infinite 1s}.pulse-radar::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100px;height:100px;border:2px solid rgba(79,106,250,.3);border-radius:50%;animation:radarPulse 3s linear infinite 2s}@keyframes radarPulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:1}100%{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.weather-station-marker{position:absolute;transform:translate(-50%,-50%)}.marker-pulse{width:20px;height:20px;background:var(--accent-blue);border-radius:50%;animation:markerPulse 2s ease-out infinite}.marker-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#fff;border-radius:50%;z-index:2}.weather-station-marker.active .marker-pulse{background:var(--success)}@keyframes markerPulse{0%{transform:scale(.8);opacity:1}70%{transform:scale(2);opacity:0}100%{transform:scale(2);opacity:0}}.charts-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}.chart-card{height:500px}.stats-card{height:100%;display:flex;flex-direction:column;overflow-y:auto}.chart-container{height:400px;position:relative}.chart-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.chart-grid-lines{height:100%;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:20px 20px}.time-filter{display:flex;align-items:center}.time-select{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:6px 12px;color:var(--text-primary);font-size:.8rem;cursor:pointer}.time-select:focus{outline:0;border-color:var(--accent-blue)}.insights-list{display:flex;flex-direction:column;gap:12px}.insight-item{display:flex;align-items:center;gap:12px;padding:16px;background:rgba(255,255,255,.05);border-radius:12px;transition:all .3s ease;vertical-align:top}.insight-item:hover{background:rgba(255,255,255,.08);transform:translateX(4px)}.insight-item.highlight{background:rgba(79,106,250,.15);border:1px solid rgba(79,106,250,.3)}.insight-icon{font-size:1.2rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);border-radius:10px}.insight-content{flex:1}.insight-title{font-size:.8rem;color:var(--text-muted);font-weight:500;margin-bottom:2px}.insight-value{font-size:1rem;font-weight:600;color:var(--text-primary)}.icon-pulse{animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}.station-list-container::-webkit-scrollbar{width:6px}.station-list-container::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:3px}.station-list-container::-webkit-scrollbar-thumb{background:var(--accent-blue);border-radius:3px}.station-list-container::-webkit-scrollbar-thumb:hover{background:var(--accent-purple)}@media(max-width:1200px){.dashboard-content{grid-template-columns:1fr;gap:20px}.sidebar{order:2}.main-content{order:1}.charts-grid{grid-template-columns:1fr}}@media(max-width:768px){.dashboard-header{padding:20px}.dashboard-content{padding:20px}.header-content{flex-direction:column;align-items:flex-start}.header-stats{align-self:stretch;justify-content:space-between}.dashboard-title{font-size:2rem;color:#fff}.detail-grid{grid-template-columns:1fr;gap:4px}}.insight-item.anomalies-item .insight-content{max-height:200px;overflow-y:auto;overflow-x:hidden;padding-right:8px;position:relative}.insight-item.anomalies-item .insight-content>*{min-height:0}.insight-item.anomalies-item .insight-content::-webkit-scrollbar{width:8px}.insight-item.anomalies-item .insight-content::-webkit-scrollbar-track{background:rgba(255,255,255,.05);border-radius:4px;margin:4px 0}.insight-item.anomalies-item .insight-content::-webkit-scrollbar-thumb{background:linear-gradient(135deg,var(--accent-blue),var(--accent-purple));border-radius:4px;border:2px solid rgba(255,255,255,.1)}.insight-item.anomalies-item .insight-content::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,var(--accent-purple),var(--accent-blue))}.insight-item.anomalies-item .insight-content{scrollbar-width:thin;scrollbar-color:var(--accent-blue) rgba(255,255,255,.05)}Leaflet customizations .leaflet-popup-content{font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif}.station-marker{background:transparent!important;border:0!important}.station-marker div{position:relative;transition:all .3s ease;transform-origin:center}.station-marker:hover div{filter:drop-shadow(0 0 8px rgba(0,123,255,.8));z-index:1000}.station-marker.active div{box-shadow:0 0 0 3px rgba(40,167,69,.5);animation:pulse 2s infinite}.station-marker.active:hover div{animation:pulse-hover 1s infinite}.station-marker.inactive div{box-shadow:0 0 0 2px rgba(108,117,125,.5)}.station-marker.inactive:hover div{box-shadow:0 0 0 3px rgba(108,117,125,.8)}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(40,167,69,.7)}70%{box-shadow:0 0 0 8px rgba(40,167,69,0)}100%{box-shadow:0 0 0 0 rgba(40,167,69,0)}}@keyframes pulse-hover{0%{box-shadow:0 0 0 0 rgba(0,123,255,.8)}70%{box-shadow:0 0 0 12px rgba(0,123,255,0)}100%{box-shadow:0 0 0 0 rgba(0,123,255,0)}}.leaflet-marker-icon{z-index:100}.leaflet-marker-icon:hover{z-index:1000!important}.station-popup-wrapper .leaflet-popup-content-wrapper{border-radius:10px;box-shadow:0 4px 12px rgba(0,0,0,.15);background:#fff}.station-popup-wrapper .leaflet-popup-content{margin:12px 16px;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;line-height:1.4;min-width:200px}.station-popup-wrapper .leaflet-popup-tip{background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.1)}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(40,167,69,.7)}70%{box-shadow:0 0 0 10px rgba(40,167,69,0)}100%{box-shadow:0 0 0 0 rgba(40,167,69,0)}}.leaflet-marker-icon{z-index:100}.leaflet-marker-icon:hover{z-index:1000}.navbar-brand{font-weight:600;font-size:1.2rem}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.8);padding:.5rem 1rem;transition:all .3s ease}.navbar-dark .navbar-nav .nav-link:hover{color:#fff;background-color:rgba(255,255,255,.1);border-radius:4px}.navbar-dark .navbar-nav .nav-link.active{color:#fff;background-color:rgba(255,255,255,.2);border-radius:4px}.oi{width:1.5rem;font-size:1rem;vertical-align:text-top;margin-right:.5rem}.dropdown-menu{background-color:#343a40;border:1px solid rgba(255,255,255,.1)}.dropdown-item{color:rgba(255,255,255,.8)}.dropdown-item:hover{background-color:rgba(255,255,255,.1);color:#fff}@media(max-width:767.98px){.navbar-collapse{margin-top:.5rem}.navbar-nav{padding:.5rem 0}}