:root{--bg-primary:#fff;--bg-secondary:#f8fafc;--accent-primary:#0ea5e9;--accent-secondary:#6366f1;--text-primary:#0f172a;--text-secondary:#64748b;--glass-bg:hsla(0,0%,100%,.7);--glass-border:rgba(0,0,0,.05);--glass-blur:16px;--font-sans:-apple-system,BlinkMacSystemFont,"Inter","Segoe UI",Roboto,sans-serif;--header-height:64px;--header-height-mobile:48px}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;background-color:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-primary)}button{font-family:inherit;border:none;background:none;cursor:pointer}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 4px 6px -1px rgba(0,0,0,.05),0 2px 4px -1px rgba(0,0,0,.03)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:9999px;font-weight:600;transition:all .2s ease}.btn-primary{background:var(--text-primary);color:#fff;box-shadow:0 4px 12px rgba(15,23,42,.2)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,23,42,.3)}.btn-primary:active{transform:translateY(0)}.leaflet-container{background:var(--bg-secondary)!important;font-family:var(--font-sans)!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff!important;color:var(--text-primary)!important;box-shadow:0 10px 15px -3px rgba(0,0,0,.1)!important}.leaflet-popup-content-wrapper{border-radius:12px!important;border:1px solid var(--glass-border)}.leaflet-popup-close-button{color:var(--text-secondary)!important}.glass-tooltip{background:hsla(0,0%,100%,.9)!important;border:1px solid rgba(0,0,0,.1)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 6px rgba(0,0,0,.05)!important;border-radius:8px!important;padding:0!important}.site-footer{background:var(--bg-primary);border-top:1px solid var(--glass-border);padding:2rem 0;margin-top:auto}.footer-content{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center}.footer-links{display:flex;gap:2rem;font-size:.9rem}.footer-links a{color:var(--text-secondary);transition:color .2s ease}.footer-links a:hover{color:var(--accent-primary)}.footer-copy{font-size:.85rem;color:var(--text-secondary)}.landing-container{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--header-height));padding:2rem;background:linear-gradient(135deg,#f8fafc,#e0e7ff)}.landing-content{max-width:600px;text-align:center;animation:fadeInUp .6s ease-out}.landing-title{font-size:3.5rem;font-weight:800;margin-bottom:1.5rem;background:linear-gradient(135deg,var(--text-primary) 0,var(--accent-primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.landing-description{font-size:1.2rem;color:var(--text-secondary);margin-bottom:2.5rem;line-height:1.6}.landing-button{background:var(--text-primary);color:#fff;padding:1rem 2.5rem;border-radius:9999px;font-size:1.1rem;font-weight:600;box-shadow:0 4px 14px rgba(15,23,42,.3);transition:all .3s ease}.landing-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(15,23,42,.4)}.landing-button:active{transform:translateY(0)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.map-page{flex:1 1;display:flex;flex-direction:column;height:100%}.map-header{padding:1.5rem;background:var(--glass-bg);border-bottom:1px solid var(--glass-border)}.map-title{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.loading-container{flex:1 1;display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--text-secondary)}@media (max-width:768px){:root{--header-height:var(--header-height-mobile)}.landing-title{font-size:2.5rem}.landing-description{font-size:1rem}.site-footer{padding:.75rem 0}.footer-content{justify-content:center;flex-wrap:wrap;gap:.5rem}.footer-content,.footer-links{flex-direction:row;font-size:.7rem}.footer-links{gap:.75rem}.footer-copy{font-size:.7rem}.footer-links:after{content:"•";margin-left:.5rem;color:var(--text-secondary)}}