body.viewer-page{overflow:hidden}body.viewer-page .site-header,body.viewer-page .mobile-nav{display:none}.viewer{background:var(--navy-900);--hud-pad:12px;position:fixed;inset:0}#map{position:absolute;inset:0}#map:focus-visible{box-shadow:inset 0 0 0 3px var(--brand)}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{z-index:1}.maplibregl-ctrl-attrib{border-radius:8px 0 0;font-size:10px}.maplibregl-ctrl-top-right{display:none}.map-skeleton{z-index:5;background:var(--navy-800);transition:opacity .5s var(--ease);pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.map-skeleton.hide{opacity:0}.map-skeleton .sk-msg{border-radius:var(--r-pill);color:#fff;font-weight:600;font-size:var(--fs-sm);backdrop-filter:blur(6px);background:#ffffff1a;align-items:center;gap:10px;padding:10px 16px;display:inline-flex}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.hud{z-index:6;pointer-events:none;gap:8px;display:flex;position:absolute}.hud>*{pointer-events:auto}.hud-tl{top:var(--hud-pad);left:var(--hud-pad);flex-wrap:wrap;align-items:flex-start;right:72px}.brand-pill{border-radius:var(--r-pill);background:var(--glass);border:1px solid var(--glass-line);height:44px;box-shadow:var(--shadow-float);backdrop-filter:blur(12px);color:var(--fg);font-family:var(--font-display);font-weight:800;font-size:var(--fs-sm);flex:none;align-items:center;gap:8px;padding:0 14px 0 8px;display:inline-flex}.brand-pill:hover{text-decoration:none}.brand-pill svg{border-radius:8px;width:28px;height:28px}.brand-pill.static{height:auto;box-shadow:none;backdrop-filter:none;background:0 0;border:0;padding:0}.cell-pill{background:var(--glass);border:1px solid var(--glass-line);min-height:44px;box-shadow:var(--shadow-float);backdrop-filter:blur(12px);color:var(--fg);border-radius:22px;flex-direction:column;justify-content:center;min-width:0;max-width:100%;padding:6px 14px;display:flex}.cell-pill b{font-family:var(--font-display);font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;line-height:1.2;overflow:hidden}.cell-meta{font-size:var(--fs-xs);color:var(--fg-2);white-space:nowrap;align-items:center;gap:8px;display:flex}.cell-meta .badge{padding:1px 8px;font-size:11px}.cell-meta .upd{align-items:center;gap:4px;display:inline-flex}.rail{z-index:6;top:var(--hud-pad);right:var(--hud-pad);background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow-float);backdrop-filter:blur(12px);max-height:calc(100% - 2 * var(--hud-pad));scrollbar-width:none;border-radius:16px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;overflow:auto}.rail-sep{background:var(--line);flex:none;height:1px;margin:2px 6px}.rail-btn{width:44px;height:44px;color:var(--fg);transition:background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);background:0 0;border:0;border-radius:12px;flex:none;place-items:center;display:grid;position:relative}.rail-btn svg{width:22px;height:22px}.rail-btn .u-label{font-family:var(--font-display);font-weight:800;font-size:var(--fs-sm)}.rail-btn:hover{background:var(--brand-soft);color:var(--brand)}.rail-btn:active{transform:scale(.92)}.rail-btn[aria-pressed=true]{background:var(--brand);color:var(--brand-fg)}.rail-btn.measure[aria-pressed=true],.rail-btn.route[aria-pressed=true]{background:var(--accent);color:#fff}.rail-btn[data-tip]:after{content:attr(data-tip);background:var(--navy-900);color:#fff;font-size:var(--fs-xs);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);z-index:9;border-radius:8px;padding:6px 10px;font-weight:600;position:absolute;top:50%;right:calc(100% + 12px);transform:translateY(-50%)translate(4px)}.rail-btn[data-tip]:hover:after,.rail-btn[data-tip]:focus-visible:after{opacity:1;transform:translateY(-50%)}.rail-btn[disabled]{opacity:.4}.rail .layers,.rail .contours,.rail .hillshade,.rail .draft,.rail .measure,.rail .share,.rail .basemap,.rail .palette,.rail .route,.rail .ports,.rail .units,.rail .mapthis,.rail .go,.rail-sep{display:none}@media (width>=760px) and (height>=680px){.rail .units,.rail .contours,.rail .hillshade,.rail .draft,.rail .measure,.rail .share,.rail .basemap,.rail .palette,.rail .route,.rail .ports,.rail .mapthis,.rail .go{display:grid}.rail-sep{display:block}}.rail-btn.go{color:var(--ok)}.rail-btn.go[aria-pressed=true]{background:var(--ok);color:#fff}.rail-btn.mapthis{color:var(--accent)}.rail-btn.mapthis[aria-pressed=true]{background:var(--accent);color:#fff}@media (hover:none){.rail-btn[data-tip]:after{display:none}}.popover{z-index:7;top:var(--hud-pad);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);width:min(320px,100vw - 90px);box-shadow:var(--shadow-lg);color:var(--fg);animation:rise var(--t-base) var(--ease-out);padding:14px 16px 16px;position:absolute;right:72px}.pop-head{font-family:var(--font-display);justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pop-head b{align-items:center;gap:8px;display:inline-flex}.x{width:36px;height:36px;color:var(--fg-2);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.x:hover{background:var(--surface-2);color:var(--fg)}.row{min-height:44px;font-size:var(--fs-sm);justify-content:space-between;align-items:center;gap:12px;font-weight:600;display:flex}.row input[type=range]{width:130px;accent-color:var(--brand)}.row.switch{cursor:pointer}.row.switch input{opacity:0;width:0;height:0;position:absolute}.row.switch i{background:var(--grey-300);width:44px;height:26px;transition:background var(--t-fast) var(--ease);border-radius:13px;flex:none;position:relative}.row.switch i:after{content:"";width:20px;height:20px;transition:transform var(--t-fast) var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.row.switch input:checked+i{background:var(--brand)}.row.switch input:checked+i:after{transform:translate(18px)}.row.switch input:focus-visible+i{box-shadow:var(--ring)}.small{font-size:var(--fs-xs);margin:4px 0}.draft-row{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:6px 0;display:flex}.draft-row label{font-size:var(--fs-xs);color:var(--fg-2);flex-direction:column;gap:2px;font-weight:600;display:flex}.draft-row .input{text-align:center;width:84px;font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg)}.draft-row .unit{color:var(--fg-2);padding-bottom:12px;font-weight:700}.palette-list{gap:6px;display:grid}.pal{border:1px solid var(--line);background:var(--surface);text-align:left;color:var(--fg);border-radius:12px;grid-template-columns:1fr;gap:4px;min-height:56px;padding:8px 10px;display:grid}.pal:hover{border-color:var(--brand)}.pal[aria-checked=true]{border-color:var(--brand);box-shadow:var(--ring)}.pal .sw{border:1px solid #0000001f;border-radius:6px;height:12px}.pal .pn{font-size:var(--fs-sm);font-weight:700;font-family:var(--font-display);justify-content:space-between;display:flex}.pal .pn small{color:var(--fg-3);font-weight:500;font-family:var(--font-body)}.planner{z-index:8;top:calc(var(--hud-pad) + 56px);left:var(--hud-pad);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);width:min(360px,100vw - 24px);max-height:calc(100% - 90px);box-shadow:var(--shadow-lg);color:var(--fg);animation:rise var(--t-base) var(--ease-out);flex-direction:column;gap:10px;padding:14px 16px 16px;display:flex;position:absolute;overflow:auto}.planner-form{flex-direction:column;gap:8px;display:flex}.pt-row{align-items:center;gap:8px;display:flex}.pt-row .input{min-height:42px;font-size:var(--fs-sm)}.pt{width:12px;height:12px;box-shadow:0 0 0 1.5px var(--fg-3);border:2px solid #fff;border-radius:50%;flex:none}.pt.start{background:#16a34a}.pt.end{background:#dc2626}.pt-row .icon-btn{background:var(--surface-2);flex:none;width:40px;height:40px}.pt-row .icon-btn[aria-pressed=true]{background:var(--accent);color:#fff}#pl-suggest{max-width:none;box-shadow:var(--shadow-md);margin:0}#pl-suggest:empty{display:none}.pl-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pl-grid label{font-size:var(--fs-xs);color:var(--fg-2);flex-direction:column;gap:3px;font-weight:600;display:flex}.pl-grid label.wide{grid-column:span 2}.pl-grid .input{min-height:40px;font-size:var(--fs-sm);padding:6px 10px}.pl-actions{flex-wrap:wrap;gap:8px;display:flex}.pl-result{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:10px;display:flex}.pl-stats{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.pl-stats div{background:var(--surface-2);border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.pl-stats b{font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:-.01em}.pl-stats span{font-size:var(--fs-xs);color:var(--fg-2)}.pl-chips{flex-wrap:wrap;gap:6px;display:flex}.pl-chips .chip{min-height:32px;font-size:var(--fs-xs);gap:5px;padding:4px 10px}.pl-chips .chip svg{width:15px;height:15px;color:var(--brand)}.pl-warnings{gap:6px;margin:0;padding:0;list-style:none;display:grid}.pl-warnings li{font-size:var(--fs-sm);background:var(--fair-soft);color:var(--fg);cursor:pointer;border-radius:10px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.pl-warnings li.shallow{background:var(--poor-soft)}.pl-warnings li.unknown{background:var(--surface-2)}.pl-warnings li i{background:var(--fair);border-radius:50%;flex:none;width:8px;height:8px;margin-top:7px}.pl-warnings li.shallow i{background:var(--poor)}.pl-warnings li.unknown i{background:var(--fg-3)}.order-card{border:1px dashed var(--accent);background:var(--accent-soft);border-radius:var(--r-md);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.order-card b{font-family:var(--font-display);align-items:center;gap:6px;display:inline-flex}.order-card p{font-size:var(--fs-sm);margin:0}.order-card .price{font-weight:700}.route-popup b{font-family:var(--font-display);display:block}.port-popup{font-size:var(--fs-sm)}.port-popup b{font-family:var(--font-display);display:block}.port-popup .kind{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--brand);font-weight:700}.measure-pill{z-index:6;top:calc(var(--hud-pad) + 52px);border-radius:var(--r-pill);background:var(--accent);color:#fff;height:40px;font-weight:700;font-size:var(--fs-sm);box-shadow:var(--shadow-float);white-space:nowrap;align-items:center;gap:8px;padding:0 6px 0 12px;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)}.measure-pill .x{color:#fff;width:30px;height:30px}.measure-pill .x:hover{background:#fff3}.measure-pill small{opacity:.85;font-weight:500}.pick-pill{background:var(--navy-900)}.legend-card{z-index:6;left:var(--hud-pad);bottom:calc(var(--hud-pad) + 22px);background:var(--glass);border:1px solid var(--glass-line);width:min(300px,100vw - 24px);box-shadow:var(--shadow-float);backdrop-filter:blur(12px);color:var(--fg);border-radius:14px;padding:10px 12px;position:absolute}.legend-title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-2);justify-content:space-between;margin-bottom:6px;font-size:11px;font-weight:700;display:flex}.legend-pal{color:var(--brand)}.legend-bar{border:1px solid #00000026;border-radius:5px;height:10px}.legend-ticks{height:16px;color:var(--fg);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11px;font-weight:700;position:relative}.legend-ticks span{position:absolute;top:0;transform:translate(-20%)}.legend-ticks span:last-child{transform:translate(-70%)}.depth-card{z-index:8;left:50%;bottom:calc(var(--hud-pad) + 22px);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);width:min(300px,100vw - 24px);box-shadow:var(--shadow-lg);color:var(--fg);animation:cardIn .32s var(--ease-out);padding:16px 18px;position:absolute;transform:translate(-50%)}@keyframes cardIn{0%{opacity:0;transform:translate(-50%)translateY(16px)scale(.96)}to{opacity:1;transform:translate(-50%)}}.depth-card .x{position:absolute;top:8px;right:8px}.dc-state{color:var(--fg-2);font-weight:600;font-size:var(--fs-sm);align-items:center;gap:10px;min-height:44px;display:flex}.dc-big{font-family:var(--font-display);letter-spacing:-.03em;color:var(--brand);align-items:baseline;gap:6px;font-size:3.2rem;font-weight:800;line-height:1;display:flex}.dc-big .unit{color:var(--fg-2);font-size:1.3rem;font-weight:700}.dc-sub{font-size:var(--fs-sm);color:var(--fg-2);margin-top:4px}.dc-acc{font-size:var(--fs-xs);color:var(--fg-2);border-radius:var(--r-pill);background:var(--surface-2);align-items:center;gap:6px;margin-top:8px;padding:3px 10px;display:inline-flex}.dc-warn{background:var(--poor-soft);color:var(--poor);font-weight:700;font-size:var(--fs-sm);border-radius:10px;align-items:center;gap:8px;margin-top:10px;padding:8px 10px;display:flex}.dc-pass{background:var(--surface-2);color:var(--fg);font-weight:600;font-size:var(--fs-sm);border-radius:10px;align-items:flex-start;gap:8px;margin-top:10px;padding:8px 10px;line-height:1.35;display:flex}.dc-pass svg{color:var(--brand);flex:none;margin-top:2px}.dc-pass.ok{background:var(--ok-soft);color:var(--ok)}.dc-pass.no{background:var(--poor-soft);color:var(--poor)}.dc-pass.ok svg,.dc-pass.no svg{color:currentColor}.dc-pass a{color:inherit;text-decoration:underline}.dc-coord{font-family:var(--font-mono);color:var(--fg-3);margin-top:10px;font-size:11px}.go-panel{width:min(400px,100vw - 24px)}.sheet-btn.go{color:var(--ok)}.sheet-btn.go[aria-pressed=true]{background:var(--ok);border-color:var(--ok);color:#fff}.dc-none{flex-direction:column;justify-content:center;gap:2px;min-height:44px;display:flex}.dc-none span{font-size:var(--fs-sm);color:var(--fg-2)}.sheet{z-index:9;background:var(--surface);color:var(--fg);transition:transform var(--t-slow) var(--ease-out);padding-bottom:env(safe-area-inset-bottom);touch-action:none;border-radius:20px 20px 0 0;flex-direction:column;max-height:82vh;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(calc(100% - 56px));box-shadow:0 -8px 30px #00000040}.sheet[data-snap=half]{transform:translateY(calc(100% - 340px))}.sheet[data-snap=full]{transform:translateY(0)}.sheet.dragging{transition:none}.handle{cursor:grab;background:0 0;border:0;place-items:center;width:100%;height:56px;display:grid}.handle i{background:var(--grey-300);border-radius:3px;width:44px;height:5px}.handle:after{content:"Tools";font-family:var(--font-display);font-weight:700;font-size:var(--fs-sm);position:absolute;top:18px;left:20px}.sheet-body{flex-direction:column;gap:14px;padding:0 16px 16px;display:flex;overflow:auto}.sheet-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.sheet-btn{border:1px solid var(--line);background:var(--surface-2);min-height:64px;color:var(--fg);font-size:var(--fs-xs);border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-weight:600;display:flex}.sheet-btn svg{width:22px;height:22px}.sheet-btn .u-label.big{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);line-height:22px}.sheet-btn[aria-pressed=true]{background:var(--brand);color:var(--brand-fg);border-color:var(--brand)}.sheet-btn.measure-on,.sheet-btn.route-on{background:var(--accent);color:#fff;border-color:var(--accent)}.sheet-section{border-top:1px solid var(--line);flex-direction:column;gap:4px;padding-top:10px;display:flex}.sheet-section b{font-family:var(--font-display);font-size:var(--fs-sm)}@media (width>=760px) and (height>=680px){.sheet{display:none}}.fish{flex-direction:column;gap:12px;display:flex}.fish .sea-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.fish .sea-head b{font-family:var(--font-display)}.fish .sea-head small{color:var(--fg-3);font-size:var(--fs-xs)}.sea-tiles{grid-template-columns:1fr 1fr;gap:6px;display:grid}.sea-tiles .tile{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.sea-tiles .lab{text-transform:uppercase;letter-spacing:.05em;color:var(--fg-3);align-items:center;gap:5px;font-size:10px;font-weight:700;display:inline-flex}.sea-tiles .lab svg{color:var(--brand)}.sea-tiles .val{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);letter-spacing:-.01em;line-height:1.15}.sea-tiles .val small{font-size:var(--fs-xs);color:var(--fg-3);font-weight:600}.sea-tiles .hint{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.fish-strip-wrap{scrollbar-width:none;margin:0 -16px;padding:0 16px;overflow-x:auto}.fish-strip{gap:6px;padding-bottom:2px;display:flex}.fs{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--fg);font-weight:600;font-size:var(--fs-xs);cursor:pointer;flex:none;align-items:center;gap:7px;padding:4px 6px 4px 12px;display:inline-flex}.fs:hover{border-color:var(--brand)}.fs.on{background:var(--navy-900);border-color:var(--navy-900);color:#fff}[data-theme=dark] .fs.on{background:var(--brand);border-color:var(--brand);color:var(--brand-fg)}.fs.locked{opacity:.75}.fs-score{min-width:26px;height:26px;font-family:var(--font-display);font-variant-numeric:tabular-nums;color:#fff;border-radius:13px;place-items:center;padding:0 6px;font-size:11px;font-weight:800;display:inline-grid}.fs-score.go{background:var(--ok)}.fs-score.caution{background:#d97706}.fs-score.nogo{background:var(--grey-500)}.fs.on .fs-score{box-shadow:0 0 0 2px #ffffff59}.fish-card{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);animation:rise var(--t-base) var(--ease-out);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.fc-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.fc-head b{font-family:var(--font-display);font-size:var(--fs-base);display:block}.fc-head small{font-size:var(--fs-xs)}.fish-card .pl-actions{margin:2px 0 0}.fish-spots b{font-family:var(--font-display);font-size:var(--fs-sm);margin-bottom:6px;display:block}.spot-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.spot-list button{border:1px solid var(--line);background:var(--surface-2);width:100%;color:var(--fg);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.spot-list button:hover{border-color:var(--brand)}.sp-n{color:#fff;width:24px;height:24px;font-size:12px;font-weight:800;font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;display:grid}.sp-n.go{background:var(--poor)}.sp-n.caution{background:#d97706}.sp-n.nogo{background:var(--grey-500)}.sp-txt{flex-direction:column;flex:1;min-width:0;display:flex}.sp-txt b{font-size:var(--fs-sm);font-family:var(--font-body);margin:0}.sp-txt small{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.sp-score{font-family:var(--font-display);color:var(--fg-2);font-variant-numeric:tabular-nums;font-weight:800}.fish-ocean>b{font-family:var(--font-display);font-size:var(--fs-sm);margin-bottom:6px;display:block}.ocean-list{flex-wrap:wrap;gap:6px;display:flex}.ocean-list .chip{min-height:32px;font-size:var(--fs-xs);padding:2px 11px}.ocean-list .chip[aria-checked=true]{background:var(--brand);border-color:var(--brand);color:var(--brand-fg)}.fish-foot{margin:0}.legend-extra{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:8px;padding-top:8px;display:flex}.legend-extra[hidden]{display:none}.le-title{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-2);margin-bottom:4px;font-size:11px;font-weight:700;display:block}.le-bar{border:1px solid #00000026;border-radius:5px;height:10px}.le-ticks{font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:3px;font-size:11px;font-weight:700;display:flex}.le-keys{align-items:center;gap:10px;font-size:11px;font-weight:600;display:flex}.le-keys i{vertical-align:-1px;border:1px solid #0003;border-radius:3px;width:14px;height:10px;margin-right:4px;display:inline-block}.dc-fish{border-top:1px solid var(--line);font-size:var(--fs-sm);flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;display:flex}.dc-fish .go-chips .chip{min-height:28px;padding:2px 9px;font-size:11px}.dcf-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dcf-list li{align-items:center;gap:10px;display:flex}.dcf-list li span:last-child{flex-direction:column;min-width:0;display:flex}.dcf-list li b{font-size:var(--fs-sm)}.dcf-list li small{color:var(--fg-2);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.rail-btn.fish[aria-pressed=true],.sheet-btn[data-act=fish][aria-pressed=true]{color:var(--accent)}@media (width<=759px),(height<=679px){.depth-card{width:calc(100vw - 24px);bottom:68px}.legend-card{width:min(230px,62vw);transition:opacity var(--t-base) var(--ease);bottom:68px}.viewer.card-open .legend-card{opacity:0;pointer-events:none}.rail .zoom-in,.rail .zoom-out{display:none}.planner{z-index:10;width:100%;max-height:88vh;animation:sheetIn var(--t-slow) var(--ease-out);border-radius:20px 20px 0 0;top:auto;bottom:0;left:0}.popover{right:var(--hud-pad);left:var(--hud-pad);width:auto;top:auto;bottom:68px}}.drawer-backdrop{z-index:10;backdrop-filter:blur(2px);animation:fade var(--t-base) var(--ease);background:#0b1f3a73;position:absolute;inset:0}@keyframes fade{0%{opacity:0}}.drawer{z-index:11;background:var(--surface);width:min(380px,100vw);color:var(--fg);box-shadow:var(--shadow-lg);animation:slideIn var(--t-slow) var(--ease-out);flex-direction:column;gap:10px;padding:16px 20px 24px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:auto}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}}.drawer-head{justify-content:space-between;align-items:center;display:flex}.drawer-title{font-size:var(--fs-2xl);margin:8px 0 0}.qr-wrap{border-radius:var(--r-lg);border:1px solid var(--line);color:var(--navy-900);background:#fff;flex-direction:column;align-items:center;gap:8px;padding:14px;display:flex}.qr-brand{font-family:var(--font-display);font-weight:800;font-size:var(--fs-lg);align-items:center;gap:8px;display:inline-flex}.qr-brand svg{border-radius:7px;width:26px;height:26px}#qr{width:220px!important;height:220px!important}.qr-title{font-size:var(--fs-sm);text-align:center;color:var(--grey-700);font-weight:600}.link-row{gap:8px;display:flex}.link-row .input{font-size:var(--fs-xs);font-family:var(--font-mono);min-width:0}.share-actions{gap:8px;display:flex}@media (width<=759px){.drawer{width:100%;max-height:92vh;animation:sheetIn var(--t-slow) var(--ease-out);border-radius:20px 20px 0 0;top:auto}}@keyframes sheetIn{0%{opacity:0;transform:translateY(40px)}}.map-status{z-index:12;border-radius:var(--r-lg);background:var(--surface);color:var(--fg);box-shadow:var(--shadow-lg);text-align:center;max-width:320px;padding:14px 20px;font-weight:600;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.toast{z-index:13;border-radius:var(--r-pill);background:var(--navy-900);color:#fff;font-weight:600;font-size:var(--fs-sm);box-shadow:var(--shadow-lg);animation:rise var(--t-base) var(--ease-out);white-space:nowrap;padding:10px 16px;position:absolute;bottom:90px;left:50%;transform:translate(-50%)}.maplibregl-user-location-dot,.maplibregl-user-location-accuracy-circle{z-index:2}.maplibregl-ctrl-geolocate{display:none!important}.maplibregl-popup-content{box-shadow:var(--shadow-lg);font-family:var(--font-body);border-radius:12px;padding:10px 14px}.pl-grid>*{min-width:0}#pl-boat{grid-column:1/-1}.pl-fuel{background:var(--surface-2);border-radius:12px;gap:6px;padding:10px 12px;display:grid}.pl-fuel.warn{background:var(--fair-soft)}.pl-fuel p{margin:0}.pl-fuel .fuel-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pl-fuel .fuel-head b{font-family:var(--font-display);font-size:var(--fs-lg)}.pl-fuel .fuel-head span{font-size:var(--fs-xs);color:var(--fg-2)}.fuel-bar{background:var(--line);border-radius:6px;height:10px;display:flex;position:relative;overflow:hidden}.fuel-bar i{background:#0ea5e9;height:100%;display:block}.fuel-bar i.back{background:#7dd3fc}.pl-fuel.warn .fuel-bar i{background:var(--fair)}.pl-fuel.warn .fuel-bar i.back{background:#fcd34d}.fuel-bar b{background:var(--surface);width:2px;position:absolute;top:0;bottom:0}.pl-stats div.bad b{color:var(--poor)}.pl-stats div.tight b{color:var(--fair)}.pl-warnings li.tilt,.pl-warnings li.slow{background:var(--surface-2)}.pl-warnings li.tilt i,.pl-warnings li.slow i{background:#7c3aed}.nav-start-btn{width:100%;min-height:54px;font-size:var(--fs-lg);justify-content:center}.viewer.nav-on .hud,.viewer.nav-on .rail,.viewer.nav-on .sheet,.viewer.nav-on .planner,.viewer.nav-on .legend-card,.viewer.nav-on .depth-card,.viewer.nav-on .measure-pill,.viewer.nav-on .maplibregl-ctrl-bottom-right{display:none!important}.nav-mode{z-index:30;pointer-events:none;color:#f1f5f9;font-family:var(--font-body);--nv:#081426f0;--nv-line:#94a3b838;position:absolute;inset:0}.nav-mode>*{pointer-events:auto}.nav-start{left:50%;bottom:max(16px, env(safe-area-inset-bottom));background:var(--nv);border:1px solid var(--nv-line);border-radius:20px;gap:12px;width:min(440px,100% - 24px);padding:18px 18px 14px;display:grid;position:absolute;transform:translate(-50%);box-shadow:0 20px 50px #00000073}.nav-start h2{font:800 1.4rem/1.1 var(--font-display);color:#fff;margin:0}.nav-start p{margin:0}.nav-start .muted{color:#94a3b8}.nav-start .row{color:#e2e8f0;justify-content:space-between;align-items:center;min-height:44px;display:flex}.nav-start .nav-preview{color:#e9d5ff;background:#7c3aed2e;border-radius:10px;padding:8px 10px}.nav-start .nav-preview a{color:#fff;font-weight:700}.nav-start .nav-sim{color:#7dd3fc}.nav-fuel-in{color:#e2e8f0;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}.nav-fuel-in input{width:100%}.nav-start-actions{gap:10px;display:flex}.nav-start-actions .btn{flex:1;justify-content:center;min-height:52px}.nav-top{top:max(10px, env(safe-area-inset-top));background:linear-gradient(#0f766e,#115e59);border-radius:18px;align-items:center;gap:12px;max-width:560px;min-height:86px;margin:0 auto;padding:12px 14px;display:flex;position:absolute;left:10px;right:10px;box-shadow:0 10px 30px #00000059}.nav-arrow{color:#fff;flex:none;place-items:center;width:56px;height:56px;display:grid}.nav-instr{flex-direction:column;min-width:0;display:flex}.nav-instr b{font:800 1.9rem/1 var(--font-display);color:#fff;letter-spacing:-.01em}.nav-instr span{color:#ecfdf5;font-size:1.12rem;font-weight:650;line-height:1.25}.nav-instr small{color:#a7f3d0;margin-top:2px;font-size:.85rem}.nav-alert{top:calc(max(10px, env(safe-area-inset-top)) + 100px);border-radius:14px;align-items:center;gap:10px;max-width:560px;margin:0 auto;padding:12px 14px;font-size:1rem;font-weight:700;line-height:1.3;display:flex;position:absolute;left:10px;right:10px;box-shadow:0 10px 24px #0000004d}.nav-alert.red{color:#fff;background:#b91c1c;animation:1.2s ease-in-out infinite alternate navpulse}.nav-alert.amber{color:#fff;background:#b45309}.nav-alert.info{background:var(--nv);color:#e0f2fe;border:1px solid var(--nv-line)}@keyframes navpulse{to{box-shadow:0 0 0 6px #ef444459}}.nav-side{right:10px;top:calc(max(10px, env(safe-area-inset-top)) + 170px);gap:10px;display:grid;position:absolute}.nav-btn{border:1px solid var(--nv-line);background:var(--nv);color:#fff;cursor:pointer;border-radius:16px;place-items:center;width:54px;height:54px;display:grid}.nav-recenter{left:50%;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 150px);color:#0b1f3a;cursor:pointer;background:#fff;border:0;border-radius:999px;align-items:center;gap:8px;height:48px;padding:0 18px;font-weight:800;display:inline-flex;position:absolute;transform:translate(-50%);box-shadow:0 8px 20px #00000059}.nav-lock{left:10px;right:10px;bottom:calc(max(12px, env(safe-area-inset-bottom)) + 150px);color:#fff;background:#4c1d95f2;border-radius:14px;gap:6px;max-width:560px;margin:0 auto;padding:12px 14px;display:grid;position:absolute}.nav-lock.info{background:var(--nv);border:1px solid var(--nv-line);font-size:.95rem}.nav-lock .btn{justify-self:start}.nav-bottom{padding:10px 10px max(10px, env(safe-area-inset-bottom));background:var(--nv);border-top:1px solid var(--nv-line);align-items:stretch;gap:10px;display:flex;position:absolute;bottom:0;left:0;right:0}.nav-stats{flex:1;grid-template-columns:repeat(3,1fr);gap:6px 8px;display:grid}.nav-stats div{flex-direction:column;min-width:0;display:flex}.nav-stats b{font:800 1.15rem/1.15 var(--font-display);color:#fff;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-stats span{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.72rem}.nav-stats .bad b{color:#fca5a5}.nav-stats .tight b,.nav-stats .low b{color:#fcd34d}.nav-end{color:#fff;background:#dc2626;border:0;border-radius:16px;flex:none;justify-content:center;min-width:76px;min-height:64px;font-size:1.05rem;font-weight:800}.nav-summary .nav-sum-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.nav-summary .nav-sum-grid div{background:#94a3b81f;border-radius:12px;flex-direction:column;padding:10px 12px;display:flex}.nav-summary .nav-sum-grid b{font:800 1.2rem/1.1 var(--font-display);color:#fff}.nav-summary .nav-sum-grid span{color:#94a3b8;font-size:.78rem}.nav-boat-marker{width:38px;height:38px}.nav-resume{z-index:9;color:#fff;height:48px;box-shadow:var(--shadow-lg);cursor:pointer;background:#7c3aed;border:0;border-radius:999px;align-items:center;gap:8px;padding:0 18px;font-weight:800;display:inline-flex;position:absolute;bottom:76px;left:50%;transform:translate(-50%)}@media (width>=760px){.nav-stats{grid-template-columns:repeat(6,1fr)}.nav-recenter,.nav-lock{bottom:110px}}
