:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--bg-app:#07090e;--bg-card:#0f1624bf;--bg-card-hover:#162034d9;--bg-subtle:#ffffff08;--bg-surface:#0e1524;--bg-input:#0a101ccc;--border-subtle:#ffffff14;--border-accent:#6366f14d;--border-focus:#6366f1;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--text-inverse:#0f172a;--accent-primary:#6366f1;--accent-primary-hover:#4f46e5;--accent-cyan:#06b6d4;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--accent-purple:#a855f7;--glow-primary:0 0 24px #6366f140;--glow-cyan:0 0 20px #06b6d440;--glow-emerald:0 0 20px #10b98140;--shadow-card:0 8px 32px 0 #0000005e;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 15% 15%,#6366f11f 0%,#0000 40%),radial-gradient(circle at 85% 25%,#06b6d414 0%,#0000 35%),radial-gradient(circle at 50% 85%,#a855f714 0%,#0000 45%);background-attachment:fixed;min-height:100vh;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em;color:var(--text-primary);font-weight:700}.mono{font-family:var(--font-mono)}.glass-card{background:var(--bg-card);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:all var(--transition-normal);position:relative;overflow:hidden}.glass-card:hover{border-color:#ffffff24}.app-container{flex-direction:column;gap:2rem;max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 4rem;display:flex}.navbar{z-index:100;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);background:#0e152499;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex;position:relative}.nav-brand{color:var(--text-primary);align-items:center;gap:.75rem;text-decoration:none;display:flex}.brand-icon{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent-primary), var(--accent-cyan));color:#fff;width:38px;height:38px;box-shadow:var(--glow-primary);justify-content:center;align-items:center;display:flex}.brand-title{letter-spacing:-.03em;background:linear-gradient(120deg,#fff,#94a3b8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.25rem;font-weight:800}.brand-badge{border-radius:var(--radius-full);color:#a5b4fc;text-transform:uppercase;letter-spacing:.05em;background:#6366f126;border:1px solid #6366f14d;padding:2px 8px;font-size:.6875rem;font-weight:700}.nav-actions,.nav-desktop-actions{align-items:center;gap:.75rem;display:flex}.nav-menu-wrapper{position:relative}.nav-mobile-menu-btn{display:none;position:relative}.nav-menu-dot{background:var(--accent-cyan);width:7px;height:7px;box-shadow:0 0 6px var(--accent-cyan);border-radius:50%;position:absolute;top:6px;right:6px}.nav-dropdown-backdrop{z-index:998;position:fixed;inset:0}.nav-dropdown-menu{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:var(--radius-md);z-index:999;background:#0f1626;border:1px solid #ffffff1f;flex-direction:column;gap:.25rem;min-width:220px;padding:.5rem;animation:.15s cubic-bezier(.16,1,.3,1) slideUp;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 36px #0009}.nav-dropdown-item{border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:.625rem;padding:.625rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-dropdown-item:hover{color:#fff;background:#ffffff14}.nav-dropdown-divider{background:var(--border-subtle);height:1px;margin:.25rem 0}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;outline:none;align-items:center;gap:.5rem;padding:.55rem 1rem;font-family:inherit;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent-primary), #4f46e5);color:#fff;box-shadow:0 4px 14px #6366f159}.btn-primary:hover{background:linear-gradient(135deg,#4f46e5,#4338ca);transform:translateY(-1px);box-shadow:0 6px 20px #6366f173}.btn-ghost{color:var(--text-secondary);border-color:var(--border-subtle);background:#ffffff0a}.btn-ghost:hover{color:var(--text-primary);background:#ffffff14;border-color:#fff3}.btn-icon{padding:.55rem}.pulse-dot{background:var(--accent-emerald);border-radius:50%;width:8px;height:8px;display:inline-block;position:relative}.pulse-dot:after{content:"";border:2px solid var(--accent-emerald);border-radius:50%;animation:2s cubic-bezier(.4,0,.6,1) infinite pulse;position:absolute;inset:-2px}@keyframes pulse{0%{opacity:.8;transform:scale(.95)}70%{opacity:0;transform:scale(2.4)}to{opacity:0;transform:scale(2.4)}}.badge{border-radius:var(--radius-full);letter-spacing:.02em;align-items:center;gap:.375rem;padding:.2rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-emerald{color:#34d399;background:#10b9811f;border:1px solid #10b98140}.badge-cyan{color:#38bdf8;background:#06b6d41f;border:1px solid #06b6d440}.badge-amber{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b40}.badge-rose{color:#fb7185;background:#f43f5e1f;border:1px solid #f43f5e40}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#04070dd1;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{border-radius:var(--radius-lg);background:#0f1626;border:1px solid #ffffff1f;flex-direction:column;width:100%;max-width:580px;max-height:calc(100dvh - 3rem);animation:.25s cubic-bezier(.16,1,.3,1) slideUp;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #000000b3}.modal-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-tabs{border-bottom:1px solid var(--border-subtle);background:#ffffff04;flex-shrink:0;gap:.5rem;padding:0 1.5rem;display:flex}.modal-tab{color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;padding:.75rem;font-size:.875rem;font-weight:600;display:flex}.modal-tab:hover{color:var(--text-primary)}.modal-tab.active{color:#38bdf8;border-bottom-color:#38bdf8}.modal-body{-webkit-overflow-scrolling:touch;flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-label{color:var(--text-secondary);font-size:.8125rem;font-weight:600}.form-input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:border-color var(--transition-fast);outline:none;padding:.65rem .85rem;font-family:inherit;font-size:.875rem}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px #6366f133}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.leaflet-container{border-radius:var(--radius-md);z-index:10;font-family:var(--font-sans)!important;background-color:#0b101c!important}.map-tiles-dark{filter:brightness(.6)invert()contrast(3)hue-rotate(200deg)saturate(.3)brightness(.7)}.leaflet-popup-content-wrapper{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-subtle);color:var(--text-primary)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-card)!important;background:#0f1626f2!important}.leaflet-popup-tip{background:#0f1626f2!important}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:1.75rem;display:grid}.hero-card{padding:2rem 2.25rem}.hero-ip-v4{color:var(--text-primary);font-size:clamp(1.15rem,3.5vw,1.4rem);font-weight:700}.hero-ip-v6{color:var(--text-primary);word-break:break-all;font-size:clamp(.9rem,2.8vw,1.1rem);font-weight:700}.world-map-container{border-radius:var(--radius-md);border:1px solid var(--border-subtle);width:100%;height:380px;overflow:hidden}.comparison-table-view{display:block;overflow-x:auto}.comparison-cards-view{display:none}.comparison-card-item{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:border-color var(--transition-fast);background:#0a101c99;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.comparison-card-item:hover{border-color:#ffffff29}@media (width<=768px){.app-container{gap:1.25rem;padding:1rem .75rem 3rem}.navbar{padding:.75rem 1rem}.hero-card{padding:1.25rem 1rem}.dashboard-grid{grid-template-columns:1fr;gap:1.25rem}.world-map-container{height:260px}.comparison-table-view{display:none}.comparison-cards-view{flex-direction:column;gap:.75rem;display:flex}.modal-overlay{padding:.75rem}.modal-content{border-radius:var(--radius-md);max-height:calc(100dvh - 1.5rem)}.modal-header{padding:1rem 1.25rem}.modal-body{padding:1.25rem 1rem}}@media (width<=640px){.nav-desktop-actions{display:none}.nav-mobile-menu-btn{display:inline-flex}.nav-btn-text,.nav-subtitle{display:none}.brand-title{font-size:1.1rem}}@media (width<=480px){.brand-text,.brand-title,.brand-badge{display:none}.hero-card{padding:1rem .875rem}}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,#ffffff0a 25%,#ffffff1a 37%,#ffffff0a 63%) 0 0/400% 100%;animation:1.6s cubic-bezier(.4,0,.6,1) infinite skeleton-shimmer;display:inline-block}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0%}}
