:root{--abyss-black: #FFFFFF;--abyss-900: #F7F9FB;--abyss-800: #EEF1F5;--abyss-700: #E5E7EB;--abyss-600: #D1D5DB;--electric-cyan: #007AFF;--cyan-glow: rgba(0, 122, 255, .3);--cyan-dim: rgba(0, 122, 255, .08);--cyan-soft: rgba(0, 122, 255, .6);--oxygen-white: #0A0A0A;--oxygen-muted: #6B7280;--bio-green: #059669;--bio-green-glow: rgba(5, 150, 105, .15);--warning-amber: #D97706;--danger-red: #DC2626;--text-primary: #0A0A0A;--text-secondary: #374151;--text-dim: #6B7280;--text-muted: #9CA3AF;--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-xs: .75rem;--font-sm: .875rem;--font-base: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 2rem;--font-4xl: 2.5rem;--font-5xl: 3.5rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--radius-xl: 28px;--radius-full: 9999px;--glass-bg: rgba(255, 255, 255, .85);--glass-bg-strong: rgba(255, 255, 255, .95);--glass-border: rgba(0, 0, 0, .08);--glass-border-hover: rgba(0, 122, 255, .25);--glass-blur: 20px;--glass-blur-heavy: 40px;--shadow-cyan: 0 2px 12px rgba(0, 122, 255, .1);--shadow-cyan-strong: 0 4px 24px rgba(0, 122, 255, .18);--shadow-dark: 0 4px 24px rgba(0, 0, 0, .06);--shadow-soft: 0 1px 8px rgba(0, 0, 0, .05);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--z-map: 0;--z-sidebar: 100;--z-bottomsheet: 200;--z-header: 300;--z-modal: 400;--z-toast: 500;--z-fab: 350;--sidebar-width: 220px;--sidebar-collapsed: 72px;--header-height: 64px;--bottomnav-height: 72px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--abyss-black);color:var(--oxygen-white);line-height:1.6;overflow:hidden;min-height:100vh;min-height:100dvh}#root{min-height:100vh;min-height:100dvh}a{color:var(--electric-cyan);text-decoration:none;transition:opacity var(--transition-fast)}a:hover{opacity:.8}button{font-family:var(--font-family);cursor:pointer;border:none;background:none;color:inherit;font-size:inherit}input:not([type=range]),textarea,select{font-family:var(--font-family);color:var(--oxygen-white);background:transparent;border:1px solid var(--glass-border);outline:none}input:not([type=range]):focus,textarea:focus,select:focus{border-color:var(--electric-cyan);box-shadow:0 0 0 3px var(--cyan-dim)}input[type=range]{-webkit-appearance:auto;appearance:auto;border:none;background:transparent;outline:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--abyss-600);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--electric-cyan)}.glass-panel,.glass-panel-strong{background:#f7f9fb;border:1px solid #E5E7EB;border-radius:12px}.glass-card{background:#f7f9fb;border:1px solid #E5E7EB;border-radius:12px;padding:16px;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.glass-card:hover{border-color:#d1d5db;box-shadow:0 2px 8px #0000000a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-sm);transition:all var(--transition-base);white-space:nowrap}.btn-primary{background:var(--electric-cyan);color:var(--abyss-black)}.btn-primary:hover{box-shadow:var(--shadow-cyan-strong);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:transparent;border:1px solid var(--glass-border);color:var(--oxygen-white)}.btn-secondary:hover{border-color:var(--electric-cyan);color:var(--electric-cyan)}.btn-ghost{background:transparent;color:var(--oxygen-muted)}.btn-ghost:hover{color:var(--electric-cyan);background:var(--cyan-dim)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--font-base);border-radius:var(--radius-lg)}.input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--abyss-900);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--oxygen-white);font-size:var(--font-sm);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.input::placeholder{color:var(--oxygen-muted);opacity:.6}.input:focus{border-color:var(--electric-cyan);box-shadow:0 0 0 3px var(--cyan-dim)}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px 10px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.badge-cyan{background:var(--cyan-dim);color:var(--electric-cyan);border:1px solid var(--glass-border)}.badge-green{background:var(--bio-green-glow);color:var(--bio-green);border:1px solid rgba(52,211,153,.2)}.badge-amber{background:#fbbf2426;color:var(--warning-amber);border:1px solid rgba(251,191,36,.2)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse-cyan{0%,to{box-shadow:0 0 0 0 var(--cyan-glow)}50%{box-shadow:0 0 0 12px transparent}}@keyframes glow{0%,to{opacity:1}50%{opacity:.85}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes sonar{0%{transform:scale(1);opacity:.6}to{transform:scale(3);opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bubbleRise{0%{transform:translateY(0) scale(1);opacity:.8}to{transform:translateY(-120px) scale(.5);opacity:0}}@keyframes counter{0%{--counter-value: 0}}@keyframes pulse-marine{0%{transform:scale(1);opacity:1;box-shadow:0 0 #007aff33}70%{transform:scale(1.05);opacity:1;box-shadow:0 0 0 6px #007aff00}to{transform:scale(1);opacity:1;box-shadow:0 0 #007aff00}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in-up{animation:fadeInUp .6s ease forwards}.animate-fade-in{animation:fadeIn .4s ease forwards}.animate-slide-in-left{animation:slideInLeft .4s ease forwards}.animate-slide-in-up{animation:slideInUp .4s ease forwards}.animate-pulse-cyan{animation:pulse-cyan 2s infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,var(--abyss-800) 0%,var(--abyss-700) 50%,var(--abyss-800) 100%);background-size:200% 100%;animation:shimmer 1.5s ease infinite}.animate-spin{animation:spin 1s linear infinite}.stagger>*{opacity:0;animation:fadeInUp .5s ease forwards}.stagger>*:nth-child(1){animation-delay:.05s}.stagger>*:nth-child(2){animation-delay:.1s}.stagger>*:nth-child(3){animation-delay:.15s}.stagger>*:nth-child(4){animation-delay:.2s}.stagger>*:nth-child(5){animation-delay:.25s}.stagger>*:nth-child(6){animation-delay:.3s}.stagger>*:nth-child(7){animation-delay:.35s}.stagger>*:nth-child(8){animation-delay:.4s}.text-cyan{color:var(--electric-cyan)}.text-green{color:var(--bio-green)}.text-muted{color:var(--oxygen-muted)}.text-amber{color:var(--warning-amber)}.text-xs{font-size:var(--font-xs)}.text-sm{font-size:var(--font-sm)}.text-base{font-size:var(--font-base)}.text-lg{font-size:var(--font-lg)}.text-xl{font-size:var(--font-xl)}.text-2xl{font-size:var(--font-2xl)}.text-3xl{font-size:var(--font-3xl)}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.maplibregl-map{font-family:var(--font-family)!important}.maplibregl-popup-content{background:var(--glass-bg-strong)!important;-webkit-backdrop-filter:blur(var(--glass-blur))!important;backdrop-filter:blur(var(--glass-blur))!important;border:1px solid var(--glass-border)!important;border-radius:var(--radius-md)!important;color:var(--oxygen-white)!important;padding:var(--space-md)!important;box-shadow:var(--shadow-dark)!important}.maplibregl-popup-tip{border-top-color:var(--glass-bg-strong)!important}.maplibregl-popup-close-button{color:var(--oxygen-muted)!important;font-size:18px!important;padding:4px 8px!important}.maplibregl-popup-close-button:hover{color:var(--electric-cyan)!important;background:transparent!important}.maplibregl-ctrl-group{background:var(--glass-bg-strong)!important;border:1px solid var(--glass-border)!important;border-radius:var(--radius-md)!important;overflow:hidden}.maplibregl-ctrl-group button{background:transparent!important;border-color:var(--glass-border)!important}.maplibregl-ctrl-group button:hover{background:var(--cyan-dim)!important}html{-webkit-tap-highlight-color:transparent}body{-webkit-text-size-adjust:100%}button,a,input,select,textarea{touch-action:manipulation}.page-scroll-container{overflow-x:hidden;-webkit-overflow-scrolling:touch}@media(max-width:768px){:root{--font-3xl: 1.75rem;--font-4xl: 2rem;--font-5xl: 2.5rem;--header-height: 56px}}@media(max-width:480px){:root{--font-2xl: 1.25rem;--font-3xl: 1.5rem;--font-4xl: 1.75rem;--font-5xl: 2rem}}[dir=rtl]{direction:rtl;text-align:right}[dir=rtl] .btn,[dir=rtl] .badge{flex-direction:row-reverse}[dir=rtl] .animate-slide-in-left{animation:slideInRight .4s ease forwards}[dir=rtl] .desktop-sidebar{order:1}[dir=rtl] .glass-card,[dir=rtl] .glass-panel{text-align:right}[dir=rtl] ::-webkit-scrollbar{direction:ltr}[dir=rtl] input,[dir=rtl] textarea,[dir=rtl] select{text-align:right}[dir=rtl] textarea::placeholder{text-align:right}.responsive-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.responsive-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.responsive-grid-auto-fit{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}@media(max-width:1024px){.responsive-grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.responsive-grid-3,.responsive-grid-2{grid-template-columns:1fr}}
