:root{--bg-color:#0f172a;--bg-elevated:#1e293b;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent:#3b82f6;--accent-hover:#2563eb;--danger:#ef4444;--success:#22c55e;--warning:#f59e0b;--glass-bg:#0f172abf;--glass-border:#ffffff1a;--glass-shadow:0 4px 24px #0006;--glass-blur:blur(16px);--brand:#1d9e75;--brand-dark:#0f6e56;--lg-text-primary:#111;--lg-text-secondary:#555;--bg-card:#fff;--bg-card-active:#e1f5ee;--bg-page:#fafafa;--border-default:#ddddda;--border-active:#1d9e75;--font-display:"Syne", system-ui, sans-serif;--font-body:"DM Sans", system-ui, sans-serif}*{box-sizing:border-box}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;overflow:hidden}h1,h2,h3,h4,p{margin:0}.glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.glass-panel{border-radius:16px;padding:16px}.leaflet-container{z-index:1;background-color:#0b1121;width:100vw;height:100vh}.leaflet-tile-pane{filter:saturate(.3)brightness(.9)contrast(1.1);transition:filter .8s}.dark-tiles{filter:brightness(.6)invert()contrast(3)hue-rotate(200deg)saturate(.3)brightness(.7)}.leaflet-control-container .leaflet-control{margin:16px;border:1px solid var(--glass-border)!important;background:var(--glass-bg)!important;-webkit-backdrop-filter:var(--glass-blur)!important;box-shadow:var(--glass-shadow)!important;border-radius:8px!important}.leaflet-bar a{color:var(--text-primary)!important;border-bottom:1px solid var(--glass-border)!important;background-color:#0000!important}.leaflet-bar a:last-child{border-bottom:none!important}.leaflet-bar a:hover{background-color:#ffffff1a!important}.ui-overlay{z-index:1000;pointer-events:none;flex-direction:column;width:100vw;height:100vh;display:flex;position:absolute;top:0;left:0}.ui-interactive{pointer-events:auto}button{cursor:pointer;color:inherit;background:0 0;border:none;outline:none;font-family:inherit}button,input,select,.custom-pin{min-width:48px;min-height:48px}@keyframes ping{75%,to{opacity:0;transform:scale(3)}}.animate-ping{animation:1.5s cubic-bezier(0,0,.2,1) infinite ping}@keyframes spin{to{transform:rotate(360deg)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes bounceIn{0%{opacity:0;transform:scale(.7)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes fabPulseRing{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)scale(.9)}60%{opacity:1;transform:translateY(-4px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:2s ease-in-out infinite pulse}.slide-up{animation:.35s cubic-bezier(.34,1.56,.64,1) slideUp}@keyframes visus-scan{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(.95)}to{transform:rotate(360deg)scale(1)}}@keyframes visus-blink{0%,90%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}.logo-loading{transform-origin:50%;animation:2s linear infinite visus-scan}.logo-blink{animation:4s ease-in-out infinite visus-blink}@media (prefers-reduced-motion:reduce){.logo-loading,.logo-blink{animation:none!important}}@media (max-width:640px){.lang-grid{grid-template-columns:repeat(2,1fr)!important}}
