:root,[data-theme=dark]{--bg-primary: #0B0E14;--bg-card: #111520;--bg-elevated: #1A1F2E;--border: #1E2536;--border-hover: #2A3040;--text-primary: #F1F5F9;--text-secondary: #CBD5E1;--text-muted: #94A3B8;--text-dim: #64748B;--text-faint: #475569;--text-ghost: #334155;--accent: #FBBF24;--accent-hover: #F59E0B;--danger: #EF4444;--danger-light: #F87171;--danger-bg: #EF444411;--danger-border: #EF444433;--success: #22C55E;--success-light: #4ADE80;--info: #93C5FD;--info-bg: #60A5FA11;--info-border: #60A5FA33;--warning: #FB923C;--whatsapp: #25D366;--font-sans: "DM Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Fira Code", ui-monospace, monospace;--tile-filter: brightness(.6) invert(1) contrast(3) hue-rotate(200deg) saturate(.3) brightness(.7)}[data-theme=light]{--bg-primary: #F8FAFC;--bg-card: #FFFFFF;--bg-elevated: #F1F5F9;--border: #E2E8F0;--border-hover: #CBD5E1;--text-primary: #0F172A;--text-secondary: #334155;--text-muted: #64748B;--text-dim: #94A3B8;--text-faint: #CBD5E1;--text-ghost: #E2E8F0;--accent: #D97706;--accent-hover: #B45309;--danger: #DC2626;--danger-light: #EF4444;--danger-bg: #FEF2F2;--danger-border: #FECACA;--success: #16A34A;--success-light: #22C55E;--info: #2563EB;--info-bg: #EFF6FF;--info-border: #BFDBFE;--warning: #EA580C;--whatsapp: #25D366;--tile-filter: none}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.leaflet-container{background:var(--bg-primary)!important;font-family:var(--font-sans)!important}.leaflet-control-zoom{border:1px solid var(--border)!important;border-radius:10px!important;overflow:hidden}.leaflet-control-zoom a{background:var(--bg-card)!important;color:var(--text-muted)!important;border-color:var(--border)!important;width:34px!important;height:34px!important;line-height:34px!important;font-size:16px!important}.leaflet-control-zoom a:hover{background:var(--bg-elevated)!important;color:var(--text-primary)!important}.leaflet-control-attribution{background:var(--bg-primary)!important;color:var(--text-ghost)!important;font-size:9px!important;padding:2px 6px!important;border-radius:6px 0 0!important}.leaflet-control-attribution a{color:var(--text-dim)!important}.leaflet-tile-pane{filter:var(--tile-filter)}.leaflet-popup-content-wrapper{background:var(--bg-elevated)!important;color:var(--text-primary)!important;border-radius:12px!important;box-shadow:0 8px 32px #0003!important;border:1px solid var(--border)!important;padding:0!important}.leaflet-popup-content{margin:0!important;font-family:var(--font-sans)!important}.leaflet-popup-tip{background:var(--bg-elevated)!important;border:1px solid var(--border)!important}.leaflet-popup-close-button{color:var(--text-dim)!important;font-size:18px!important;top:8px!important;right:10px!important}.custom-marker{display:flex;align-items:center;justify-content:center;border-radius:50%;transition:transform .2s cubic-bezier(.4,0,.2,1);cursor:pointer}.custom-marker:hover{transform:scale(1.2);z-index:1000!important}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.6)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-up{animation:slideUp .4s ease-out}.pulse-dot{animation:pulse 2s infinite}input:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 2px #fbbf2426}button:active{transform:scale(.97)}@supports (padding-top: env(safe-area-inset-top)){.app-header{padding-top:calc(14px + env(safe-area-inset-top))}.app-tabbar{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}
