:root,:root[data-theme=dark]{--bg:#0f1720;--bg-soft:#131e2a;--panel:rgba(22,33,46,.88);--panel-solid:#16212e;--panel-soft:rgba(28,42,58,.92);--border:hsla(0,0%,100%,.08);--border-strong:hsla(0,0%,100%,.16);--text:#e6edf3;--muted:#8b9aab;--accent:#4cc9f0;--accent-2:#ffd166;--go:#2ecc71;--wait:#f1c40f;--change:#e67e22;--unsafe:#e74c3c;--critical:#c0392b;--badge-info:#6ea8ff;--badge-caution:#f0b86a;--badge-important:#f96;--badge-danger:#ff7a7a;--badge-success:#2ecc71;--badge-active:#fc0;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--map-pill-width:264px;--glass:rgba(15,23,32,.78);--glass-strong:rgba(15,23,32,.95);--glass-soft:rgba(15,23,32,.55);--glass-text:var(--text);--shadow-overlay:0 8px 28px rgba(0,0,0,.35);--shadow-menu:0 14px 40px rgba(0,0,0,.55);color-scheme:dark}:root[data-theme=light]{--bg:#f4f7fa;--bg-soft:#fff;--panel:hsla(0,0%,100%,.92);--panel-solid:#fff;--panel-soft:rgba(243,247,251,.94);--border:rgba(15,23,32,.09);--border-strong:rgba(15,23,32,.18);--text:#0f1720;--muted:#5a6a7a;--accent:#0d8bb0;--accent-2:#d18a00;--glass:hsla(0,0%,100%,.82);--glass-strong:hsla(0,0%,100%,.96);--glass-soft:hsla(0,0%,100%,.55);--glass-text:var(--text);--shadow-overlay:0 6px 22px rgba(15,23,32,.12);--shadow-menu:0 10px 30px rgba(15,23,32,.18);color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,system-ui,Roboto,sans-serif;height:100%;overflow:hidden;overscroll-behavior:none}a{color:var(--accent)}button{font:inherit}.app-shell{position:fixed;inset:0;display:grid;grid-template-rows:1fr;overflow:hidden}.bg-map{position:absolute;inset:0;z-index:0;filter:saturate(.9) brightness(.85);transition:filter .4s ease}.bg-map-focused{filter:saturate(1) brightness(1)}.topbar{position:absolute;top:0;left:0;right:0;z-index:800;display:flex;justify-content:space-between;align-items:center;padding:calc(var(--safe-top) + 12px) 16px 12px 56px;background:linear-gradient(180deg,var(--glass) 0,transparent 100%);pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:16px;font-weight:800;min-width:0;flex-shrink:1;color:inherit;text-decoration:none;cursor:pointer}.brand:hover .brand-name{color:var(--accent)}.brand-mark{font-size:22px}.brand-logo{width:64px;height:64px;border-radius:50%;display:block;flex-shrink:0;box-shadow:0 4px 18px rgba(0,0,0,.5)}.brand-name{font-size:30px;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}.topbar-right{min-width:0;flex-shrink:0}.google-host{display:inline-flex;line-height:0;background:transparent;border-radius:999px;overflow:hidden}.google-host iframe,.google-host>div{background:transparent!important;color-scheme:light dark}.map-layers{position:absolute;top:calc(var(--safe-top) + 76px);left:50%;transform:translateX(-50%);z-index:720;pointer-events:auto}.map-layers-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border-strong);background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--text);cursor:pointer;display:grid;place-items:center;transition:background .15s;box-shadow:var(--shadow-overlay)}.map-layers-btn:hover{background:var(--glass-strong);color:var(--accent)}.map-layers-menu{position:absolute;top:46px;left:50%;transform:translateX(-50%);min-width:240px;background:var(--glass-strong);border:1px solid var(--border-strong);border-radius:14px;padding:14px 16px;backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);box-shadow:var(--shadow-menu);animation:mapLayersIn .18s cubic-bezier(.2,.9,.3,1.05)}@keyframes mapLayersIn{0%{opacity:0;transform:translate(-50%,-6px) scale(.97)}to{opacity:1;transform:translate(-50%) scale(1)}}.map-layers-title{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-weight:600}.map-layers-row{display:flex;align-items:center;gap:10px;padding:8px 6px;margin:0 -6px;border-radius:8px;font-size:13px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .12s}.map-layers-row:hover{background:rgba(76,201,240,.08)}.map-layers-row input{cursor:pointer;width:18px;height:18px;flex:none;accent-color:var(--accent)}.map-layers-legend{display:flex;flex-direction:column;gap:4px;margin:2px 6px 6px 32px;padding:6px 8px;border-left:2px solid var(--glass-strong);font-size:12px;color:var(--text-secondary,#475569)}.map-layers-legend-row{display:flex;align-items:center;gap:8px;line-height:1.4}.map-layers-legend-swatch{width:12px;height:12px;border-radius:50%;border:1.5px solid #3a5777;background:rgba(232,240,250,.92);flex:none}.map-layers-legend-label{flex:1 1}.map-units-row{display:flex;gap:6px;margin-top:4px}.map-units-row label{flex:1 1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 0;font-size:12px;border:1px solid var(--border-strong);border-radius:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s,border-color .15s}.map-units-row label:hover{background:rgba(76,201,240,.08)}.map-units-row label.active{background:rgba(76,201,240,.15);border-color:var(--accent);color:var(--accent)}.map-units-row label input{display:none}.legal-page{max-width:720px;margin:0 auto;padding:48px 24px 96px;color:var(--text);line-height:1.6;font-size:15px}.legal-head{margin-bottom:24px}.legal-head h1{margin:8px 0;font-size:28px}.legal-meta{color:var(--muted);font-size:12px}.legal-back{color:var(--muted);text-decoration:none;font-size:13px}.legal-back:hover{color:var(--accent)}.legal-page section{margin-bottom:28px}.legal-page section h2{font-size:17px;margin:0 0 8px;color:var(--accent);font-weight:700}.legal-page section ul{padding-left:20px}.legal-emphasis{border-left:3px solid #ff6b6b;background:rgba(255,70,70,.05);padding:12px 16px;border-radius:4px}.legal-foot{margin-top:48px;padding-top:16px;border-top:1px solid var(--border-strong);font-size:13px}.legal-foot a{color:var(--accent);text-decoration:none}.legal-foot a:hover{text-decoration:underline}.app-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-strong);display:flex;justify-content:center;gap:12px;font-size:11px;color:var(--muted)}.app-footer a{color:inherit;text-decoration:none}.app-footer a:hover{color:var(--accent)}.app-footer-btn{background:none;border:none;padding:0;color:inherit;font:inherit;cursor:pointer}.app-footer-btn:hover{color:var(--accent)}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:1100;display:grid;place-items:center;padding:16px}.modal-card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--border-strong);border-radius:14px;padding:20px 22px;color:var(--text);box-shadow:0 12px 40px rgba(0,0,0,.5)}.modal-card h3{margin:0 0 8px;font-size:18px}.modal-card p{margin:0 0 8px;color:var(--muted);font-size:13px}.modal-card ul{margin:0 0 14px;padding-left:18px;font-size:13px;line-height:1.7}.modal-card a{color:var(--accent);text-decoration:none}.modal-card a:hover{text-decoration:underline}.modal-card .btn{width:100%}.consent-row{display:flex;align-items:flex-start;gap:8px;padding:6px 0;font-size:12px;color:var(--muted);line-height:1.4;cursor:pointer}.consent-row input{margin-top:2px;flex-shrink:0;cursor:pointer}.consent-row a{color:var(--accent);text-decoration:none}.consent-row a:hover{text-decoration:underline}.consent-block{margin:12px 0 4px;padding:10px;border-radius:6px;background:hsla(0,0%,100%,.03)}.turnstile-block{margin:12px 0 4px;padding:12px;border-radius:8px;background:rgba(76,201,240,.06);border:1px solid rgba(76,201,240,.25)}.turnstile-prompt{font-size:12px;color:var(--muted);text-align:center;margin-bottom:8px}.turnstile-host{display:flex;justify-content:center}.place-autocomplete{position:relative}.place-autocomplete input{width:100%}.place-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:100;max-height:240px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--glass-strong);border:1px solid var(--border-strong);border-radius:10px;box-shadow:var(--shadow-menu)}.place-menu li{display:flex;align-items:baseline;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;font-size:13px;line-height:1.3}.place-menu li.active,.place-menu li:hover{background:rgba(76,201,240,.12)}.place-name{font-weight:600;color:var(--text)}.place-context,.place-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.place-context{flex:1 1;color:var(--muted);font-size:12px}.place-kind{flex-shrink:0;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);opacity:.7}.place-loading{padding:6px 10px;font-size:12px;color:var(--muted);text-align:center}.map-disclaimer{position:absolute;left:12px;bottom:12px;z-index:650;pointer-events:none;width:var(--map-pill-width);max-width:calc(100% - 24px);box-sizing:border-box;text-align:center;padding:5px 12px;background:rgba(255,70,70,.18);border:1px solid rgba(255,70,70,.55);color:#ff9a9a;border-radius:999px;font-size:11px;letter-spacing:.04em;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.map-disclaimer strong{color:#ffd2d2}.leaflet-tooltip.isobath-label{background:rgba(13,27,42,.2);color:var(--text);border:1px solid rgba(76,201,240,.35);border-radius:4px;padding:1px 5px;font-size:10px;font-weight:600;letter-spacing:.02em;box-shadow:none;white-space:nowrap;pointer-events:none}.leaflet-tooltip.isobath-label:before{display:none}.leaflet-marker-icon.isobath-anchor{background:transparent!important;border:none!important;pointer-events:none!important}@keyframes isobath-pulse{0%,to{stroke-opacity:.45!important}50%{stroke-opacity:.12!important}}.isobath-pulse{animation:isobath-pulse 1.1s ease-in-out infinite}.routing-banner{padding:14px 18px}.routing-banner-title{font-size:15px;font-weight:700;margin-bottom:4px}.routing-banner-desc{font-size:13px;color:var(--muted);line-height:1.45}.routing-banner-stats{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:10px;font-size:12px;color:var(--muted)}.routing-banner-stats b{color:var(--text);font-weight:600}.routing-banner-extra{color:#f0b86a}.longhaul-quality{padding:1px 8px;border-radius:12px;font-size:.85em;border:1px solid}.longhaul-quality-clean{color:#76d2da}.longhaul-quality-minor_coastline_touch{color:#f0b86a}.longhaul-quality-warning{color:#ff8a3d}.longhaul-quality-unsafe{color:#ff6b6b;font-weight:600}.routing-direct{border-left:3px solid #3fa9b0}.routing-direct .routing-banner-title{color:#76d2da}.routing-detour{border-left:3px solid #4cc9f0;background:rgba(76,201,240,.05)}.routing-detour .routing-banner-title{color:var(--accent)}.routing-failed{border-left:3px solid #ff6b6b;background:rgba(255,70,70,.07)}.routing-failed .routing-banner-title{color:#ff8b81}.routing-coverage-limited{border-left:3px solid #f0b86a;background:hsla(35,82%,68%,.06)}.routing-coverage-limited .routing-banner-title{color:#f0b86a}.snap-notice{display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;border-radius:8px;background:rgba(255,200,100,.08);border:1px solid rgba(255,200,100,.3);color:#f0c87a;font-size:12px;line-height:1.4}.snap-notice-icon{font-size:14px;line-height:1}.chip{background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--text);border:1px solid var(--border-strong);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.chip:hover{background:var(--glass-strong)}.topbar-right{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end}.topbar-right>*+*{margin-left:0}.locale-switcher{position:relative}.locale-chip{padding:8px 12px}.locale-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:180px;list-style:none;margin:0;padding:6px;background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-strong);border-radius:12px;box-shadow:0 10px 32px rgba(0,0,0,.4);z-index:900}.locale-item{width:100%;background:transparent;color:var(--text);border:0;text-align:left;padding:8px 10px;border-radius:8px;font-size:13px;cursor:pointer}.locale-item:hover{background:rgba(76,201,240,.12)}.locale-item.active{background:rgba(76,201,240,.18);color:var(--accent)}.sheet-stack{position:absolute;left:0;right:0;bottom:0;z-index:600;display:flex;flex-direction:column;align-items:center;padding-bottom:var(--safe-bottom);pointer-events:none;transition:transform .22s cubic-bezier(.3,.7,.4,1),opacity .22s ease;will-change:transform,opacity}.sheet-stack>*{pointer-events:auto}.sheet-stack.sheet-dimmed{transform:translateY(50%);opacity:.55}.sheet-stack.sheet-stack--fab.sheet-dimmed{transform:none;opacity:1}.sheet{width:100%;max-width:720px;background:var(--panel);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--border-strong);border-radius:20px 20px 0 0;padding:4px 16px 16px;box-shadow:0 -8px 40px rgba(0,0,0,.35);animation:slideUp .25s cubic-bezier(.2,.9,.3,1.1)}@keyframes slideUp{0%{transform:translateY(60%);opacity:.3}to{transform:translateY(0);opacity:1}}.sheet-plan{max-height:72vh;overflow-y:auto}.sheet-result{max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.sheet-auth{max-width:380px;max-height:80vh}.sheet-scroll{overflow-y:auto;padding-bottom:16px}.profile-signin-cta{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.profile-signin-cta p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.sheet-handle-btn{display:block;width:100%;background:transparent;border:none;padding:14px 0 10px;cursor:pointer;-webkit-tap-highlight-color:hsla(0,0%,100%,.08);transition:background .15s}.sheet-handle-btn:focus-visible .sheet-handle,.sheet-handle-btn:hover .sheet-handle{background:var(--accent)}.sheet-handle{display:block;width:44px;height:5px;background:var(--border-strong);border-radius:3px;margin:0 auto;transition:background .15s,width .15s}.sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35);z-index:900;display:flex;align-items:flex-end;justify-content:center;padding:0 16px var(--safe-bottom);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.onboarding-backdrop{z-index:950;align-items:center;padding:16px}.onboarding-sheet{position:relative;max-width:400px;width:100%;border-radius:20px;padding:28px 22px 18px;text-align:center}.onboarding-close{position:absolute;top:10px;right:12px;background:transparent;border:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:4px 8px}.onboarding-close:hover{color:var(--text)}.onboarding-icon{font-size:40px;margin-bottom:8px}.onboarding-title{display:block;font-size:18px;margin-bottom:6px}.onboarding-body{margin:0 auto 14px;max-width:34ch;color:var(--muted);font-size:14px;line-height:1.5}.onboarding-dots{display:flex;gap:7px;justify-content:center;margin-bottom:14px}.onboarding-dots span{width:7px;height:7px;border-radius:999px;background:var(--border-strong)}.onboarding-dots span.is-active{background:var(--accent)}.onboarding-actions{display:flex;flex-direction:column;gap:8px}.onboarding-actions .btn{width:100%;text-align:center}.onboarding-skip{margin-top:10px;background:transparent;border:none;color:var(--muted);font-size:12px;cursor:pointer;text-decoration:underline}.onboarding-skip:hover{color:var(--text)}.plan-sheet{display:flex;flex-direction:column;gap:10px;padding-top:8px;position:relative}.plan-sheet-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:4px}.plan-sheet-fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;min-width:0}.plan-sheet-busy .plan-sheet-fieldset{opacity:.55;filter:blur(.5px);transition:opacity .12s ease}.plan-sheet-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:5;background:var(--panel-soft,rgba(15,23,32,.45));backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border-radius:inherit;pointer-events:auto}.plan-sheet-loader-label{font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--text);text-shadow:0 1px 2px rgba(0,0,0,.35)}.plan-sheet-loader-spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--border-strong);border-top-color:var(--accent);animation:plan-sheet-spin .72s linear infinite}@keyframes plan-sheet-spin{to{transform:rotate(1turn)}}@media(prefers-reduced-motion:reduce){.plan-sheet-loader-spinner{animation:none;opacity:.65}}.preset-row{display:flex;gap:6px;flex-wrap:wrap}.preset-chip{background:var(--bg-soft);border:1px solid var(--border);color:var(--text);padding:5px 10px;border-radius:999px;font-size:11px;cursor:pointer;transition:border-color .12s,background .12s,color .12s;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-chip-random,.preset-chip:hover{border-color:var(--accent)}.preset-chip-random{background:rgba(76,201,240,.1);color:var(--accent);font-weight:600}.preset-chip-random:hover{background:rgba(76,201,240,.2)}.anon-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin:6px 0 10px;background:rgba(76,201,240,.08);border:1px solid rgba(76,201,240,.35);border-radius:12px}.anon-cta strong{color:var(--accent)}.field-row{display:flex;gap:8px}.field{flex:1 1;display:flex;flex-direction:column;gap:4px;min-width:0}.field label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font:inherit;line-height:1.2;min-width:0;min-height:44px;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field select{padding-right:32px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%238aa0b6' d='M0 0l5 6 5-6z'/></svg>");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field input[type=checkbox],.field input[type=radio]{width:20px;height:20px;flex:none;min-height:0;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background-image:none;padding:0}.actions{display:flex;gap:8px;justify-content:space-between;margin-top:4px}.btn{background:var(--accent);color:#042033;border:none;border-radius:12px;padding:11px 18px;font-weight:600;font-size:14px;cursor:pointer;transition:transform .06s ease;min-height:44px}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:var(--bg-soft);color:var(--text);border:1px solid var(--border)}.fab{background:var(--accent);color:#042033;border:none;border-radius:999px;padding:14px 28px;font-weight:700;font-size:15px;cursor:pointer;margin-bottom:16px;box-shadow:0 8px 24px rgba(76,201,240,.45)}.banner{padding:10px 14px;border-radius:10px;font-weight:500;font-size:13px;margin:8px 0}.banner.error{background:rgba(231,76,60,.15);color:#ff8b81;border:1px solid rgba(231,76,60,.35)}.card{background:var(--panel-soft);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px}.decision-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-weight:700;font-size:11px;letter-spacing:.04em;white-space:nowrap;line-height:1.4}.decision-GO{background:color-mix(in srgb,var(--go) 18%,transparent);color:var(--go)}.decision-WAIT{background:color-mix(in srgb,var(--wait) 18%,transparent);color:var(--wait)}.decision-CHANGE_ROUTE{background:color-mix(in srgb,var(--change) 18%,transparent);color:var(--change)}.decision-UNSAFE{background:color-mix(in srgb,var(--unsafe) 18%,transparent);color:var(--unsafe)}.risk-low{color:#6fe2a0}.risk-medium{color:#f4d35e}.risk-high{color:#ffaf6c}.risk-critical{color:#ff5a4a;font-weight:700}table.wp{width:100%;border-collapse:collapse;font-size:12px}table.wp td,table.wp th{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left}table.wp th{color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase}.map-hud{position:absolute;top:calc(var(--safe-top) + 110px);right:14px;z-index:500;display:flex;flex-direction:column;gap:8px;min-width:220px;padding:12px 14px;background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-overlay);color:var(--text);isolation:isolate;transform:translateZ(0)}.map-hud-row{display:flex;gap:6px;flex-wrap:wrap}.map-hud-row .btn{flex:1 1;padding:7px 12px;font-size:12px;min-height:auto;border-radius:10px;letter-spacing:.02em}.map-hud-readout{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;padding:10px 0;border-top:1px solid hsla(0,0%,100%,.06);border-bottom:1px solid hsla(0,0%,100%,.06)}.map-hud-readout>div{text-align:center}.map-hud-label{display:block;font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.map-hud-value{font-size:22px;font-weight:700;color:var(--accent);line-height:1.2}.map-hud-unit{margin-left:2px}.map-hud-foot,.map-hud-unit{font-size:10px;color:var(--muted)}.map-hud-foot{letter-spacing:.04em;display:flex;align-items:center;justify-content:space-between;gap:8px}.top-tabs{position:absolute;top:calc(var(--safe-top) + 20px);left:50%;transform:translateX(-50%);z-index:810;display:flex;gap:4px;padding:4px;background:var(--glass);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid var(--border);border-radius:999px;box-shadow:var(--shadow-overlay);pointer-events:auto}.top-tab{background:transparent;border:none;color:var(--muted);padding:6px 16px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .15s,color .15s}.top-tab:hover{color:var(--text)}.top-tab.active{background:rgba(76,201,240,.18);color:var(--accent)}.map-loading{display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;height:100%;color:var(--muted)}.map-loading-spinner{width:32px;height:32px;border:3px solid rgba(76,201,240,.2);border-top:3px solid var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.leaflet-container{background:var(--bg);font-family:inherit}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--panel-solid);color:var(--text);border-radius:10px}.leaflet-popup-content{margin:10px 12px;font-size:12px;max-width:min(280px,100vw - 48px);overflow-wrap:anywhere}.leaflet-control-attribution{background:var(--glass)!important;color:var(--muted)!important;font-size:10px!important}.leaflet-control-attribution a{color:var(--accent)!important}.leaflet-control-zoom a{background:var(--glass)!important;color:var(--text)!important;border-color:var(--border-strong)!important}.apple-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#000;color:#fff;border:none;border-radius:12px;padding:11px 18px;font-size:14px;font-weight:600;cursor:pointer;min-height:44px}.apple-btn:active{transform:scale(.97)}.apple-btn:disabled{opacity:.5}.auth-disabled{font-size:11px;color:var(--muted);text-align:center;padding:8px 12px;border:1px dashed var(--border);border-radius:10px}.toast-stack{position:fixed;bottom:calc(var(--safe-bottom, 0px) + 52px);left:12px;right:auto;top:auto;transform:none;z-index:950;display:flex;flex-direction:column-reverse;gap:8px;width:var(--map-pill-width);max-width:calc(100% - 24px);pointer-events:none}.toast{display:flex;align-items:flex-start;gap:10px;width:100%;box-sizing:border-box;padding:12px 14px;border-radius:12px;border:1px solid var(--border-strong);background:var(--glass-strong);color:var(--text);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-overlay);pointer-events:auto;animation:toastIn .22s cubic-bezier(.2,.9,.3,1.05) both;transition:opacity .22s ease,transform .22s ease}.toast-leaving{opacity:0;transform:translateY(12px) scale(.98);pointer-events:none}@keyframes toastIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.toast-info{border-left:3px solid var(--accent)}.toast-warn{border-left:3px solid var(--change);background:linear-gradient(0deg,rgba(230,126,34,.1),rgba(230,126,34,.1)),var(--glass-strong)}.toast-critical{border-left:3px solid var(--unsafe);background:linear-gradient(0deg,rgba(231,76,60,.12),rgba(231,76,60,.12)),var(--glass-strong)}.toast-close{background:transparent;border:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.history-row,.toast-close:hover{color:var(--text)}.history-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;transition:border-color .15s,background .15s}.history-row:hover{border-color:var(--accent);background:rgba(76,201,240,.05)}.share-hud{position:absolute;bottom:calc(var(--safe-bottom) + 16px);left:50%;transform:translateX(-50%);z-index:600;background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-strong);border-radius:16px;padding:12px 16px;width:calc(100% - 24px);max-width:380px}.share-hud-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;text-align:center}.referral-landing{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at top,rgba(76,201,240,.15),transparent 50%),var(--bg)}.referral-card{text-align:center;background:var(--panel);border:1px solid var(--border-strong);border-radius:20px;padding:32px 28px;max-width:360px;width:100%;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.referral-mark{font-size:48px;line-height:1}.cms-shell{position:relative;height:100vh;background:var(--bg);color:var(--text);padding:20px;overflow-y:auto;overscroll-behavior:contain}.cms-blocked,.cms-loading{display:grid;place-items:center;min-height:100vh;background:var(--bg);color:var(--text);padding:24px}.cms-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.cms-header h1{margin:0;font-size:20px}.cms-header p{margin:2px 0 0;color:var(--muted);font-size:12px}.cms-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.stat-card{background:var(--panel-soft);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.stat-value{font-size:26px;font-weight:700;margin-top:4px;color:var(--accent)}.cms-grid{display:grid;grid-template-columns:2fr 1fr;grid-gap:16px;gap:16px;margin-bottom:16px}@media(max-width:900px){.cms-grid{grid-template-columns:1fr}}.cms-map-wrap{display:flex;flex-direction:column}.cms-map-container{flex:1 1;height:460px;border-radius:12px;overflow:hidden;border:1px solid var(--border)}.cms-side{gap:12px}.cms-breakdown,.cms-side{display:flex;flex-direction:column}.cms-breakdown{list-style:none;margin:0;padding:0;gap:6px}.cms-breakdown li{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background:var(--bg-soft);border-radius:8px;font-size:13px}.cms-section{margin-bottom:24px}.cms-section>strong{display:block;margin-bottom:8px}.cms-table-wrap{background:var(--panel-soft);border:1px solid var(--border);border-radius:12px;overflow:auto;max-height:440px}.cms-table{width:100%;border-collapse:collapse;font-size:12px}.cms-table th{text-align:left;color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.06em;position:-webkit-sticky;position:sticky;top:0;background:var(--panel-solid)}.cms-table td,.cms-table th{padding:8px 10px;border-bottom:1px solid var(--border)}.cms-table tr:hover td{background:rgba(76,201,240,.04)}.cms-table a{color:var(--accent)}.preset-chip-active{border-color:var(--accent);background:rgba(76,201,240,.1)}.profile-avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;border:2px solid var(--border-strong);flex:none;background:var(--bg-soft)}.profile-avatar-sm{width:56px;height:56px;border-width:1px}.profile-avatar-fallback{display:grid;place-items:center;font-weight:700;font-size:24px;color:var(--accent);background:linear-gradient(135deg,rgba(76,201,240,.18),rgba(76,201,240,.04))}.profile-avatar-sm.profile-avatar-fallback{font-size:18px}.profile-page{min-height:100vh;background:var(--bg);color:var(--text)}.profile-page-main{max-width:560px;margin:0 auto;padding:calc(var(--safe-top) + 80px) 16px 32px}.profile-card{padding:24px}.profile-head{display:flex;gap:16px;align-items:center}.profile-head h1{font-size:22px}.profile-passages-list{list-style:none;margin:0;padding:0}.profile-passage-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:8px 4px;border-bottom:1px solid var(--border);text-decoration:none;color:inherit}.profile-passages-list li:last-child .profile-passage-row{border-bottom:none}.profile-passage-row:hover{background:hsla(0,0%,100%,.03)}.profile-passage-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-passage-meta{color:var(--muted);font-size:12px;white-space:nowrap}.marine-marker{display:flex!important;align-items:center;justify-content:center;width:22px!important;height:22px!important;border-radius:50%;background:rgba(232,240,250,.92);border:1.5px solid #3a5777;font-size:14px;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.45);box-shadow:none}.marine-marker--hazard,.marine-marker--role-hard_avoid{background:hsla(0,100%,95%,.92);border-color:#c94646}.marine-marker--role-hard_avoid{border-width:2px}.marine-marker--role-soft_avoid{background:rgba(255,240,220,.92);border-color:#d68a3a;border-width:2px}.marine-marker--role-guide_or_channel{background:rgba(224,244,228,.92);border-color:#3a8a4f;border-width:2px}.marine-marker--role-nav_aid_warn{background:rgba(238,230,250,.92);border-color:#7a5fb0;border-width:2px}.marine-popup-actions{display:flex;flex-wrap:wrap;gap:6px}.marine-popup-actions .btn-mini{font-size:11px;padding:4px 8px;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-soft);color:var(--text);cursor:pointer;line-height:1}.marine-popup-actions .btn-mini:hover{background:rgba(76,201,240,.12);border-color:var(--accent)}.stop-timeline{padding:14px 18px}.stop-weather{font-weight:600}.stop-weather-safe{color:#2ecc71}.stop-weather-caution{color:#f0b86a}.stop-weather-unsafe{color:#ff6b6b}.alarms-panel{padding:14px 18px}.alarms-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.alarms-row{display:flex;align-items:center;gap:10px;margin:6px 0}.alarms-row-wrap{flex-wrap:wrap}.alarms-label{font-size:12px;color:var(--muted);letter-spacing:.02em}.alarms-fix{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);font-size:11px;color:var(--muted)}.alarms-fix-acc{opacity:.7}.alarms-threshold-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0}.btn-pill{border:1px solid var(--border-strong);background:var(--bg-soft);color:var(--text);padding:4px 10px;border-radius:999px;font-size:12px;cursor:pointer}.btn-pill.active,.btn-pill:hover{border-color:var(--accent)}.btn-pill.active{background:rgba(76,201,240,.18);color:var(--accent)}.btn-pill:disabled{opacity:.45;cursor:not-allowed}.alarms-radius-custom{width:70px;background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);padding:4px 6px;font-size:12px}.alarms-anchor-pos{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);font-size:11px;color:var(--muted);margin:4px 0 8px}.alarms-status{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:6px 10px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border-strong);font-size:12px}.alarms-status-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.alarms-status-detail{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);color:var(--muted);font-size:11px;margin-left:4px}.alarms-status-off .alarms-status-dot,.alarms-status-tracking-off .alarms-status-dot{background:#5d6e80}.alarms-status-on-route{color:#2ecc71;border-color:rgba(46,204,113,.4)}.alarms-status-on-route .alarms-status-dot{background:#2ecc71}.alarms-status-holding{color:#2ecc71;border-color:rgba(46,204,113,.4)}.alarms-status-holding .alarms-status-dot{background:#2ecc71}.alarms-status-no-fix{color:#f0b86a;border-color:hsla(35,82%,68%,.4)}.alarms-status-no-fix .alarms-status-dot{background:#f0b86a}.alarms-status-dragging,.alarms-status-off-route{color:#ff6b6b;border-color:#c94646;background:rgba(201,70,70,.1);font-weight:700}.alarms-status-dragging .alarms-status-dot,.alarms-status-off-route .alarms-status-dot{background:#ff6b6b;animation:alarms-pulse 1s ease-in-out infinite}@keyframes alarms-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.alarms-warn{margin:8px 0;padding:8px 10px;font-size:12px;border-radius:6px;background:hsla(35,82%,68%,.08);border:1px solid hsla(35,82%,68%,.35);color:#f0b86a}.alarms-banner{margin-top:14px;padding:12px 14px;border-radius:8px;background:rgba(201,70,70,.16);border:1px solid #c94646;color:#ffe2e2;animation:alarms-banner-pulse 1.2s ease-in-out infinite}.alarms-banner-title{font-size:15px;font-weight:800;letter-spacing:.02em}.alarms-banner-desc{font-size:13px;margin-top:4px;line-height:1.45}.alarms-silence-btn{margin-top:10px;padding:6px 12px;border-radius:6px;background:hsla(0,100%,94%,.14);border:1px solid hsla(0,100%,94%,.5);color:#ffe2e2;font-size:13px;font-weight:600;cursor:pointer}.alarms-silence-btn:hover:not(:disabled){background:hsla(0,100%,94%,.24)}.alarms-silence-btn:disabled{opacity:.55;cursor:default}@keyframes alarms-banner-pulse{0%,to{box-shadow:0 0 0 0 hsla(0,100%,71%,.5)}50%{box-shadow:0 0 0 8px hsla(0,100%,71%,0)}}.alarm-anchor-dragging,.alarm-offroute{animation:alarm-viz-pulse 1s ease-in-out infinite}@keyframes alarm-viz-pulse{0%,to{stroke-opacity:.95}50%{stroke-opacity:.35}}.alarms-disclaimer{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;line-height:1.45}.notes-panel{padding:14px 18px}.notes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.notes-header-side{display:flex;align-items:center;gap:8px}.notes-count{font-size:11px;color:var(--muted);background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:999px;padding:1px 8px}.notes-actions{display:flex;gap:8px;flex-wrap:wrap}.notes-warn{margin:10px 0;padding:8px 10px;font-size:12px;border-radius:6px;background:rgba(201,70,70,.1);border:1px solid #c94646;color:#ffb4b4}.notes-form{display:flex;flex-direction:column;gap:10px;margin:14px 0;padding:12px;border-radius:8px;background:hsla(0,0%,100%,.03);border:1px solid var(--border)}.notes-form-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.notes-form-grow{flex:1 1 200px}.notes-form label{display:flex;flex-direction:column;gap:4px;min-width:130px}.notes-form .notes-label{font-size:11px;color:var(--muted);letter-spacing:.02em}.notes-form input[type=datetime-local],.notes-form input[type=text],.notes-form select,.notes-form textarea{background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);padding:6px 8px;font-size:13px;font-family:inherit}.notes-form textarea{resize:vertical;min-height:80px}.notes-form-checkbox{flex-direction:row!important;align-items:center;gap:8px;font-size:12px}.notes-form-coords{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);font-size:11px;color:var(--muted)}.notes-form-actions{display:flex;gap:8px;margin-top:4px}.notes-empty{margin:12px 0;padding:14px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:6px;font-size:12px}.notes-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0 0}.notes-filter input[type=search],.notes-filter select{background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);padding:6px 8px;font-size:12px;font-family:inherit}.notes-filter input[type=search]{flex:1 1 160px;min-width:0}.notes-filter-empty{margin:12px 0 0;text-align:center;color:var(--muted);font-size:12px}.notes-list{list-style:none;padding:0;margin:14px 0 0}.notes-item{padding:10px 0;border-top:1px solid var(--border)}.notes-item:first-child{border-top:none}.notes-item-row{display:flex;gap:12px;align-items:flex-start}.notes-item-icon{font-size:16px;flex:none;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:var(--bg-soft);border:1px solid var(--border-strong)}.notes-item-main{flex:1 1;min-width:0}.notes-item-title{font-size:13px}.notes-item-type{color:var(--accent);font-weight:600}.notes-item-meta{font-size:11px;color:var(--muted);margin-top:2px}.notes-item-body{font-size:13px;margin-top:6px;white-space:pre-wrap;line-height:1.45}.notes-item-actions{display:flex;flex-direction:column;gap:4px}.btn-mini{display:inline-flex;align-items:center;gap:6px;background:var(--bg-soft);color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:7px 12px;font-size:12px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .12s,border-color .12s,color .12s,transform .06s}.btn-mini:hover{background:rgba(76,201,240,.1);border-color:var(--accent);color:var(--accent)}.btn-mini:active{transform:translateY(1px)}.btn-mini:disabled{opacity:.5;cursor:not-allowed}.btn-mini-danger{color:#ff9a9a;border-color:rgba(201,70,70,.5)}.btn-mini-danger:hover{background:rgba(201,70,70,.1);border-color:#c94646}.notes-disclaimer{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;line-height:1.45}.note-marker{display:flex!important;align-items:center;justify-content:center;width:22px!important;height:22px!important;border-radius:6px;background:rgba(238,234,252,.92);border:1.5px solid #8a7adb;font-size:14px;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.45);box-shadow:0 0 0 2px rgba(0,0,0,.25)}.note-marker--hazard{background:hsla(0,100%,95%,.92);border-color:#c94646}.briefing-panel{padding:16px 18px}.briefing-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.briefing-header-title{font-size:14px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.briefing-badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.04em;border:1px solid}.briefing-badge-go{color:#2ecc71;border-color:rgba(46,204,113,.5);background:rgba(46,204,113,.1)}.briefing-badge-wait{color:#f0b86a;border-color:hsla(35,82%,68%,.5);background:hsla(35,82%,68%,.1)}.briefing-badge-change_route{color:#4cc9f0;border-color:rgba(76,201,240,.5);background:rgba(76,201,240,.1)}.briefing-badge-unsafe{color:#ff6b6b;border-color:#c94646;background:rgba(201,70,70,.16)}.briefing-rec-unsafe .briefing-header-title{color:#ff9a9a}.briefing-summary{margin:8px 0 14px;color:var(--text);line-height:1.55}.briefing-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.briefing-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border-strong);color:var(--muted);white-space:nowrap;line-height:1.4}.briefing-chip-warn{color:var(--badge-caution);border-color:color-mix(in srgb,var(--badge-caution) 45%,transparent);background:color-mix(in srgb,var(--badge-caution) 8%,transparent)}.briefing-risks{margin:8px 0 12px}.briefing-risks ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-wrap:wrap;gap:6px}.briefing-risks li{font-size:12px;padding:3px 8px;border-radius:6px;background:var(--bg-soft);border:1px solid var(--border-strong)}.briefing-risk-warn{color:#f0b86a;border-color:hsla(35,82%,68%,.4)}.briefing-risk-critical{color:#ff6b6b;border-color:rgba(201,70,70,.55)}.briefing-daily ol{list-style:none;padding:0;margin:8px 0 0}.daily-row{margin:8px 0;padding:10px 12px;border-radius:8px;background:hsla(0,0%,100%,.025);border-left:3px solid var(--border-strong)}.daily-good_sailing{border-left-color:#2ecc71}.daily-motor_likely{border-left-color:#f0b86a}.daily-uncomfortable{border-left-color:#f59538}.daily-unsafe{border-left-color:#c94646;background:rgba(201,70,70,.06)}.daily-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.daily-cond,.daily-row-stats{font-size:12px;color:var(--muted)}.daily-row-stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.daily-row-eta{font-size:11px;color:var(--muted);margin-top:4px;font-family:var(--mono,ui-monospace,SFMono-Regular,monospace)}.daily-row-notes{font-size:12px;color:var(--text);margin-top:6px;opacity:.9}.checklist-block{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.checklist-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.checklist-counter{font-size:11px;color:var(--muted);background:var(--bg-soft);border:1px solid var(--border-strong);border-radius:999px;padding:1px 8px;margin-left:auto}.checklist-body{transition:max-height .2s ease}.checklist-body-collapsed{max-height:92px;overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(180deg,#000 35%,transparent 95%);mask-image:linear-gradient(180deg,#000 35%,transparent 95%)}.checklist-category{margin:8px 0}.checklist-cat-title{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.checklist-category ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;grid-column-gap:16px;column-gap:16px}.checklist-category li{padding:0;font-size:13px;min-width:0}@media(max-width:420px){.checklist-category ul{grid-template-columns:1fr}}.checklist-category label{display:flex;align-items:center;gap:10px;cursor:pointer;padding:7px 8px;margin:0 -8px;border-radius:8px;transition:background .12s}.checklist-category label:hover{background:rgba(76,201,240,.06)}.checklist-category label input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--accent);cursor:pointer;margin:0}.checklist-category .checked{color:var(--muted);text-decoration:line-through}.window-section{margin:14px 0 8px;padding:12px;border-radius:8px;background:hsla(0,0%,100%,.025);border:1px solid var(--border)}.window-head{margin-bottom:8px}.window-best{display:flex;align-items:center;gap:12px;margin-bottom:10px}.window-best-line{font-size:13px}.window-best-summary{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.45}.window-rec{font-size:11px;font-weight:700;letter-spacing:.04em;padding:1px 8px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border-strong);color:var(--muted);margin-left:4px}.window-score{font-size:14px;font-weight:800;padding:4px 10px;border-radius:8px;background:var(--bg-soft);border:1px solid var(--border-strong);min-width:64px;text-align:center}.window-score-green{color:#2ecc71;border-color:rgba(46,204,113,.5);background:rgba(46,204,113,.08)}.window-score-yellow{color:#f0b86a;border-color:hsla(35,82%,68%,.5);background:hsla(35,82%,68%,.06)}.window-score-red{color:#ff6b6b;border-color:rgba(201,70,70,.55);background:rgba(201,70,70,.08)}.window-candidates{list-style:none;padding:0;margin:8px 0 0}.window-cand{display:grid;grid-template-columns:110px 50px 90px 1fr;grid-gap:8px;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;font-size:12px;border:1px solid transparent}.window-cand-best{border-color:var(--accent);background:rgba(76,201,240,.08)}.window-cand-date{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace)}.window-cand-score{text-align:center;font-weight:800;border-radius:999px;padding:1px 0}.window-cand-rec,.window-cand-risks{font-size:11px;color:var(--muted)}.window-cand-risks{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.window-warn{margin:8px 0;padding:8px 10px;font-size:12px;border-radius:6px;background:hsla(35,82%,68%,.08);border:1px solid hsla(35,82%,68%,.45);color:#f0b86a}.shallow-critical{animation:shallow-critical-pulse 1.4s ease-in-out infinite}@keyframes shallow-critical-pulse{0%,to{stroke-opacity:1;fill-opacity:.6}50%{stroke-opacity:.35;fill-opacity:.2}}.briefing-link-btn,.briefing-risk-jump{margin-left:6px;padding:1px 8px;font-size:11px;background:transparent;border:1px solid var(--border-strong);border-radius:999px;color:var(--accent);cursor:pointer}.briefing-link-btn:hover,.briefing-risk-jump:hover{border-color:var(--accent);background:rgba(76,201,240,.1)}.briefing-shallow-hint{margin-top:10px;padding:8px 10px;font-size:12px;background:rgba(201,70,70,.1);border:1px solid #c94646;border-radius:6px;color:#ffb4b4;line-height:1.45}.briefing-shallow-hint .briefing-link-btn{color:#ffe2e2;border-color:#c94646;background:hsla(0,100%,71%,.05)}.briefing-shallow-warn{margin-top:10px;padding:8px 10px;font-size:12px;background:hsla(35,82%,68%,.08);border:1px solid hsla(35,82%,68%,.5);border-radius:6px;color:#f0b86a;line-height:1.45}.briefing-shallow-info{margin-top:6px;padding:6px 10px;font-size:11px;background:rgba(125,168,196,.06);border:1px solid rgba(125,168,196,.35);border-radius:6px;color:#7da8c4;line-height:1.45}.hazard-danger{animation:hazard-danger-pulse 1.6s ease-in-out infinite}@keyframes hazard-danger-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.briefing-hazards{margin:14px 0 8px;padding:12px;border-radius:8px;background:hsla(0,0%,100%,.025);border:1px solid var(--border)}.briefing-hazards-counts{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.hazard-count{font-size:11px;padding:2px 10px;border-radius:999px;font-weight:600;border:1px solid var(--border-strong)}.hazard-count-danger{color:#ff6b6b;border-color:rgba(201,70,70,.55);background:rgba(201,70,70,.08)}.hazard-count-caution{color:#f0b86a;border-color:hsla(35,82%,68%,.55);background:hsla(35,82%,68%,.06)}.hazard-count-info{color:#7da8c4}.briefing-hazards-hint{margin:8px 0;padding:8px 10px;font-size:12px;background:rgba(201,70,70,.1);border:1px solid #c94646;border-radius:6px;color:#ffb4b4;line-height:1.45}.briefing-hazards-list{list-style:none;padding:0;margin:8px 0 0}.hazard-row{display:grid;grid-template-columns:14px 110px 1fr 80px 60px;grid-gap:8px;gap:8px;align-items:center;padding:5px 6px;font-size:12px;border-bottom:1px solid var(--border)}.hazard-row:last-child{border-bottom:none}.hazard-sev-dot{width:10px;height:10px;border-radius:50%;background:#7da8c4}.hazard-danger .hazard-sev-dot{background:#ff6b6b}.hazard-caution .hazard-sev-dot{background:#f0b86a}.hazard-info .hazard-sev-dot{background:#7da8c4}.hazard-type{color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.04em}.hazard-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hazard-dist{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);color:var(--muted);text-align:right}.briefing-shallow-list{list-style:none;padding:0;margin:8px 0 0}.shallow-row{display:grid;grid-template-columns:14px 70px 1fr 70px auto;grid-gap:8px;gap:8px;align-items:center;padding:5px 6px;font-size:12px;border-bottom:1px solid var(--border)}.shallow-row:last-child{border-bottom:none}.shallow-actions{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end}.shallow-flag-btn{background:transparent;border:none;color:var(--muted);font-size:13px;line-height:1;padding:2px 4px;cursor:pointer}.shallow-flag-btn:hover{color:#ff6b6b}.shallow-flagged{color:#4caf50;font-size:13px}.shallow-flag-row{grid-column:1/-1;display:flex;gap:6px;align-items:center;padding:2px 0 4px}.shallow-flag-note{flex:1 1 auto;min-width:0;padding:4px 8px;font:inherit;font-size:12px;color:var(--text);background:transparent;border:1px solid var(--border);border-radius:6px}.shallow-flag-err{color:#ff6b6b;font-weight:700}.shallow-sev-dot{width:10px;height:10px;border-radius:50%;background:#f0b86a}.shallow-critical .shallow-sev-dot{background:#ff6b6b}.shallow-medium .shallow-sev-dot{background:#f0b86a}.shallow-depth{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);color:var(--muted)}.shallow-desc{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shallow-dist{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);color:var(--muted);text-align:right}.alt-panel{padding:14px 18px}.alt-disclaimer{font-size:11px;color:var(--muted);margin-bottom:10px}.alt-cards{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.alt-card{padding:10px 12px;border:1px solid var(--border-strong);border-radius:8px;background:hsla(0,0%,100%,.025);display:flex;flex-direction:column;gap:6px;cursor:default;transition:box-shadow .12s ease,border-color .12s ease}.alt-card-selected{border-color:var(--accent);background:rgba(76,201,240,.06)}.alt-card-previewed{box-shadow:0 0 0 2px hsla(35,82%,68%,.45)}.alt-card-highlighted{box-shadow:0 0 0 2px rgba(76,201,240,.35)}.alt-card-failed{opacity:.7}.alt-card-head{display:flex;align-items:center;gap:6px}.alt-card-title{font-weight:700;font-size:13px}.alt-card-sub{font-size:11px;color:var(--muted)}.alt-badge{font-size:10px;padding:1px 8px;border-radius:999px;font-weight:700;letter-spacing:.04em}.alt-badge-selected{background:rgba(76,201,240,.18);color:var(--accent)}.alt-badge-previewed{background:hsla(35,82%,68%,.18);color:#f0b86a}.alt-card-score-row{display:flex;align-items:baseline;gap:10px}.alt-card-rec{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.04em}.alt-score{font-size:14px;font-weight:800;padding:2px 10px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--border-strong)}.alt-score-green{color:#2ecc71;border-color:rgba(46,204,113,.5);background:rgba(46,204,113,.08)}.alt-score-yellow{color:#f0b86a;border-color:hsla(35,82%,68%,.5);background:hsla(35,82%,68%,.06)}.alt-score-red{color:#ff6b6b;border-color:rgba(201,70,70,.55);background:rgba(201,70,70,.08)}.alt-card-stats{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted)}.alt-card-delta-up{color:#f0b86a}.alt-card-delta-down{color:#2ecc71}.alt-card-avoids{list-style:none;padding:0;margin:4px 0;font-size:11px;color:#2ecc71}.alt-card-risks{display:flex;flex-wrap:wrap;gap:4px}.alt-tag{font-size:10px;padding:1px 8px;border-radius:999px;border:1px solid var(--border-strong)}.alt-tag-danger{color:#ff6b6b;border-color:rgba(201,70,70,.55)}.alt-tag-info{color:#7da8c4}.alt-tag-warn{color:#d68a3a;border-color:rgba(214,138,58,.55)}.marine-score-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.alt-card-summary{font-size:12px;color:var(--text);margin:0;line-height:1.45}.alt-card-actions{display:flex;gap:6px;margin-top:4px}.alt-card-failed-row{font-size:12px;color:#ff9a9a}.alt-preference-tag{font-weight:500;font-size:11px;color:var(--muted)}.alt-rejected-toggle{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:12px;color:#ff9a9a;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.alt-rejected-toggle input[type=checkbox]{cursor:pointer}.alt-rejected{margin-top:10px;padding:8px 10px;border:1px solid rgba(201,70,70,.35);border-radius:8px;background:rgba(201,70,70,.06);font-size:12px}.alt-rejected>summary{cursor:pointer;color:#ff9a9a;font-weight:600;letter-spacing:.02em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.alt-rejected ul{margin:8px 0 0;padding-left:18px;color:#cfd6df;line-height:1.5}.alt-rejected li{margin-bottom:4px}.alt-rejected-pref{color:var(--muted)}.alt-rejected-note{margin:8px 0 0;font-size:11px;color:var(--muted);font-style:italic}.passages-page{height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg);color:var(--text)}.passages-main{max-width:760px;margin:0 auto;padding:calc(var(--safe-top) + 80px) 16px 32px}.passages-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.passages-head h1{font-size:22px;margin:0}.passages-warn{padding:10px 12px;font-size:13px;border-radius:6px;background:rgba(201,70,70,.1);border:1px solid #c94646;color:#ffb4b4;margin-bottom:14px}.passages-empty{padding:24px 16px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:8px}.passages-filter-hint{margin:-4px 0 8px;color:var(--muted);font-size:12px}.demo-hero{margin:6px 0 0;color:var(--muted);font-size:13px;max-width:60ch;line-height:1.5}.demo-list{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:14px;gap:14px}.demo-card{border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-soft);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.demo-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.demo-card-eyebrow{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#6ea8ff;font-weight:600}.demo-card-title{font-size:16px;font-weight:700;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-rec{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;border:1px solid}.demo-rec-go{color:var(--badge-success)}.demo-rec-change_route,.demo-rec-wait{color:var(--badge-caution)}.demo-rec-unsafe{color:var(--badge-danger)}.demo-tags{display:flex;flex-wrap:wrap;gap:5px}.demo-tag{font-size:10px;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid var(--border);color:var(--muted);background:var(--bg)}.demo-tag-completed{color:#2ecc71;border-color:rgba(46,204,113,.5)}.demo-tag-actual-track{color:#6ea8ff;border-color:rgba(110,168,255,.5)}.demo-tag-hazards{color:#f96;border-color:rgba(255,153,102,.5)}.demo-tag-planning{color:#f0b86a;border-color:hsla(35,82%,68%,.5)}.demo-tag-PDF-ready{color:#c6a0ff;border-color:rgba(198,160,255,.5)}.demo-summary{margin:0;color:var(--text);font-size:13px;line-height:1.45}.demo-card-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.demo-disclaimer{margin-top:24px;padding-top:14px;border-top:1px dashed var(--border);font-size:11px;color:var(--muted);text-align:center}.passages-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.passages-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg-soft);color:var(--text);text-decoration:none;transition:border-color .15s ease}.passages-row:hover{border-color:var(--accent)}.passages-row-main{flex:1 1;min-width:0}.passages-row-title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.passages-row-meta{margin-top:2px;font-size:11px;color:var(--muted)}.passages-row-summary{font-size:12px;color:var(--text);margin-top:6px;opacity:.85;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.passages-row-owner{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:11px;color:var(--muted)}.passages-row-owner-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover;flex-shrink:0}.passages-row-owner-avatar-fallback{display:grid;place-items:center;background:var(--bg-soft);border:1px solid var(--border);color:var(--text);font-size:9px;font-weight:700;letter-spacing:.02em}.passages-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.passages-decision{font-size:10px;font-weight:800;letter-spacing:.06em;padding:2px 8px;border-radius:999px}.passages-decision-go{color:#2ecc71;background:rgba(46,204,113,.1);border:1px solid rgba(46,204,113,.5)}.passages-decision-wait{color:#f0b86a;background:hsla(35,82%,68%,.1);border:1px solid hsla(35,82%,68%,.5)}.passages-decision-change_route{color:#4cc9f0;background:rgba(76,201,240,.1);border:1px solid rgba(76,201,240,.5)}.passages-decision-unsafe{color:#ff6b6b;background:rgba(201,70,70,.1);border:1px solid #c94646}.passages-row-open{font-size:12px;color:var(--accent)}.passages-loadmore{display:flex;justify-content:center;margin-top:16px}.passages-disclaimer{margin-top:20px;font-size:11px;color:var(--muted);text-align:center;line-height:1.45}.passage-share-disclaimer{font-size:11px;color:var(--muted);margin-bottom:12px}.passage-notfound{padding:20px}.passage-visibility{border:1px solid var(--border);border-radius:8px;padding:8px 12px;margin:0 0 12px;background:var(--surface,transparent);gap:12px}.passage-visibility,.passage-visibility-row{display:flex;align-items:center;flex-wrap:wrap}.passage-visibility-row{gap:8px;flex:1 1;min-width:0}.passage-visibility-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;text-transform:uppercase;font-weight:600;letter-spacing:.04em;border:1px solid}.passage-visibility-private{color:#b3261e}.passage-visibility-unlisted{color:#5d5d5d}.passage-visibility-public{color:#1f7a3b}.passage-visibility-hint{font-size:12px;color:var(--muted)}.passage-visibility-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:0}.passage-visibility-select-label{display:flex;flex-direction:column;font-size:11px;color:var(--muted);gap:4px}.passage-visibility-select-label select{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:8px 28px 8px 12px;color:var(--text);font:inherit;min-height:38px;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23999' d='M0 0l5 6 5-6z'/></svg>");background-repeat:no-repeat;background-position:right 10px center}.passage-visibility-select-label select:focus{outline:none;border-color:var(--accent)}.passage-visibility-actions>.btn{margin-left:0}.passage-visibility-error{margin-top:6px;font-size:12px;color:#b3261e}.track-panel{padding:14px 18px}.track-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.track-status{font-size:11px;font-weight:700;letter-spacing:.04em;padding:2px 10px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-soft)}.track-status-recording{color:var(--badge-active);border-color:color-mix(in srgb,var(--badge-active) 60%,transparent);background:color-mix(in srgb,var(--badge-active) 10%,transparent)}.track-status-paused{color:var(--badge-caution);border-color:color-mix(in srgb,var(--badge-caution) 55%,transparent)}.track-status-stopped{color:var(--badge-success);border-color:color-mix(in srgb,var(--badge-success) 50%,transparent)}.track-status-idle,.track-sync{color:var(--muted)}.track-sync{font-size:10px;font-weight:600;letter-spacing:.05em;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-soft);text-transform:uppercase}.track-sync-local_only{color:#f0b86a;border-color:hsla(35,82%,68%,.55)}.track-sync-syncing{color:#6ea8ff;border-color:rgba(110,168,255,.55)}.track-sync-synced{color:#2ecc71;border-color:rgba(46,204,113,.5)}.track-sync-failed{color:#ff7a7a;border-color:hsla(0,100%,74%,.55);background:hsla(0,100%,74%,.08)}.track-readonly-hint{font-size:12px;color:var(--muted);line-height:1.4}.track-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.track-warn{margin:8px 0;padding:8px 10px;font-size:12px;border-radius:6px;background:hsla(35,82%,68%,.08);border:1px solid hsla(35,82%,68%,.45);color:#f0b86a}.track-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:6px 12px;gap:6px 12px;margin:8px 0}.track-metric{display:flex;flex-direction:column}.track-metric-label{font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.track-metric-value{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);font-size:13px}.track-secondary-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.track-disclaimer{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;line-height:1.45}.actual-track-live{animation:actual-track-pulse 1.4s ease-in-out infinite}@keyframes actual-track-pulse{0%,to{stroke-opacity:.95}50%{stroke-opacity:.55}}.actual-track-now-live{animation:actual-track-now-pulse 1s ease-in-out infinite}@keyframes actual-track-now-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.35}}.pva-panel{padding:14px 18px}.pva-empty{padding:12px 14px;font-size:12px;color:var(--muted);border:1px dashed var(--border);border-radius:8px}.pva-summary{margin:0 0 10px;font-size:13px;color:var(--text);line-height:1.45}.pva-threshold{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 12px;font-size:12px}.pva-threshold-label{color:var(--muted)}.pva-threshold-opt{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;cursor:pointer;color:var(--text)}.pva-threshold-opt.is-active{border-color:var(--accent);background:rgba(76,201,240,.08)}.pva-threshold-opt input{margin:0}.pva-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:6px 12px;gap:6px 12px;margin:8px 0 12px}.pva-metric{display:flex;flex-direction:column}.pva-metric-label{font-size:10px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.pva-metric-value{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);font-size:13px}.pva-delta-up{color:#f0b86a}.pva-delta-down{color:#2ecc71}.pva-section{margin-top:14px}.pva-section-title{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.pva-event-list{list-style:none;margin:0;padding:0}.pva-event{padding:8px 10px;margin:6px 0;border-radius:6px;background:hsla(0,0%,100%,.025);border-left:3px solid var(--border-strong)}.pva-event-deviation{border-left-color:#f0b86a}.pva-event-slow{border-left-color:#4cc9f0}.pva-event-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pva-event-magnitude{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);font-weight:700}.pva-event-time{font-size:11px;color:var(--muted);margin-left:6px}.pva-event-desc{margin-top:4px;font-size:12px;color:var(--text);line-height:1.4}.pva-disclaimer{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;line-height:1.45}.pva-cause-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.pva-cause{font-size:10px;padding:2px 8px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-soft);color:var(--muted)}.pva-cause-low_wind{color:#7da8c4;border-color:rgba(125,168,196,.5)}.pva-cause-headwind{color:#f0b86a;border-color:hsla(35,82%,68%,.5)}.pva-cause-strong_wind{color:#f0b86a;border-color:hsla(35,82%,68%,.55)}.pva-cause-gusts{color:#ff9a9a;border-color:rgba(201,70,70,.55)}.pva-cause-high_waves{color:#6abaf0;border-color:rgba(106,186,240,.5)}.pva-cause-unknown,.pva-conf{color:var(--muted)}.pva-conf{font-size:10px;padding:1px 8px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-soft)}.pva-conf-high{color:#2ecc71;border-color:rgba(46,204,113,.5)}.pva-conf-medium{color:#f0b86a;border-color:hsla(35,82%,68%,.5)}.pva-conf-low{color:var(--muted)}.rsp-panel{padding:14px 18px}.rsp-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.rsp-sevfilter{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden}.rsp-sevfilter button{background:transparent;border:none;color:var(--muted);font:inherit;font-size:12px;padding:4px 12px;cursor:pointer}.rsp-sevfilter button.is-active{background:rgba(76,201,240,.12);color:var(--text)}.rsp-restore{margin-left:auto}.rsp-dismiss{background:transparent;border:none;color:var(--muted);font-size:16px;line-height:1;padding:0 2px;cursor:pointer}.rsp-dismiss:hover{color:var(--text)}.rsp-empty{padding:12px 14px;font-size:12px;color:var(--muted);border:1px dashed var(--border);border-radius:8px}.rsp-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.rsp-card{padding:10px 12px;border-radius:8px;background:hsla(0,0%,100%,.025);border-left:3px solid var(--border-strong)}.rsp-card-info{border-left-color:#7da8c4}.rsp-card-caution{border-left-color:#f0b86a;background:hsla(35,82%,68%,.05)}.rsp-card-important{border-left-color:#c94646;background:rgba(201,70,70,.06)}.rsp-card-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rsp-sev{font-size:10px;font-weight:800;letter-spacing:.06em;padding:1px 8px;border-radius:999px;border:1px solid var(--border-strong)}.rsp-sev-info{color:#7da8c4;border-color:rgba(125,168,196,.5)}.rsp-sev-caution{color:#f0b86a;border-color:hsla(35,82%,68%,.55)}.rsp-sev-important{color:#ff6b6b;border-color:#c94646}.rsp-card-title{font-weight:600}.rsp-conf{font-size:10px;padding:1px 8px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-soft);color:var(--muted);margin-left:auto}.rsp-conf-high{color:#2ecc71;border-color:rgba(46,204,113,.5)}.rsp-conf-medium{color:#f0b86a;border-color:hsla(35,82%,68%,.5)}.rsp-conf-low{color:var(--muted)}.rsp-card-desc{margin-top:6px;font-size:12px;line-height:1.45;color:var(--text)}.rsp-card-actions{margin-top:8px;display:flex;gap:6px}.rsp-disclaimer{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;line-height:1.45}.rsp-apply{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:10px;padding:8px 10px;border:1px solid rgba(76,201,240,.35);border-radius:8px;background:rgba(76,201,240,.06)}.rsp-apply-btn{border:1px solid rgba(76,201,240,.55);color:var(--text);background:rgba(76,201,240,.12);font-weight:600}.rsp-apply-btn:disabled{opacity:.55;cursor:progress}.rsp-apply-hint{color:var(--muted);font-size:11px;line-height:1.4}.crew-panel{padding:14px 18px}.crew-hint{margin:0 0 10px;font-size:12px;line-height:1.45;color:var(--muted)}.crew-list{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}.crew-row{display:flex;align-items:center;gap:8px}.crew-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex:0 0 auto}.crew-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:rgba(76,201,240,.12);font-size:13px}.crew-name{flex:1 1 auto;min-width:0;font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crew-realname,.crew-role{color:var(--muted)}.crew-role{flex:0 0 auto;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:999px;border:1px solid var(--border)}.crew-role-editor{border-color:rgba(76,201,240,.45);color:var(--text);background:rgba(76,201,240,.1)}.crew-role-viewer{border-color:var(--border)}.crew-remove{background:transparent;border:none;color:var(--muted);font-size:16px;line-height:1;padding:0 4px;cursor:pointer}.crew-remove:hover:not(:disabled){color:var(--text)}.crew-remove:disabled{opacity:.5;cursor:progress}.crew-add{display:flex;gap:6px;align-items:center}.crew-input{flex:1 1 auto;min-width:0;padding:5px 10px;font:inherit;font-size:13px}.crew-input,.crew-role-select{color:var(--text);background:transparent;border:1px solid var(--border);border-radius:8px}.crew-role-select{flex:0 0 auto;padding:5px 8px;font:inherit;font-size:12px}.crew-add-btn{border:1px solid rgba(76,201,240,.55);color:var(--text);background:rgba(76,201,240,.12);font-weight:600}.crew-add-btn:disabled{opacity:.55;cursor:not-allowed}.crew-error{margin-top:8px;font-size:12px;color:#ff6b6b}.passage-status-bar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--glass-strong);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);margin-left:-6px;margin-right:-6px;padding:6px;border-radius:10px}.passage-status-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.04em;padding:2px 8px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg-soft);white-space:nowrap;line-height:1.4}.passage-status-planned{color:var(--muted)}.passage-status-in_progress{color:var(--badge-active);border-color:color-mix(in srgb,var(--badge-active) 60%,transparent);background:color-mix(in srgb,var(--badge-active) 10%,transparent)}.passage-status-completed{color:var(--badge-success);border-color:color-mix(in srgb,var(--badge-success) 55%,transparent);background:color-mix(in srgb,var(--badge-success) 8%,transparent)}.passage-status-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.passage-actions{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.passage-actions-right{margin-left:auto;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.passage-status-sync{font-size:10px;font-weight:600;letter-spacing:.05em;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg-soft);color:var(--muted);text-transform:uppercase}.passage-status-sync-local_only{color:#f0b86a;border-color:hsla(35,82%,68%,.55)}.passage-status-sync-syncing{color:#6ea8ff;border-color:rgba(110,168,255,.55)}.passage-status-sync-synced{color:#2ecc71;border-color:rgba(46,204,113,.5)}.passage-status-sync-failed{color:#ff7a7a;border-color:hsla(0,100%,74%,.55);background:hsla(0,100%,74%,.08)}.passage-status-readonly{font-size:12px;color:var(--muted)}.review-from-backend{margin-top:4px;font-size:11px;color:var(--muted);font-style:italic}.review-panel{padding:16px 18px;border-left:3px solid #2ecc71;background:rgba(46,204,113,.04);animation:reviewHeroIn 1s ease-out both}@keyframes reviewHeroIn{0%{opacity:0;transform:translateY(6px);box-shadow:0 0 0 3px rgba(46,204,113,.45)}60%{box-shadow:0 0 0 3px rgba(46,204,113,.3)}to{opacity:1;transform:none;box-shadow:none}}@media(prefers-reduced-motion:reduce){.review-panel{animation:none}}.review-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.review-scores{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.review-score{padding:12px 10px;border-radius:8px;text-align:center;border:1px solid var(--border-strong);background:var(--bg-soft)}.review-score-good{border-color:color-mix(in srgb,var(--badge-success) 50%,transparent);background:color-mix(in srgb,var(--badge-success) 8%,transparent);color:var(--badge-success)}.review-score-basic{border-color:color-mix(in srgb,var(--badge-caution) 50%,transparent);background:color-mix(in srgb,var(--badge-caution) 6%,transparent);color:var(--badge-caution)}.review-score-poor{border-color:color-mix(in srgb,var(--badge-danger) 55%,transparent);background:color-mix(in srgb,var(--badge-danger) 8%,transparent);color:var(--badge-danger)}.review-score-value{font-size:26px;font-weight:800;font-family:var(--mono,ui-monospace,SFMono-Regular,monospace)}.review-score-label{font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-top:4px}.review-eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#2ecc71}.review-title{font-size:17px;font-weight:700;margin-top:2px}.review-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:8px 14px;gap:8px 14px;margin-top:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-soft)}.review-metric{display:flex;flex-direction:column}.review-metric-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.review-metric-value{font-family:var(--mono,ui-monospace,SFMono-Regular,monospace);font-size:14px;font-weight:600}.shared-view-banner{padding:10px 14px;border-left:3px solid #6ea8ff;background:rgba(110,168,255,.06);font-size:13px;margin:0 0 12px;color:var(--text)}.review-summary{margin:12px 0 0;font-size:13px;color:var(--text);line-height:1.5}.review-empty{padding:14px;font-size:12px;color:var(--muted);border:1px dashed var(--border);border-radius:8px;text-align:center}.review-disclaimer{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;line-height:1.45}.export-panel{padding:14px 18px}.export-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.export-disclaimer{margin:0;font-size:11px;color:var(--muted);line-height:1.45}@media print{body,html{background:#fff!important;color:#111!important}.alarms-panel,.alt-card-actions,.auth-bar,.bg-map,.briefing-link-btn,.briefing-risk-jump,.fab,.leaflet-control-container,.map-disclaimer,.map-hud,.map-layers,.marine-popup-actions,.no-print,.notes-actions,.notes-filter,.notes-filter-empty,.notes-form,.notes-form-actions,.notes-header .btn-mini,.sheet-handle-btn,.stop-timeline .btn-mini,.stop-timeline .btn.secondary,.top-tabs{display:none!important}.app-shell{background:#fff!important}.sheet-stack{position:static!important}.sheet,.sheet-plan,.sheet-result{position:static!important;max-height:none!important;height:auto!important;width:100%!important;background:#fff!important;box-shadow:none!important;border:none!important;padding:0!important;transform:none!important}.sheet-scroll{overflow:visible!important;height:auto!important}.card{border-color:#ccc!important;page-break-inside:avoid}.alt-card,.briefing-meta,.briefing-risks li,.briefing-summary,.card,.daily-row,.notes-item,.stop-timeline ol{background:#fff!important;color:#111!important}.alarms-disclaimer,.briefing-disclaimer,.export-disclaimer,.notes-disclaimer,.passage-share-disclaimer{color:#555!important;border-color:#ddd!important}a{color:#111!important;text-decoration:none}}.briefing-disclaimer{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border);color:var(--muted);font-size:11px;line-height:1.45}.badge{display:inline-block;letter-spacing:.05em;text-transform:uppercase;border:1px solid;background:var(--bg-soft);color:var(--muted)}.badge-info{color:var(--badge-info);border-color:color-mix(in srgb,var(--badge-info) 55%,transparent)}.badge-caution{color:var(--badge-caution);border-color:color-mix(in srgb,var(--badge-caution) 55%,transparent)}.badge-important{color:var(--badge-important);border-color:color-mix(in srgb,var(--badge-important) 55%,transparent)}.badge-danger{color:var(--badge-danger);border-color:color-mix(in srgb,var(--badge-danger) 55%,transparent);background:color-mix(in srgb,var(--badge-danger) 8%,transparent)}.badge-success{color:var(--badge-success);border-color:color-mix(in srgb,var(--badge-success) 50%,transparent)}.badge-neutral{border-color:var(--border)}@media(prefers-color-scheme:light){:root[data-theme=auto]{--bg:#f4f7fa;--bg-soft:#fff;--panel:hsla(0,0%,100%,.92);--panel-solid:#fff;--panel-soft:rgba(243,247,251,.94);--border:rgba(15,23,32,.09);--border-strong:rgba(15,23,32,.18);--text:#0f1720;--muted:#5a6a7a;--accent:#0d8bb0;--accent-2:#d18a00;--glass:hsla(0,0%,100%,.82);--glass-strong:hsla(0,0%,100%,.96);--glass-soft:hsla(0,0%,100%,.55);--shadow-overlay:0 6px 22px rgba(15,23,32,.12);--shadow-menu:0 10px 30px rgba(15,23,32,.18);color-scheme:light}}.theme-toggle{display:inline-flex;align-items:center;background:var(--panel-soft);border:1px solid var(--border-strong);border-radius:999px;padding:2px;gap:2px}.theme-toggle button{width:28px;height:28px;border:none;background:transparent;color:var(--muted);border-radius:999px;cursor:pointer;font-size:14px;line-height:1;display:grid;place-items:center;transition:background .12s,color .12s}.theme-toggle button:hover{color:var(--text)}.theme-toggle button.active{background:rgba(76,201,240,.18);color:var(--accent)}.profile-theme-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.profile-theme-hint{font-size:12px;color:var(--muted);margin-top:2px}.profile-identity-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.profile-identity-row .profile-avatar-sm{flex:none;align-self:flex-end;margin-bottom:2px}.profile-identity-row .field{min-width:160px}.profile-avatar-hint{font-size:12px;color:var(--muted);margin-top:-4px}.toast-loading{font-size:12px;padding:8px 12px;gap:8px;border-left:3px solid var(--accent)}.toast-loading-label{min-width:0;flex:1 1}.toast-loading-label strong{font-weight:600}.toast-loading-elapsed{color:var(--muted)}.toast-loading-spinner{width:12px;height:12px;flex:none;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:toastSpin .9s linear infinite;display:inline-block}@keyframes toastSpin{to{transform:rotate(1turn)}}.toast-error{font-size:12px;padding:8px 12px;gap:8px;align-items:center}.toast-error-msg{min-width:0;flex:1 1}.toast-error-count{color:var(--muted);font-weight:600}.toast-retry{flex:none;background:transparent;border:1px solid var(--border-strong);border-radius:8px;color:var(--text);font-size:12px;padding:3px 10px;cursor:pointer}.toast-retry:hover{border-color:var(--accent);color:var(--accent)}.skeleton-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--border) 25%,var(--border-strong) 37%,var(--border) 63%);background-size:400% 100%;animation:skeletonShimmer 1.4s ease infinite}.skeleton-line+.skeleton-line{margin-top:10px}.skeleton-line--wide{width:100%}.skeleton-line--mid{width:72%}.skeleton-line--short{width:45%}.skeleton-line--tall{height:34px;border-radius:10px}@keyframes skeletonShimmer{0%{background-position:100% 0}to{background-position:0 0}}@media(prefers-reduced-motion:reduce){.skeleton-line{animation:none}}.profile-email-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border);font-size:13px}.profile-email-label{font-size:10px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.profile-email-value{font-weight:600}.profile-email-meta{color:var(--muted);font-size:12px}.profile-privacy-row{border:1px solid var(--border);border-radius:12px;padding:8px;margin:0;display:flex;gap:8px}.profile-privacy-row legend{font-size:10px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;padding:0 6px}.profile-privacy-opt{flex:1 1;display:flex;align-items:flex-start;gap:8px;cursor:pointer;padding:8px 10px;border-radius:10px;border:1px solid transparent;transition:background .12s,border-color .12s}.profile-privacy-opt:hover{background:rgba(76,201,240,.06)}.profile-privacy-opt.active{background:rgba(76,201,240,.1);border-color:var(--accent)}.profile-privacy-opt input[type=radio]{width:16px;height:16px;margin-top:2px;accent-color:var(--accent);flex:none}.profile-privacy-hint{display:block;font-size:11px;color:var(--muted);margin-top:2px}.admin-debug{border:1px dashed var(--border-strong);background:var(--bg-soft)}.admin-debug summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.admin-debug summary::-webkit-details-marker{display:none}.admin-debug-tag{background:rgba(76,201,240,.12);color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:1px 6px;font-size:10px;letter-spacing:.08em;font-weight:700}.admin-debug-body{margin-top:12px;display:flex;flex-direction:column;gap:10px}.admin-debug-grid{display:grid;grid-template-columns:max-content 1fr;grid-gap:4px 12px;gap:4px 12px;font-size:12px;margin:0}.admin-debug-grid dt{color:var(--muted)}.admin-debug-grid dd{margin:0}#easysail-preloader{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transition:opacity .28s ease}#easysail-preloader.easysail-preloader-leaving{opacity:0;pointer-events:none}.preloader-logo{width:384px;height:384px;max-width:70vw;max-height:70vh;object-fit:contain;filter:drop-shadow(0 10px 28px rgba(0,0,0,.35));animation:preloaderLogoIn .4s cubic-bezier(.2,.9,.3,1.05) both}@keyframes preloaderLogoIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.preloader-spinner{width:42px;height:42px;border-radius:50%;border:3px solid var(--border-strong);border-top-color:var(--accent);animation:preloaderSpin .9s linear infinite}@keyframes preloaderSpin{to{transform:rotate(1turn)}}@media(max-width:640px){.brand-name{display:none}.brand-logo{width:40px;height:40px}.topbar{padding:calc(var(--safe-top) + 8px) 12px 8px 52px}.top-tabs{top:calc(var(--safe-top) + 60px);gap:2px;padding:3px}.top-tab{padding:5px 12px;font-size:12px}.map-layers{top:calc(var(--safe-top) + 116px)}.map-hud{top:calc(var(--safe-top) + 150px);min-width:0;right:10px;padding:10px 12px;gap:6px}.locale-chip{padding:6px 10px;font-size:12px}.map-disclaimer{bottom:calc(env(safe-area-inset-bottom, 0px) + 16px)}}.reconsent-banner{position:fixed;top:calc(var(--safe-top, 0px) + 58px);left:12px;z-index:960;max-width:340px;display:flex;flex-direction:column;gap:8px;padding:14px 16px}.reconsent-body{margin:0;font-size:12px;color:var(--muted)}.reconsent-check{display:flex;gap:8px;align-items:flex-start;font-size:12px}.reconsent-check input{margin-top:2px}.weather-quality-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid}.weather-quality-real{color:#6fe2a0;border-color:rgba(46,204,113,.5);background:rgba(46,204,113,.1)}.weather-quality-degraded{color:#f4d35e;border-color:rgba(241,196,15,.5);background:rgba(241,196,15,.1)}.weather-quality-mock{color:#9db7cc;border-color:rgba(125,168,196,.5);background:rgba(125,168,196,.1)}.weather-quality-meta{font-weight:400;color:var(--muted)}.weather-refresh-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.weather-refresh-checked{font-size:12px;color:var(--muted)}.weather-refresh-ok{margin-top:10px;font-size:13px;color:#6fe2a0}.weather-refresh-error{margin-top:10px;font-size:13px;color:#ff6b6b}.weather-refresh-note{margin-top:10px;font-size:12px;color:var(--muted)}.weather-refresh-items{margin:10px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.weather-refresh-item{display:flex;align-items:baseline;gap:8px;font-size:13px}.weather-refresh-level{flex:none;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid}.weather-refresh-level.level-warning{color:#f4d35e;border-color:rgba(241,196,15,.5);background:rgba(241,196,15,.1)}.weather-refresh-level.level-reroute_suggested{color:#f0a35e;border-color:rgba(230,126,34,.5);background:rgba(230,126,34,.1)}.weather-refresh-level.level-unsafe{color:#ff6b6b;border-color:rgba(231,76,60,.5);background:rgba(231,76,60,.12)}.weather-refresh-new{flex:none;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.5px;color:#7cc4ff;border:1px solid rgba(124,196,255,.5);background:rgba(124,196,255,.1)}.weather-refresh-detail{color:var(--text)}@keyframes marker-flash{0%,to{stroke-width:2;stroke-opacity:1}50%{stroke-width:7;stroke-opacity:.25}}.marker-flash{animation:marker-flash .5s ease-in-out 3}.history-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;align-items:center}.history-filters>input,.history-filters>select{background:var(--bg-soft);border:1px solid var(--border);border-radius:8px;padding:6px 8px;color:var(--text);font:inherit;font-size:12px;min-height:32px}.history-filter-search{flex:1 1 160px;min-width:120px}.history-filters>input[type=date]{color-scheme:dark}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.04em;white-space:nowrap;line-height:1.4;background:var(--glass-strong);color:var(--text);border:1px solid var(--border)}.badge-info{border-left:3px solid var(--accent);background:linear-gradient(0deg,rgba(76,201,240,.1),rgba(76,201,240,.1)),var(--glass-strong)}.badge-success{border-left:3px solid var(--go);background:linear-gradient(0deg,rgba(46,204,113,.12),rgba(46,204,113,.12)),var(--glass-strong)}.badge-caution{border-left:3px solid var(--wait);background:linear-gradient(0deg,rgba(241,196,15,.12),rgba(241,196,15,.12)),var(--glass-strong)}.badge-warning{border-left:3px solid var(--change);background:linear-gradient(0deg,rgba(230,126,34,.12),rgba(230,126,34,.12)),var(--glass-strong)}.badge-danger{border-left:3px solid var(--unsafe);background:linear-gradient(0deg,rgba(231,76,60,.14),rgba(231,76,60,.14)),var(--glass-strong)}.badge-important{border-left:3px solid var(--accent-2);background:linear-gradient(0deg,rgba(255,209,102,.16),rgba(255,209,102,.16)),var(--glass-strong)}.badge-neutral{border-left:3px solid var(--border-strong);background:var(--glass-strong);color:var(--muted)}.chart-decoration-disclaimer{display:inline-block;padding:2px 8px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border:1px dashed var(--border-strong);border-radius:6px}.chart-graticule-border{position:absolute;z-index:400;pointer-events:none;inset:0;font-size:10px;letter-spacing:.02em;color:hsla(0,0%,100%,.85);text-shadow:0 1px 2px rgba(0,0,0,.7),0 0 6px rgba(0,0,0,.5)}:root[data-theme=light] .chart-graticule-border{color:rgba(15,23,32,.85);text-shadow:0 1px 2px hsla(0,0%,100%,.85),0 0 6px hsla(0,0%,100%,.7)}.chart-graticule-edge{position:absolute;pointer-events:none;background:hsla(0,0%,100%,.04);border-color:hsla(0,0%,100%,.35)}:root[data-theme=light] .chart-graticule-edge{background:hsla(0,0%,100%,.5);border-color:rgba(15,23,32,.35)}.chart-graticule-edge-bottom,.chart-graticule-edge-top{left:0;right:0;height:18px}.chart-graticule-edge-top{top:0;border-bottom:1px solid}.chart-graticule-edge-bottom{bottom:0;border-top:1px solid}.chart-graticule-edge-left,.chart-graticule-edge-right{top:18px;bottom:18px;width:28px}.chart-graticule-edge-left{left:0;border-right:1px solid}.chart-graticule-edge-right{right:0;border-left:1px solid}.chart-graticule-tick{position:absolute;display:flex;align-items:center;justify-content:center}.chart-graticule-tick-h{top:0;bottom:0;transform:translateX(-50%);padding:0 4px}.chart-graticule-tick-v{left:0;right:0;transform:translateY(-50%);padding:2px 0}.chart-graticule-label{font-feature-settings:"tnum" 1;white-space:nowrap}.compass-rose{position:absolute;bottom:calc(var(--safe-bottom, 0px) + 96px);left:calc(12px + var(--map-pill-width)/2);transform:translateX(-50%);z-index:600;width:clamp(90px,18vmin,140px);height:clamp(90px,18vmin,140px);pointer-events:none;opacity:.92;filter:drop-shadow(0 4px 14px rgba(0,0,0,.35))}.compass-rose-ring{fill:rgba(15,23,32,.35);stroke:hsla(0,0%,100%,.55);stroke-width:1.2}.compass-rose-ring-inner{fill:rgba(15,23,32,.15);stroke-width:.8;stroke-dasharray:2 2}:root[data-theme=light] .compass-rose-ring{fill:hsla(0,0%,100%,.85);stroke:rgba(15,23,32,.65)}:root[data-theme=light] .compass-rose-ring-inner{fill:hsla(0,0%,100%,.45);stroke:rgba(15,23,32,.45)}.compass-rose-tick{stroke:hsla(0,0%,100%,.55);stroke-width:1.2}.compass-rose-tick-major{stroke:hsla(0,0%,100%,.9);stroke-width:1.8}:root[data-theme=light] .compass-rose-tick{stroke:rgba(15,23,32,.55)}:root[data-theme=light] .compass-rose-tick-major{stroke:rgba(15,23,32,.9)}.compass-rose-needle{fill:var(--unsafe);stroke:rgba(0,0,0,.4);stroke-width:.6}.compass-rose-needle-tail{fill:rgba(230,237,243,.85);stroke:rgba(0,0,0,.4);stroke-width:.6}:root[data-theme=light] .compass-rose-needle-tail{fill:rgba(15,23,32,.65)}.compass-rose-cardinal{fill:rgba(230,237,243,.95);font-size:11px;font-weight:700;letter-spacing:.06em}.compass-rose-cardinal-n{fill:var(--unsafe)}:root[data-theme=light] .compass-rose-cardinal{fill:rgba(15,23,32,.9)}.compass-rose-caption{margin-top:4px;text-align:center;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(230,237,243,.85);text-shadow:0 1px 2px rgba(0,0,0,.7)}:root[data-theme=light] .compass-rose-caption{color:rgba(15,23,32,.85);text-shadow:0 1px 2px hsla(0,0%,100%,.85)}.nautical-scale-bar{position:absolute;bottom:calc(var(--safe-bottom, 0px) + 14px);right:14px;z-index:600;pointer-events:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:11px;font-weight:600;letter-spacing:.04em;color:rgba(230,237,243,.95);text-shadow:0 1px 2px rgba(0,0,0,.7)}:root[data-theme=light] .nautical-scale-bar{color:rgba(15,23,32,.92);text-shadow:0 1px 2px hsla(0,0%,100%,.85)}.nautical-scale-label{padding:2px 8px;background:rgba(15,23,32,.45);border-radius:4px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}:root[data-theme=light] .nautical-scale-label{background:hsla(0,0%,100%,.7)}.nautical-scale-track{position:relative;height:8px;border-bottom:2px solid hsla(0,0%,100%,.9);border-left:2px solid hsla(0,0%,100%,.9);border-right:2px solid hsla(0,0%,100%,.9)}:root[data-theme=light] .nautical-scale-track{border-color:rgba(15,23,32,.85)}.nautical-scale-tick{position:absolute;width:2px;background:hsla(0,0%,100%,.9)}:root[data-theme=light] .nautical-scale-tick{background:rgba(15,23,32,.85)}.nautical-scale-tick-start{top:-4px;bottom:-2px;left:0}.nautical-scale-tick-mid{top:0;bottom:-2px;left:50%;transform:translateX(-50%)}.nautical-scale-tick-end{top:-4px;bottom:-2px;right:0}@media(prefers-color-scheme:light){:root[data-theme=auto] .chart-graticule-border{color:rgba(15,23,32,.85);text-shadow:0 1px 2px hsla(0,0%,100%,.85),0 0 6px hsla(0,0%,100%,.7)}:root[data-theme=auto] .chart-graticule-edge{background:hsla(0,0%,100%,.5);border-color:rgba(15,23,32,.35)}:root[data-theme=auto] .compass-rose-ring{fill:hsla(0,0%,100%,.85);stroke:rgba(15,23,32,.65)}:root[data-theme=auto] .compass-rose-ring-inner{fill:hsla(0,0%,100%,.45);stroke:rgba(15,23,32,.45)}:root[data-theme=auto] .compass-rose-tick{stroke:rgba(15,23,32,.55)}:root[data-theme=auto] .compass-rose-tick-major{stroke:rgba(15,23,32,.9)}:root[data-theme=auto] .compass-rose-needle-tail{fill:rgba(15,23,32,.65)}:root[data-theme=auto] .compass-rose-cardinal{fill:rgba(15,23,32,.9)}:root[data-theme=auto] .compass-rose-caption{color:rgba(15,23,32,.85);text-shadow:0 1px 2px hsla(0,0%,100%,.85)}:root[data-theme=auto] .nautical-scale-bar{color:rgba(15,23,32,.92);text-shadow:0 1px 2px hsla(0,0%,100%,.85)}:root[data-theme=auto] .nautical-scale-label{background:hsla(0,0%,100%,.7)}:root[data-theme=auto] .nautical-scale-track{border-color:rgba(15,23,32,.85)}:root[data-theme=auto] .nautical-scale-tick{background:rgba(15,23,32,.85)}}@media(max-width:640px){.chart-graticule-edge-bottom,.chart-graticule-edge-top{height:14px}.chart-graticule-edge-left,.chart-graticule-edge-right{width:22px}.chart-graticule-border{font-size:9px}.compass-rose{display:none}}