@font-face{font-family:Inter;src:local('Inter'),local('Inter-Regular'),url('/css/fonts/InterVariable.woff2') format('woff2-variations'),url('/css/fonts/InterVariable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:'JetBrains Mono';src:local('JetBrains Mono'),local('JetBrainsMono-Regular'),url('/css/fonts/JetBrainsMono-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'JetBrains Mono';src:local('JetBrains Mono Medium'),local('JetBrainsMono-Medium'),url('/css/fonts/JetBrainsMono-Medium.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:'JetBrains Mono';src:local('JetBrains Mono SemiBold'),local('JetBrainsMono-SemiBold'),url('/css/fonts/JetBrainsMono-SemiBold.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}:root{--bg:#08111f;--bg-2:#0d1e35;--surface:#0f2444;--surface-2:#152d52;--border:#1e3f6b;--border-mid:rgba(255,255,255,0.15);--border-dim:rgba(255,255,255,0.06);--accent:#00b4d8;--accent-2:#0096c7;--accent-wash:rgba(0,180,216,0.15);--success:#2ec4b6;--warning:#f4a261;--danger:#e63946;--dep-pin:#22c55e;--text:#caf0f8;--text-dim:#7fb3c8;--text-dark:#4a7fa0;--text-on-accent:#000;--radius:10px;--radius-sm:6px;--radius-lg:14px;--shadow:0 4px 20px rgba(0,0,40,0.5);--shadow-lg:0 10px 40px rgba(0,0,40,0.6);--font-sans:'Inter','SF Pro Display',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--font-mono:'JetBrains Mono','SF Mono','Menlo',monospace;--fs-2xs:0.60rem;--fs-xs:0.72rem;--fs-sm:0.82rem;--fs-base:0.95rem;--fs-md:1.05rem;--fs-lg:1.3rem;--fs-xl:1.8rem;--fs-2xl:2.4rem;--bg2:#0d1e35;--card:#0f2444;--card2:#152d52;--accent2:#0096c7;--notice-h:0px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--brand-navy:#0a2a5e;--brand-navy-deep:#051a3d;--brand-gold:#f4b942;--success-bg:rgba(46,196,182,0.08);--warning-bg:rgba(244,162,97,0.08);--danger-bg:rgba(230,57,70,0.08);--accent-bg:rgba(0,180,216,0.08);--success-border:rgba(46,196,182,0.4);--warning-border:rgba(244,162,97,0.4);--danger-border:rgba(230,57,70,0.4);--accent-border:rgba(0,180,216,0.4);--overlay-scrim:rgba(0,0,0,0.48);--overlay-scrim-strong:rgba(0,0,0,0.75);--port-color:#e05060;--port-bg:rgba(230,57,70,0.22);--stbd-color:var(--success);--stbd-bg:rgba(46,196,182,0.18);--map-popup-bg:#0d1f3c;--map-popup-text:#c8e0f8;--map-popup-border:#2a6a9a;--synoptic-color:#4caf50;--synoptic-bg:rgba(76,175,80,0.08);--bg-overlay:rgba(8,17,31,0.85);--gennaker-color:#7edcff;--gennaker-bg:rgba(120,220,255,0.18);--parasail-color:#c090ff;--parasail-bg:rgba(160,100,255,0.20);--sun-color:#d4893a;--moon-color:#e2d4b0;--wave-color:#7eb8f7;--lightning-color:#f5c518;--tide-color:#5bc8e8;--table-row-even:#111827;--table-row-odd:#192033}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);min-height:100svh;display:flex;flex-direction:column;overflow-x:hidden}body:has(.tab-content){height:100svh;overflow:hidden}body>footer.app-footer{margin-top:auto}h1{font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.01em;line-height:1.1}h2{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.005em;line-height:1.2;color:var(--accent)}h3{font-size:var(--fs-lg);font-weight:700;line-height:1.25}h4{font-size:var(--fs-md);font-weight:600;line-height:1.3}.mono,.tabular,code,kbd{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.eyebrow{font-size:var(--fs-xs);font-weight:600;color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}header{background:var(--bg-2);border-bottom:1px solid var(--border);padding:8px 20px;position:sticky;top:0;z-index:1000}.header-inner{display:flex;align-items:center;gap:16px}.header-inner .tab-nav{flex:1}.header-title{display:flex;align-items:center;gap:12px}.boat-icon{font-size:var(--fs-2xl)}.ww-logo-img{height:128px;width:auto;display:block;object-fit:contain}.header-logo{height:52px;width:auto;display:block;object-fit:contain}.logo-wrapper{position:relative;flex-shrink:0;margin-right:12px}.beta-chip{position:absolute;bottom:6px;right:2px;font-size:var(--fs-2xs);font-weight:600;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:1px 4px;letter-spacing:.05em;text-transform:uppercase}header h1{font-size:var(--fs-lg);font-weight:700;color:var(--accent);letter-spacing:.03em}header p{font-size:var(--fs-xs);color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase}#time-display{margin-left:var(--s-3);padding-left:0;font-size:var(--fs-sm);color:var(--text-dim);font-variant-numeric:tabular-nums;font-family:var(--font-mono);white-space:nowrap;flex-shrink:0;line-height:1.15;text-align:right}#time-display .app-clock-line{display:flex;align-items:baseline;gap:8px;justify-content:flex-end}#time-display .app-version-inline{font-size:var(--fs-xs);opacity:.6;font-family:var(--font-mono)}.notice{padding:12px 20px;font-size:var(--fs-base);font-weight:500;border-left:4px solid;display:none;position:sticky;top:65px;z-index:99}.notice-info{background:var(--accent-wash);border-color:var(--accent);color:var(--accent)}.notice-success{background:var(--stbd-bg);border-color:var(--success);color:var(--success)}.notice-warning{background:var(--warning-bg);border-color:var(--warning);color:var(--warning)}.notice-error{background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.notice-inline{position:static;margin-top:var(--s-4);border-radius:var(--radius);z-index:auto;border-width:1.5px;border-style:solid}@media (max-width:1024px){.notice{position:static;top:auto}}.tab-nav{display:flex;align-items:center;padding:var(--s-1) var(--s-3);overflow-x:auto;gap:var(--s-1)}.tab-nav .header-logo{height:61px;flex-shrink:0}.tab-btn{background:0 0;border:1px solid transparent;color:var(--text);padding:8px 14px;font-size:var(--fs-sm);font-weight:500;font-family:var(--font-sans);cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;min-height:44px;transition:background 120ms,color 120ms,border-color 120ms;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;text-decoration:none}.tab-btn:hover{background:var(--surface);color:var(--accent);border-color:var(--accent)}.tab-btn.active{background:var(--accent-wash);color:var(--accent);border-color:transparent}.tab-btn:focus-visible{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.nav-user-cluster{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-left:auto}.nav-user-actions{display:flex;gap:var(--s-1);align-items:center}#logout-btn{color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 14px}#logout-btn:hover{background:0 0;border-color:var(--accent);color:var(--accent)}.user-menu{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;gap:var(--s-1);background:0 0;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-dim);padding:6px 10px;cursor:pointer;min-height:44px;font-family:var(--font-mono);font-size:var(--fs-xs)}.user-menu-trigger:focus-visible,.user-menu-trigger:hover{border-color:var(--border);color:var(--text);outline:0}.user-menu-caret{font-size:.7em}.dropdown-menu{display:none;position:fixed;top:0;left:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-1) 0;list-style:none;margin:0;min-width:180px;z-index:2000}.user-menu.open .dropdown-menu{display:block}.dropdown-menu li a{display:flex;align-items:center;padding:var(--s-2) var(--s-4);color:var(--text);text-decoration:none;font-size:var(--fs-sm);min-height:44px}.dropdown-menu li a:hover{background:var(--accent-wash);color:var(--accent)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s-8);max-width:480px;width:calc(100vw - var(--s-8))}.modal-card h3{margin:0 0 var(--s-3);color:var(--text)}.modal-card p{color:var(--text-dim);margin:0 0 var(--s-6);font-size:var(--fs-sm)}.modal-actions{display:flex;gap:var(--s-3);justify-content:flex-end;flex-wrap:wrap}.tab-content{display:none}.tab-content.active{display:block}.account-main{padding:var(--s-10) var(--s-8) var(--s-12);max-width:720px;margin:0 auto;width:100%}.account-heading{font-size:var(--fs-xl);font-weight:800;color:var(--text);margin:0 0 var(--s-8);letter-spacing:-.03em}.account-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s-6);margin-bottom:var(--s-5)}.account-section-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--s-4)}.account-row{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);padding:var(--s-2) 0;border-bottom:1px solid var(--border-dim)}.account-row:last-child{border-bottom:none}.account-label{font-size:var(--fs-sm);color:var(--text-dim)}.account-value{font-size:var(--fs-sm);color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums}.account-tier-badge{display:inline-flex;align-items:center;gap:var(--s-1);background:var(--accent-wash);color:var(--accent);border:1px solid var(--accent-border);border-radius:999px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px var(--s-3)}.account-tier-badge.tier-none{background:var(--border-dim);color:var(--text-dim);border-color:var(--border)}.account-actions{display:flex;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-4)}.account-welcome{background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius);color:var(--text);font-size:var(--fs-sm);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-6)}.account-welcome:empty{display:none}#account-loading{color:var(--text-dim);font-size:var(--fs-sm);padding:var(--s-4) 0}@media (max-width:640px){.account-main{padding:var(--s-6) var(--s-4) var(--s-10)}.account-row{flex-direction:column;align-items:flex-start;gap:var(--s-1)}}.ww-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:9000;padding:var(--s-4)}.ww-modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s-6);max-width:440px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.35)}.ww-modal-title{font-size:var(--fs-lg);font-weight:700;color:var(--text);margin:0 0 var(--s-3);letter-spacing:-.02em}.ww-modal-body{font-size:var(--fs-sm);color:var(--text-dim);line-height:1.5;margin:0 0 var(--s-5)}.ww-modal-actions{display:flex;gap:var(--s-3);justify-content:flex-end}.ww-modal-actions .btn{min-height:44px;min-width:96px}.container{max-width:1100px;margin:0 auto;padding:24px 20px 60px}.form-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:28px}.form-section.report-intro{padding-top:var(--s-5);padding-bottom:var(--s-5)}.report-intro-text{font-size:var(--fs-base);color:var(--text-dim);line-height:1.6;margin:0;max-width:68ch}#rerun-sep~#passage-form .report-intro{display:none}.form-section h3{font-size:var(--fs-md);font-weight:600;color:var(--text);margin-bottom:var(--s-4);letter-spacing:.03em}.input-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.input-row:last-child{margin-bottom:0}.input-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:160px}.input-group.flex-2{flex:2}.input-group.input-group-auto{flex:0 0 auto;justify-content:flex-end}.input-group.field-fixed{flex:0 0 auto;min-width:0}#settings-form>h2{margin-top:16px;margin-bottom:10px}#settings-form .input-group{flex-direction:column}#settings-form .input-group label{padding-left:2px;margin-bottom:var(--s-1)}label{font-size:var(--fs-xs);color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.input,.select,input[type=date],input[type=number],input[type=password],input[type=text],input[type=time],select,textarea{font-family:var(--font-sans);font-size:var(--fs-base);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:10px 14px;min-height:44px;width:100%;transition:border-color 120ms,box-shadow 120ms;-webkit-appearance:none}input[type=date],input[type=number],input[type=password],input[type=text],input[type=time]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.input:focus,.select:focus,input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.input::placeholder,input::placeholder{color:var(--text-dark)}.input-unit-wrap{position:relative;display:inline-flex;align-items:center}.input-unit-wrap input{width:100%;padding-right:22px}.input-unit-suffix{position:absolute;right:8px;color:var(--text-dim);font-family:var(--font-mono);font-size:var(--fs-xs);pointer-events:none;user-select:none}.field-error{display:block;font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--danger);margin-top:var(--s-1)}.input.input-invalid,input.input-invalid{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-bg)}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}select{cursor:pointer}select option{background:var(--bg-2)}.btn{font-family:var(--font-sans);font-size:var(--fs-base);font-weight:600;padding:10px 18px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;min-height:44px;text-decoration:none;transition:background 120ms,border-color 120ms,color 120ms,transform 60ms;-webkit-tap-highlight-color:transparent;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-2)}.btn-secondary{background:0 0;color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-large{font-size:var(--fs-md);padding:14px 32px}.btn-small,.btn.small{padding:6px 12px;font-size:var(--fs-sm);min-height:32px}.submit-row{display:flex;justify-content:center;margin-top:8px}#loading-overlay,#signout-overlay{position:fixed;inset:0;background:rgba(8,17,31,.88);display:flex;align-items:center;justify-content:center;z-index:3000;backdrop-filter:blur(4px)}@keyframes loadingCardIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.loading-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:40px 50px;text-align:center;box-shadow:var(--shadow);width:360px;max-width:90vw;animation:250ms ease-out loadingCardIn}.loading-logo{height:62px;width:auto;display:block;margin:0 auto 20px}.spinner{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:.8s linear infinite spin;margin:0 auto 16px}@keyframes spin{to{transform:rotate(360deg)}}#loading-msg{color:var(--text-dim);font-size:var(--fs-base);max-width:260px}.result-card{margin-top:24px}.go-banner{display:flex;align-items:center;gap:16px;padding:16px 24px;flex-wrap:wrap;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);margin-bottom:20px}.go-go{background:var(--success-bg);border-left:5px solid var(--success)}.go-caution{background:var(--warning-bg);border-left:5px solid var(--warning)}.go-nogo{background:var(--danger-bg);border-left:5px solid var(--danger)}.go-label{font-size:var(--fs-lg);font-weight:800;letter-spacing:.08em}.go-go .go-label{color:var(--success)}.go-caution .go-label{color:var(--warning)}.go-nogo .go-label{color:var(--danger)}.go-rationale{color:var(--text);font-size:var(--fs-base)}.stats-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:1fr;gap:16px;margin-bottom:20px}.stat-box{flex:1;background:var(--surface-2);padding:16px 20px;text-align:center}.stat-number{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-xl);font-weight:700;color:var(--text);line-height:1.1}.stat-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-top:4px}.stat-sub{font-size:var(--fs-xs);color:var(--text-dark);margin-top:3px}.stats-row .stat{min-width:0}.stat .trend{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-dim);margin-top:4px}.stat .trend.up{color:var(--warning)}.stat .trend.down{color:var(--success)}.comfort-1{color:var(--danger)}.comfort-2,.comfort-3{color:var(--warning)}.comfort-4,.comfort-5{color:var(--success)}.squall-badge{font-size:var(--fs-md);font-weight:800;letter-spacing:.08em;border-radius:var(--radius-sm);padding:4px 10px;display:inline-block}.squall-badge.squall-low{background:var(--stbd-bg);color:var(--stbd-color)}.squall-badge.squall-moderate{background:var(--warning-bg);color:var(--warning)}.squall-badge.squall-high{background:var(--danger-bg);color:var(--danger)}.squall-badge.squall-severe{background:var(--danger);color:var(--text-on-accent);animation:1s infinite pulse}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}.brief-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 24px;margin-bottom:20px}.brief-section:last-of-type{margin-bottom:0}.brief-section h3{font-size:var(--fs-sm);font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px}.brief-section h4{font-size:var(--fs-xs);color:var(--text-dim);margin:12px 0 8px;text-transform:uppercase;letter-spacing:.05em}.brief-section p{font-size:var(--fs-base);line-height:1.65;color:var(--text)}.summary-text{font-size:var(--fs-md);line-height:1.7}.sail-depart{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;font-size:var(--fs-base);margin-bottom:4px}.sail-changes{list-style:none;display:flex;flex-direction:column;gap:8px;margin-top:8px}.sail-changes li{background:var(--bg-2);border-radius:var(--radius);padding:10px 14px;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;font-size:var(--fs-base)}.change-time{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums;min-width:60px}.change-desc{color:var(--text);font-weight:500}.change-why{color:var(--text-dim);font-size:var(--fs-sm)}.precautions{list-style:none;display:flex;flex-direction:column;gap:7px}.precautions li{padding:9px 14px 9px 34px;background:var(--bg-2);border-radius:var(--radius-sm);font-size:var(--fs-md);line-height:1.7;position:relative}.precautions li::before{content:'→';position:absolute;left:12px;color:var(--accent);font-weight:700}.alert{border:1px solid var(--border);border-radius:var(--radius);display:grid;grid-template-columns:32px 1fr auto;gap:14px;align-items:flex-start;background:var(--surface)}.alert .icon{font-family:var(--font-mono);font-size:20px;line-height:1;padding-top:2px}.alert .body{color:var(--text);font-size:var(--fs-base)}.alert .timestamp{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-dark);white-space:nowrap}.alert.warn{border-color:var(--warning-border);background:var(--warning-bg)}.alert.warn .icon{color:var(--warning)}.alert.danger{border-color:var(--danger-border);background:var(--danger-bg)}.alert.danger .icon{color:var(--danger)}.alert.info{border-color:var(--accent-border);background:var(--accent-bg)}.alert-box{border:1px solid rgba(230,57,70,.35);background:rgba(230,57,70,.06);border-radius:var(--radius);padding:14px 18px}.alert-box h3{color:var(--danger);font-size:var(--fs-base);font-weight:600;margin:0 0 4px}.passage-report-header{margin-bottom:20px}.caption{font-size:var(--fs-xs);color:var(--text-dim);margin:2px 0 16px}.cache-notice,.data-freshness{padding:8px 24px;font-size:var(--fs-sm);color:var(--text-dark)}.cache-notice{color:var(--warning);background:var(--warning-bg);border-bottom:1px solid var(--border)}.print-row{margin-top:32px;padding:16px 0 0;display:flex;gap:10px;border-top:1px solid var(--border)}.session-stats-footer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 24px 14px;font-size:var(--fs-sm);color:var(--text-dim);border-top:1px solid rgba(255,255,255,.06)}.ss-item{display:flex;align-items:center;gap:5px}.ss-item strong{color:var(--text);font-weight:600}.ss-dim{color:var(--text-dim);opacity:.75}.ss-sep{color:var(--text-dim);opacity:.4;font-size:var(--fs-md)}@media print{.session-stats-footer{display:none}}.table-wrap{overflow-x:auto}.daily-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.daily-table th{background:var(--bg);color:var(--text-dim);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.daily-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}.daily-table tr:hover td{background:var(--bg-2)}.nm-cell{font-weight:700;color:var(--accent);text-align:center}.notes-cell,.pos-cell{font-size:var(--fs-sm);color:var(--text-dim)}.api-key-row{display:flex;gap:8px}.api-key-row input{flex:1}.help-text{color:var(--text-dim);font-size:var(--fs-base);margin-bottom:14px;line-height:1.5}.help-box{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-top:12px;font-size:var(--fs-sm);line-height:1.6}.help-box ol{margin:8px 0 8px 18px}.help-box li{margin-bottom:4px}.help-box code{background:var(--surface);border-radius:var(--radius-sm);padding:1px 5px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--accent)}.warning-text{color:var(--warning);margin-top:10px}.boat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;font-size:var(--fs-base);line-height:2}.boat-card p{color:var(--text)}.boat-card strong{color:var(--accent)}.data-sources{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.source-item{display:flex;gap:14px;align-items:flex-start;padding:12px 16px;background:var(--bg-2);border-radius:var(--radius);border:1px solid var(--border)}.source-status{width:24px;height:24px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);flex-shrink:0;margin-top:2px;color:var(--text-dim)}.source-status.ok{background:var(--stbd-bg);color:var(--success)}.source-item strong{display:block;font-size:var(--fs-base);margin-bottom:2px}.source-item p{font-size:var(--fs-sm);color:var(--text-dim);margin:0}.source-item-block{align-items:flex-start}.source-item-block p{margin-bottom:6px}.source-url{display:block;margin-top:6px;font-size:var(--fs-xs);color:var(--accent);opacity:.75;word-break:break-all;background:var(--accent-bg);padding:3px 7px;border-radius:var(--radius-sm);border-left:2px solid var(--accent)}.source-list{margin:6px 0 4px 16px;padding:0;font-size:var(--fs-sm);color:var(--text-dim)}.source-list li{margin-bottom:3px}#api-test-result{font-size:var(--fs-base);margin-left:8px}.coord-box{display:flex;align-items:center;gap:3px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 6px;transition:border-color .2s}.coord-box:focus-within{border-color:var(--accent)}input.coord-deg{width:48px;background:0 0;border:none;padding:7px 2px;text-align:right;font-size:var(--fs-md);color:var(--text)}input.coord-deg:focus{outline:0}input.coord-min{width:76px;background:0 0;border:none;padding:7px 2px;text-align:right;font-size:var(--fs-md);color:var(--text)}input.coord-min:focus{outline:0}.coord-sym{color:var(--accent);font-weight:700;font-size:var(--fs-base);user-select:none;padding:0 1px}select.coord-dir{background:0 0;border:none;color:var(--accent);font-weight:700;font-size:var(--fs-base);width:46px;padding:7px 2px;cursor:pointer}select.coord-dir:focus{outline:0}select.coord-dir option{background:var(--bg-2);color:var(--text)}.coord-hint{font-size:var(--fs-sm);color:var(--text-dark);margin-top:8px;font-style:italic}.next-wp-hint{display:inline-block;margin-top:10px;padding:6px 14px;background:var(--accent-bg);border-left:3px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-dim)}.wp-row{margin-bottom:12px}.wp-row-inner{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}@media (max-width:1024px){header{padding:8px 12px}.header-inner{gap:8px}.tab-nav{flex-wrap:wrap;overflow-x:visible;row-gap:4px}.tab-nav .header-logo{height:36px;margin-right:8px}.nav-user-cluster{margin-left:auto}}@media (max-width:700px){.header-title h1{font-size:var(--fs-md)}#time-display{display:none}.tab-btn{padding:12px 14px;font-size:var(--fs-sm)}.form-section{padding:16px}.container{padding:16px 12px 60px}.input-group{min-width:130px}.stats-row{flex-direction:column;gap:var(--s-2)}.daily-table{font-size:var(--fs-sm)}.daily-table td,.daily-table th{padding:8px}.go-label{font-size:var(--fs-md)}.stat-number{font-size:var(--fs-lg)}}@media print{body{background:#fff;color:#000}header{background:#fff;border-bottom:2px solid #000}header h1{color:#000}#loading-overlay,#notice,.print-row,.tab-nav{display:none}.tab-content{display:block!important}.result-card{margin-top:16px}.brief-section,.form-section,.stats-row,.verdict-card{border:1px solid #ccc;box-shadow:none}.verdict-card{background:#f0f0f0!important}.stat-box{background:#f8f8f8!important}.brief-section{background:#fff!important;border-bottom:1px solid #eee;break-inside:auto;page-break-inside:auto}.reef-table-wrap,.reef-table-wrap *{overflow:visible!important;max-height:none!important}.reef-table{font-size:var(--fs-xs);width:100%;table-layout:fixed}.reef-table td,.reef-table th{padding:2px 5px;color:#000!important;background:#fff!important;border-color:#bbb!important;word-break:break-word}.reef-table td:nth-child(6),.reef-table th:nth-child(6){width:22%}.reef-table tr{page-break-inside:avoid;break-inside:avoid}.reef-cell{color:#000!important;background:#e8e8e8!important;border:1px solid #aaa;white-space:normal!important;font-size:var(--fs-xs);display:inline;padding:1px 4px}.reef-table-note{color:#555;font-size:.63rem}.reef-table th:nth-child(n+7),.wave-dir-cell,.wave-ht-cell,.wave-per-cell{color:#336!important;border-left:1px solid #ccc!important}.wpc-carousel-nav,.wpc-dots,.wpc-overlay-btn{display:none!important}.wpc-slide{display:block!important;break-inside:avoid;page-break-inside:avoid;margin-bottom:12px}.wpc-map-img{width:100%;height:auto;max-width:100%}.wpc-map-img-wrap{overflow:visible!important}.wpc-map-gallery{border:1px solid #ccc;background:#fff!important}.wpc-map-findings{color:#333;font-size:.72rem}}.report-accordion{margin:24px 0 0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.report-accordion>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:12px 16px;background:var(--surface);user-select:none;min-height:44px;transition:background 120ms}.report-accordion>summary:hover{background:var(--surface-raised)}.report-accordion>summary::-webkit-details-marker{display:none}.report-accordion-label{font-size:var(--fs-md);font-weight:600;color:var(--text);flex:1}.accordion-chevron{color:var(--text-dim);font-size:.72rem;transition:transform .2s;flex-shrink:0}.report-accordion[open]>summary .accordion-chevron{transform:rotate(180deg)}.report-accordion[open]>summary{border-bottom:1px solid var(--border)}.report-accordion-body>.brief-section,.report-accordion-body>.reef-table-wrap{border:none;border-radius:0;margin:0}@media screen{.report-accordion-body>h2:first-of-type{display:none}}@media print{.report-accordion>summary{display:none}.report-accordion>.report-accordion-body{display:block!important}}.progress-wrap{margin-top:18px;width:100%}.progress-bar-outer{height:6px;background:var(--border);border-radius:var(--radius-sm);overflow:hidden}.progress-bar-inner{height:100%;background:var(--accent);border-radius:var(--radius-sm);width:0%;transition:width .6s}.progress-pct{font-size:var(--fs-sm);color:var(--accent);font-variant-numeric:tabular-nums;margin-top:6px;text-align:center;letter-spacing:.05em}.progress-step{font-size:var(--fs-sm);color:var(--text-dark);margin-top:4px;text-align:center}.thinking-toggle{margin-top:14px;font-size:var(--fs-sm);color:var(--text-dark);cursor:pointer;user-select:none;text-align:center;padding:4px 0}.thinking-toggle:hover{color:var(--text-dim)}.thinking-panel{max-height:0;overflow:hidden;transition:max-height .35s;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-dark);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:8px;line-height:1.5;white-space:pre-wrap;word-break:break-word;text-align:left}.thinking-panel.open{max-height:280px;overflow-y:auto;padding:10px 12px}.upload-zone{position:relative;border:2px dashed var(--border);border-radius:var(--radius);padding:18px 20px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--bg-2)}.upload-zone.dragover,.upload-zone:hover{border-color:var(--accent);background:var(--accent-bg)}.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}.upload-zone-icon{font-size:var(--fs-xl);display:block;margin-bottom:6px}.upload-zone-text{font-size:var(--fs-base);color:var(--text-dim)}.upload-zone-hint{font-size:var(--fs-xs);color:var(--text-dark);margin-top:4px}.upload-zone.upload-success{border-color:var(--success);background:rgba(46,196,182,.06)}.upload-zone.upload-success .upload-zone-text{color:var(--success)}.upload-zone.upload-error{border-color:var(--danger)}.coord-box.coord-empty{border-color:var(--border);opacity:.65}.coord-box.coord-empty input.coord-deg::placeholder,.coord-box.coord-empty input.coord-min::placeholder{color:var(--warning);opacity:.55}.reef-table-wrap{overflow-x:auto;overflow-y:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:12px}.reef-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.reef-table th{background:var(--bg-2);color:var(--text-dim);font-size:var(--fs-xs);text-transform:uppercase;border-bottom:1px solid var(--border)}.reef-table td{padding:10px 12px;border-bottom:1px solid var(--border-dim);color:var(--text)}.reef-table tr:last-child td{border-bottom:none}.reef-table tr:hover td{background:var(--bg-2)}.reef-cell{font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--fs-xs);white-space:nowrap;display:inline-block}.reef-full{background:var(--stbd-bg);color:var(--success)}.reef-1{background:var(--accent-bg);color:var(--accent)}.reef-2{background:var(--warning-bg);color:var(--warning)}.reef-3{background:var(--danger-bg);color:var(--danger)}.reef-storm{background:var(--danger);color:var(--text-on-accent);animation:1s infinite pulse}.reef-undefined{background:var(--bg-raised);color:var(--text-dim);border-color:var(--border);font-style:italic}.reef-swatch-popup{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px;display:grid;grid-template-columns:repeat(5,28px);gap:6px;z-index:9999;box-shadow:0 4px 16px rgba(0,0,0,.5)}.reef-swatch-opt{width:28px;height:28px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s}.reef-swatch-opt:hover{transform:scale(1.15)}.reef-swatch-opt--active{border-color:#fff;outline:2px solid var(--accent);outline-offset:1px}.reef-add-swatch-row{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0 4px}.reef-motor-badge{display:inline-block;font-weight:700;font-size:var(--fs-xs);padding:1px 6px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-dark);border:1px solid var(--border);margin-left:4px;white-space:nowrap;vertical-align:middle}.go-action{background:rgba(230,57,70,.1);border-left:5px solid var(--danger)}.go-action .go-label{color:var(--danger);animation:1.5s infinite pulse}.immediate-actions{background:var(--danger-bg);border:1px solid rgba(230,57,70,.3);border-radius:var(--radius);padding:14px 16px;margin-top:10px}.immediate-actions h4{color:var(--danger);font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.immediate-actions ul{list-style:none;display:flex;flex-direction:column;gap:5px}.immediate-actions li{font-size:var(--fs-base);color:var(--text);padding:6px 10px 6px 28px;position:relative;background:var(--danger-bg);border-radius:var(--radius-sm)}.immediate-actions li::before{content:'▲';position:absolute;left:8px;color:var(--danger)}.reef-gennaker{background:rgba(120,220,255,.18);color:var(--gennaker-color)}.reef-parasail{background:rgba(160,100,255,.2);color:var(--parasail-color)}.ps-toggle{display:flex;gap:0;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);margin-top:4px}.ps-btn{flex:1;padding:8px 10px;font-size:var(--fs-sm);font-weight:700;cursor:pointer;border:none;background:var(--bg-2);color:var(--text-dim);transition:background .15s,color .15s;letter-spacing:.03em}.ps-btn.active.ps-btn-port{background:var(--port-bg);color:var(--port-color)}.ps-btn.active.ps-btn-stbd{background:var(--stbd-bg);color:var(--stbd-color)}.ps-btn:not(.active):hover{background:var(--surface-2);color:var(--text)}.awa-ps{font-weight:700;font-size:var(--fs-sm);padding:2px 6px;border-radius:var(--radius-sm);white-space:nowrap}.awa-p{background:var(--port-bg);color:var(--port-color)}.awa-s{background:var(--stbd-bg);color:var(--stbd-color)}.reef-dim{color:var(--text-dark);font-size:var(--fs-sm)}.day-cell{text-align:center;white-space:nowrap;vertical-align:middle}.date-sub{font-size:var(--fs-sm);color:var(--text-dim);display:block}.reef-table-note{font-size:var(--fs-sm);color:var(--text-dark);margin:4px 0 0;font-style:italic}.wave-dir-cell,.wave-ht-cell,.wave-per-cell{color:var(--accent);font-size:var(--fs-sm);opacity:.88;border-left:1px solid var(--border-dim)}.reef-table th:nth-child(n+7){color:var(--text-dim);border-left:1px solid var(--border-dim)}.tw-popup-elapsed{font-size:var(--fs-xs);font-weight:400;color:var(--text-dim);letter-spacing:.01em}.tw-popup-avg-row td{font-weight:700;background:rgba(26,110,207,.22);border-top:1px solid rgba(26,110,207,.5)}.hist-date-banner{background:var(--surface-2);color:var(--text);padding:10px 20px;font-size:var(--fs-sm);border-radius:var(--radius-sm) var(--radius-sm) 0 0;margin-bottom:0;letter-spacing:.01em}.ensemble-badge{display:inline-block;font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;color:var(--text-on-accent);background:var(--accent);border-radius:var(--radius);padding:2px 9px;margin-left:8px;vertical-align:middle;white-space:nowrap}.field-note{font-size:var(--fs-xs);color:var(--text-dark);cursor:help;vertical-align:middle;margin-left:2px}.noaa-links{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.noaa-link{display:inline-block;background:var(--accent-bg);color:var(--accent);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 10px;font-size:var(--fs-sm);text-decoration:none;transition:background .15s}.noaa-link:hover{background:rgba(0,180,216,.18);text-decoration:none}.tab-content[data-tab=map],.tab-content[data-tab=passagemap]{padding:0}.tab-content.active{flex:1;min-height:0;overflow-y:auto}.tab-content[data-tab=map].active,.tab-content[data-tab=passage].active,.tab-content[data-tab=passagemap].active{overflow:hidden}body.passage-has-report .tab-content[data-tab=passage].active{overflow-y:auto}.map-layout{display:flex;height:100%;overflow:hidden}.map-sidebar{width:280px;min-width:240px;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.map-sidebar-header{padding:14px 16px 10px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:5}.map-sidebar-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.map-sidebar-header h3{font-size:var(--fs-base);color:var(--text);margin-bottom:0}.sidebar-h2{font-size:var(--fs-xl);font-weight:700;color:var(--accent);margin:0}.session-btn-row{display:flex;gap:16px;margin-top:14px;flex-wrap:wrap}.session-btn-card{flex:1;min-width:180px;display:flex;flex-direction:column;gap:8px}.session-action-btn{width:100%;justify-content:center;text-align:center;text-transform:none;letter-spacing:0}.session-btn-hint{font-size:var(--fs-sm);color:var(--text-dim);margin:0;line-height:1.4}.session-btn-hint code{font-size:var(--fs-xs);background:var(--surface-2);padding:1px 4px;border-radius:var(--radius-sm)}.map-undo-btn{background:var(--accent-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--fs-xs);padding:3px 9px;cursor:pointer}.map-undo-btn:hover:not(:disabled){background:rgba(0,180,216,.18)}.map-undo-btn:disabled{opacity:.35;cursor:default}.map-sidebar-hint{font-size:var(--fs-xs);color:var(--text-dark)}#map-wp-list,#passage-map-wp-list{flex:1;min-height:0;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.map-sidebar-launch{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--border);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);z-index:5}.sidebar-launch-dep-row{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}.sidebar-launch-dep-row input[type=date]{width:100%;min-height:44px}.sidebar-launch-dep-row input[type=time]{flex:1;min-width:0;min-height:44px}.sidebar-now-btn{flex-shrink:0;min-height:44px;padding:0 var(--s-3)}.sidebar-run-btn{width:100%;justify-content:center}.passage-empty-state{display:flex;align-items:center;justify-content:center;height:100%;text-align:center;padding:var(--s-10);color:var(--text-dim);font-size:var(--fs-md)}.passage-empty-state strong{color:var(--text)}.placeholder-text{font-size:var(--fs-md);color:var(--text-dim);margin:0}.placeholder-text strong{color:var(--text)}.wp-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:3px 12px;display:flex;flex-direction:column;gap:0;cursor:pointer;transition:border-color 120ms}.wp-stat:hover{border-color:var(--accent)}.wp-stat-passed{opacity:.6}.wp-stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.wp-stat-header .lbl{font-size:var(--fs-xs);color:var(--text);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.wp-stat-actions{display:flex;align-items:center;gap:2px}.wp-stat-view{display:flex;flex-direction:column;gap:1px}.wp-stat-view .val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-stat-view .trend{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-stat-unset{color:var(--text-dim)!important;font-style:italic;font-weight:400!important}.wp-stat-passed-lbl{color:var(--success)}.wp-stat.editing .wp-stat-name-row,.wp-stat.editing .wp-stat-view{display:none}.wp-stat.editing .map-wp-name-input{display:block;margin-bottom:4px}.wp-stat.editing .map-wp-ci-section{display:block!important}.wp-stat-name-row{display:flex;justify-content:space-between;align-items:center;gap:4px;line-height:1.1}.wp-stat-name-row .val{font-size:var(--fs-md);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-stat-dist{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;flex-shrink:0}.wp-stat-status{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-dim)}.wp-stat-cur .map-wp-ci-section{display:none!important}.wp-stat-cur.editing .map-wp-ci-section{display:block!important}.wp-stat-cur.editing .wp-stat-view{display:none}.map-wp-item{display:flex;flex-direction:column;padding:10px 14px 6px;border-bottom:2px solid var(--border);cursor:pointer;transition:background .15s}.map-wp-item-top{display:flex;align-items:flex-start;gap:10px;width:100%}.map-wp-item:hover{background:var(--surface)}.map-wp-num{width:26px;height:26px;border-radius:50%;background:var(--accent-2);color:var(--text-on-accent);font-size:var(--fs-xs);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.map-wp-info{flex:1;min-width:0}.map-wp-view-name{font-size:var(--fs-sm);font-weight:600;color:var(--text)}.map-wp-view-coords{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-dim);margin-top:2px}.map-wp-name-input{display:none;-webkit-appearance:none;appearance:none;font-size:var(--fs-sm);font-weight:600;line-height:1;color:var(--text);background:0 0;border:1px solid var(--border);border-radius:var(--radius-sm);outline:0;width:100%;height:22px;padding:0 5px;margin:0;box-sizing:border-box;cursor:text;transition:border-color .15s}.map-wp-name-input:hover{border-color:rgba(90,159,212,.4)}.map-wp-name-input:focus{border-color:var(--accent);background:var(--accent-bg)}.map-wp-item.editing .map-wp-view-coords,.map-wp-item.editing .map-wp-view-name{display:none}.map-wp-item.editing .map-wp-name-input{display:block}.map-wp-ci-section{display:none!important}.map-wp-item.editing .map-wp-ci-section{display:block!important}.map-wp-dist{font-size:var(--fs-xs);color:var(--text-dim);margin-top:2px}.map-wp-item-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.map-wp-edit-btn{background:0 0;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--fs-sm);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:2px 4px;border-radius:var(--radius-sm);line-height:1;transition:color .15s,background .15s}.map-wp-edit-btn:hover{color:var(--accent);background:var(--accent-bg)}.map-cur-section.editing .map-wp-edit-btn,.map-wp-item.editing .map-wp-edit-btn{color:var(--success)}.pencil-rotated{display:inline-block;transform:rotate(90deg)}.map-wp-ci-section{margin-top:5px;padding-top:5px;border-top:1px solid var(--border)}.map-wp-ci-labels{display:flex;gap:6px;margin-bottom:3px}.map-wp-ci-col-label{flex:1;font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.map-wp-ci-inline{display:flex;gap:6px}.map-wp-ci-inline .coord-box{flex:1;min-width:0;padding:1px 3px;gap:1px}.map-wp-ci-section input.coord-deg{font-size:var(--fs-xs);padding:1px 0;width:22px}.map-wp-ci-section input.mwci-lon-deg{width:28px}.map-wp-ci-section input.coord-min{font-size:var(--fs-xs);padding:1px 0;width:48px;margin-left:0}.map-wp-ci-section .coord-sym{font-size:var(--fs-xs)}.map-wp-ci-section select.coord-dir{font-size:var(--fs-xs);padding:0}.map-no-route{padding:20px 16px;font-size:var(--fs-sm);color:var(--text-dark);line-height:1.5}.map-cur-section{padding:10px 14px 9px;border-bottom:1px solid var(--border);background:var(--accent-bg)}.map-cur-header{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-xs);font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.map-gps-btn{background:var(--accent-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--fs-xs);min-height:44px;padding:2px 8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px}.map-gps-btn:hover{background:var(--accent-wash);border-color:var(--accent)}.map-dep-flag{color:var(--dep-pin)}.gps-dot{background:var(--accent);flex-shrink:0}.map-cur-coords{font-size:var(--fs-sm);font-family:var(--font-mono);color:var(--text)}.map-cur-manual{display:flex;flex-direction:column;gap:4px;margin-top:6px}.map-cur-manual .coord-box{padding:1px 5px;flex:1;min-width:0}.map-cur-manual input.coord-deg{font-size:var(--fs-sm);padding:1px 0;width:36px}.map-cur-manual input.coord-min{font-size:var(--fs-sm);padding:1px 0;width:62px}.map-cur-manual .coord-sym,.map-cur-manual select.coord-dir{font-size:var(--fs-sm)}.map-cur-view-coords{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-dim);margin:4px 0 2px;min-height:1.1em}.map-cur-section .map-cur-edit{display:none!important}.map-cur-section.editing .map-cur-view-coords{display:none}.map-cur-section.editing .map-cur-edit{display:block!important}.map-cur-coord-row{display:flex;align-items:center;gap:6px}.map-cur-coord-label{font-size:var(--fs-xs);color:var(--text-dark);width:22px;flex-shrink:0}.map-cur-set-btn{background:var(--accent-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--fs-xs);padding:5px 0;cursor:pointer;width:100%;margin-top:2px}.map-cur-set-btn:hover{background:rgba(0,180,216,.18)}.route-summary-body{display:flex;flex-direction:column;margin-top:4px}.rs-stop{display:flex;align-items:flex-start;gap:10px}.rs-connector-col{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:12px;padding-top:4px}.rs-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.rs-stop-body{display:flex;align-items:flex-start;gap:8px;padding-bottom:10px;flex:1;min-width:0}.rs-icon{font-size:var(--fs-md);margin-top:2px;flex-shrink:0}.rs-label{font-size:var(--fs-sm);color:var(--text);font-weight:500;margin-bottom:1px}.rs-coords{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-dim)}.rs-coord-input{-webkit-appearance:none;appearance:none;display:block;width:100%;font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-dim);background:0 0;border:1px solid var(--border);border-radius:var(--radius-sm);outline:0;padding:1px 4px;height:20px;box-sizing:border-box;cursor:text;transition:border-color .15s,color .15s}.rs-coord-input:hover{border-color:rgba(90,159,212,.4);color:var(--text)}.rs-coord-input:focus{border-color:var(--accent);color:var(--text);background:var(--accent-bg)}.rs-leg{display:flex;flex-direction:row;align-items:center;padding:4px 0 4px 75px;gap:8px;margin:0}.rs-leg-line{width:2px;height:28px;background:var(--border);flex-shrink:0;border-radius:1px}.rs-leg-cog,.rs-leg-dist{font-size:var(--fs-xs);color:var(--text-dim);font-family:var(--font-mono);white-space:nowrap}.map-wp-delete{background:0 0;border:none;color:var(--text-dark);font-size:var(--fs-lg);line-height:1;cursor:pointer;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 2px;align-self:center;flex-shrink:0}.map-wp-delete:hover{color:var(--danger)}.map-wp-passed{opacity:.4}.map-export-section{padding:10px 14px;border-top:1px solid var(--border);display:flex;gap:var(--s-2)}.map-import-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--s-1);padding:6px 4px;min-height:44px;background:var(--success-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--success);font-size:var(--fs-xs);font-weight:600;cursor:pointer;text-align:center}.map-import-btn:hover{background:var(--stbd-bg)}.map-export-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--s-1);padding:6px 4px;min-height:44px;background:var(--accent-bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--fs-xs);font-weight:600;cursor:pointer;text-align:center}.map-export-btn:hover{background:var(--accent-wash)}.map-clear-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--s-1);padding:6px 4px;min-height:44px;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-sm);color:var(--danger);font-size:var(--fs-xs);font-weight:600;cursor:pointer;text-align:center}.map-clear-btn:hover{background:var(--danger-bg);border-color:var(--danger)}.map-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}#passage-route-map,#route-map{flex:1;background:var(--bg);min-height:0;position:relative;z-index:1}#passage-route-map .leaflet-control-attribution,#route-map .leaflet-control-attribution{background:0 0!important;box-shadow:none!important;color:rgba(60,60,60,.85)}#passage-route-map .leaflet-popup-close-button,#passage-route-map .leaflet-popup-content-wrapper{transform:rotate(var(--course-up-counter-deg,0deg));transform-origin:center center}.map-time-bar{background:var(--bg-2);border-top:1px solid var(--border);padding:8px 14px 20px;flex-shrink:0;position:relative;z-index:100}.map-main.course-up-active>.map-time-bar{position:absolute;bottom:0;left:0;right:0;z-index:1001}.map-main.course-up-active{touch-action:none}.map-time-label{font-size:var(--fs-sm);color:var(--accent);font-weight:600;text-align:center;margin-bottom:6px}.map-time-bar input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer}.map-time-ends{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-dark);margin-top:3px}.passage-boat-popup-overlay{position:fixed;z-index:2000;background:var(--map-popup-bg);color:var(--map-popup-text);border:1px solid var(--map-popup-border);border-radius:var(--radius);box-shadow:var(--shadow);max-width:300px;pointer-events:auto;cursor:grab;user-select:none}.passage-boat-popup-overlay:active{cursor:grabbing}.passage-boat-popup-close{position:absolute;top:2px;right:5px;background:0 0;border:none;color:rgba(200,224,248,.55);font-size:var(--fs-base);line-height:1;cursor:pointer;padding:0 2px}.passage-boat-popup-close:hover{color:var(--map-popup-text)}.pm-legend-header{display:flex;justify-content:flex-end;align-items:center;gap:4px;margin-bottom:3px}.pm-legend-label{font-size:var(--fs-xs);color:var(--text);display:none}.pm-legend-toggle{background:0 0;border:none;color:var(--text-dim);font-size:var(--fs-xs);cursor:pointer;padding:0;line-height:1}.pm-legend-toggle:hover{color:#fff}.pm-layers-header{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:4px}.pm-layers-label{font-size:var(--fs-xs);color:#444;white-space:nowrap;display:none}.pm-layers-toggle{background:0 0;border:none;color:#444;font-size:var(--fs-xs);cursor:pointer;padding:0;line-height:1;margin-left:auto}.pm-layers-toggle:hover{color:#000}.leaflet-popup-content-wrapper.tw-popup,.tw-popup .leaflet-popup-content-wrapper{background:var(--map-popup-bg);color:var(--map-popup-text);border:1px solid var(--map-popup-border);border-radius:var(--radius);box-shadow:var(--shadow)}.tw-popup .leaflet-popup-tip{background:var(--map-popup-bg)}.tw-popup-inner{padding:6px 2px;min-width:200px}.tw-popup-title{font-size:var(--fs-base);font-weight:700;color:var(--accent);margin-bottom:4px}.tw-popup-coords{font-size:var(--fs-xs);color:var(--text-dim);font-family:var(--font-mono);margin-bottom:6px}.tw-popup-row{display:flex;justify-content:space-between;font-size:var(--fs-sm);padding:2px 0;border-top:1px solid var(--border-dim)}.tw-popup-label{color:var(--text-dim)}.tw-popup-section{font-size:var(--fs-xs);font-weight:700;color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin:7px 0 3px;padding-top:5px;border-top:1px solid var(--border-dim)}.tw-popup-wind-table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}.tw-popup-wind-table th{color:var(--text-dim);font-weight:600;text-align:left;padding:1px 4px 1px 0}.tw-popup-wind-table td{padding:1px 4px 1px 0;color:var(--map-popup-text)}.tw-popup-wind-table .tw-aw{color:var(--success);font-weight:600}.tw-popup-note{font-size:var(--fs-xs);color:var(--text-dim);margin-top:4px;font-style:italic}.tw-popup-summary{font-size:var(--fs-xs);color:var(--map-popup-text);margin-top:6px;padding-top:5px;border-top:1px solid var(--border-dim);line-height:1.45}.map-boat-icon{background:var(--warning);border:2px solid var(--text);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);box-shadow:var(--shadow)}@media (max-width:640px){.map-sidebar{width:200px;min-width:160px}}.sun-moon-section{padding:14px 20px}.sun-moon-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between}.sm-item{flex:1 1 80px;display:flex;flex-direction:column;align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 6px;min-width:70px}.sm-icon{font-size:var(--fs-lg);line-height:1;margin-bottom:4px}.sm-label{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.sm-val{font-size:var(--fs-md);font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.gps-modal-overlay{position:fixed;inset:0;background:rgba(8,17,31,.88);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(4px)}.gps-modal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);width:min(700px,96vw);max-height:90vh;display:flex;flex-direction:column}.gps-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--bg-2);border-bottom:1px solid var(--border);font-weight:600;color:var(--accent)}.gps-modal-close{background:0 0;border:none;color:var(--text-dim);font-size:var(--fs-lg);cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm)}.gps-modal-close:hover{color:var(--text);background:var(--border)}.gps-picker-readout{padding:10px 18px;font-size:var(--fs-base);font-variant-numeric:tabular-nums;color:var(--text);background:var(--bg-2);border-top:1px solid var(--border);min-height:38px;font-family:var(--font-mono);letter-spacing:.05em}.gps-modal-footer{display:flex;gap:10px;padding:14px 18px;background:var(--bg-2);border-top:1px solid var(--border)}.legal-doc-card{width:min(860px,96vw);max-height:92vh}#legal-doc-body{overflow-y:auto;flex:1;padding:32px 40px}.legal-doc-body h1{color:var(--accent);margin-bottom:8px}.legal-doc-body h2{color:var(--text);margin-top:36px;margin-bottom:12px}.legal-doc-body h3{color:var(--text);margin-top:0;margin-bottom:10px;font-size:1rem;font-weight:600}.legal-doc-body li,.legal-doc-body p{line-height:1.2;color:var(--text-dim);font-size:.95rem}.legal-doc-body .section-body{padding-left:16px}.legal-doc-body .section-body>p,.legal-doc-body .section-body>table,.legal-doc-body .section-body>ul{margin-top:8px;margin-bottom:12px}.legal-doc-body .subsection{margin-top:20px;padding:12px 16px;border-left:2px solid var(--border);background:rgba(255,255,255,.015);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.legal-doc-body .subsection>p{margin-top:8px;margin-bottom:10px}.legal-doc-body ul{padding-left:24px;margin:8px 0 12px}.legal-doc-body ul li{margin-bottom:6px;padding-left:4px}.legal-doc-body a{color:var(--accent)}.legal-doc-body .updated{font-size:.8rem;color:var(--text-dim);margin-bottom:32px}.legal-doc-body table{width:100%;border-collapse:collapse;margin-bottom:16px;font-size:.9rem}.legal-doc-body th{text-align:left;padding:8px 12px 8px 0;color:var(--text);border-bottom:1px solid var(--border)}.legal-doc-body td{padding:8px 12px 8px 0;color:var(--text-dim);border-bottom:1px solid var(--border);vertical-align:top}.legal-doc-body td:last-child,.legal-doc-body th:last-child{padding-right:0}#bug-report-textarea{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-base);padding:8px 10px;width:100%;min-height:120px;resize:vertical;box-sizing:border-box}#bug-report-textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent}#bug-report-char-count{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.shelter-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.shelter-table th{background:var(--bg-2);color:var(--text-dim);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.shelter-table td{padding:8px 10px;border-bottom:1px solid var(--border-dim);color:var(--text);vertical-align:top}.shelter-table tr:last-child td{border-bottom:none}.shelter-table tr:hover td{background:var(--accent-bg)}.shelter-table td:first-child{font-weight:600;color:var(--accent)}.shelter-table td:nth-child(3),.shelter-table td:nth-child(5){font-variant-numeric:tabular-nums}.shelter-num{display:inline-flex;align-items:center;justify-content:center;background:var(--warning);color:var(--text-on-accent);font-weight:800;font-size:var(--fs-xs);border-radius:50%;width:18px;height:18px;margin-right:6px;flex-shrink:0;vertical-align:middle}.shelter-eta{font-family:var(--font-mono);letter-spacing:.05em}.shelter-coords{font-size:var(--fs-sm);color:var(--text-dim);font-family:var(--font-mono)}.seamark-layer .leaflet-tile{filter:saturate(3) contrast(1.8) brightness(1.2)}#passage-report-layout{align-items:start}#passage-report-layout.passage-report-active{display:grid;grid-template-columns:156px 1fr;gap:0 28px}@media (max-width:860px){#passage-report-layout.passage-report-active{display:block}.passage-toc{display:none}}@media (min-width:1413px){#passage-report-layout.passage-report-active{display:block}#passage-report-layout.passage-report-active .passage-toc{position:fixed;left:20px;top:calc(120px + var(--notice-h));width:172px}}.passage-toc{position:sticky;top:calc(120px + var(--notice-h));max-height:calc(100vh - 138px - var(--notice-h));overflow-y:auto;scrollbar-width:none;padding:2px 0}.passage-toc::-webkit-scrollbar{display:none}.toc-track{border-left:2px solid var(--border);display:flex;flex-direction:column}.toc-item{display:flex;align-items:center;width:100%;min-height:44px;text-align:left;background:0 0;border:none;cursor:pointer;padding:5px 4px 5px 12px;font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--text-dark);line-height:1.3;position:relative;transition:color .15s}.toc-item::before{content:'';position:absolute;left:-5px;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .15s}.toc-item:hover{color:var(--text-dim)}.toc-item:hover::before{background:var(--border-mid)}.toc-item.active{background:var(--accent-wash);color:var(--accent);font-weight:600;border-radius:var(--radius-sm)}.toc-item.active::before{background:var(--accent)}.departure-insight-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin:12px 0}.departure-insight-panel h3{font-size:var(--fs-md);font-weight:700;color:var(--text);margin-bottom:var(--s-3);letter-spacing:.04em;text-transform:uppercase}.dep-motion-bar{background:var(--surface-2);border:1px solid var(--border-dim);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:10px}.dep-motion-bar .dep-label{font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.dep-legs-wrap{margin-bottom:10px}.legs-table-wrap{overflow-x:auto;overflow-y:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.legs-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm)}.legs-table thead{background:var(--bg-2)}.legs-table th,.reef-table th{text-align:left;padding:8px 6px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap}.th-sub{font-size:.68rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-dark);margin-top:2px}.legs-table td{padding:6px;vertical-align:top;border-bottom:1px solid var(--border-dim);color:var(--text)}.legs-table td:nth-child(2),.legs-table td:nth-child(4),.legs-table td:nth-child(6),.legs-table td:nth-child(7){white-space:normal!important;overflow-wrap:anywhere}.legs-table tbody tr:last-child td{border-bottom:none}.legs-table tbody tr:hover{background:var(--bg-2)}.daily-notes-row{border-top:none!important;padding:2px 10px 8px!important;font-size:var(--fs-sm);color:var(--text-dim);background:var(--bg-2);font-style:normal}.dep-chokepoint-bar,.dep-gradient-bar{background:var(--accent-bg);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:8px 12px;margin-bottom:10px;font-size:var(--fs-base);color:var(--text);line-height:1.5}.dep-chokepoint-bar{border-left-color:var(--warning);background:var(--warning-bg)}.dep-chokepoint-bar .dep-label,.dep-gradient-bar .dep-label{display:block;margin-bottom:4px;font-size:var(--fs-xs)}.dep-chokepoint-lines{display:block;font-size:var(--fs-base);line-height:1.7}.dep-insight-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.dep-insight-item{display:flex;flex-direction:row;gap:12px;align-items:baseline}.dep-insight-item .dep-label{flex-shrink:0;min-width:88px}.dep-label{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.dep-val{font-size:var(--fs-base);color:var(--text);line-height:1.45}.dep-outlook-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--accent-wash);padding-top:12px;margin-top:4px}.dep-outlook-cell{background:var(--surface);border:1px solid var(--accent-wash);border-radius:var(--radius);padding:10px 12px}.dep-outlook-label{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:4px}.dep-outlook-val{font-size:var(--fs-sm);color:var(--text);line-height:1.5}@media (max-width:600px){.dep-outlook-row{grid-template-columns:1fr}.dep-insight-item .dep-label{min-width:72px}}.wpc-map-gallery{border:1px solid var(--synoptic-bg);border-left:4px solid var(--synoptic-color);border-radius:var(--radius);padding:16px 18px;margin:12px 0}.wpc-map-gallery h3{font-size:var(--fs-base);font-weight:700;color:var(--synoptic-color);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.wpc-map-note{font-size:var(--fs-sm);color:var(--text-dim);margin-bottom:12px;line-height:1.4}.wpc-carousel{border:1px solid var(--border-dim);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.wpc-carousel-nav{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--accent-bg);border-bottom:1px solid var(--border-dim)}.wpc-nav-btn{background:var(--accent-bg);border:1px solid var(--border);color:var(--accent);border-radius:var(--radius-sm);padding:3px 16px;font-size:var(--fs-md);cursor:pointer;transition:background .15s;user-select:none}.wpc-nav-btn:hover{background:rgba(0,180,216,.18)}.wpc-carousel-counter{font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);letter-spacing:.03em}.wpc-slides{position:relative}.wpc-slide{display:none}.wpc-slide.wpc-slide-active{display:block}.wpc-map-header{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--accent-bg);border-bottom:1px solid var(--border-dim);flex-wrap:wrap}.wpc-map-timestamp{flex:1;font-size:var(--fs-base);font-weight:700;color:var(--accent);font-family:var(--font-mono)}.wpc-map-link{font-size:var(--fs-sm);color:var(--text-dim);text-decoration:none;border:1px solid var(--border);padding:2px 8px;border-radius:var(--radius-sm);white-space:nowrap;transition:color .15s,border-color .15s}.wpc-map-link:hover{color:var(--accent);border-color:var(--accent)}.wpc-map-img-wrap{position:relative;line-height:0}.wpc-map-img{width:100%;height:auto;display:block}.wpc-overlay-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.48);color:var(--text-on-accent);border:none;font-size:var(--fs-xl);line-height:1;padding:18px 11px;cursor:pointer;opacity:.6;transition:opacity .15s,background .15s;z-index:2;user-select:none}.wpc-overlay-btn:hover{opacity:1;background:rgba(0,0,0,.75)}.wpc-overlay-prev{left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.wpc-overlay-next{right:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.wpc-map-findings{padding:10px 14px;font-size:var(--fs-sm);line-height:1.55;color:var(--text);border-top:1px solid var(--border-dim);background:var(--accent-bg)}.wpc-findings-label{display:inline-block;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--synoptic-color);margin-right:6px;padding:1px 6px;background:var(--synoptic-bg);border-radius:var(--radius-sm)}.wpc-dots{display:flex;justify-content:center;align-items:center;gap:8px;padding:8px 0 7px;background:var(--bg-2);border-top:1px solid var(--border-dim)}.wpc-dot{width:8px;height:8px;border-radius:50%;background:rgba(0,180,216,.18);cursor:pointer;transition:background .15s,transform .15s}.wpc-dot.wpc-dot-active{background:var(--accent);transform:scale(1.35)}.wpc-dot:hover{background:rgba(0,180,216,.55)}.wpc-trend-summary{margin-top:12px;padding:10px 14px;background:var(--synoptic-bg);border:1px solid var(--synoptic-bg);border-radius:var(--radius);font-size:var(--fs-base);color:var(--text);line-height:1.55}.ww-toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(12px);background:var(--surface-2);color:var(--text);font-size:var(--fs-base);padding:10px 20px;border-radius:999px;border:1px solid var(--border);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;z-index:99999;white-space:nowrap}.ww-toast--visible{opacity:1;transform:translateX(-50%) translateY(0)}.btn-ghost{background:0 0;color:var(--text-dim);border:1px solid transparent}.btn-ghost:hover:not(:disabled){color:var(--text);background:rgba(255,255,255,.05)}.btn-danger{background:0 0;color:var(--danger);border:1px solid rgba(230,57,70,.3)}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger);color:var(--danger)}.chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim)}.chip::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.chip.go{color:var(--success);border-color:rgba(46,196,182,.3);background:rgba(46,196,182,.08)}.chip.caution{color:var(--warning);border-color:rgba(244,162,97,.3);background:var(--warning-bg)}.chip.nogo{color:var(--danger);border-color:rgba(230,57,70,.3);background:var(--danger-bg)}.chip.live{color:var(--accent);border-color:rgba(0,180,216,.3);background:rgba(0,180,216,.08)}.chip.live::before{animation:1.6s ease-in-out infinite chip-pulse}@keyframes chip-pulse{0%,100%{opacity:1}50%{opacity:.35}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.card-head .title{font-size:var(--fs-md);font-weight:600;margin:0}.card-head .sub{font-size:var(--fs-sm);color:var(--text-dim);margin:2px 0 0}.verdict-card{background:var(--surface);border:6px solid var(--success);border-radius:var(--radius-lg);padding:24px 28px;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;overflow:hidden;margin-bottom:20px;position:relative}.verdict-card.caution{border-color:var(--warning)}.verdict-card.nogo{border-color:var(--danger)}.vbadge,.verdict-badge{width:92px;height:92px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;letter-spacing:.05em;border:3px solid var(--success);color:var(--success);background:var(--bg-2)}.verdict-card.caution .vbadge,.verdict-card.caution .verdict-badge{border-color:var(--warning);color:var(--warning)}.verdict-card.nogo .vbadge,.verdict-card.nogo .verdict-badge{border-color:var(--danger);color:var(--danger)}.vbadge .glyph,.verdict-badge .glyph{font-size:var(--fs-lg);line-height:1}.vbadge .word,.verdict-badge .word{font-size:var(--fs-sm);margin-top:4px}.verdict-body .headline{font-size:var(--fs-lg);font-weight:700;margin:0 0 6px;color:var(--text)}.verdict-card.caution .verdict-body .headline{color:var(--warning)}.verdict-card.nogo .verdict-body .headline{color:var(--danger)}.verdict-body .reason{color:var(--text-dim);margin:0;font-size:var(--fs-base);line-height:1.5}.verdict-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:20px}.verdict-row .verdict-card{grid-column:span 3;margin-bottom:0}@media (max-width:700px){.verdict-row{display:flex;flex-direction:column;gap:12px}.verdict-row .verdict-card{grid-column:auto}}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px 10px;display:flex;flex-direction:column;gap:0}.stat .stat-sub{margin-top:2px}.stat .lbl{margin-top:auto;padding-top:12px}.verdict-row .stat .val{margin-top:auto}.briefing-disclaimer-card{padding:10px 16px}.brief-section .briefing-disclaimer{font-size:var(--fs-base);color:var(--text-dim);font-weight:400;margin:0;line-height:1.5}.brief-section .briefing-disclaimer strong{color:var(--text-dim);font-weight:600}.verdict-cluster{display:flex;flex-direction:column;gap:0;margin-bottom:20px}.verdict-cluster .verdict-row{margin-bottom:0}.nfn-strip{padding:12px 16px;background:var(--surface);border:1px solid var(--warning);border-radius:var(--radius);color:var(--text);margin-top:12px}.nfn-strip--attached{margin-top:8px;border-radius:var(--radius)}.nfn-strip__title{margin:0 0 8px;font-size:var(--fs-base);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text)}.nfn-strip__title .nfn-warn-prefix{color:var(--warning)}.nfn-strip__sentences{margin:0;padding:0;list-style:none;font-size:var(--fs-base);line-height:1.5;color:var(--text)}.nfn-strip__sentences li{margin:0;padding:0}.nfn-strip__sentences li+li{margin-top:6px}.nfn-strip__age{margin:10px 0 0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-sm);color:var(--text-dim);letter-spacing:.02em}.nfn-strip__age-label{color:var(--text-dim);margin-right:8px}.nfn-strip__age-value{color:var(--text)}.nfn-strip__age.is-warning .nfn-strip__age-value{color:var(--warning)}.nfn-strip__age.is-stale .nfn-strip__age-value{color:var(--danger);font-weight:700}.nfn-strip.is-stale{border-color:var(--danger)}.verdict-card.is-stale{border-color:var(--danger)}.verdict-card.is-stale.is-acked{filter:saturate(.55)}.verdict-stale-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(8,20,38,.92);border-radius:var(--radius-lg);padding:20px;text-align:center;color:var(--text);z-index:2}html.ww-light .verdict-stale-overlay{background:rgba(255,255,255,.94)}.verdict-stale-overlay__title{font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:700;letter-spacing:.06em;color:var(--danger);margin:0}.verdict-stale-overlay__text{margin:0;font-size:var(--fs-base);max-width:48ch;line-height:1.5;color:var(--text)}.verdict-stale-overlay__actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.verdict-stale-overlay__actions .btn{min-height:44px}.verdict-card.is-stale.is-acked .verdict-stale-overlay{display:none}.verdict-card.is-stale.is-acked::after{content:'HISTORICAL — NOT A DEPARTURE CLEARANCE';position:absolute;top:8px;right:12px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--danger);pointer-events:none}.stat .lbl{font-size:var(--fs-xs);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.lbl-icon{display:inline-flex;align-items:center;gap:4px}.stat-icon{flex-shrink:0;opacity:.75}.stat-icon.sun-icon{color:var(--sun-color);opacity:1}.stat-icon.moon-icon{color:var(--moon-color);opacity:1}.stat-icon.nm-icon{color:var(--text-dark);opacity:.9}.stat-icon.wave-icon{color:var(--wave-color);opacity:1}.stat-icon.lightning-icon{color:var(--lightning-color);opacity:1}.stat-icon.tide-high-icon,.stat-icon.tide-low-icon{color:var(--tide-color);opacity:1}.val-glyph{font-size:.55em;vertical-align:middle;margin-right:.2em}.motion-val{font-size:var(--fs-sm);font-weight:700;font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap}.stat .motion-val.motion-calm,.stat .motion-val.motion-mild{color:var(--success)}.stat .motion-val.motion-moderate{color:var(--warning)}.stat .motion-val.motion-rough,.stat .motion-val.motion-severe{color:var(--danger)}.squall-val{font-size:var(--fs-sm);font-weight:700;font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap}.stat .squall-val.squall-low{color:var(--success)}.stat .squall-val.squall-moderate{color:var(--warning)}.stat .squall-val.squall-high,.stat .squall-val.squall-severe{color:var(--danger)}.stat .val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--fs-xl);font-weight:700;color:var(--text);line-height:1.1}.stat .val sub{font-size:var(--fs-sm);color:var(--text-dim);margin-left:4px;font-weight:400}.field{display:grid;gap:6px}.field label{font-size:var(--fs-xs);font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.input{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--text);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;min-height:44px}.input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-wash)}.segmented{display:inline-flex;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:3px}.segmented button{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);background:0 0;border:0;padding:8px 16px;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,color .15s}.segmented button[aria-pressed=true]{background:var(--surface-2);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.segmented button:hover:not([aria-pressed=true]){color:var(--text)}.alert{border:1px solid rgba(244,162,97,.4);background:rgba(244,162,97,.06);border-radius:var(--radius);padding:14px 18px;display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:flex-start}.alert .icon{font-family:var(--font-mono);font-size:var(--fs-base);color:var(--warning)}.alert .title{font-weight:600;margin:0 0 2px;font-size:var(--fs-base);color:var(--text)}.alert .body{color:var(--text);margin:0;font-size:var(--fs-md);line-height:1.7}.alert .ts{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-dark);white-space:nowrap}.alert.info{border-color:rgba(0,180,216,.35);background:var(--accent-bg)}.alert.info .icon{color:var(--accent)}.reef-editor-section{margin-top:0}.reef-tabs{display:flex;gap:4px;margin-bottom:16px}.reef-tab-btn{background:0 0;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;font-family:var(--font-sans);font-size:var(--fs-base);font-weight:600;min-height:44px;padding:10px 18px;transition:background 120ms,border-color 120ms,color 120ms;-webkit-tap-highlight-color:transparent}.reef-tab-btn:hover{border-color:var(--accent);color:var(--accent)}.reef-tab-btn--active,.reef-tab-btn--active:hover{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}.ss-list{display:flex;flex-direction:column;gap:8px}.ss-empty{color:var(--text-dim);font-style:italic;font-size:var(--fs-sm);margin:8px 0}.ss-row{display:flex;flex-direction:column;gap:16px;background:var(--bg-2);border:1px solid var(--surface-2);border-radius:var(--radius);padding:8px 12px 12px}.ss-row.ss-dragging{opacity:.5}.ss-row:hover{border-color:var(--border)}.ss-row-top{display:flex;align-items:flex-start;gap:8px}.ss-spacer{flex:1}.ss-priority-wrap{display:flex;align-items:center;gap:4px}.ss-row-fields{display:flex;align-items:flex-start;flex-wrap:wrap;gap:24px}.ss-right-content{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0;margin-left:20px}.ss-conditions-heading{font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;text-align:center;color:var(--text-dim)!important;margin:0 0 4px}.ss-data-layout{display:grid;grid-template-columns:auto auto;column-gap:24px;row-gap:16px;align-items:start}.ss-data-layout>:nth-child(-n+2) .ss-field-col{align-items:stretch}.ss-data-layout>:nth-child(-n+2) .ss-unit-wrap{display:flex}.ss-data-layout>:nth-child(-n+2) .ss-range-input{width:100%;box-sizing:border-box}.ss-data-layout .ss-field-group{align-items:flex-start}.ss-field-group{display:flex;align-items:center;gap:12px}.ss-field-col{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.ss-sub-label{font-size:var(--fs-xs);color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding-left:2px}.ss-drag-handle{align-self:flex-start;cursor:grab;color:var(--text-dim);font-size:1rem;padding:0 2px;user-select:none}.ss-drag-handle:active{cursor:grabbing}.ss-swatch{width:20px;height:20px;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;flex-shrink:0;min-height:20px}.ss-swatch:hover{opacity:.8}input.ss-name{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:4px 8px;width:180px;max-width:180px;min-width:0}.ss-field-label{color:var(--text-dim);font-size:var(--fs-xs);white-space:nowrap}input.ss-range-input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:left}.ss-range-sep{color:var(--text-dim);font-size:var(--fs-sm)}.ss-unit{color:var(--text-dim);font-size:var(--fs-xs)}.ss-night-btns{display:flex;gap:4px}.ss-night-btn{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-sizing:border-box;color:var(--text-dim);cursor:pointer;font:inherit;min-height:44px;padding:0 12px;white-space:nowrap;transition:background 120ms,color 120ms,border-color 120ms}.ss-night-btn:hover{background:var(--surface-2);color:var(--text)}.ss-night-btn--active,.ss-night-btn--active:hover{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}.ss-min-dur-chk{cursor:pointer;accent-color:var(--accent);flex-shrink:0}input.ss-min-dur-hrs{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-width:3.5rem!important;text-align:left}.ss-unit-wrap{position:relative;display:inline-flex;align-items:center}.ss-row-mindur{display:flex;align-items:center;gap:6px;padding-top:2px}.ss-priority-label{color:var(--text-dim);font-size:var(--fs-sm);white-space:nowrap}.ss-priority-btn{background:0 0;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer;font-size:var(--fs-sm);min-height:28px;padding:2px 8px}.ss-priority-btn:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.ss-priority-btn:disabled{opacity:.3;cursor:default}.ss-delete-btn{background:0 0;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer;font-size:var(--fs-base);margin-left:auto;min-height:28px;padding:2px 8px}.ss-delete-btn:hover{color:var(--danger);border-color:var(--danger)}.ss-add-btn{align-self:flex-start;margin-top:4px}.ss-add-row{display:flex;align-items:flex-start;gap:24px;margin-top:4px}.ss-blurb{flex:1;color:var(--text-dim);font-size:var(--fs-base);line-height:1.6;text-align:right}.reef-editor-layout{display:flex;gap:16px;align-items:flex-start}.reef-actions-col{display:flex;flex-direction:column;gap:8px;flex-shrink:0;align-self:flex-start;margin-left:auto;padding-top:20px}.reef-toolbar-btn{width:100%;justify-content:center}.reef-toolbar-btn--import{cursor:pointer;margin:0;text-transform:none}.reef-toolbar-btn--import input[type=file]{display:none}.reef-grid-panel{flex:0 0 auto;position:relative}.reef-grid-with-yaxis{display:flex;align-items:stretch;overflow:hidden;border-radius:var(--radius-sm)}.reef-y-title{writing-mode:vertical-rl;transform:rotate(180deg);text-align:center;flex-shrink:0;width:20px;min-width:20px;background:var(--surface);color:var(--text-dim);font-size:var(--fs-xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-right:1px solid transparent;padding:6px 2px}.reef-grid-container{overflow-x:auto;overflow-y:visible}table.reef-grid{border-collapse:collapse;table-layout:fixed}table.reef-grid td.reef-row-header{background:var(--surface);color:var(--text-dim);font-size:var(--fs-xs);text-align:right;padding-right:5px;cursor:default;position:sticky;left:0;z-index:1;width:34px;min-width:34px;border:1px hidden transparent;height:10px}.reef-yaxis-labels{position:absolute;left:20px;top:0;width:34px;pointer-events:none;z-index:2}.reef-yaxis-labels span{position:absolute;right:5px;transform:translateY(-50%);font-size:var(--fs-xs);color:var(--text-dim);white-space:nowrap;line-height:1}table.reef-grid td.reef-grid-cell{width:21px;min-width:21px;height:10px;border:1px solid var(--border-mid);cursor:crosshair}table.reef-grid tr.reef-major-row td{border-top:3px solid var(--border-mid)}table.reef-grid td.reef-grid-cell:hover{opacity:.7;outline:rgba(255,255,255,.4) solid 1px;outline-offset:-1px}table.reef-grid td.reef-grid-cell.reef-selecting{outline:rgba(255,255,255,.9) solid 2px!important;outline-offset:-1px;opacity:.8}table.reef-grid tfoot th{background:var(--surface);color:var(--text-dim);font-size:var(--fs-xs);font-weight:500;padding:4px 2px;text-align:center;border:1px hidden transparent;white-space:nowrap}table.reef-grid tfoot th.reef-corner-rh{position:sticky;left:0;z-index:3;width:34px;min-width:34px}table.reef-grid tfoot tr.reef-awa-title-row th{text-transform:uppercase;letter-spacing:.08em;padding:6px 0 5px}table.reef-grid tfoot th.reef-corner-title{position:sticky;left:0;z-index:3;width:34px;min-width:34px}.reef-legend-panel{width:260px;flex-shrink:0;background:0 0;padding:0 0 0 20px;position:sticky;top:16px}.reef-legend-title{font-size:var(--fs-sm);color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-weight:600;text-align:center}.reef-legend-entries{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}.reef-legend-entry{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;background:var(--bg-2);min-height:44px;transition:border-color .15s}.reef-legend-entry:hover{border-color:var(--surface-2);background:var(--surface-2)}.reef-legend-entry.reef-active{border-color:var(--accent);background:var(--accent-wash);box-shadow:0 0 0 1px var(--accent-wash)}.reef-legend-swatch{border-radius:var(--radius-sm);flex-shrink:0;border:1px solid var(--border-dim);cursor:pointer}.reef-legend-name{font-size:var(--fs-sm);color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;outline:0}.reef-legend-name[contenteditable=true]{background:var(--bg-2);border-radius:var(--radius-sm);padding:1px 4px;outline:1px solid var(--accent);white-space:normal;overflow:visible;text-overflow:clip}.reef-legend-edit{background:0 0;border:none;color:var(--text-dim,#666);font-size:var(--fs-sm);cursor:pointer;padding:0 2px;line-height:1;opacity:0;transition:opacity .15s;flex-shrink:0}.reef-legend-entry:hover .reef-legend-edit{opacity:1}.reef-legend-edit:hover{color:var(--text,#ccd)}.reef-legend-delete{background:0 0;border:none;color:var(--text-dim,#666);font-size:var(--fs-sm);cursor:pointer;padding:0 2px;line-height:1;opacity:0;transition:opacity .15s;flex-shrink:0}.reef-legend-entry:hover .reef-legend-delete{opacity:1}.reef-legend-delete:hover{color:var(--danger,#ef4444)}.reef-btn-add{width:100%;padding:6px;background:var(--success-bg);border:1px dashed var(--success);border-radius:var(--radius-sm);color:var(--success);font-size:var(--fs-sm);cursor:pointer;text-align:center;min-height:44px;margin-bottom:12px}.reef-btn-add:hover{filter:brightness(1.15)}.reef-legend-hint{font-size:var(--fs-sm);color:var(--text-dim);line-height:1.6;border-top:1px solid var(--border);padding-top:10px}.reef-add-form{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px}.reef-add-form input[type=text]{width:100%;padding:5px 8px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm);min-height:44px}.reef-add-form-row{display:flex;gap:6px;align-items:center}.reef-add-form input[type=color]{width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:2px;background:var(--bg-2)}.reef-add-confirm{flex:1;padding:5px 8px;min-height:44px;background:var(--accent-wash);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);font-size:var(--fs-sm);cursor:pointer}.reef-add-cancel{padding:5px 8px;min-height:44px;background:0 0;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);font-size:var(--fs-sm);cursor:pointer}html.ww-light{--bg:#f6f9fc;--bg-2:#ffffff;--surface:#ffffff;--surface-2:#eef3f9;--border:#d9e2ec;--border-mid:rgba(10,42,94,0.15);--border-dim:rgba(10,42,94,0.08);--accent:#0a2a5e;--accent-2:#123a78;--accent-wash:rgba(10,42,94,0.08);--text:#0a2a5e;--text-dim:#486581;--text-dark:#829ab1;--text-on-accent:#ffffff;--shadow:0 2px 10px rgba(10,42,94,0.08);--shadow-lg:0 10px 30px rgba(10,42,94,0.12);--success-bg:rgba(46,196,182,0.10);--warning-bg:rgba(244,162,97,0.12);--danger-bg:rgba(230,57,70,0.10);--accent-bg:rgba(10,42,94,0.06);--port-bg:rgba(230,57,70,0.14);--stbd-bg:rgba(46,196,182,0.14);--map-popup-bg:#ffffff;--map-popup-text:#0a2a5e;--map-popup-border:#d9e2ec;--bg-overlay:rgba(246,249,252,0.92);--table-row-even:#eef3f9;--table-row-odd:#f6f9fc;--bg2:#ffffff;--card:#ffffff;--card2:#eef3f9;--accent2:#123a78}@media (min-width:768px) and (max-width:1365px){.tab-btn{min-height:44px;padding:12px 16px}.tab-nav .header-logo{height:56px}.btn,input,select,textarea{min-height:44px}.btn-small{min-height:44px;padding:10px 12px}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}#settings-form .form-section>div[style*=grid-template-columns]{grid-template-columns:repeat(2,1fr)!important}}@media (min-width:768px) and (max-width:1023px){.stats-row{grid-template-columns:repeat(3,minmax(0,1fr))}.map-sidebar{width:220px;min-width:180px}}@media (min-width:1024px) and (max-width:1365px){.stats-row{grid-template-columns:repeat(4,minmax(0,1fr))}.map-sidebar{width:260px;min-width:220px}#settings-form .form-section>div[style*=grid-template-columns]{grid-template-columns:repeat(3,1fr)!important}}.fixture-chip{display:none;margin-top:var(--s-2);font-size:var(--fs-xs);font-family:var(--font-mono);border-radius:var(--radius-sm);padding:3px 10px}.fixture-chip.dr-fix{color:var(--accent);background:rgba(0,180,216,.1);border:1px solid rgba(0,180,216,.3)}.fixture-chip.wx-fix{color:var(--success);background:rgba(46,196,182,.1);border:1px solid rgba(46,196,182,.3)}.prompt-inspector-overlay{display:none;position:fixed;inset:0;background:rgba(8,17,31,.9);z-index:1100;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.prompt-inspector-overlay.open{display:flex}.prompt-inspector-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);width:min(960px,97vw);height:min(88vh,820px);display:flex;flex-direction:column}.prompt-inspector-header{display:flex;align-items:center;justify-content:space-between;padding:var(--s-4) var(--s-5);background:var(--bg-2);border-bottom:1px solid var(--border);flex-shrink:0}.prompt-inspector-title{font-weight:600;color:var(--accent);font-size:var(--fs-sm)}.inspector-close{background:0 0;border:none;color:var(--text-dim);cursor:pointer;display:inline-flex;align-items:center;padding:var(--s-1);border-radius:var(--radius-sm);min-height:32px}.inspector-close:hover{color:var(--text);background:var(--surface-2)}.prompt-inspector-nav{width:140px;flex-shrink:0;border-right:1px solid var(--border);padding:var(--s-2);overflow-y:auto;background:var(--bg-2);display:flex;flex-direction:column;gap:var(--s-1)}.form-h3{font-size:var(--fs-base);font-weight:700;color:var(--text);margin:0 0 var(--s-4);border-bottom:1px solid var(--border);padding-bottom:var(--s-2)}.settings-input-grid{display:grid;grid-template-columns:repeat(6,140px);gap:var(--s-6);margin-bottom:var(--s-4)}.gps-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);vertical-align:middle;margin-right:2px}.app-footer{border-top:1px solid var(--border);padding:var(--s-4) var(--s-6);text-align:center}.app-footer p{font-size:var(--fs-xs);color:var(--text-dim);margin:0}.app-footer a{color:var(--text-dim);text-decoration:underline}.app-footer a:hover{color:var(--accent)}.tab-content[data-tab=map].active~footer.app-footer,body.passagemap-report-active .tab-content[data-tab=passagemap].active~footer.app-footer{display:none}.app-footer--fixed{position:fixed;bottom:0;left:0;right:0;background:var(--bg)}.consensus-section{padding:var(--s-3);font-size:var(--fs-sm)}.consensus-section .hint{font-size:var(--fs-xs)}.consensus-tile{border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-3);background:var(--surface);font-size:var(--fs-sm)}.consensus-tile .cn-agreement,.consensus-tile .cn-empty,.consensus-tile .cn-headline-num,.consensus-tile .cn-name,.consensus-tile .cn-val{font-weight:400}.consensus-tile .cn-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1);margin-bottom:var(--s-3)}.consensus-tile .cn-cluster{display:flex;flex-wrap:wrap;gap:var(--s-1)}.consensus-tile .cn-subs{min-width:280px}.consensus-tile .cn-cluster+.cn-cluster,.consensus-tile .cn-cluster:empty+.cn-cluster{margin-left:var(--s-5)}.consensus-tile .chip::before{display:none}.cn-block{display:grid;gap:var(--s-2)}.cn-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2)}.cn-headline-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-dim)}.cn-agreement{margin:0 0 var(--s-1);color:var(--text-dim)}.cn-bars{display:grid;gap:var(--s-1)}.consensus-row{display:grid;grid-template-columns:60px 1fr minmax(110px,max-content);align-items:center;gap:var(--s-2)}.cn-name{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-dim);white-space:nowrap}.cn-track{position:relative;height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.cn-fill{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:999px}.cn-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:400;text-align:right;white-space:nowrap}.cn-empty{color:var(--text-dim);margin:0}.btn-toggle{min-height:44px;padding:var(--s-1) var(--s-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:inherit;font-size:inherit;cursor:pointer;transition:background 120ms,border-color 120ms}.btn-toggle:hover{background:var(--surface-2)}.btn-toggle.active{background:var(--accent-wash);color:var(--accent);border-color:var(--accent)}.btn-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dev-server-chip{position:fixed;bottom:8px;right:8px;z-index:9999;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none;user-select:none}.dev-server-chip[data-worktree=true]{border-color:var(--accent);color:var(--accent)}.theme-toggle-btn{font-size:var(--fs-xs);letter-spacing:.03em;color:var(--text-dim);border:1px solid var(--border);padding-left:var(--s-2);padding-right:var(--s-2)}.theme-toggle-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.route-status-callout{margin-bottom:var(--s-5)}.route-status-callout:empty{display:none}.route-status-empty{display:flex;align-items:center;gap:var(--s-3);background:var(--accent-bg);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);padding:var(--s-3) var(--s-4);font-size:var(--fs-sm);color:var(--text-dim)}.route-status-empty a{color:var(--accent);text-decoration:none;font-weight:600}.route-status-empty a:hover{text-decoration:underline}.passagemap-placeholder{display:flex;align-items:center;justify-content:center;height:100%;min-height:360px;padding:var(--s-10);text-align:center}.disclaimer-overlay{z-index:9999}.disclaimer-modal{max-width:520px;width:min(520px,96vw)}.disclaimer-modal .gps-modal-header{justify-content:center}.disclaimer-modal-title{font-size:var(--fs-md);font-weight:700;color:var(--text);letter-spacing:.02em}.disclaimer-meta{font-size:var(--fs-xs);color:var(--text-dim);margin:0 0 var(--s-4)}.disclaimer-modal-body{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-5)}.disclaimer-block{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s-4) var(--s-5)}.disclaimer-block-heading{font-size:var(--fs-sm);font-weight:700;color:var(--text);margin:0 0 var(--s-2);text-align:center}.disclaimer-block-body{font-size:var(--fs-sm);color:var(--text-dim);line-height:1.6;margin:0 0 var(--s-2)}.disclaimer-list{margin:0 0 var(--s-2) var(--s-5);font-size:var(--fs-sm);color:var(--text-dim);line-height:1.7}.disclaimer-tos{font-size:var(--fs-xs);color:var(--text-dim);margin:0}.disclaimer-tos a{color:var(--accent)}.disclaimer-check-label{display:flex;align-items:flex-start;gap:var(--s-2);cursor:pointer;font-size:var(--fs-sm);color:var(--text);line-height:1.55}.disclaimer-checkbox{margin-top:3px;min-width:16px;min-height:16px;accent-color:var(--accent);flex-shrink:0}.disclaimer-continue-btn{width:100%;justify-content:center;transition:background 120ms,opacity 120ms ease-out}@media (prefers-reduced-motion:reduce){.spinner{animation:1.2s ease-in-out infinite spinner-fade;border-top-color:var(--accent)}@keyframes spinner-fade{0%,100%{opacity:1}50%{opacity:.35}}.chip.live::before,.go-action .go-label,.loading-card,.reef-storm,.squall-badge.squall-severe{animation:none}.ww-toast{transition:opacity 80ms}.accordion-chevron,.brief-section,.btn,.disclaimer-continue-btn,.progress-bar-inner,.report-accordion>summary,.toc-item,.wpc-dot{transition:none}}.notice-dismiss{margin-left:var(--s-3);min-height:44px;padding:0 var(--s-2);background:0 0;border:none;cursor:pointer;line-height:1;color:inherit;opacity:.7;display:inline-flex;align-items:center;border-radius:var(--radius-sm);transition:opacity 120ms}.notice-dismiss:hover{opacity:1}.badge-go{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);border-radius:var(--radius-sm);padding:1px 0;font-size:var(--fs-xs);font-weight:700;display:inline-block;min-width:72px;text-align:center}.badge-caution{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border);border-radius:var(--radius-sm);padding:1px 0;font-size:var(--fs-xs);font-weight:700;display:inline-block;min-width:72px;text-align:center}.badge-divert,.badge-nogo{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border);border-radius:var(--radius-sm);padding:1px 0;font-size:var(--fs-xs);font-weight:700;display:inline-block;min-width:72px;text-align:center}.badge-calm,.badge-mild{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);border-radius:var(--radius-sm);padding:1px 0;font-size:var(--fs-xs);font-weight:700;display:inline-block;min-width:72px;text-align:center}.badge-moderate{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border);border-radius:var(--radius-sm);padding:1px 0;font-size:var(--fs-xs);font-weight:700;display:inline-block;min-width:72px;text-align:center}.badge-rough{background:rgba(249,115,22,.13);color:#f97316;border:1px solid rgba(249,115,22,.33);border-radius:var(--radius-sm);padding:1px 0;font-size:var(--fs-xs);font-weight:700;display:inline-block;min-width:72px;text-align:center}.badge-severe{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border);border-radius:var(--radius-sm);padding:1px 0;font-size:var(--fs-xs);font-weight:700;display:inline-block;min-width:72px;text-align:center}.dep-val-nogo{color:var(--danger)}.dep-val-caution{color:var(--warning)}.dep-val-go{color:var(--success)}.caption-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.reef-legend-swatch{width:12px;height:12px;border-radius:var(--radius-sm);flex-shrink:0}.report-skeleton{display:grid;gap:var(--space-md);padding:var(--space-lg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.skeleton-line{height:1em;background:var(--surface-2);border-radius:var(--radius-sm)}.skeleton-line-lg{width:60%;height:1.5em}.skeleton-line-md{width:80%}.skeleton-status{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-dim);text-align:center;margin-top:var(--space-md)}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,var(--surface-2) 0,var(--surface-3,var(--surface-2)) 50%,var(--surface-2) 100%);background-size:200% 100%;animation:1.5s linear infinite shimmer}