@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap");:root{--bg-primary:#0a0e14;--bg-secondary:#111820;--bg-panel:rgba(17,24,32,.92);--bg-card:rgba(20,30,42,.85);--border-subtle:hsla(0,0%,100%,.06);--border-active:hsla(0,0%,100%,.12);--text-primary:#e8ecf0;--text-secondary:#89a;--text-muted:#567;--text-accent:#5df5c8;--carbon-clean:#2dd4a0;--carbon-mid:#f5a623;--carbon-dirty:#ef4444;--water-low:#38bdf8;--water-mid:#fb923c;--water-high:#dc2626;--accent-cyan:#22d3ee;--accent-emerald:#34d399;--accent-amber:#fbbf24;--font-mono:"JetBrains Mono",monospace;--font-sans:"DM Sans",-apple-system,sans-serif;--panel-radius:12px;--panel-padding:20px}*{margin:0;padding:0;box-sizing:border-box}body,html{width:100%;height:100%;background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);overflow:hidden}.mapboxgl-popup-content{background:var(--bg-panel)!important;border:1px solid var(--border-active)!important;border-radius:10px!important;padding:16px!important;color:var(--text-primary)!important;font-family:var(--font-sans)!important;-webkit-backdrop-filter:blur(20px)!important;backdrop-filter:blur(20px)!important;box-shadow:0 12px 40px rgba(0,0,0,.5)!important;max-width:320px!important}.mapboxgl-popup-tip{border-top-color:var(--bg-panel)!important}.mapboxgl-popup-close-button{color:var(--text-secondary)!important;font-size:18px!important;right:8px!important;top:8px!important}.mapboxgl-ctrl-attrib{background:rgba(10,14,20,.7)!important;font-size:10px!important}.mapboxgl-ctrl-attrib,.mapboxgl-ctrl-attrib a{color:var(--text-muted)!important}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:3px}.glass-panel{background:var(--bg-panel);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--panel-radius)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%,to{opacity:.6}50%{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-in{animation:fadeInUp .4s ease-out forwards}.animate-slide-in{animation:slideInLeft .3s ease-out forwards}