.navbar{z-index:var(--z-sticky);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--color-border-subtle);background:#050e1fe0;position:fixed;top:0;left:0;right:0}.navbar-container{max-width:1280px;padding:0 var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-8);height:64px;margin:0 auto;display:flex}.navbar-brand{align-items:center;gap:var(--space-3);flex-shrink:0;text-decoration:none;display:flex}.navbar-logo{flex-shrink:0;width:36px;height:36px}.navbar-wordmark{font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);letter-spacing:-.02em}.navbar-wordmark-hydro{color:var(--color-text-primary)}.navbar-wordmark-brix{color:var(--color-accent-primary)}.navbar-links{align-items:center;gap:var(--space-6);flex:1;justify-content:center;display:flex}.navbar-links a{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:.04em;text-transform:uppercase;transition:color var(--transition-fast);padding:var(--space-2) var(--space-1);position:relative}.navbar-links a:after{content:"";background:var(--color-accent-primary);height:2px;transition:transform var(--transition-fast);border-radius:var(--radius-full);position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.navbar-links a:hover{color:var(--color-accent-primary)}.navbar-links a:hover:after{transform:scaleX(1)}.navbar-actions{align-items:center;gap:var(--space-4);flex-shrink:0;display:flex}.btn-login{padding:var(--space-2) var(--space-5);border:1.5px solid var(--color-accent-primary);color:var(--color-accent-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.04em;transition:background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);background:0 0}.btn-login:hover{background:var(--color-accent-primary);color:var(--color-ocean-deep);box-shadow:var(--shadow-glow)}.navbar-burger{padding:var(--space-2);background:0 0;border:none;flex-direction:column;gap:5px;display:none}.navbar-burger span{background:var(--color-text-secondary);border-radius:var(--radius-full);width:22px;height:2px;transition:background var(--transition-fast);display:block}.navbar-burger:hover span{background:var(--color-accent-primary)}@media (width<=768px){.navbar-links{background:var(--color-surface-1);border-bottom:1px solid var(--color-border-subtle);padding:var(--space-4);gap:var(--space-1);flex-direction:column;display:none;position:absolute;top:64px;left:0;right:0}.navbar-links--open{display:flex}.navbar-links a{padding:var(--space-3) var(--space-4);width:100%}.navbar-burger{display:flex}}.hero{align-items:center;min-height:100vh;padding-top:64px;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:0;position:absolute;inset:0}.hero-grid{background-image:linear-gradient(#00a8cc0f 1px,#0000 1px),linear-gradient(90deg,#00a8cc0f 1px,#0000 1px);background-size:60px 60px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 80%,#000 40%,#0000 100%);mask-image:radial-gradient(80% 80%,#000 40%,#0000 100%)}.hero-orb{filter:blur(80px);opacity:.35;pointer-events:none;border-radius:50%;position:absolute}.hero-orb--1{background:radial-gradient(circle,#0f4c81 0%,#0000 70%);width:600px;height:600px;top:-100px;right:-100px}.hero-orb--2{opacity:.2;background:radial-gradient(circle,#00a8cc 0%,#0000 70%);width:400px;height:400px;bottom:100px;left:10%}.hero-orb--3{opacity:.15;background:radial-gradient(circle,#00b894 0%,#0000 70%);width:300px;height:300px;top:30%;left:-50px}.hero-waves{height:200px;position:absolute;bottom:0;left:0;right:0}.hero-waves svg{width:100%;height:100%}.hero-content{z-index:1;max-width:900px;padding:var(--space-16) var(--space-6) var(--space-20);text-align:center;margin:0 auto;position:relative}.hero-badge{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent-primary);margin-bottom:var(--space-6);background:#00a8cc1a;border:1px solid #00a8cc4d;display:inline-flex}.hero-badge-dot{background:var(--color-accent-primary);width:7px;height:7px;box-shadow:0 0 8px var(--color-accent-primary);border-radius:50%;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.hero-title{font-size:clamp(2.5rem,6vw,4rem);font-weight:var(--font-weight-extrabold);letter-spacing:-.02em;color:var(--color-text-primary);margin-bottom:var(--space-6);line-height:1.1}.hero-title-accent{background:linear-gradient(135deg, var(--color-accent-primary), var(--color-accent-bright), var(--color-accent-teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-subtitle{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);max-width:680px;margin:0 auto var(--space-10)}.hero-actions{justify-content:center;align-items:center;gap:var(--space-4);margin-bottom:var(--space-16);flex-wrap:wrap;display:flex}.hero-cta-primary{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);background:linear-gradient(135deg, var(--color-ocean-blue), var(--color-accent-primary));border-radius:var(--radius-lg);color:#fff;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:.02em;transition:transform var(--transition-fast), box-shadow var(--transition-fast);border:none;display:flex;box-shadow:0 4px 24px #00a8cc59}.hero-cta-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px #00a8cc80}.hero-cta-secondary{padding:var(--space-4) var(--space-8);border:1.5px solid var(--color-border-default);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0}.hero-cta-secondary:hover{border-color:var(--color-accent-primary);color:var(--color-accent-primary)}.hero-stats{justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-6) var(--space-8);border:1px solid var(--color-border-subtle);border-radius:var(--radius-2xl);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f4c811f;flex-wrap:wrap;display:flex}.hero-stat{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.hero-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extrabold);color:var(--color-accent-primary);letter-spacing:-.02em}.hero-stat-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.hero-stat-divider{background:var(--color-border-subtle);width:1px;height:40px}@media (width<=640px){.hero-stat-divider{display:none}.hero-stats{gap:var(--space-6)}.hero-actions{flex-direction:column}.hero-cta-primary,.hero-cta-secondary{justify-content:center;width:100%;max-width:300px}}.features{padding:var(--space-24) 0;background:linear-gradient(180deg, var(--color-ocean-deep) 0%, var(--color-surface-1) 50%, var(--color-ocean-deep) 100%);position:relative}.features:before{content:"";background:linear-gradient(90deg, transparent, var(--color-accent-primary), transparent);opacity:.4;height:1px;position:absolute;top:0;left:0;right:0}.features-container{max-width:1280px;padding:0 var(--space-6);margin:0 auto}.features-header{text-align:center;max-width:680px;margin:0 auto var(--space-16)}.features-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-primary);margin-bottom:var(--space-4);display:inline-block}.features-title{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:var(--font-weight-extrabold);letter-spacing:-.02em;color:var(--color-text-primary);margin-bottom:var(--space-4)}.features-subtitle{font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.features-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.feature-card{background:var(--color-surface-card);border:1px solid var(--color-border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:relative;overflow:hidden}.feature-card:before{content:"";background:var(--feature-color);opacity:0;height:3px;transition:opacity var(--transition-normal);position:absolute;top:0;left:0;right:0}.feature-card:hover{border-color:var(--feature-color);box-shadow:0 8px 32px #0006, 0 0 0 1px var(--feature-color);transform:translateY(-3px)}.feature-card:hover:before{opacity:1}.feature-card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.feature-card-icon{background:color-mix(in srgb, var(--feature-color) 15%, transparent);border:1px solid color-mix(in srgb, var(--feature-color) 35%, transparent);border-radius:var(--radius-lg);width:44px;height:44px;color:var(--feature-color);flex-shrink:0;justify-content:center;align-items:center;display:flex}.feature-card-icon svg{width:22px;height:22px}.feature-card-tag{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--feature-color);background:color-mix(in srgb, var(--feature-color) 12%, transparent);border:1px solid color-mix(in srgb, var(--feature-color) 30%, transparent);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full)}.feature-card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-3);line-height:var(--line-height-tight)}.feature-card-desc{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin-bottom:var(--space-5)}.feature-card-list{gap:var(--space-2);flex-direction:column;display:flex}.feature-card-list-item{align-items:flex-start;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-normal);display:flex}.feature-card-list-item svg{flex-shrink:0;margin-top:2px}@media (width<=768px){.features-grid{grid-template-columns:1fr}}.modal-overlay{z-index:var(--z-modal);-webkit-backdrop-filter:blur(8px);padding:var(--space-4);background:#050e1fbf;justify-content:center;align-items:center;animation:.2s overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-2xl);width:100%;max-width:420px;padding:var(--space-8);box-shadow:var(--shadow-xl), 0 0 60px #00a8cc1a;animation:.25s cubic-bezier(.34,1.56,.64,1) modal-in;position:relative}@keyframes modal-in{0%{opacity:0;transform:scale(.92)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-close{top:var(--space-4);right:var(--space-4);background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-muted);width:32px;height:32px;transition:color var(--transition-fast), background var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute}.modal-close:hover{background:var(--color-surface-4);color:var(--color-text-primary)}.modal-logo{margin-bottom:var(--space-4);justify-content:center;display:flex}.modal-title{text-align:center;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-1)}.modal-subtitle{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-5)}.modal-hint{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:var(--space-5);background:#00a8cc14;border:1px solid #00a8cc33;display:flex}.modal-hint svg{color:var(--color-accent-primary);flex-shrink:0}.modal-hint strong{color:var(--color-accent-primary);font-weight:var(--font-weight-semibold)}.modal-form{gap:var(--space-4);flex-direction:column;display:flex}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.form-input-wrap{position:relative}.form-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-1);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.form-input-wrap .form-input{padding-right:var(--space-10)}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px #00a8cc1f}.form-input-toggle{right:var(--space-3);color:var(--color-text-muted);transition:color var(--transition-fast);background:0 0;border:none;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.form-input-toggle:hover{color:var(--color-accent-primary)}.form-error{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:#e74c3c;background:#e74c3c14;border:1px solid #e74c3c40;display:flex}.form-submit{width:100%;padding:var(--space-3) var(--space-4);background:linear-gradient(135deg, var(--color-ocean-blue), var(--color-accent-primary));border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);letter-spacing:.02em;height:44px;transition:opacity var(--transition-fast), box-shadow var(--transition-fast);margin-top:var(--space-2);border:none;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 16px #00a8cc40}.form-submit:hover:not(:disabled){opacity:.9;box-shadow:0 6px 24px #00a8cc66}.form-submit:disabled{opacity:.7;cursor:not-allowed}.form-submit-loader{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.landing-page{background:var(--color-ocean-deep);min-height:100vh}.landing-footer{border-top:1px solid var(--color-border-subtle);background:var(--color-surface-1);padding:var(--space-8) 0}.landing-footer-inner{max-width:1280px;padding:0 var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin:0 auto;display:flex}.landing-footer-brand{align-items:center;gap:var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-extrabold);letter-spacing:-.02em;display:flex}.landing-footer-tagline{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-muted);letter-spacing:.04em;padding-left:var(--space-3);border-left:1px solid var(--color-border-subtle)}.landing-footer-copy{font-size:var(--font-size-xs);color:var(--color-text-muted)}.app-header{height:var(--header-height);background:var(--color-surface-1);border-bottom:1px solid var(--color-border-subtle);padding:0 var(--space-4);align-items:center;gap:var(--space-6);z-index:var(--z-sticky);flex-shrink:0;display:flex;position:relative}.app-header-brand{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.app-header-wordmark{font-size:var(--font-size-lg);font-weight:var(--font-weight-extrabold);letter-spacing:-.02em}.app-header-hydro{color:var(--color-text-primary)}.app-header-brix{color:var(--color-accent-primary)}.app-header-tenant{align-items:center;gap:var(--space-2);padding-left:var(--space-6);border-left:1px solid var(--color-border-subtle);flex:1;display:flex}.app-header-tenant-label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.08em}.app-header-tenant-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.app-header-tenant-plan{font-size:var(--font-size-xs);color:var(--color-accent-teal);padding:2px var(--space-2);border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);letter-spacing:.05em;background:#00b8941f;border:1px solid #00b89440}.app-header-right{align-items:center;gap:var(--space-4);flex-shrink:0;display:flex}.app-header-status{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);display:flex}.status-dot{border-radius:50%;width:7px;height:7px}.status-dot--live{background:var(--color-accent-teal);box-shadow:0 0 6px var(--color-accent-teal);animation:2s ease-in-out infinite pulse-live}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.5}}.app-header-user{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-subtle);background:var(--color-surface-2);transition:background var(--transition-fast), border-color var(--transition-fast);-webkit-user-select:none;user-select:none;display:flex;position:relative}.app-header-user:hover{background:var(--color-surface-3);border-color:var(--color-border-default)}.app-header-avatar{background:linear-gradient(135deg, var(--color-ocean-blue), var(--color-accent-primary));width:26px;height:26px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.app-header-username{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.app-header-user svg.rotated{transition:transform var(--transition-fast);transform:rotate(180deg)}.app-header-dropdown{background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);min-width:200px;box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);animation:.15s drop-in;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}@keyframes drop-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:background var(--transition-fast);text-align:left;background:0 0;border:none;width:100%;display:flex}.dropdown-item--info{color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:default}.dropdown-item--danger{color:var(--color-danger);cursor:pointer}.dropdown-item--danger:hover{background:#e74c3c14}.dropdown-divider{background:var(--color-border-subtle);height:1px;margin:var(--space-1) 0}.sidebar{width:var(--sidebar-width);background:var(--color-surface-1);border-right:1px solid var(--color-border-subtle);transition:width var(--transition-slow);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar--collapsed{background:var(--color-surface-1);border-right:1px solid var(--color-border-subtle);width:52px;padding:var(--space-3) 0;align-items:center;gap:var(--space-3);transition:width var(--transition-slow);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-collapsed-icons{align-items:center;gap:var(--space-3);flex-direction:column;width:100%;display:flex}.sidebar-collapsed-icon{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);width:34px;height:34px;color:var(--color-accent-amber);cursor:default;justify-content:center;align-items:center;display:flex;position:relative}.sidebar-collapsed-count{background:var(--color-accent-primary);color:var(--color-ocean-deep);font-size:9px;font-weight:var(--font-weight-bold);border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:absolute;top:-5px;right:-5px}.sidebar-collapsed-divider{background:var(--color-border-subtle);width:28px;height:1px}.sidebar-collapsed-feature{border-radius:var(--radius-sm);width:34px;height:24px;font-size:9px;font-weight:var(--font-weight-bold);letter-spacing:.04em;color:var(--f-color);background:color-mix(in srgb, var(--f-color) 10%, transparent);border:1px solid color-mix(in srgb, var(--f-color) 25%, transparent);cursor:default;justify-content:center;align-items:center;display:flex}.sidebar-toggle-btn{background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);width:26px;height:26px;color:var(--color-text-muted);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:flex}.sidebar-toggle-btn:hover{background:var(--color-surface-4);color:var(--color-text-primary);border-color:var(--color-border-default)}.sidebar-toggle-btn--expand{color:var(--color-accent-primary);margin-bottom:var(--space-1);background:#00a8cc0f;border-color:#00a8cc4d}.sidebar-toggle-btn--expand:hover{border-color:var(--color-accent-primary);color:var(--color-accent-bright);background:#00a8cc1f}.sidebar-header{padding:var(--space-4) var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}.sidebar-header-actions{align-items:center;gap:var(--space-1);display:flex}.sidebar-add-btn{background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);width:26px;height:26px;color:var(--color-text-muted);transition:color var(--transition-fast), background var(--transition-fast);justify-content:center;align-items:center;display:flex}.sidebar-add-btn:hover{background:var(--color-surface-4);color:var(--color-accent-primary)}.sidebar-search{padding:var(--space-3);border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;position:relative}.sidebar-search-icon{left:calc(var(--space-3) + var(--space-3));color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.sidebar-search-input{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-8);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);outline:none}.sidebar-search-input::placeholder{color:var(--color-text-muted)}.sidebar-search-input:focus{border-color:var(--color-accent-primary)}.sidebar-tree{padding:var(--space-2);flex:1;overflow-y:auto}.tree-root{flex-direction:column;gap:2px;display:flex}.tree-node{flex-direction:column;display:flex}.tree-children{margin-left:var(--space-4);padding-left:var(--space-3);border-left:1px solid var(--color-border-subtle);flex-direction:column;gap:1px;margin-top:1px;display:flex}.tree-item{align-items:center;gap:var(--space-2);padding:5px var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:left;width:100%;transition:background var(--transition-fast), color var(--transition-fast);cursor:pointer;background:0 0;border:none;display:flex}.tree-item:hover{background:var(--color-surface-2);color:var(--color-text-primary)}.tree-item--project{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-top:var(--space-2)}.tree-item--project svg{color:var(--color-accent-amber)}.tree-item--group{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding:4px var(--space-2)}.tree-item--site{font-weight:var(--font-weight-medium)}.tree-item--site svg{color:var(--color-accent-primary)}.tree-item--active{color:var(--color-accent-primary);background:#00a8cc14}.tree-item--feature{font-size:var(--font-size-xs);padding:4px var(--space-2)}.tree-item--feature:hover,.tree-item--selected{background:color-mix(in srgb, var(--feat-color) 12%, transparent);color:var(--color-text-primary)}.tree-item--selected{font-weight:var(--font-weight-semibold)}.tree-item--selected .tree-feat-dot{background:var(--feat-color);box-shadow:0 0 6px var(--feat-color)}.tree-feat-dot{background:var(--feat-color);opacity:.7;width:6px;height:6px;transition:opacity var(--transition-fast), box-shadow var(--transition-fast);border-radius:50%;flex-shrink:0}.tree-item--route svg{color:var(--color-route)}.tree-item--selected-route{color:var(--color-route);background:#c0392b1a}.tree-route-count{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-surface-3);padding:1px var(--space-2);border-radius:var(--radius-full);flex-shrink:0;margin-left:auto}.tree-count{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-shrink:0;margin-left:auto}.tree-status-badge{font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;padding:1px var(--space-2);border-radius:var(--radius-full);flex-shrink:0;margin-left:auto}.tree-status-badge--active{color:var(--color-accent-teal);background:#00b8941f;border:1px solid #00b89440}.collapse-icon{color:var(--color-text-muted);transition:transform var(--transition-fast);flex-shrink:0}.collapse-icon--open{transform:rotate(90deg)}.sidebar-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-subtle);flex-shrink:0}.sidebar-footer-item{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.mapview{background:var(--color-ocean-deep);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.leaflet-map{flex:1;width:100%}.map-toolbar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-dropdown);background:#0a1628eb;flex-wrap:wrap;flex-shrink:0;display:flex;position:relative}.map-toolbar-group{align-items:center;gap:var(--space-1);display:flex}.map-toolbar-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-right:var(--space-1)}.map-toolbar-btn{padding:4px var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);white-space:nowrap}.map-toolbar-btn:hover{background:var(--color-surface-3);color:var(--color-text-primary);border-color:var(--color-border-default)}.map-toolbar-btn--active{border-color:var(--color-accent-primary);color:var(--color-accent-primary);background:#00a8cc26}.map-toolbar-divider{background:var(--color-border-subtle);width:1px;height:20px;margin:0 var(--space-2)}.map-aoi-info{align-items:center;gap:var(--space-2);display:flex}.map-aoi-badge{font-size:var(--font-size-xs);color:var(--color-accent-primary);padding:2px var(--space-3);border-radius:var(--radius-full);font-family:var(--font-family-mono);background:#00a8cc1a;border:1px solid #00a8cc40}.map-aoi-clear{color:var(--color-text-muted);font-size:var(--font-size-sm);border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;padding:2px 4px}.map-aoi-clear:hover{color:var(--color-danger)}.map-manual-panel{z-index:var(--z-overlay);background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-4);width:320px;box-shadow:var(--shadow-lg);position:absolute;top:56px;left:50%;transform:translate(-50%)}.map-manual-header{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.map-manual-header button{color:var(--color-text-muted);font-size:var(--font-size-md);transition:color var(--transition-fast);background:0 0;border:none}.map-manual-header button:hover{color:var(--color-text-primary)}.map-manual-grid{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.map-manual-grid label{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);align-items:center;display:flex}.map-manual-grid input{padding:var(--space-2) var(--space-3);background:var(--color-surface-1);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);outline:none}.map-manual-grid input:focus{border-color:var(--color-accent-primary)}.map-manual-apply{width:100%;padding:var(--space-2) var(--space-4);background:linear-gradient(135deg, var(--color-ocean-blue), var(--color-accent-primary));border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border:none}.map-manual-apply:hover{opacity:.9}.map-legend{bottom:var(--space-8);right:var(--space-4);z-index:var(--z-dropdown);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a1628e0;min-width:160px;position:absolute}.map-legend-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--space-2);text-align:center}.map-legend-bar{border-radius:var(--radius-sm);height:10px;margin-bottom:var(--space-1);background:linear-gradient(90deg,#001f5e,#0a4fa0,#00a8cc,#00e5b0,#ffe066,#ff6b35,#c0392b)}.map-legend-labels{color:var(--color-text-muted);font-size:10px;font-family:var(--font-family-mono);justify-content:space-between;display:flex}.sdb-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-header{padding:var(--space-4);border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.panel-header-title{align-items:center;gap:var(--space-3);display:flex}.panel-header-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.panel-header-icon--sdb{color:var(--color-sdb);background:#2980b926;border:1px solid #2980b94d}.panel-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2}.panel-subtitle{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.panel-status-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:2px var(--space-3);border-radius:var(--radius-full);flex-shrink:0}.panel-status-badge--success{color:var(--color-accent-teal);background:#00b8941f;border:1px solid #00b89440}.panel-tabs{border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;display:flex;overflow-x:auto}.panel-tab{padding:var(--space-3) var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;transition:color var(--transition-fast), border-color var(--transition-fast);letter-spacing:.02em;background:0 0;border:none;border-bottom:2px solid #0000}.panel-tab:hover{color:var(--color-text-secondary)}.panel-tab--active{color:var(--color-accent-primary);border-bottom-color:var(--color-accent-primary);font-weight:var(--font-weight-semibold)}.panel-content{padding:var(--space-4);flex:1;overflow-y:auto}.sdb-config{gap:var(--space-5);flex-direction:column;display:flex}.config-section{gap:var(--space-3);flex-direction:column;display:flex}.config-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.config-options{gap:var(--space-2);flex-direction:column;display:flex}.config-option-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);display:flex}.config-option-card input{accent-color:var(--color-sdb);flex-shrink:0;margin-top:2px}.config-option-card:hover{border-color:var(--color-border-default);background:var(--color-surface-3)}.config-option-card--active{border-color:var(--color-sdb);background:#2980b914}.config-option-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.config-option-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.config-contours{gap:var(--space-2);flex-wrap:wrap;display:flex}.config-contour-chip{padding:3px var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--color-sdb);font-family:var(--font-family-mono);font-weight:var(--font-weight-medium);background:#2980b91a;border:1px solid #2980b940}.run-btn{justify-content:center;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3);background:linear-gradient(135deg, #1a5276, var(--color-sdb));border-radius:var(--radius-md);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);transition:opacity var(--transition-fast);border:none;display:flex;box-shadow:0 4px 16px #2980b94d}.run-btn:disabled{opacity:.7;cursor:not-allowed}.run-btn:not(:disabled):hover{opacity:.9}.run-btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.sdb-validation{gap:var(--space-4);flex-direction:column;display:flex}.sdb-val-note{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.sdb-metrics-grid{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.sdb-metric-card{align-items:center;gap:var(--space-1);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid;flex-direction:column;display:flex}.sdb-metric-card--good{background:#00b8940f;border-color:#00b89433}.sdb-metric-card--warn{background:#f39c120f;border-color:#f39c1233}.sdb-metric-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-family:var(--font-family-mono)}.sdb-metric-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.sdb-scatter-mock{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3)}.sdb-scatter-title{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-align:center;margin-bottom:var(--space-2)}.sdb-scatter-svg{width:100%;height:auto}.sdb-outputs{gap:var(--space-5);flex-direction:column;display:flex}.sdb-output-section{gap:var(--space-2);flex-direction:column;display:flex}.sdb-output-category{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-subtle)}.sdb-output-list{gap:var(--space-1);flex-direction:column;display:flex}.sdb-output-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition-fast), background var(--transition-fast);display:flex}.sdb-output-item:hover{border-color:var(--color-border-default);background:var(--color-surface-3)}.sdb-output-icon{font-size:var(--font-size-base);flex-shrink:0;line-height:1}.sdb-output-info{flex:1;min-width:0}.sdb-output-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sdb-output-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;display:block;overflow:hidden}.sdb-output-format{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-sdb);padding:2px var(--space-2);border-radius:var(--radius-full);white-space:nowrap;font-family:var(--font-family-mono);background:#2980b91a;border:1px solid #2980b933;flex-shrink:0}.sdb-output-btn{background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);width:26px;height:26px;color:var(--color-text-muted);transition:color var(--transition-fast), background var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sdb-output-btn:hover{color:var(--color-accent-primary);border-color:var(--color-accent-primary);background:#00a8cc1a}.crs-output-row{gap:var(--space-3);flex-direction:column;display:flex}.crs-output-field{flex-direction:column;gap:4px;display:flex}.crs-output-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em}.crs-output-value{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium);display:flex}.config-select-sm{width:100%;padding:var(--space-1) var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);border:1px solid #2980b94d;outline:none}.config-select-sm:focus{border-color:var(--color-sdb)}.metocean-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-header-icon--metocean{color:var(--color-metocean);background:#8e44ad26;border:1px solid #8e44ad4d}.metocean-setup{gap:var(--space-5);flex-direction:column;display:flex}.run-btn--metocean{background:linear-gradient(135deg, #5b2c6f, var(--color-metocean));box-shadow:0 4px 16px #8e44ad4d}.config-option-card--active-metocean{border-color:var(--color-metocean)!important;background:#8e44ad14!important}.grid-config-row{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.grid-config-label{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;min-width:64px}.grid-config-select{padding:var(--space-1) var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-xs);cursor:pointer;transition:border-color var(--transition-fast);outline:none;flex:1}.grid-config-select:focus{border-color:var(--color-metocean)}.grid-show-toggle{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex}.grid-show-toggle input[type=checkbox]{accent-color:var(--color-metocean);cursor:pointer;width:14px;height:14px}.grid-param-divider{align-items:center;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);letter-spacing:.07em;text-transform:uppercase;display:flex}.grid-param-divider:before,.grid-param-divider:after{content:"";background:var(--color-border-subtle);flex:1;height:1px}.grid-param-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);line-height:1.5}.grid-param-list{flex-direction:column;gap:3px;display:flex}.grid-param-item{flex-direction:column;display:flex}.grid-param-row{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background var(--transition-fast), border-color var(--transition-fast);display:flex}.grid-param-row:hover{background:var(--color-surface-3);border-color:var(--color-border-default)}.grid-param-row--active{background:#f39c1212;border-color:#f39c1259;border-bottom-right-radius:0;border-bottom-left-radius:0}.grid-param-info{flex-direction:column;gap:2px;min-width:0;display:flex}.grid-param-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.grid-param-row--active .grid-param-name{color:var(--color-accent-amber)}.grid-param-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex}.method-badge{border-radius:var(--radius-full);font-size:9px;font-weight:var(--font-weight-bold);letter-spacing:.05em;text-transform:uppercase;padding:1px 5px}.method-badge--bilinear{color:var(--color-metocean);background:#8e44ad26;border:1px solid #8e44ad40}.method-badge--nearest{color:var(--color-accent-primary);background:#00a8cc1f;border:1px solid #00a8cc33}.grid-param-chevron{color:var(--color-text-muted);transition:transform var(--transition-fast);flex-shrink:0}.grid-param-chevron--open{transform:rotate(90deg)}.grid-pt-table{border-bottom-left-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:#f39c120a;border:1px solid #f39c1240;border-top:none;flex-direction:column;gap:2px;display:flex}.grid-pt-header{gap:var(--space-2);padding-bottom:var(--space-1);font-size:9px;font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid #f39c1226;grid-template-columns:1fr 32px 52px 52px;display:grid}.grid-pt-row{gap:var(--space-2);grid-template-columns:1fr 32px 52px 52px;align-items:center;padding:2px 0;display:grid}.grid-pt-coord{font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-text-secondary)}.grid-pt-corner{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.grid-pt-weight{font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-accent-amber);text-align:right}.grid-pt-dist{font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-text-muted);text-align:right}.config-option-card--active-metocean input{accent-color:var(--color-metocean)}.metocean-analyses-grid{gap:var(--space-2);flex-direction:column;display:flex}.metocean-analysis-chip{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);display:flex}.metocean-analysis-chip input{accent-color:var(--color-metocean);flex-shrink:0}.metocean-analysis-chip:hover{border-color:var(--color-border-default);background:var(--color-surface-3)}.metocean-analysis-chip--active{color:var(--color-text-primary);background:#8e44ad14;border-color:#8e44ad80}.metocean-seasonal{gap:var(--space-4);flex-direction:column;display:flex}.chart-card{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4)}.chart-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-align:center;margin-bottom:var(--space-3);letter-spacing:.04em;text-transform:uppercase}.chart-tooltip{background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.chart-tooltip-label{color:var(--color-text-muted);margin-bottom:var(--space-1);font-weight:var(--font-weight-medium)}.chart-tooltip-item{font-size:var(--font-size-xs)}.metocean-stats-row{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.metocean-stat-card{padding:var(--space-3);border-radius:var(--radius-md);background:#8e44ad0f;border:1px solid #8e44ad26;flex-direction:column;align-items:center;gap:2px;display:flex}.metocean-stat-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-metocean);font-family:var(--font-family-mono)}.metocean-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.metocean-eva{gap:var(--space-4);flex-direction:column;display:flex}.eva-table-wrap{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);overflow-x:auto}.eva-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.eva-table th{background:var(--color-surface-3);color:var(--color-text-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-2) var(--space-3);text-align:left;border-bottom:1px solid var(--color-border-subtle)}.eva-table td{padding:var(--space-2) var(--space-3);color:var(--color-text-secondary);font-family:var(--font-family-mono);border-bottom:1px solid #ffffff0a}.eva-table tr:last-child td{border-bottom:none}.eva-table tr:hover td{background:var(--color-surface-2)}.eva-rp{color:var(--color-metocean)!important;font-weight:var(--font-weight-medium)!important}.metocean-outputs{gap:var(--space-2);flex-direction:column;display:flex}.tidal-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-header-icon--tidal{color:var(--color-tidal);background:#16a08526;border:1px solid #16a0854d}.run-btn--tidal{background:linear-gradient(135deg, #0e6655, var(--color-tidal));box-shadow:0 4px 16px #16a0854d}.tidal-prediction{gap:var(--space-4);flex-direction:column;display:flex}.tidal-controls{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.form-group-inline{gap:var(--space-1);flex-direction:column;display:flex}.form-label-sm{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.tidal-date-input{padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);outline:none;min-width:130px}.tidal-date-input:focus{border-color:var(--color-tidal)}.tidal-hw-table{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3)}.hw-event-list{gap:var(--space-1);flex-direction:column;display:flex}.hw-event{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--font-size-sm);display:flex}.hw-event--hw{background:#16a08514;border:1px solid #16a08526}.hw-event--lw{background:#3498db14;border:1px solid #3498db26}.hw-event-time{font-family:var(--font-family-mono);color:var(--color-text-muted);min-width:40px}.hw-event-type{font-weight:var(--font-weight-bold);font-size:var(--font-size-xs);width:28px}.hw-event--hw .hw-event-type{color:var(--color-tidal)}.hw-event--lw .hw-event-type{color:var(--color-info)}.hw-event-height{font-family:var(--font-family-mono);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-left:auto}.tidal-constituents{gap:var(--space-4);flex-direction:column;display:flex}.constituent-table-wrap{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);overflow:hidden}.tidal-datums{gap:var(--space-4);flex-direction:column;display:flex}.datum-bars{gap:var(--space-3);flex-direction:column;display:flex}.datum-item{align-items:center;gap:var(--space-3);grid-template-columns:56px 1fr 56px auto;display:grid}.datum-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-tidal);font-family:var(--font-family-mono)}.datum-bar-wrap{background:var(--color-surface-2);border-radius:var(--radius-full);height:8px;overflow:hidden}.datum-bar{background:linear-gradient(90deg, #0e6655, var(--color-tidal));border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.datum-value{font-family:var(--font-family-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:right}.datum-desc{font-size:var(--font-size-xs);color:var(--color-text-muted);display:none}@media (width>=420px){.datum-desc{display:block}.datum-item{grid-template-columns:56px 1fr 56px 180px}}.datum-tidal-range{padding:var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);background:#16a08514;border:1px solid #16a08533;justify-content:space-between;align-items:center;display:flex}.datum-tidal-range strong{color:var(--color-tidal);font-family:var(--font-family-mono);font-size:var(--font-size-lg)}.tidal-datum-header{gap:var(--space-2);margin-bottom:var(--space-1);flex-direction:column;display:flex}.tidal-datum-ref{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);display:flex}.tidal-datum-ref-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em;font-weight:var(--font-weight-semibold)}.tidal-datum-ref-val{font-family:var(--font-family-mono);font-weight:var(--font-weight-bold);color:var(--color-tidal);padding:1px var(--space-2);border-radius:var(--radius-full);background:#16a0851a;border:1px solid #16a08540}.tidal-datum-ref-note{color:var(--color-text-muted);font-style:italic}.weather-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-header-icon--weather{color:var(--color-weather);background:#d3540026;border:1px solid #d354004d}.weather-update-badge{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-surface-3);padding:2px var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border-subtle);flex-shrink:0}.weather-current{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4)}.weather-current-header{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-3)}.weather-params-grid{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.weather-param{flex-direction:column;gap:2px;display:flex}.weather-param-label{color:var(--color-text-muted);font-size:10px;font-weight:var(--font-weight-medium)}.weather-param-value{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-family:var(--font-family-mono)}.weather-param-value--good{font-size:var(--font-size-xs);color:var(--color-accent-teal);font-family:var(--font-family-primary);font-weight:var(--font-weight-medium)}.weather-param-dir{color:var(--color-weather);align-items:center;gap:4px;display:flex}.weather-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-2);margin-top:var(--space-2)}.operability-config{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.op-threshold-row{align-items:center;gap:var(--space-2);display:flex}.op-threshold-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);min-width:64px}.op-threshold-input{width:64px;padding:var(--space-1) var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:var(--font-family-mono);text-align:center;outline:none}.op-threshold-input:focus{border-color:var(--color-weather)}.op-threshold-unit{font-size:var(--font-size-xs);color:var(--color-text-muted)}.forecast-list{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.forecast-day{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);border:1px solid;display:flex}.forecast-day--go{background:#00b8940d;border-color:#00b89426}.forecast-day--nogo{background:#e74c3c0d;border-color:#e74c3c26}.forecast-day-name{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);min-width:64px;font-size:var(--font-size-xs)}.forecast-params{align-items:center;gap:var(--space-4);flex:1;display:flex}.forecast-param{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-text-secondary);font-family:var(--font-family-mono);display:flex}.forecast-param-label{color:var(--color-text-muted);font-family:var(--font-family-primary)}.forecast-hs{font-weight:var(--font-weight-bold)}.forecast-dir{align-items:center;gap:4px;display:flex}.forecast-operability{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:2px var(--space-2);border-radius:var(--radius-sm);letter-spacing:.04em;flex-shrink:0}.forecast-operability--go{color:var(--color-accent-teal);background:#00b8941f;border:1px solid #00b89440}.forecast-operability--nogo{color:var(--color-danger);background:#e74c3c1f;border:1px solid #e74c3c40}.model-list{gap:var(--space-2);flex-direction:column;display:flex}.model-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast);display:flex}.model-item:hover{border-color:var(--color-border-default)}.model-item input{accent-color:var(--color-weather)}.model-name{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);flex:1}.model-res{font-size:var(--font-size-xs);color:var(--color-text-muted);font-family:var(--font-family-mono)}.bathy-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-header-icon--bathy{color:var(--color-bathymetry);background:#27ae6026;border:1px solid #27ae604d}.bathy-upload-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-bathymetry);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);transition:background var(--transition-fast);background:#27ae601a;border:1px solid #27ae604d;flex-shrink:0;display:flex}.bathy-upload-btn:hover{background:#27ae602e}.bathy-survey-list{gap:var(--space-3);margin-bottom:var(--space-4);flex-direction:column;display:flex}.bathy-survey-card{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);transition:border-color var(--transition-fast)}.bathy-survey-card:hover{border-color:#27ae604d}.bathy-survey-header{align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.bathy-type-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:2px var(--space-2);border-radius:var(--radius-full);font-family:var(--font-family-mono);border:1px solid;flex-shrink:0}.bathy-survey-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.bathy-status-dot{background:var(--color-accent-teal);width:7px;height:7px;box-shadow:0 0 5px var(--color-accent-teal);border-radius:50%;flex-shrink:0}.bathy-survey-meta{gap:var(--space-1) var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.bathy-survey-meta span{font-size:var(--font-size-xs);color:var(--color-text-muted)}.bathy-survey-meta strong{color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.bathy-survey-actions{gap:var(--space-2);display:flex}.bathy-action-btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);display:flex}.bathy-action-btn:hover{border-color:var(--color-bathymetry);color:var(--color-bathymetry);background:#27ae6014}.bathy-change-detection{background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.bathy-cd-header{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);display:flex}.bathy-cd-header svg{color:var(--color-accent-primary)}.bathy-cd-desc{font-size:var(--font-size-xs);color:var(--color-text-muted)}.bathy-cd-selectors{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.bathy-select{min-width:140px;padding:var(--space-2) var(--space-3);background:var(--color-surface-1);border:1px solid var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-xs);outline:none;flex:1}.bathy-select:focus{border-color:var(--color-bathymetry)}.bathy-cd-vs{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-bold);flex-shrink:0}.run-btn--bathy{background:linear-gradient(135deg, #1e6231, var(--color-bathymetry));box-shadow:0 4px 16px #27ae604d}.route-panel{flex-direction:column;height:100%;display:flex;overflow:hidden}.route-panel--empty{justify-content:center;align-items:center;gap:var(--space-4);height:100%;padding:var(--space-8);text-align:center;flex-direction:column;display:flex}.route-panel--empty p{font-size:var(--font-size-sm);color:var(--color-text-muted)}.route-stats-row{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.route-stat{padding:var(--space-3);border-radius:var(--radius-md);background:#c0392b0f;border:1px solid #c0392b26;flex-direction:column;align-items:center;gap:2px;display:flex}.route-stat-value{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-route);font-family:var(--font-family-mono)}.route-stat-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center}.waypoint-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:var(--space-3)}.waypoint-list{margin-bottom:var(--space-4);flex-direction:column;display:flex}.waypoint-item{gap:var(--space-3);align-items:flex-start;display:flex}.waypoint-connector{flex-direction:column;flex-shrink:0;align-items:center;padding-top:6px;display:flex}.waypoint-dot{background:var(--color-route);border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 6px #c0392b80}.waypoint-line{background:linear-gradient(to bottom, var(--color-route), #c0392b33);width:2px;height:36px;margin-top:2px}.waypoint-body{padding-bottom:var(--space-4);flex:1}.waypoint-header{align-items:center;gap:var(--space-2);margin-bottom:2px;display:flex}.waypoint-order{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-route);padding:1px var(--space-2);border-radius:var(--radius-full);font-family:var(--font-family-mono);background:#c0392b1a}.waypoint-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.waypoint-coords{gap:var(--space-3);font-size:var(--font-size-xs);color:var(--color-text-muted);font-family:var(--font-family-mono);display:flex}.waypoint-edit-btn{color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;flex-shrink:0;margin-top:4px}.waypoint-edit-btn:hover{color:var(--color-accent-primary)}.add-waypoint-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px dashed var(--color-border-default);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-sm);width:100%;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;justify-content:center;display:flex}.add-waypoint-btn:hover{border-color:var(--color-route);color:var(--color-route)}.route-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.route-action-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);display:flex}.route-action-btn:hover{border-color:var(--color-route);color:var(--color-route);background:#c0392b14}.app-page{background:var(--color-ocean-deep);flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-body{flex:1;min-height:0;display:flex;overflow:hidden}.app-main{flex:1;min-width:0;display:flex;overflow:hidden}.app-map-area{flex-direction:column;flex:1;min-width:0;transition:flex-grow .3s,opacity .3s;display:flex;overflow:hidden}.app-main[data-panel=expanded] .app-map-area{opacity:0;pointer-events:none;flex:0 0;overflow:hidden}.app-panel-area{background:var(--color-surface-1);border-left:1px solid var(--color-border-subtle);flex-direction:row;flex:0 0 420px;transition:flex-basis .3s,flex-grow .3s;display:flex;overflow:hidden}.app-main[data-panel=collapsed] .app-panel-area{flex-basis:36px}.app-main[data-panel=expanded] .app-panel-area{border-left:none;flex-grow:1;flex-basis:0%;box-shadow:-4px 0 24px #00000059}.panel-handle{width:36px;padding:var(--space-3) 0;align-items:center;gap:var(--space-2);background:var(--color-surface-2);border-right:1px solid var(--color-border-subtle);flex-direction:column;flex-shrink:0;display:flex}.panel-handle-btn{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--color-text-muted);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.panel-handle-btn:hover{color:var(--color-text-primary);background:var(--color-surface-3);border-color:var(--color-border-subtle)}.panel-handle-btn--active{color:var(--color-accent-primary);background:#00a8cc1f;border-color:#00a8cc59}.panel-handle-btn--active:hover{background:#00a8cc2e}.panel-content-wrap{flex:1;grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid;overflow:hidden}.app-main[data-panel=collapsed] .panel-content-wrap{display:none}.panel-bars{flex-direction:column;display:flex}.panel-feature-area{flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-feature-area>*{flex:1;min-height:0}.crs-bar-wrap{flex-direction:column;display:flex}.crs-bar{align-items:center;gap:var(--space-2);padding:5px var(--space-3);background:#00a8cc0a;border-bottom:1px solid #00a8cc1f;grid-template-columns:1fr auto;display:grid}.crs-bar-left{align-items:center;gap:var(--space-2);min-width:0;display:flex;overflow:hidden}.crs-bar-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-primary);padding:1px var(--space-2);border-radius:var(--radius-full);background:#00a8cc1a;border:1px solid #00a8cc33;flex-shrink:0}.crs-bar-item{font-size:var(--font-size-xs);align-items:center;gap:4px;display:flex}.crs-bar-key{font-weight:var(--font-weight-bold);color:var(--color-text-muted);letter-spacing:.06em}.crs-bar-val{color:var(--color-text-secondary);font-family:var(--font-family-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crs-bar-sep{color:var(--color-text-muted);font-size:var(--font-size-xs)}.crs-bar-edit-btn{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);transition:color var(--transition-fast), background var(--transition-fast)}.crs-bar-edit-btn:hover,.crs-bar-edit-btn--active{color:var(--color-accent-primary);background:#00a8cc1a;border-color:#00a8cc4d}.crs-inline-edit{gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#00a8cc08;border-bottom:1px solid #00a8cc1a;flex-direction:column;display:flex}.crs-inline-row{align-items:center;gap:var(--space-3);display:flex}.crs-inline-label{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;min-width:72px}.crs-inline-select{padding:var(--space-1) var(--space-2);background:var(--color-surface-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-xs);transition:border-color var(--transition-fast);outline:none;flex:1}.crs-inline-select:focus{border-color:var(--color-accent-primary)}.aoi-bar-wrap{flex-direction:column;display:flex}.aoi-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#f39c120f;border-bottom:1px solid #f39c1233;grid-template-columns:1fr auto;display:grid}.aoi-bar-left{align-items:center;gap:var(--space-2);min-width:0;display:flex;overflow:hidden}.aoi-bar-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-amber);padding:1px var(--space-2);border-radius:var(--radius-full);background:#f39c121f;border:1px solid #f39c124d;flex-shrink:0}.aoi-bar-coords{align-items:center;gap:var(--space-2);min-width:0;display:flex;overflow:hidden}.aoi-coord{font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-text-secondary);white-space:nowrap}.aoi-arrow{color:var(--color-text-muted);flex-shrink:0}.aoi-area{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;padding-left:var(--space-1);border-left:1px solid var(--color-border-subtle);overflow:hidden}.aoi-bar-actions{align-items:center;gap:var(--space-1);display:flex}.aoi-bar-btn{padding:3px var(--space-2);background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;align-items:center;gap:4px;display:flex}.aoi-bar-btn:hover{color:var(--color-accent-amber);background:#f39c121a;border-color:#f39c1259}.aoi-bar-btn--active{color:var(--color-accent-amber);background:#f39c1224;border-color:#f39c1266}.aoi-edit-form{padding:var(--space-3);gap:var(--space-2);background:#f39c120a;border-bottom:1px solid #f39c122e;flex-direction:column;display:flex}.aoi-edit-grid{gap:var(--space-2);grid-template-columns:1fr 1fr;display:grid}.aoi-edit-field{flex-direction:column;gap:3px;display:flex}.aoi-edit-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em}.aoi-edit-input{width:100%;padding:var(--space-1) var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:var(--font-family-mono);transition:border-color var(--transition-fast);border:1px solid #f39c124d;outline:none}.aoi-edit-input:focus{border-color:var(--color-accent-amber)}.aoi-edit-apply{padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);color:var(--color-accent-amber);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);background:#f39c1226;border:1px solid #f39c1266;align-self:flex-end}.aoi-edit-apply:hover{background:#f39c1240;border-color:#f39c1299}.site-overview{flex-direction:column;height:100%;display:flex;overflow:hidden}.panel-header-icon--site{color:var(--color-accent-primary);background:#00a8cc1f;border:1px solid #00a8cc40}.site-type-badge{font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.06em;text-transform:uppercase;padding:2px var(--space-2);border-radius:var(--radius-full);color:var(--color-accent-primary);white-space:nowrap;background:#00a8cc14;border:1px solid #00a8cc33}.config-section-header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.config-section-header .config-section-title{margin-bottom:0}.crs-edit-toggle{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:2px var(--space-2);background:var(--color-surface-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);transition:color var(--transition-fast), background var(--transition-fast)}.crs-edit-toggle:hover{color:var(--color-accent-primary);background:#00a8cc14;border-color:#00a8cc40}.crs-fields{gap:var(--space-3);flex-direction:column;display:flex}.crs-field{flex-direction:column;gap:4px;display:flex}.crs-field-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em}.crs-field-value{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium);display:flex}.crs-epsg{font-size:var(--font-size-xs);font-family:var(--font-family-mono);color:var(--color-text-muted);background:var(--color-surface-3);padding:1px var(--space-2);border-radius:var(--radius-full)}.crs-select{width:100%;padding:var(--space-2) var(--space-2);background:var(--color-surface-2);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);transition:border-color var(--transition-fast);border:1px solid #00a8cc4d;outline:none}.crs-select:focus{border-color:var(--color-accent-primary)}.crs-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--space-2);line-height:1.5}.site-aoi-info{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.site-aoi-coords{align-items:center;gap:var(--space-2);display:flex}.site-aoi-area{font-size:var(--font-size-xs);color:var(--color-text-muted);background:var(--color-surface-3);padding:2px var(--space-2);border-radius:var(--radius-full)}.site-feature-chips{gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.site-feature-chip{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.05em;padding:3px var(--space-3);border-radius:var(--radius-full);color:var(--chip-color);background:color-mix(in srgb, var(--chip-color) 10%, transparent);border:1px solid color-mix(in srgb, var(--chip-color) 25%, transparent)}.app-empty-state{height:100%;padding:var(--space-8);text-align:center;justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.app-empty-icon{opacity:.6}.app-empty-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.app-empty-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-relaxed);max-width:280px}@media (width<=900px){.app-main{flex-direction:column}.app-map-area{flex-grow:0;flex-basis:45vh}.app-main[data-panel=expanded] .app-map-area{flex-basis:0}.app-panel-area{border-left:none;border-top:1px solid var(--color-border-subtle);flex-grow:1;flex-basis:auto}.app-main[data-panel=collapsed] .app-panel-area{flex-grow:0;flex-basis:36px}}:root{--color-ocean-deep:#050e1f;--color-ocean-dark:#0a1628;--color-ocean-mid:#0d3461;--color-ocean-blue:#0f4c81;--color-accent-primary:#00a8cc;--color-accent-bright:#00d4ff;--color-accent-teal:#00b894;--color-accent-amber:#f39c12;--color-accent-coral:#e74c3c;--color-accent-lavender:#8e44ad;--color-surface-0:#060f20;--color-surface-1:#0c1a30;--color-surface-2:#112240;--color-surface-3:#1a3050;--color-surface-4:#203a5c;--color-surface-card:#0d1a30e6;--color-surface-glass:#0f4c811f;--color-text-primary:#e8f4fd;--color-text-secondary:#a8c8e8;--color-text-muted:#6b8fa8;--color-text-inverse:#050e1f;--color-border-subtle:#00a8cc26;--color-border-default:#00a8cc4d;--color-border-strong:#00a8cc99;--color-success:#00b894;--color-warning:#f39c12;--color-danger:#e74c3c;--color-info:#3498db;--color-sdb:#2980b9;--color-metocean:#8e44ad;--color-tidal:#16a085;--color-weather:#d35400;--color-bathymetry:#27ae60;--color-route:#c0392b;--font-family-primary:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-family-mono:"JetBrains Mono", "Fira Code", "Courier New", monospace;--font-family-display:"Inter", system-ui, sans-serif;--font-size-xs:.6875rem;--font-size-sm:.75rem;--font-size-base:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-size-5xl:3rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-xl:0 16px 48px #0009;--shadow-glow:0 0 20px #00a8cc40;--shadow-glow-strong:0 0 40px #00a8cc66;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--z-base:1;--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500;--sidebar-width:280px;--sidebar-collapsed-width:60px;--header-height:60px;--panel-width:380px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-ocean-deep);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary)}a{color:var(--color-accent-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-bright)}button{cursor:pointer;font-family:var(--font-family-primary)}img,svg{max-width:100%;display:block}input,textarea,select{font-family:var(--font-family-primary)}ul,ol{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-surface-1)}::-webkit-scrollbar-thumb{background:var(--color-ocean-blue);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-accent-primary)}.leaflet-container{font-family:var(--font-family-primary);background:#0a1628}.leaflet-control-zoom a{background-color:var(--color-surface-2)!important;color:var(--color-text-primary)!important;border-color:var(--color-border-default)!important}.leaflet-control-zoom a:hover{background-color:var(--color-surface-3)!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
