@import"https://unpkg.com/leaflet@1.9.4/dist/leaflet.css";:root{--primary: #6C63FF;--primary-dark: #5A52D5;--primary-light: #8B85FF;--secondary: #FF6584;--accent: #43E97B;--accent2: #38F9D7;--bg: #0F0F1A;--bg2: #1A1A2E;--bg3: #16213E;--card: #1E1E35;--card2: #252545;--text: #F0F0FF;--text2: #A0A0C0;--text3: #6060A0;--border: rgba(108,99,255,.2);--shadow: 0 8px 32px rgba(108,99,255,.15);--radius: 20px;--radius-sm: 12px;--nav-height: 70px;--header-height: 60px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden}body{font-family:Inter,sans-serif;background:var(--bg);color:var(--text);overscroll-behavior:none}h1,h2,h3{font-family:Space Grotesk,sans-serif}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--primary);border-radius:2px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes ripple{0%{transform:scale(0);opacity:.6}to{transform:scale(4);opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes glow{0%,to{box-shadow:0 0 20px #6c63ff4d}50%{box-shadow:0 0 40px #6c63ff99,0 0 60px #6c63ff4d}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.animate-fadeInUp{animation:fadeInUp .5s ease forwards}.animate-fadeIn{animation:fadeIn .4s ease forwards}.animate-pulse{animation:pulse 2s infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.gradient-text{background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass{background:#1e1e35cc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;border-radius:50px;border:none;font-family:Inter,sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;outline:none}.btn:after{content:"";position:absolute;inset:0;background:#ffffff1a;opacity:0;transition:opacity .2s}.btn:active:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 4px 20px #6c63ff66}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6c63ff80}.btn-secondary{background:var(--card2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--card)}.btn-danger{background:linear-gradient(135deg,#ff6584,#ff4757);color:#fff;box-shadow:0 4px 20px #ff658466}.btn-success{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#0f0f1a;box-shadow:0 4px 20px #43e97b66}.btn-lg{padding:18px 40px;font-size:17px;border-radius:60px}.btn-icon{width:48px;height:48px;padding:0;border-radius:50%}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);padding:20px}.stat-card{background:var(--card);border-radius:var(--radius-sm);border:1px solid var(--border);padding:16px;display:flex;flex-direction:column;gap:8px;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.page-container{height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.page-content{flex:1;overflow-y:auto;padding:16px;padding-bottom:calc(var(--nav-height) + 16px);-webkit-overflow-scrolling:touch}.leaflet-container{background:var(--bg2)!important;border-radius:var(--radius-sm)}.leaflet-tile-pane{filter:brightness(.85) saturate(1.2)}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{font-size:13px;font-weight:500;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}.input-group input{background:var(--card2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;color:var(--text);font-family:Inter,sans-serif;font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}.input-group input::placeholder{color:var(--text3)}.input-group input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6c63ff26}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-primary{background:#6c63ff33;color:var(--primary-light)}.badge-success{background:#43e97b33;color:var(--accent)}.badge-danger{background:#ff658433;color:var(--secondary)}.divider{height:1px;background:var(--border);margin:16px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;text-align:center;color:var(--text2)}.empty-state .empty-icon{font-size:64px;opacity:.4;animation:float 3s ease-in-out infinite}.empty-state h3{color:var(--text);font-size:18px}.empty-state p{font-size:14px;line-height:1.6}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}.delay-5{animation-delay:.5s}.toast{position:fixed;bottom:calc(var(--nav-height) + 16px);left:50%;transform:translate(-50%) translateY(20px);background:var(--card2);border:1px solid var(--border);border-radius:50px;padding:12px 24px;font-size:14px;font-weight:500;z-index:9999;opacity:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;backdrop-filter:blur(20px)}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}
