@font-face{font-family:Space Grotesk;src:url(/static/vendor/fonts/SpaceGrotesk-var.woff2) format("woff2");font-weight:300 700;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/static/vendor/fonts/IBMPlexMono-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/static/vendor/fonts/IBMPlexMono-500.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/static/vendor/fonts/IBMPlexMono-600.woff2) format("woff2");font-weight:600;font-display:swap}:root{--bg: #0B1B26;--surface: #0F2431;--surface2: #13303F;--map-bg: #0B1B26;--map-place: #A8BCC9;--accent: #FF6B5E;--accent2: #F2B34C;--live: #43D6BE;--live-dim: #2A8577;--time-cursor: #8FD0F5;--keepout: #E879F9;--data-waves: #6FE3F0;--data-currents: #A78BFA;--text: #E6F0F2;--text-muted: #7E97A4;--on-accent: #2A0E0B;--on-live: #06231D;--border: #1E4254;--panel-bg: rgba(15,36,49,.94);--overlay-bg: rgba(15,36,49,.9);--scrim: rgba(4,10,15,.6);--ink-rgb: 255, 255, 255;--shadow-rgb: 0, 0, 0;--halo-rgb: 0, 0, 0;--on-data: #FFFFFF;--field-ink-rgb: 255, 255, 255;--isobar-ink: #DCE6EB;--isobar-badge: rgba(244,249,251,.64);--isobar-badge-edge: rgba(11,27,38,.16);--isobar-badge-ink: #0B1B26;--hull-fill: #E8E8E8;--hull-edge: #444444;--hull-keel: #888888;--cmp-dot-rim: #1A262C;--device-rim: #FFFFFF;--crosshair: #FFFFFF;--on-badge: #FFFFFF;--on-marker: #E6F0F2;--switch-on-track: #2A8577;--switch-on-knob: #43D6BE;--night-shade: rgba(0,0,0,.28);--polar-ramp1: #1D6355;--polar-ramp3: #35AB97;--polar-ramp5: #82E4D3;--polar-ramp6: #BEF1E8;--font-sans: "Space Grotesk", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--fw-normal: 400;--fw-semibold: 600;--fs-2xs: .75rem;--fs-xs: .8125rem;--fs-sm: .875rem;--fs-md: .9375rem;--fs-lg: 1.0625rem;--fs-xl: 1.25rem;--lh: 1.4;--lh-tight: 1.25;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--radius-sm: 4px;--radius: 10px;--radius-lg: 14px;--pill: 999px;--touch: 48px;--menu-row-h: 34px;--menu-row-fs: var(--fs-sm);--menu-row-pad: var(--sp-2);--graph-h: 162px;--slider-h: 85px;--setup-panel-w: 390px;--map-rail-w: 42px;--map-context-w: 260px;--corner-bar-h: 34px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--furniture-top: calc(max(12px, var(--safe-top)) - var(--safe-top));--furniture-left: calc(max(12px, var(--safe-left)) - var(--safe-left));--furniture-right: calc(max(12px, var(--safe-right)) - var(--safe-right));--frame-w: calc(100vw - var(--safe-left) - var(--safe-right));--sheet-cap: min(60vh, 420px);--transition: .25s ease}:root[data-theme=light]{color-scheme:light;--bg: #FFFFFF;--surface: #FFFFFF;--surface2: #E4E9ED;--map-bg: #D9E7F0;--map-place: #34505E;--accent: #B8281D;--accent2: #7A4E00;--live: #0A6B5C;--live-dim: #0A6B5C;--time-cursor: #0F5A8C;--keepout: #B02BC9;--data-waves: #08789A;--data-currents: #6D3FD0;--text: #000000;--text-muted: #2E3A42;--on-accent: #FFFFFF;--on-live: #FFFFFF;--border: #8A9AA5;--panel-bg: #FFFFFF;--overlay-bg: rgba(255,255,255,.9);--scrim: rgba(11,27,38,.45);--ink-rgb: 0, 0, 0;--shadow-rgb: 0, 0, 0;--halo-rgb: 255, 255, 255;--on-data: #FFFFFF;--field-ink-rgb: 11, 27, 38;--isobar-ink: #000000;--isobar-badge: rgba(244,249,251,.64);--isobar-badge-edge: rgba(11,27,38,.16);--isobar-badge-ink: #0B1B26;--hull-fill: #E8E8E8;--hull-edge: #444444;--hull-keel: #888888;--cmp-dot-rim: #1A262C;--device-rim: #FFFFFF;--crosshair: #0B1B26;--on-badge: #FFFFFF;--on-marker: #FFFFFF;--switch-on-track: #0E7C6B;--switch-on-knob: #FFFFFF;--night-shade: rgba(0,0,0,.12);--polar-ramp1: #7FC4B7;--polar-ramp3: #238A79;--polar-ramp5: #0A5E51;--polar-ramp6: #073F37}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;scrollbar-width:thin;scrollbar-color:var(--border) transparent}button,input,select,textarea{font-family:inherit}input[type=checkbox],input[type=radio]{accent-color:var(--live)}input[type=number]{appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}:where(a,button,summary,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--live);outline-offset:2px}html,body{touch-action:pan-x pan-y}html,body{overscroll-behavior:none}html{height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{height:100%;font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh);background:var(--bg);color:var(--text);overflow:hidden;display:flex;flex-direction:column;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left)}@media(display-mode:standalone){html{height:100vh;height:100lvh}}:root{--drawer-handle-h: 22px;--map-end: 0px;--drawer-h: 0px;--map-start-x: 0px}body.route-loaded{--drawer-h: var(--drawer-handle-h)}body.route-loaded.graphs-open{--map-end: var(--graphs-h, 50vh);--drawer-h: calc(var(--map-end) + var(--drawer-handle-h))}.text-link{background:none;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.app-body{position:relative;flex:1 1 0;min-height:0;display:flex;--menu-lift: calc(var(--drawer-h) + 6px + var(--corner-bar-h) + 10px);--map-margin-l: calc(var(--map-start-x) - var(--safe-left) + min(var(--map-start-x), var(--safe-left)));--map-margin-b: var(--map-end)}.map-container{flex:1;margin-bottom:var(--map-margin-b);margin-top:calc(-1 * var(--safe-top));margin-left:var(--map-margin-l);margin-right:calc(-1 * var(--safe-right));background:var(--map-bg)}.map-context,.setup-icon,.map-tool,.viz-toggle,.draw-bar,.slider-bar,.time-axis-now-parked,.map-credits-box,.map-legend,.toast,.aim-caption,.welcome-card{background:var(--overlay-bg);backdrop-filter:blur(6px)}.map-legend{position:absolute;bottom:calc(var(--drawer-h) + 10px);left:min(10px,var(--furniture-left));border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1);pointer-events:none;z-index:10}.legend-item{display:flex;align-items:center;gap:7px;font-size:var(--fs-sm);color:var(--text);pointer-events:none}.legend-item[hidden]{display:none}.legend-item--interactive{pointer-events:auto}.legend-swatch{display:inline-block;width:22px;height:4px;border-radius:2px;flex-shrink:0}.legend-swatch--dashed{background:transparent;border-bottom:3px dashed;height:0}.legend-swatch--route{background:var(--accent)}.legend-swatch--reference{border-color:var(--text-muted)}.legend-swatch--iso{background:color-mix(in srgb,var(--text) 45%,transparent);height:2px}.legend-item--zoom{margin-top:2px;border-top:1px solid var(--border);padding-top:3px}.legend-zoom-label{font-size:var(--fs-xs);color:var(--text-muted)}.map-corner-br{position:absolute;bottom:calc(var(--drawer-h) + 6px);left:10px;right:min(10px,var(--furniture-right));display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-1);z-index:165;pointer-events:none;transition:bottom var(--transition);max-height:calc(100% - var(--drawer-h) - 6px - var(--sp-2))}.map-corner-br>*{pointer-events:auto;max-width:100%;flex-shrink:0}.map-credit{padding:6px 9px;margin-bottom:-4px;font-family:var(--font-sans);font-size:var(--fs-2xs);line-height:1;color:var(--map-place)}@media(hover:hover){.map-credit:hover{color:var(--live)}}.map-credits-box{max-width:320px;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);flex-shrink:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;--fade-t: 0px;--fade-b: 0px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgb(var(--ink-rgb)) var(--fade-t),rgb(var(--ink-rgb)) calc(100% - var(--fade-b)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,rgb(var(--ink-rgb)) var(--fade-t),rgb(var(--ink-rgb)) calc(100% - var(--fade-b)),transparent 100%)}.map-credits-box--more-above{--fade-t: 28px}.map-credits-box--more-below{--fade-b: 28px}.map-credits-box[hidden]{display:none}.credit-group{display:flex;flex-direction:column;gap:2px}.credit-line{font-size:var(--fs-2xs);line-height:1.45;color:var(--text)}.credit-notice-link{align-self:flex-start;padding:4px 0;font-family:var(--font-sans);font-size:var(--fs-2xs);line-height:1.45;color:var(--accent2)}.viz-toggle,.draw-bar{display:flex;border:1px solid var(--border);border-radius:var(--pill);padding:3px;gap:3px}.viz-toggle[hidden],.draw-bar[hidden],body.keepout-drawing .viz-toggle{display:none}.viz-toggle-scroll{display:flex;gap:3px;flex:0 100 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;scroll-snap-type:x proximity}.viz-toggle-scroll::-webkit-scrollbar{display:none}.viz-toggle-scroll .viz-toggle-btn{scroll-snap-align:start}.viz-toggle-strip{display:flex;gap:3px;flex:none}.viz-toggle-scroll{--fade-l: 0px;--fade-r: 0px;-webkit-mask-image:linear-gradient(to right,transparent 0,rgb(var(--ink-rgb)) var(--fade-l),rgb(var(--ink-rgb)) calc(100% - var(--fade-r)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,rgb(var(--ink-rgb)) var(--fade-l),rgb(var(--ink-rgb)) calc(100% - var(--fade-r)),transparent 100%)}.viz-toggle-scroll--more-left{--fade-l: 18px}.viz-toggle-scroll--more-right{--fade-r: 18px}.viz-toggle-btn,.draw-bar-btn{display:flex;flex:none;align-items:center;gap:var(--sp-1);padding:var(--sp-1) var(--sp-2);background:none;border:none;border-radius:var(--pill);color:var(--text-muted);font-family:var(--font-sans);font-size:var(--fs-xs);white-space:nowrap;cursor:pointer;transition:color var(--transition),background var(--transition)}@media(hover:hover){.viz-toggle-btn:hover{color:var(--live)}}.viz-toggle-btn--active,.draw-bar-btn--tool{background:var(--surface2);color:var(--text)}.viz-toggle-btn svg,.draw-bar-btn svg{flex-shrink:0}.viz-toggle-btn[hidden]{display:none}.viz-toggle-btn--overlay{border-left:1px solid var(--border);border-right:1px solid var(--border);border-radius:0;margin:0 1px;padding-left:var(--sp-2);padding-right:var(--sp-2)}.viz-toggle-btn--overlay+.viz-toggle-btn--overlay{border-left:none;margin-left:0}.viz-toggle-btn--on{background:color-mix(in srgb,var(--live) 16%,transparent);color:var(--live)}.viz-toggle-btn--parked{background:none}.viz-toggle-model{border-left:1px solid var(--border);border-radius:0 var(--pill) var(--pill) 0;padding-left:var(--sp-2);color:var(--text)}.viz-model-span--loading{color:var(--live);animation:viz-loading-pulse 1.1s ease-in-out infinite}@keyframes viz-loading-pulse{0%,to{opacity:1}50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.viz-model-span--loading{animation:none;opacity:.7}}.viz-model-name{flex:0 0 auto;max-width:60%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viz-model-span{display:flex;justify-content:flex-end;align-items:baseline;flex:0 100 auto;min-width:0;overflow:hidden;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);white-space:nowrap}.viz-model-span>*{flex:none}.viz-model-span i{font-style:normal;color:var(--text)}.viz-model-span em{font-style:normal;color:var(--live)}.viz-model-span--aging i,.viz-model-span--offline{color:var(--accent2)}@media(max-width:600px),(max-height:560px){.viz-toggle-btn,.draw-bar-btn{flex-direction:column;justify-content:center;gap:3px;min-width:56px;height:48px;padding:0 var(--sp-2);font-size:var(--fs-2xs);line-height:1}.viz-toggle-btn svg,.draw-bar-btn svg{width:20px;height:20px}.viz-toggle-scroll--more-left{--fade-l: 28px}.viz-toggle-scroll--more-right{--fade-r: 28px}.viz-toggle-btn--overlay{position:relative;border-left:none;border-right:none;border-radius:var(--pill);margin:0 7px;padding-left:var(--sp-2)}.viz-toggle-btn--overlay:before,.viz-toggle-btn--overlay:after{content:"";position:absolute;top:8px;bottom:8px;width:1px;background:var(--border)}.viz-toggle-btn--overlay:before{left:-5px}.viz-toggle-btn--overlay:after{right:-5px}.viz-toggle-model{align-items:flex-start;gap:var(--sp-1);min-width:0;max-width:124px;padding:0 var(--sp-3) 0 11px;margin-left:2px;font-size:var(--fs-xs)}.viz-model-name,.viz-model-span{max-width:100%;line-height:1.2}.draw-bar{align-self:stretch}.draw-bar-btn--primary{min-width:72px}@media(max-width:389px),(min-width:601px){.draw-bar-btn{flex:0 1 auto;min-width:44px;padding:0 var(--sp-1)}.draw-bar-btn--primary{flex-shrink:0;min-width:56px;padding:0 var(--sp-2)}.draw-bar-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}}}.sheet-menu{position:fixed;width:250px;max-width:calc(100vw - 16px);max-height:min(420px,calc(100vh - var(--slider-h) - var(--menu-lift) - 12px));overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:2px;padding:var(--sp-1);background:var(--panel-bg);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(var(--shadow-rgb),.5);z-index:210;visibility:hidden;opacity:0;transform:translateY(6px) scale(.98);pointer-events:none;transition:opacity .15s ease,transform .15s ease,visibility 0s linear .15s}.sheet-menu.open{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition:opacity .15s ease,transform .15s ease,visibility 0s}.sheet-menu--wide{width:390px}.sheet-menu--sheet{left:var(--safe-left)!important;right:var(--safe-right);top:auto!important;bottom:0;width:auto;max-width:520px;margin:0 auto;max-height:var(--sheet-cap);border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(100%);padding-bottom:var(--safe-bottom)}.sheet-menu--sheet.open{transform:translateY(0)}.sheet-menu-cap{flex:none;padding:var(--sp-1) var(--menu-row-pad);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-menu-head{flex:none;display:flex;flex-direction:column;gap:2px;padding:var(--sp-2) var(--menu-row-pad)}.sheet-menu-label{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.06em;color:var(--text-muted)}.sheet-menu-value{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text)}.sheet-menu-title{font-size:var(--fs-md);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-menu-caption{font-size:var(--fs-2xs);color:var(--text-muted)}.sheet-menu-sep{flex:none;height:1px;margin:2px 0;background:var(--border)}.sheet-menu-item{flex:none;display:block;width:100%;min-height:var(--menu-row-h);padding:var(--sp-2) var(--menu-row-pad);padding-block:calc((var(--menu-row-h) - 1lh) / 2);background:none;border:none;border-radius:var(--radius);color:var(--text);font-size:var(--menu-row-fs);line-height:var(--lh);text-align:left;cursor:pointer}.sheet-menu-item--flex{display:flex;align-items:center;gap:var(--sp-2);padding-block:var(--sp-1)}@media(hover:hover){.sheet-menu-item:hover:not(:disabled){background:var(--surface2);color:var(--live)}}.sheet-menu-item:disabled{color:var(--text-muted);cursor:default;opacity:.6}.sheet-menu-item--danger{color:var(--accent)}@media(hover:hover){.sheet-menu-item--danger:hover:not(:disabled){color:var(--accent)}}.sheet-menu-form{flex:none;display:flex;gap:var(--sp-1);align-items:center;padding:2px var(--sp-1)}.sheet-menu-name{flex:1;min-width:0;padding:6px var(--sp-2);background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm)}.sheet-menu-item--act{width:auto;flex:none;color:var(--live)}@media(hover:none),(pointer:coarse){:root{--menu-row-h: 48px;--menu-row-fs: var(--fs-md);--menu-row-pad: var(--sp-3)}.sheet-menu-name{min-height:44px}.sheet-menu-item--act{min-width:56px}select.field-input,.source-sets label{min-height:44px}.modal-box--offline .modal-close{min-width:44px;min-height:44px}.offline-actions button{min-height:48px}}@supports (appearance: base-select){select.field-input,select.field-input::picker(select){appearance:base-select}select.field-input{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer}select.field-input::picker-icon{color:var(--text-muted)}select.field-input::picker(select){margin-block:6px;padding:var(--sp-1);background:var(--panel-bg);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(var(--shadow-rgb),.5);color:var(--text)}select.field-input option{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--menu-row-h);padding:0 var(--menu-row-pad);border-radius:var(--radius);background:none;color:var(--text);font-size:var(--menu-row-fs);white-space:nowrap;cursor:pointer}select.field-input option+option{margin-top:2px}select.field-input option:focus-visible{background:var(--surface2);color:var(--live);outline:none}select.field-input option:checked{background:var(--surface2);box-shadow:inset 0 0 0 1px var(--live-dim)}select.field-input option::checkmark{color:var(--live)}}@media(hover:hover){select.field-input option:hover{background:var(--surface2);color:var(--live)}}@media(max-height:560px){@supports (appearance: base-select){select.field-input::picker(select){position-area:span-all span-inline-end;position-try-fallbacks:none;margin-block:0;max-height:calc(100vh - 16px)}}}.forecast-menu{position:absolute;right:min(10px,var(--furniture-right));bottom:var(--menu-lift);width:390px;max-width:calc(100vw - 20px);height:min(420px,calc(100% - var(--menu-lift) - 12px));max-height:none;overflow:hidden;gap:0}.forecast-menu.sheet-menu--sheet{position:fixed;right:var(--safe-right);bottom:0;height:var(--sheet-cap);width:auto;max-width:520px}.forecast-menu-group{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);opacity:.75;padding:var(--sp-2) var(--sp-3) 2px}.forecast-opt{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:var(--touch);padding:var(--sp-2) var(--sp-3);background:none;border:none;border-radius:var(--radius);color:var(--text);text-align:left;cursor:pointer}@media(hover:hover){.forecast-opt--none:hover{background:rgba(var(--ink-rgb),.04)}}.forecast-opt--none.forecast-opt--on{background:var(--surface2);box-shadow:inset 0 0 0 1px var(--live-dim)}.forecast-opt--dim{opacity:.55}.forecast-opt-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.forecast-opt-txt b{font-weight:var(--fw-semibold);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forecast-opt-line{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;min-width:0}.forecast-opt-line b{flex:0 1 auto;min-width:0}.forecast-opt-txt small{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forecast-opt-mark{color:var(--live);font-size:var(--fs-xs);flex-shrink:0}.forecast-menu-tabs{flex:none;align-items:stretch;margin:0 0 var(--sp-1)}.forecast-menu-tabs .section-add{margin-left:2px;align-self:center}.forecast-menu-tabs .filter-tab{flex:1 1 0;min-width:0;padding-inline:var(--sp-1)}.forecast-menu-tabs .section-count{white-space:nowrap}.filter-tab .section-count{font-weight:400;color:var(--text-muted);margin-left:2px}.forecast-menu-notice{flex:none;margin:0 0 var(--sp-1);padding:6px var(--sp-3);border-radius:var(--radius);border:1px solid var(--accent2);color:var(--accent2);font-size:var(--fs-xs)}.forecast-menu-notice[hidden]{display:none}.forecast-menu-notice .text-link{font:inherit;color:inherit}@media(hover:hover){.forecast-menu-notice .text-link:hover{color:var(--live)}}.forecast-menu-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}.forecast-menu-rows{display:flex;flex-direction:column}.forecast-menu-empty{font-size:var(--fs-xs);line-height:1.45}.forecast-opt--model,.forecast-opt--copy{display:block;height:auto;flex-shrink:0;padding:0;position:relative;overflow:hidden}.forecast-opt-content{position:relative;display:flex;align-items:flex-start;gap:var(--sp-2);padding:9px var(--sp-3);background:var(--panel-bg);touch-action:pan-y;border-radius:var(--radius);transition:transform .15s ease-out}.forecast-opt-content.dragging{transition:none;user-select:none;cursor:grabbing}.forecast-opt--on .forecast-opt-content{background:var(--surface2);box-shadow:inset 0 0 0 1px var(--live-dim)}@media(hover:hover){.forecast-opt--model:hover .forecast-opt-content,.forecast-opt--copy:hover .forecast-opt-content{background:color-mix(in srgb,var(--panel-bg),rgb(var(--ink-rgb)) 4%)}.forecast-opt--on:hover .forecast-opt-content{background:var(--surface2)}}.forecast-opt--model+.forecast-opt--model,.forecast-opt--model+.forecast-opt--copy,.forecast-opt--copy+.forecast-opt--copy,.forecast-opt--copy+.forecast-opt--model{border-top:1px solid var(--border);border-radius:0}.forecast-opt--on+.forecast-opt--model,.forecast-opt--on+.forecast-opt--copy,.forecast-opt--model.forecast-opt--on,.forecast-opt--copy.forecast-opt--on{border-top-color:transparent;border-radius:var(--radius)}.forecast-opt--model .forecast-opt-txt,.forecast-opt--copy .forecast-opt-txt{gap:3px;overflow:visible}.forecast-opt .fc-about{white-space:normal}.forecast-opt .fc-area{display:flex;flex-wrap:wrap;column-gap:8px;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text);opacity:.85}.forecast-opt .fc-area-box{white-space:nowrap}.forecast-opt .fc-area-box:empty{display:none}.forecast-opt .fc-offline{color:var(--live);white-space:nowrap}.forecast-opt .fc-foot{display:flex;align-items:center;gap:8px;width:100%;min-width:0;flex-wrap:nowrap}.forecast-opt .fc-foot>*{flex:none}.wx-badge.wx-badge--plain{border:none;padding:0;background:none}.forecast-opt .fc-status,.forecast-opt .fc-why,.forecast-opt .fc-update{display:block;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.forecast-opt .fc-update{background:none;border:none;padding:2px 0;text-align:left;cursor:pointer;color:var(--accent2)}@media(hover:hover){.forecast-opt .fc-update:hover{color:var(--live)}}.forecast-opt .fc-body{position:relative;display:flex;flex-direction:column;gap:3px;min-width:0}.forecast-opt .fmark,.forecast-opt .forecast-opt-mark{position:absolute;right:0;top:50%;transform:translateY(-50%);margin:0}.forecast-opt--marked .fc-body,.forecast-opt--short .forecast-opt-line{padding-right:40px}.forecast-opt--model:focus-visible,.forecast-opt--copy:focus-visible{outline:none}.forecast-opt--model:focus-visible .forecast-opt-content,.forecast-opt--copy:focus-visible .forecast-opt-content{outline:2px solid var(--live);outline-offset:-2px}.menu-backdrop{position:fixed;inset:0;z-index:209;touch-action:none}body:has(.setup-panel.open):has(.sheet-menu--sheet.open) .menu-backdrop{background:var(--scrim)}@media(max-width:600px){body:has(.sheet-menu--sheet.open) .toast{bottom:calc(var(--sheet-cap) + var(--safe-bottom) + var(--sp-3))}}.forecast-opt--copy .grib-row-progress{border-radius:0}.forecast-menu-actions{padding:var(--sp-1) var(--sp-3);border-top:1px solid var(--border)}.forecast-menu-action{min-height:44px;padding:0;background:none;border:none;cursor:pointer;font-size:var(--fs-sm);color:var(--live);text-align:left}.forecast-menu-action:disabled{color:var(--text-muted);cursor:default}@media(hover:hover){.forecast-menu-action:not(:disabled):hover{text-decoration:underline;text-underline-offset:2px}}.forecast-menu-action-note{padding-bottom:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted)}.import-progress{position:relative;height:2px}.import-progress[hidden]{display:none}.import-status{white-space:pre-line}.offline-estimate.import-status--refused{color:var(--accent2)}.storage-footer.forecast-menu-foot{margin-top:auto;padding:var(--sp-3) var(--sp-3) var(--sp-2)}.forecast-menu-foot[hidden]{display:none}.forecast-menu-foot .storage-footer-label{color:var(--text)}.forecast-menu-foot .storage-footer-row{flex-wrap:wrap;row-gap:2px}.forecast-menu-foot .storage-footer-wipe{flex-basis:100%;min-height:44px;margin-left:auto;white-space:nowrap}.forecast-menu-foot .storage-durability{margin-left:.4em;padding:8px 0;margin-top:-8px;margin-bottom:-8px}.forecast-menu-foot .storage-durability:before{display:inline-block}.forecast-menu-foot .storage-durability{background:none;border:none;padding:0;font:inherit;cursor:pointer}.storage-durability-note{font-size:var(--fs-2xs);color:var(--text-muted);line-height:1.4;padding-top:var(--sp-1)}.storage-durability-note[hidden]{display:none}.forecast-menu-foot .storage-footer-size--stored:before{content:"\2713  ";color:var(--live)}.route-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;flex:none}.card-row.route-set-header .card-row-content{background:var(--surface2)}.route-cols{list-style:none;padding:0 calc(var(--sp-2) + 1px + 32px + var(--sp-2)) 0 calc(var(--sp-2) + 1px)}.route-cols .route-grid{align-items:end}.route-grid{display:grid;--rc-digit: 7.2px;--rc-num-sep: 3px;--rc-num-6: calc(6 * var(--rc-digit) + var(--rc-num-sep));--rc-num-5: calc(5 * var(--rc-digit) + var(--rc-num-sep));--rc-num-4: calc(4 * var(--rc-digit) + var(--rc-num-sep));grid-template-columns:auto minmax(0,1fr) minmax(var(--rc-num-6),max-content) minmax(var(--rc-num-6),max-content) minmax(var(--rc-num-5),max-content) minmax(var(--rc-num-4),max-content);gap:2px 3px;align-items:baseline;min-width:0;flex:1}.card-row--table .card-row-content{padding-left:var(--sp-2);padding-right:var(--sp-2)}.card-row--table.route-set-header .card-row-name{flex:none;font-size:var(--fs-xs)}.card-row--table.route-set-header .rc-bandmeta{flex:1;font-size:12.5px}.route-table{list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;flex-shrink:0}.card-list>.route-table{border-top:1px solid var(--border)}.route-table-rows{list-style:none;margin:0;padding:0;display:block}.route-table .card-row{border-radius:0}.route-table .card-row+.card-row .card-row-content{border-top:1px solid var(--border)}.route-table .card-row-content{border:0;border-radius:0;background:transparent;min-height:44px}.route-table .card-row-action{border-radius:0}.route-table .route-set-header .card-row-content{background:var(--surface2)}.route-table .card-row--selected .card-row-content{background:color-mix(in srgb,var(--live) 8%,transparent);box-shadow:inset 3px 0 0 var(--live)}.rc-col-l2{display:block}.rc-sort{color:var(--live);font-size:12px;margin-left:2px}.rc-col{background:none;border:0;padding:5px 0 3px;cursor:pointer;font-family:var(--font-sans);font-size:12px;color:var(--text-muted);text-align:right;white-space:nowrap}.rc-col:first-child{text-align:left}.rc-col--dep{grid-column:span 2}.rc-col--on{color:var(--text)}.rc-serial{font-size:13.5px;font-weight:var(--fw-semibold);color:var(--text-muted);white-space:nowrap;margin-right:2px}.rc-dep{font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-num{font-family:var(--font-mono);font-size:12px;text-align:right;white-space:nowrap}.rc-status{grid-column:3 / -1;align-self:center;font-size:var(--fs-2xs);color:var(--text-muted);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-bandmeta{font-size:var(--fs-xs);font-weight:var(--fw-normal);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-sub{grid-column:1 / -1;display:flex;align-items:center;gap:6px;height:16px;min-width:0}.rc-sub-right{margin-left:auto;display:flex;align-items:center;gap:6px;min-width:0}.rc-outcome{flex:none;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-outcome--warn{color:var(--accent2)}.rc-sub .wx-badge{flex:none;font-size:11px;line-height:14px;padding:0 4px}.rc-sub .rc-bandmeta{flex:none;font-size:12px}.rc-subname{flex:0 1 auto;min-width:0;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmp-legend-shared{font-family:var(--font-mono);color:var(--text-muted)}.cmp-legend-item{display:inline-flex;align-items:center;gap:5px;max-width:100%;overflow:hidden;white-space:nowrap}.cmp-legend-item--primary{font-weight:600}.map-rail{position:absolute;top:var(--furniture-top);left:var(--furniture-left);display:flex;flex-direction:column;gap:var(--sp-4);z-index:15;transition:transform var(--transition)}.setup-icons{display:flex;flex-direction:column;gap:var(--sp-2)}body.setup-open .map-rail{transform:translate(calc(min(var(--setup-panel-w),100vw - 78px) + 12px))}#map .maplibregl-canvas-container.maplibregl-interactive,#map .maplibregl-canvas-container.maplibregl-interactive:active{cursor:default}.map-context{position:absolute;top:var(--furniture-top);right:var(--furniture-right);min-width:148px;max-width:var(--map-context-w);transition:top var(--transition);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);display:flex;flex-direction:column;gap:2px;pointer-events:none;z-index:12}.map-context[hidden]{display:none}.context-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2);line-height:var(--lh-tight)}.context-row[hidden]{display:none}.context-label{flex-shrink:0;font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.context-label--engine{margin-left:auto;color:var(--live)}.context-value{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-route-group{border-top:1px solid var(--border);margin-top:var(--sp-1);padding-top:var(--sp-2);display:flex;flex-direction:column;gap:2px;pointer-events:auto;cursor:pointer}.context-route-group[hidden]{display:none}.setup-icon,.map-tool{width:var(--map-rail-w);height:var(--map-rail-w);display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);cursor:pointer;transition:color var(--transition),border-color var(--transition)}@media(hover:hover){.setup-icon:hover,.map-tool:hover{color:var(--live);border-color:var(--live-dim)}}.setup-icon.active{color:var(--live);border-color:var(--live)}.map-tool[aria-busy=true]{color:var(--live);border-color:var(--live-dim);cursor:progress;animation:map-tool-pulse 1.2s ease-in-out infinite}@keyframes map-tool-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.map-tool[aria-busy=true]{animation:none;opacity:.7}}.setup-panel{position:absolute;top:var(--furniture-top);left:var(--furniture-left);bottom:12px;width:var(--setup-panel-w);max-width:calc(100% - 78px);background:var(--panel-bg);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 12px 30px rgba(var(--shadow-rgb),.45);display:flex;flex-direction:column;transform:translate(calc(-100% - 24px));visibility:hidden;transition:transform var(--transition),visibility var(--transition),bottom var(--transition);z-index:20;overflow:hidden}@media(min-width:601px){.setup-panel{bottom:calc(var(--drawer-h) + 12px)}}.setup-panel.open{transform:translate(0);visibility:visible}.setup-panel-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);flex-shrink:0}.setup-panel-header .setup-panel-title{flex:1}.setup-panel-title{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em}.setup-panel-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;padding:var(--sp-4)}.setup-page{flex:none;display:flex;flex-direction:column;gap:var(--sp-4)}.setup-page[hidden]{display:none}#js-page-routing{flex:1 1 auto;min-height:0}.panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--sp-4);margin-block:-1px;padding-block:1px}.panel-scroll>*{flex-shrink:0}.panel-scroll,.card-list.orc-list{margin-inline:calc(-1 * var(--sp-4));padding-inline:var(--sp-4)}.setup-section{display:flex;flex-direction:column}.setup-section[hidden]{display:none}.setup-section-header{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-1) var(--sp-1)}.section-collapse{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-1);padding:var(--sp-1) 0;background:none;border:none;color:var(--text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.12em;text-align:left;cursor:pointer}.section-chevron{display:block;flex-shrink:0;transition:transform var(--transition)}@media(hover:hover){.section-collapse:hover{color:var(--live)}}.setup-section.collapsed .section-chevron{transform:rotate(-90deg)}.section-count{font-weight:var(--fw-normal)}.section-meta{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-section-header--flat .section-title{flex:1;padding:var(--sp-1) 0;color:var(--text-muted);font-size:var(--fs-2xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:.12em}.setup-section.collapsed .setup-section-body{display:none}.setup-group{list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.setup-group>*+*{border-top:1px solid var(--border)}.setup-empty{padding:var(--sp-3) var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted)}.setup-empty .text-link{font:inherit;color:inherit}@media(hover:hover){.setup-empty .text-link:hover{color:var(--live)}}.card-list[hidden]{display:none}.card-list{background:none;border:none;border-radius:0;display:flex;flex-direction:column;gap:var(--sp-2);padding:1px}.card-list>*+*{border-top:none}.card-list>*{flex-shrink:0}.card-list>li.panel-note{padding:0 calc(var(--sp-3) + 1px)}.card-row{position:relative;overflow:hidden;border-radius:var(--radius)}.card-row-action{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding-right:var(--sp-3);background:var(--accent);color:var(--on-accent);border-radius:var(--radius);font-size:var(--fs-sm);font-weight:var(--fw-semibold);opacity:0}.card-row-content{position:relative;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);line-height:var(--lh-tight);min-height:var(--touch);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);touch-action:pan-y;transition:transform .2s ease,border-color .15s ease,background .15s ease}.card-row-content.dragging{transition:none;user-select:none;cursor:grabbing}@media(hover:hover){.card-row-content--tappable:hover{border-color:var(--live-dim)}}.card-row--pending .card-row-content{opacity:.6}.card-row-content--tappable{cursor:pointer}.card-row--selected .card-row-content{background:var(--surface2);border-color:var(--live);box-shadow:inset 3px 0 0 var(--live)}.card-row--selected .card-row-name{color:var(--live)}.grib-row-progress{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--surface2);border-radius:0 0 var(--radius) var(--radius);overflow:hidden}.grib-row-progress>span{display:block;width:0;height:100%;background:var(--live);transition:width var(--transition)}.grib-row-progress--indeterminate>span{width:30%;animation:grib-row-progress-sweep 1.4s ease-in-out infinite}@keyframes grib-row-progress-sweep{0%{transform:translate(-100%)}to{transform:translate(333%)}}@media(prefers-reduced-motion:reduce){.grib-row-progress>span{transition:none}.grib-row-progress--indeterminate>span{animation:none;width:100%;opacity:.5}}.card-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.card-row-name{font-size:var(--fs-md);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-row-meta{font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-icons{display:flex;gap:5px;align-items:center;flex-shrink:0;margin-left:auto;color:var(--text-muted)}.fc-ico{display:flex}.fc-grid{font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;color:var(--text-muted);flex:none;white-space:nowrap}.card-row--selected .fc-grid{color:var(--text)}.fc-grid[hidden]{display:none}.fc-about{font-size:var(--fs-2xs);line-height:1.35;color:var(--text-muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.fc-about[hidden]{display:none}.fc-run{font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:1.5;color:var(--text-muted);white-space:nowrap}.card-row--selected .fc-run{color:var(--text)}.card-row-line{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.card-row-line--title{gap:6px}.card-row-line--title .card-row-name{flex:0 1 auto;min-width:0}.wx-badge{font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:1.5;border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:1px 5px;white-space:nowrap}.wx-badge i{font-style:normal;color:var(--text)}.wx-badge em{font-style:normal;color:var(--live)}.wx-badge--aging{border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.wx-badge--aging i,.wx-badge em.span-expired,.viz-model-span em.span-expired{color:var(--accent2)}.wx-badge--stored,.wx-badge--saved{background:var(--live);border-color:var(--live);color:var(--on-live);font-weight:var(--fw-semibold)}.filter-tabs{display:flex;gap:var(--sp-1);margin-bottom:var(--sp-2)}.filter-tabs[hidden]{display:none}.filter-tab{flex:1;min-height:36px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-sans);font-size:var(--fs-xs);cursor:pointer}@media(hover:hover){.filter-tab:not(.filter-tab--on):hover{color:var(--live);border-color:var(--live-dim)}}.filter-tab--on{background:var(--surface2);color:var(--text);border-color:var(--live-dim)}.storage-footer{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2) var(--sp-1);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted)}.storage-footer[hidden]{display:none}.storage-footer-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.storage-footer-total{color:var(--text);white-space:nowrap}.storage-durability:before{content:" \b7  "}.storage-durability{white-space:nowrap;cursor:help;text-decoration:underline dotted;text-underline-offset:2px}.storage-durability--at-risk{color:var(--accent2)}.storage-footer-wipe{margin:0;padding:var(--sp-1) 0;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);text-align:right}@media(hover:hover){.storage-footer-wipe:hover{color:var(--accent)}}.storage-footer-wipe[hidden],.storage-footer-note[hidden]{display:none}.field-label{display:flex;flex-direction:column;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-muted)}.setup-group .field-label{padding:var(--sp-3)}.setup-group>.panel-note{padding:var(--sp-3)}.field-label--inline{flex-direction:row;align-items:center;gap:var(--sp-2)}.field-input{padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--fs-md);font-family:inherit;width:100%}.field-input:disabled{opacity:.4;cursor:not-allowed}.field-input[aria-invalid=true]{border-color:var(--accent)}.setup-group .field-input{background:var(--bg)}.field-row{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--touch);padding:0 var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted)}.field-row-name{flex-shrink:0}.field-row-name--leg{width:62px;display:flex;flex-direction:column;line-height:var(--lh-tight)}.field-row-hint{font-size:var(--fs-2xs)}.field-row-ctl{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);min-width:0}.field-row-ctl--grow{flex:1;margin-left:0}.field-row-ctl--grow .field-input{flex:1;min-width:0}.field-row .field-input{padding:6px 10px;font-size:var(--fs-sm)}.field-row .field-input:disabled{opacity:.5}.field-input--num{width:64px;text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.field-input--num-sm{width:54px}.field-input--select{width:auto;max-width:180px}.field-unit{width:26px;flex-shrink:0;color:var(--text-muted);font-size:var(--fs-sm)}.field-unit--wide{width:auto}.field-times{color:var(--text-muted)}.field-row-value{color:var(--text);font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-row--nav .field-row-value{flex:0 1 auto;min-width:0}.field-row--nav .viz-model-span{flex-shrink:10000}.field-row-chev{flex-shrink:0;color:var(--text-muted);transform:rotate(-90deg)}button.field-row{width:100%;background:none;border:none;font-family:inherit;text-align:left;cursor:pointer;transition:background var(--transition)}.setup-group>*+button.field-row,.setup-subgroup>*+button.field-row{border-top:1px solid var(--border)}@media(hover:hover){.field-row--nav:hover{background:rgba(var(--ink-rgb),.04)}.field-row--nav:hover .field-row-chev{color:var(--live)}}.field-row--add .field-row-name{color:var(--live)}.field-row--add:disabled{cursor:default}@media(hover:hover){.field-row--add:disabled:hover{background:none}}.field-row--add:disabled .field-row-name{color:var(--text-muted)}.field-row--add:disabled .field-row-value{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted);white-space:normal;text-align:right;line-height:var(--lh-tight);padding:var(--sp-2) 0}.field-row--add:disabled .field-row-chev{visibility:hidden}.field-row--dim{opacity:.55}.pick-list{list-style:none;margin:0;padding:0}.pick-list>*+*{border-top:1px solid var(--border)}.card-row--flat,.card-row--flat .card-row-action,.card-row--flat .card-row-content{border-radius:0}.card-row--flat .card-row-content{padding:0;border:none;background:var(--surface)}@media(hover:hover){.card-row--flat .card-row-content--tappable:hover{border-color:transparent}}.card-row--flat .card-row-main{gap:0}.field-row-chips{display:flex;gap:var(--sp-2);padding:0 var(--sp-3) var(--sp-2) calc(var(--sp-3) + 62px + var(--sp-2))}.setup-group>.field-row-chips{border-top:none}.btn-chip{min-height:32px;padding:0 var(--sp-3);background:var(--surface2);border:1px solid var(--border);border-radius:var(--pill);color:var(--text);font-family:inherit;font-size:var(--fs-2xs);cursor:pointer;transition:color var(--transition),border-color var(--transition)}@media(hover:hover){.btn-chip:hover{color:var(--live);border-color:var(--live-dim)}}.setup-subgroup>*+*{border-top:1px solid var(--border)}.setup-subgroup[hidden]{display:none}.setup-group>.panel-note--row,.setup-subgroup>.panel-note--row{padding:var(--sp-2) var(--sp-3) var(--sp-3);font-size:var(--fs-2xs);border-top:none}.switch{appearance:none;-webkit-appearance:none;width:38px;height:23px;margin:0;flex-shrink:0;border-radius:var(--pill);background:var(--surface2);border:1px solid var(--border);position:relative;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:var(--text-muted);transition:transform var(--transition),background var(--transition)}.switch:checked{background:var(--switch-on-track);border-color:var(--live)}.switch:checked:after{transform:translate(15px);background:var(--switch-on-knob)}.switch:disabled{opacity:.4;cursor:not-allowed}.run-status{margin:var(--sp-2) 0 0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-left:3px solid var(--live);border-radius:8px;background:var(--bg);font-size:var(--fs-2xs);color:var(--text-muted);line-height:var(--lh)}.run-status[data-tone=warn]{border-left-color:var(--accent2);color:var(--text)}.field-pair{position:relative}.field-pair>.field-row{padding-right:60px}.field-pair>*+*{border-top:1px solid var(--border)}.field-pair:before{content:"";position:absolute;right:24px;top:24px;bottom:24px;width:10px;border:1px solid var(--border);border-left:none;border-radius:0 8px 8px 0;pointer-events:none}.field-pair:has(.field-link[aria-pressed=true]):before{border-color:var(--live-dim)}.field-link{position:absolute;right:10px;top:24px;bottom:24px;margin-block:auto;width:30px;height:30px;padding:0;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color var(--transition),border-color var(--transition)}@media(hover:hover){.field-link:hover:not(:disabled){color:var(--live);border-color:var(--live-dim)}}.field-link:disabled{opacity:.4;cursor:not-allowed}.field-link[aria-pressed=true]{color:var(--live);border-color:var(--live-dim);background:var(--bg)}.field-link .field-link-off,.field-link[aria-pressed=false] .field-link-on{display:none}.field-link[aria-pressed=false] .field-link-off{display:block}.field-pair .field-input[readonly]{opacity:.5}.btn-map-pick{align-self:center}.btn-row{display:flex;gap:var(--sp-2);margin-top:var(--sp-2)}.setup-section-header+[hidden]+[hidden]+.btn-row{margin-top:0}.btn-secondary{flex:1;padding:var(--sp-2) var(--sp-3);min-height:40px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--transition),color var(--transition)}@media(hover:hover){.btn-secondary:hover:not(:disabled){border-color:var(--live-dim);color:var(--live)}}.btn-secondary:disabled{opacity:.6;cursor:default}.btn-run{margin-top:var(--sp-2);padding:var(--sp-3);min-height:44px;background:var(--accent);border:none;border-radius:var(--radius);color:var(--on-accent);font-weight:var(--fw-semibold);font-size:var(--fs-md);cursor:pointer;transition:opacity var(--transition)}.btn-run:disabled{opacity:.35;cursor:not-allowed}.btn-row .btn-run{flex:1;margin-top:0}.panel-note{font-size:var(--fs-sm);color:var(--text-muted);line-height:var(--lh)}.panel-note--warn{color:var(--accent2)}.setup-section>.panel-note{padding:var(--sp-1) calc(var(--sp-3) + 2px)}.field-warn{font-size:var(--fs-xs);color:var(--accent2);line-height:var(--lh)}.field-warn[hidden]{display:none}.field-label:has(.field-warn:not([hidden])) .field-input{border-color:color-mix(in srgb,var(--accent2) 50%,transparent)}.panel-note--attribution{font-size:var(--fs-xs);border-top:1px solid var(--border);padding-top:var(--sp-2)}.modal-box.modal-box--offline{width:min(94vw,420px)}.offline-form{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.offline-field{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap}.offline-field .field-input{width:auto;max-width:60%}.offline-region{font-size:var(--fs-xs);color:var(--text-muted)}.offline-estimate{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text);border-top:1px solid var(--border);padding-top:var(--sp-2);min-height:1.5em}.offline-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-4)}.offline-actions .btn-download{flex:1;width:auto}.source-sets{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-3);font-size:var(--fs-xs);color:var(--text-muted)}.source-sets label{display:flex;align-items:center;gap:var(--sp-1);white-space:nowrap}.source-sets input[type=checkbox]{appearance:none;-webkit-appearance:none;width:15px;height:15px;margin:0;flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition)}.source-sets input[type=checkbox]:checked{background:var(--live);border-color:var(--live)}.source-sets input[type=checkbox]:checked:after{content:"";display:block;width:4px;height:8px;margin:0 auto;border:solid var(--on-live);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg)}.source-sets input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.btn-download{align-self:flex-end;padding:var(--sp-2) var(--sp-4);min-width:132px;min-height:40px;background:var(--accent);border:1px solid transparent;border-radius:var(--radius);color:var(--on-accent);font-weight:var(--fw-semibold);font-size:var(--fs-sm);text-align:center;cursor:pointer;transition:opacity var(--transition),color var(--transition),background var(--transition),border-color var(--transition)}@media(hover:hover){.btn-download:hover:not(:disabled){opacity:.85}}.btn-download:disabled{opacity:.35;cursor:not-allowed}.setup-row-chev{flex-shrink:0;color:var(--text-muted);font-size:var(--fs-lg)}.icon-btn{position:relative;flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;margin:0;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font:inherit;font-size:var(--fs-xl);line-height:1;cursor:pointer;transition:color var(--transition),border-color var(--transition)}.icon-btn:after{content:"";position:absolute;inset:-6px}.icon-btn+.icon-btn{margin-left:4px}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn[hidden]{display:none}@media(hover:hover){.icon-btn:hover:not(:disabled){color:var(--live);border-color:var(--live)}}.icon-btn.btn-armed{width:auto;min-width:32px;padding:0 var(--sp-2);font-size:var(--fs-2xs)}.icon-btn--faded{opacity:.4}.modal-box.modal-box--polar{width:min(94vw,900px);max-height:92vh}.polar-editor{--polar-chart-h: clamp(300px, 62vh, 620px);display:flex;gap:var(--sp-4);padding:var(--sp-4);flex:1 1 auto;min-height:0;overflow-y:auto}.polar-figure{flex:0 0 calc(var(--polar-chart-h) * .634);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);margin:0;min-width:0}.polar-plot{flex:0 0 auto;width:100%;height:var(--polar-chart-h)}.polar-plot svg{display:block;width:100%;height:100%}.polar-controls{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--sp-3)}.polar-ring{fill:none;stroke:rgba(var(--ink-rgb),.12);stroke-width:1}.polar-spoke{stroke:rgba(var(--ink-rgb),.08);stroke-width:1}.polar-ring-label{fill:var(--text-muted);font-size:var(--fs-2xs);font-family:var(--font-mono)}.polar-angle-label{fill:var(--text-muted);font-size:var(--fs-2xs)}.polar-curve{transition:opacity .12s ease}.polar-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-1) var(--sp-3);max-width:100%}.polar-legend-item{display:flex;align-items:center;gap:6px;padding:2px 0;background:none;border:none;color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer}@media(hover:hover){.polar-legend-item:hover{color:var(--live)}}.polar-legend-swatch{width:14px;height:4px;border-radius:2px;flex-shrink:0}.polar-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4) var(--sp-4);border-top:1px solid var(--border)}.polar-actions button{flex:1 1 90px;margin-top:0}.polar-text{font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:1.5;white-space:pre;overflow-wrap:normal;overflow-x:auto;resize:vertical;min-height:150px;tab-size:4}.polar-verdict{display:flex;gap:var(--sp-2);align-items:flex-start;font-size:var(--fs-xs);color:var(--text-muted);min-height:20px}.polar-verdict--ok{color:var(--live)}.polar-verdict--bad{color:var(--accent)}.polar-verdict code{font-family:var(--font-mono);font-size:var(--fs-2xs)}.polar-verdict-icon{line-height:1.2}.polar-empty{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;padding:var(--sp-4)}.btn-armed{border-color:var(--accent)!important;color:var(--accent)!important}.btn-download.btn-armed{background:transparent}.modal-box--drop{outline:2px dashed var(--live-dim);outline-offset:-6px}.modal-box.modal-box--notice{width:min(94vw,440px)}.notice-title{color:var(--accent2)}.notice-icon{flex:none;color:var(--accent2)}.notice-body{padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);flex:1 1 auto;min-height:0;overflow-y:auto;font-size:var(--fs-md);line-height:var(--lh);color:var(--text)}.notice-body p{margin:0}.notice-lede{font-weight:var(--fw-semibold)}.notice-detail{color:var(--text-muted)}.notice-actions{padding:0 var(--sp-4) var(--sp-3)}.notice-accept{margin-top:0;width:100%}.notice-foot{margin:0;padding:0 var(--sp-4) var(--sp-4);font-size:var(--fs-xs);text-align:center}.modal-box.modal-box--orc{width:min(94vw,620px);height:min(92vh,760px)}.orc-browse{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4) var(--sp-4) var(--sp-2)}.orc-browse[hidden],.orc-detail[hidden],.polar-actions[hidden]{display:none}.orc-list{flex:1 1 auto;min-height:0;overflow-y:auto}.orc-count{margin:0;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted)}.orc-status{margin:0;font-size:var(--fs-xs);color:var(--text-muted)}.orc-status .text-link{color:inherit;font-size:inherit;padding:0}@media(hover:hover){.orc-status .text-link:hover{color:var(--live)}}.orc-none{list-style:none;padding:var(--sp-4);font-size:var(--fs-xs);color:var(--text-muted);text-align:center}.orc-detail{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-4)}.orc-detail .polar-figure{flex:1 1 auto;min-height:0;width:100%}.orc-detail .polar-plot{flex:1 1 auto;height:auto;min-height:220px}.orc-detail .polar-verdict{justify-content:center}.orc-meta{margin:0;font-size:var(--fs-sm);color:var(--text-muted);text-align:center}.orc-credit{margin:0;padding:var(--sp-2) var(--sp-4) var(--sp-3);font-size:var(--fs-2xs)}.orc-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}@media(hover:hover){.orc-credit a:hover{color:var(--live)}}@media(max-width:600px){.polar-editor{flex-direction:column;--polar-chart-h: 320px}.polar-figure{flex:0 0 auto;width:100%}}.slider-bar{height:var(--slider-h);border-top:1px solid var(--border);display:flex;flex-direction:column;align-items:stretch;margin:0 calc(-1 * var(--safe-right)) 0 calc(-1 * var(--safe-left));padding:0 var(--safe-right) 0 var(--safe-left);gap:0;flex-shrink:0;position:relative;z-index:160}.time-axis{position:relative;height:62px;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}.time-axis--fixed{cursor:default}.time-axis--fixed .time-axis-strip{cursor:pointer}.time-axis--fixed .time-axis-readout,.time-axis--fixed .time-axis-tail{cursor:grab}.time-axis--grabbing,.time-axis--grabbing *{cursor:grabbing}.time-axis-readout{position:absolute;top:0;left:50%;height:20px;transform:translate(-50%);display:flex;align-items:baseline;gap:var(--sp-1);white-space:nowrap;z-index:4}.time-axis-time{font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--time-cursor);text-shadow:0 1px 3px rgba(var(--halo-rgb),.6)}.time-axis-zone{font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:1;color:var(--text-muted)}.time-axis-tail{position:absolute;top:22px;left:50%;width:12px;height:11px;margin-left:-6px;color:var(--time-cursor);filter:drop-shadow(0 0 1.5px var(--time-cursor));z-index:3}.time-axis-tail svg{display:block;width:12px;height:11px}.time-axis-strip{position:absolute;left:20px;right:20px;top:22px;height:40px;background:var(--surface2);border-radius:3px;overflow:hidden}.time-axis-strip--pointer-focus:focus-visible{outline:none}.time-axis-track{position:absolute;top:0;bottom:0;left:0;will-change:transform}.time-axis-day{position:absolute;top:0;bottom:0;border-left:1px solid rgba(var(--ink-rgb),.16)}.time-axis-day--alt{background:rgba(var(--ink-rgb),.06)}.time-axis-day-label{position:absolute;top:5px;left:6px;font-size:var(--fs-2xs);line-height:1;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap}.time-axis-ticks{position:absolute;bottom:0;background-repeat:repeat-x;pointer-events:none}.time-axis-ticks--3h{height:4px;background-image:linear-gradient(90deg,rgba(var(--ink-rgb),.38) 0 1px,transparent 1px)}.time-axis-ticks--6h{height:8px;background-image:linear-gradient(90deg,rgba(var(--ink-rgb),.55) 0 1px,transparent 1px)}.time-axis-end{position:absolute;top:0;bottom:0;width:420px;display:flex;align-items:flex-start;padding:5px 10px 0;line-height:1;font-size:var(--fs-2xs);color:var(--text-muted);white-space:nowrap}.time-axis-end--before{right:100%;justify-content:flex-end;border-right:1px dashed rgba(var(--ink-rgb),.25)}.time-axis-end--after{left:100%;border-left:1px dashed rgba(var(--ink-rgb),.25)}.time-axis-marks{position:absolute;inset:0;pointer-events:none}.time-axis-mark{position:absolute;top:0;bottom:0;width:2px;transform:translate(-50%);opacity:.92}.time-axis-mark-label{position:absolute;bottom:5px;font-size:var(--fs-2xs);line-height:1;letter-spacing:.02em;white-space:nowrap;opacity:.92;text-shadow:0 1px 3px rgba(var(--halo-rgb),.9)}.time-axis-marker{position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--time-cursor);box-shadow:0 0 4px var(--time-cursor);pointer-events:none;z-index:2}.time-axis-now{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed color-mix(in srgb,var(--text) 75%,transparent);pointer-events:none}.time-axis-now-label{color:var(--text);pointer-events:auto;cursor:pointer}.time-axis-strip--now-parked .time-axis-now-label{visibility:hidden}.time-axis-now-parked{position:absolute;bottom:4px;height:18px;padding:0 7px;display:flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:var(--pill);color:var(--text);font:inherit;font-size:var(--fs-2xs);line-height:1;letter-spacing:.02em;cursor:pointer;z-index:3}.time-axis-now-parked[hidden]{display:none}.time-axis-now-parked--left{left:6px}.time-axis-now-parked--right{right:6px}.time-axis-now-parked--outside{color:var(--text-muted);cursor:default}.time-axis-now-parked svg{display:none;width:12px;height:12px;margin:0 -3px}.time-axis-now-parked--left .time-axis-now-chevron--left,.time-axis-now-parked--right .time-axis-now-chevron--right{display:block}.time-axis-now-chevron--left{transform:rotate(90deg)}.time-axis-now-chevron--right{transform:rotate(-90deg)}.wind-scale{--bar-h: 22px;--cap-h: 18px;display:flex;align-items:center;gap:var(--sp-2);width:100%;height:var(--bar-h);flex-shrink:0;padding:0 20px}.wind-scale[hidden]{display:none}.wind-scale-caption{font-size:var(--fs-2xs);line-height:var(--cap-h);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@property --caption-roll-at{syntax: "<number>"; inherits: false; initial-value: 0;}@keyframes caption-roll{0%{--caption-roll-at: -45}to{--caption-roll-at: calc(var(--caption-roll) + 30)}}.wind-scale-strip{position:relative;flex:1;min-width:0;min-height:0;align-self:stretch}.wind-scale-bar{display:block;width:100%;height:100%;border-radius:4px}.wind-scale-labels{position:absolute;inset:0;display:flex;justify-content:space-between;align-items:center;padding:0 4px;font-size:var(--fs-2xs);color:var(--on-data);text-shadow:0 1px 2px rgba(var(--shadow-rgb),.85),0 0 2px rgba(var(--shadow-rgb),.7);pointer-events:none}.toast{position:fixed;left:calc(50% + var(--map-start-x) / 2);bottom:min(calc(var(--slider-h) + var(--drawer-h) + 6px + var(--corner-bar-h) + 10px),calc(100% - 72px));transform:translate(-50%) translateY(6px);width:max-content;max-width:min(92vw,480px,var(--frame-w) - var(--map-start-x) - 24px);padding:var(--sp-2) var(--sp-4);border:1px solid var(--live-dim);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(var(--shadow-rgb),.5);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);text-align:center;z-index:220;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.toast--show{opacity:1;transform:translate(-50%) translateY(0)}.modal-overlay{position:fixed;inset:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:220;transition:opacity .2s}.modal-overlay.hidden{display:none}.modal-box{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(90vw,680px);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(var(--shadow-rgb),.5)}.modal-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border)}.modal-action{flex:none;min-height:0;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);line-height:1.2}.modal-box.modal-box--report{width:min(96vw,1100px);max-height:86vh}.modal-title{flex:1;min-width:0;font-size:var(--fs-md);font-weight:var(--fw-semibold);color:var(--text)}.modal-pre{padding:var(--sp-3) var(--sp-4);overflow:auto;flex:1;font-size:var(--fs-xs);line-height:1.5;font-family:var(--font-mono);color:var(--text);white-space:pre;margin:0}.graphs-panel{position:fixed;bottom:var(--slider-h);left:var(--safe-left);right:var(--safe-right);height:auto;max-height:50vh;background:var(--panel-bg);border-top:1px solid var(--border);z-index:150;display:flex;flex-direction:column;transition:transform var(--transition)}.graphs-panel.collapsed{transform:translateY(100%);pointer-events:none}.graphs-panel.no-route{display:none}.graphs-panel.collapsed .graphs-toggle{pointer-events:auto}.graphs-toggle{position:absolute;top:calc(-1 * var(--drawer-handle-h));left:50%;transform:translate(-50%);height:var(--drawer-handle-h);background:var(--surface2);border:1px solid var(--border);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);font-size:var(--fs-2xs);padding:0 var(--sp-3);transition:color var(--transition);pointer-events:auto}.graphs-toggle:before{content:"";position:absolute;inset:-6px 0 0}.graphs-toggle-label{text-transform:uppercase;letter-spacing:.08em}@media(hover:hover){.graphs-toggle:hover{color:var(--live)}}.graphs-toggle-arrow{display:block;font-size:.9em;opacity:.9;transition:transform .25s ease}.graphs-panel:not(.collapsed) .graphs-toggle-arrow{transform:rotate(180deg)}.graphs-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.graphs-header{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0}.graphs-actions{margin-left:auto;display:flex;gap:var(--sp-2)}.graphs-close{display:none}.btn-compact{flex:0 0 auto;min-height:32px;padding:2px var(--sp-3);font-size:var(--fs-2xs)}.graphs-title{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.14em}.graphs-forecast{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-muted)}.graphs-forecast:empty{display:none}.graphs-forecast--legend{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--sp-3);flex:1 1 auto;overflow:visible;text-overflow:clip;white-space:normal}.graphs-body{--pad: var(--sp-2);--gap: var(--sp-2);flex:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(520px,100%),1fr));align-content:start;gap:var(--gap);padding:var(--pad) var(--sp-3);max-height:calc(2 * var(--graph-h) + var(--gap) + 2 * var(--pad));overflow-y:auto;overflow-x:hidden}.graphs-body canvas{width:100%;height:var(--graph-h);min-width:0;background:var(--bg);border-radius:var(--radius);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.note-tip{position:fixed;z-index:170;max-width:min(420px,var(--tip-room-w, calc(100vw - 16px) ));max-height:var(--tip-room-h, none);overflow-y:auto;overscroll-behavior:contain;background:var(--surface);color:var(--text);font-size:var(--fs-xs);line-height:1.45;padding:8px 12px;border:1px solid var(--live-dim);border-radius:6px;white-space:pre-line;pointer-events:auto;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.note-mark{display:inline-flex;vertical-align:middle;padding:8px;margin:-8px -8px -8px -4px;color:var(--text-muted);cursor:pointer;border-radius:50%;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.note-mark svg{display:block}.note-mark[aria-expanded=true]{color:var(--live)}@media(hover:hover){.note-mark:hover{color:var(--text)}.note-mark[aria-expanded=true]:hover{color:var(--live)}}.ol-zoom{display:none!important}.map-crosshair{position:absolute;left:calc(50% + (var(--map-margin-l) + var(--safe-right)) / 2);top:calc(50% - (var(--safe-top) + var(--map-margin-b)) / 2);width:60px;height:60px;margin:-30px 0 0 -30px;pointer-events:none;z-index:12;filter:drop-shadow(0 1px 2px rgba(var(--halo-rgb),.6))}.map-crosshair svg{display:block}.aim-caption{position:absolute;left:calc(50% + (var(--map-margin-l) + var(--safe-right)) / 2);top:calc(50% - (var(--safe-top) + var(--map-margin-b)) / 2);margin-top:40px;transform:translate(-50%);padding:var(--sp-1) var(--sp-3);border:1px solid var(--border);border-radius:var(--pill);font-size:var(--fs-sm);line-height:var(--lh-tight);color:var(--text);white-space:nowrap;pointer-events:none;z-index:12}.aim-caption--hover{margin-top:0;transform:translate(-50%,-50%)}.aim-caption[hidden]{display:none}.aim-caption--pulse{animation:aim-caption-pulse .9s ease-out 2}@keyframes aim-caption-pulse{0%{box-shadow:0 0 0 0 var(--live)}to{box-shadow:0 0 0 10px transparent}}@media(prefers-reduced-motion:reduce){.aim-caption--pulse{animation:none;border-color:var(--live)}}.welcome-card{position:absolute;top:var(--welcome-top, var(--furniture-top));left:calc(var(--furniture-left) + var(--map-rail-w) + 12px);width:380px;max-width:calc(100% - var(--map-rail-w) - 36px);max-height:var(--welcome-max, calc(100% - var(--furniture-top) - var(--drawer-h) - var(--corner-bar-h) - 18px));overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-3) var(--sp-3) var(--sp-2);color:var(--text);z-index:13}.welcome-card[hidden]{display:none}.welcome-title{margin:0 var(--sp-5) var(--sp-1) 0;font-size:var(--fs-md);font-weight:var(--fw-semibold)}.welcome-close{position:absolute;top:var(--sp-2);right:var(--sp-2)}.welcome-steps{list-style:none;margin:0;padding:0}.welcome-step{display:flex;align-items:flex-start;gap:var(--sp-3);width:100%;min-height:var(--touch);padding:var(--sp-2) 0;background:none;border:none;color:inherit;font:inherit;font-size:var(--fs-sm);line-height:var(--lh);text-align:left;cursor:pointer}@media(hover:hover){.welcome-step:hover strong{color:var(--live)}}.welcome-words strong{font-weight:var(--fw-semibold)}@media(max-width:600px),(max-height:560px){.welcome-step{font-size:var(--fs-xs);line-height:var(--lh-tight);padding:var(--sp-1) 0;min-height:44px}}@media(max-height:560px){.welcome-card{width:max(180px,calc(50% - var(--map-rail-w) - 24px - 150px));max-height:calc(100% - var(--furniture-top) - var(--drawer-h) - 12px)}.welcome-detail{display:none}}.welcome-icon{flex:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted)}.welcome-icon--crosshair{border-color:transparent}.welcome-icon--crosshair svg{width:30px;height:30px}.welcome-icon--crosshair svg *{vector-effect:non-scaling-stroke}.place-menu-groups,.place-menu-roles,.place-menu-group,.place-menu-keepout{display:contents}.place-opt-why{display:block;font-size:var(--fs-2xs);line-height:var(--lh-tight);color:var(--text-muted)}.place-opt-why[hidden]{display:none}.place-opt-icon{display:flex;width:18px;height:18px;flex-shrink:0}.place-opt-label{flex:1}.place-opt:has(.place-opt-why:not([hidden])){align-items:flex-start}.place-opt-icon--keepout{color:var(--keepout)}.place-opt--switch{cursor:pointer}.place-opt--switch .switch{flex-shrink:0}.keepout-glyph{display:flex;flex-shrink:0;color:var(--keepout)}.keepout-glyph--off{color:var(--text-muted)}.section-on-count{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--live);margin-left:auto;white-space:nowrap}body.app-dragging,body.app-dragging *{-webkit-user-select:none;user-select:none}.draw-bar-gap{flex:1 1 var(--sp-3);min-width:var(--sp-3)}@media(hover:hover){.draw-bar-btn:not(.draw-bar-btn--primary,[aria-disabled=true]):hover{color:var(--live)}}.draw-bar-btn--primary{background:var(--accent);color:var(--on-accent);font-weight:var(--fw-semibold);padding-inline:var(--sp-3)}.draw-bar-btn[aria-disabled=true]{opacity:.45;color:var(--text-muted);cursor:default}.draw-bar-btn--primary[aria-disabled=true]{background:var(--surface2)}.draw-bar-btn[hidden]{display:none}.draw-readout{position:absolute;pointer-events:none;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text);white-space:nowrap;text-shadow:0 0 4px var(--bg),0 0 2px var(--bg),0 0 1px var(--bg)}.draw-readout[hidden]{display:none}.draw-bar-btn--discard.btn-armed{background:var(--surface2)}body.keepout-drawing .maplibregl-canvas-container,body.app-dragging .maplibregl-canvas-container{-webkit-touch-callout:none}@media(max-width:600px),(max-height:560px){:root{--fs-2xs: .8125rem;--fs-xs: .875rem;--fs-sm: .9375rem;--fs-md: 1rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--touch: 54px;--menu-row-h: 48px;--menu-row-fs: var(--fs-md);--menu-row-pad: var(--sp-3);--corner-bar-h: 56px}body.graphs-open .map-context{display:none}input,select,textarea,.field-input,.field-row .field-input,.polar-text,.sheet-menu-name{font-size:var(--fs-md)}.setup-panel{top:calc(-1 * var(--safe-top));left:calc(-1 * var(--safe-left));bottom:0;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left);width:calc(100% + var(--safe-left) + var(--safe-right));max-width:none;border:none;border-radius:0;box-shadow:none;background:var(--surface);transform:translate(-100%);z-index:170}.setup-panel.open{transform:translate(0)}body.setup-open .map-rail{transform:none}.modal-overlay .modal-box{margin:calc(-1 * var(--safe-top)) calc(-1 * var(--safe-right)) calc(-1 * var(--safe-bottom)) calc(-1 * var(--safe-left));padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);width:calc(100% + var(--safe-left) + var(--safe-right));height:calc(100% + var(--safe-top) + var(--safe-bottom));max-height:none;border:none;border-radius:0;box-shadow:none}.modal-overlay .modal-box.modal-box--notice{margin:0;padding:0;width:min(94vw,440px);height:auto;max-height:82%;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(var(--shadow-rgb),.5)}}@media(max-width:600px){:root{--slider-h: 109px}.map-legend{padding:var(--sp-1) var(--sp-2)}body.graphs-open .setup-icons{display:none}.wind-scale{--bar-h: 28px;height:calc(var(--bar-h) + var(--cap-h));flex-direction:column-reverse;align-items:stretch;gap:0}.wind-scale-caption{padding:0 16px}.graphs-body{--pad: var(--sp-1);--gap: var(--sp-1);padding-inline:var(--sp-2)}}@media(min-width:601px)and (max-height:560px){:root{--half-frame-w: calc(var(--frame-w) / 2);--panel-head-h: 44px;--panel-side-w: calc((var(--frame-w) - 2 * var(--sp-4) - var(--sp-5)) * 2 / 5);--aim-clear: 40px;--side-box-cap: 300px;--side-box-w: min(var(--side-box-cap), 50vw - var(--safe-right) - var(--furniture-right) - var(--aim-clear))}body.route-loaded.graphs-open{--map-end: 0px;--drawer-h: var(--drawer-handle-h);--map-start-x: var(--half-frame-w)}.slider-bar{align-self:flex-start;width:calc(50% - var(--furniture-left));margin:0 0 0 var(--furniture-left);padding:0;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.time-axis-strip{left:0;right:0}.wind-scale{padding:0}.wind-scale-caption{flex:none;width:96px;text-overflow:clip}.wind-scale-caption--roll{animation:caption-roll calc((var(--caption-roll) + 75) / 30 * 1s) linear infinite;text-indent:calc(-1px*clamp(0,var(--caption-roll-at),var(--caption-roll)))}@media(prefers-reduced-motion:reduce){.wind-scale-caption{text-overflow:ellipsis}.wind-scale-caption--roll{animation:none;text-indent:0}}.app-body{--map-margin-b: calc(var(--map-end) - var(--slider-h))}.map-corner-br{left:calc(50% + 10px);bottom:calc(-1 * (var(--slider-h) + var(--corner-bar-h)) / 2)}.toast{--toast-l: calc(var(--safe-left) + max(var(--furniture-left) + var(--map-rail-w), var(--map-start-x)) + var(--sp-3));--toast-r: calc(var(--safe-right) + var(--furniture-right) + var(--map-context-w) + var(--sp-3));top:calc(var(--safe-top) + var(--furniture-top));bottom:auto;left:calc((100vw + var(--toast-l) - var(--toast-r)) / 2);max-width:calc(100vw - var(--toast-l) - var(--toast-r))}body.route-loaded.graphs-open .toast{--toast-r: calc(var(--safe-right) + var(--furniture-right))}.graphs-panel{left:calc(var(--safe-left) + var(--furniture-left));right:calc(var(--safe-right) + var(--half-frame-w));border-top:none}.graphs-panel.collapsed{transform:none}.graphs-panel:not(.collapsed) .graphs-toggle{display:none}.graphs-content{position:fixed;top:0;left:0;bottom:var(--slider-h);width:calc(var(--safe-left) + var(--half-frame-w));padding:var(--safe-top) 0 0 var(--safe-left);background:var(--surface);border-right:1px solid var(--border);transition:transform var(--transition)}.graphs-panel.collapsed .graphs-content{transform:translate(-100%)}.graphs-body{max-height:none}.graphs-close{display:inline-flex}.forecast-menu.sheet-menu--sheet{left:calc(var(--safe-left) + var(--half-frame-w))!important;right:calc(var(--safe-right) + var(--furniture-right));top:calc(var(--safe-top) + var(--furniture-top))!important;bottom:calc((var(--slider-h) + var(--corner-bar-h)) / 2 + 6px);width:auto;max-width:none;height:auto;margin:0 0 0 10px;padding-bottom:var(--sp-1);border-radius:var(--radius-lg);transform:translateY(6px) scale(.98)}.forecast-menu.sheet-menu--sheet.open{transform:none}.place-menu.sheet-menu--sheet{left:auto!important;right:calc(var(--safe-right) + var(--furniture-right));top:calc(var(--safe-top) + var(--furniture-top))!important;bottom:calc((var(--slider-h) + var(--corner-bar-h)) / 2 + 6px);width:var(--side-box-w);max-width:none;margin:0;max-height:none;padding-bottom:var(--sp-1);border-radius:var(--radius-lg);transform:translateY(6px) scale(.98)}.place-menu.sheet-menu--sheet.open{transform:none}body.route-loaded.graphs-open .place-menu.sheet-menu--sheet{left:calc(var(--safe-left) + var(--furniture-left))!important;right:auto;bottom:calc(var(--slider-h) + 6px)}.sheet-menu--sheet{left:auto!important;right:calc(var(--safe-right) + var(--furniture-right));top:calc(var(--safe-top) + var(--panel-head-h) + var(--sp-4))!important;bottom:calc(var(--safe-bottom) + var(--sp-4));width:var(--side-box-w);max-width:none;margin:0;max-height:none;padding-bottom:var(--sp-1);border-radius:var(--radius-lg);transform:translateY(6px) scale(.98)}.sheet-menu--sheet.open{transform:none}body:has(.setup-panel.open .setup-page:not([hidden])>.panel-scroll) .sheet-menu--sheet{right:calc(var(--safe-right) + var(--sp-4));width:var(--panel-side-w)}.modal-box.modal-box--orc:has(>.orc-detail:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto auto}.modal-box--orc>.modal-head,.modal-box--orc>.orc-credit{grid-column:1 / -1}.modal-box--orc>.orc-credit{grid-row:6}.orc-detail:not([hidden]){display:contents}.orc-detail .polar-figure{grid-column:1;grid-row:2 / 6;min-height:0;padding:var(--sp-3) 0 var(--sp-3) var(--sp-4)}.orc-detail .polar-plot{min-height:0}.orc-detail .orc-meta{grid-column:2;grid-row:2;padding:var(--sp-4) var(--sp-4) 0 0;text-align:left}.orc-detail .polar-verdict{grid-column:2;grid-row:3;padding-right:var(--sp-4);justify-content:flex-start}.modal-box--orc>.polar-actions{grid-column:2;grid-row:5;border-top:none}.polar-editor{container-type:size}.polar-editor .polar-figure{--polar-chart-h: 100cqh}.setup-panel{bottom:calc(-1 * var(--slider-h));padding-bottom:var(--safe-bottom)}.setup-panel-header{min-height:var(--panel-head-h);padding-block:0}.setup-page:not([hidden]):has(>.panel-scroll){display:grid;grid-template-columns:minmax(0,1fr) var(--panel-side-w);grid-template-rows:auto auto 1fr;column-gap:var(--sp-5)}.setup-page:has(>.panel-scroll)>.panel-scroll{grid-row:1 / -1;margin-top:calc(-1 * var(--sp-4));padding-top:var(--sp-4)}.setup-page:has(>.panel-scroll)>:not(.panel-scroll){grid-column:2}.setup-page:has(>.panel-scroll)>.run-status{margin-top:0;min-height:calc(3lh + 2 * var(--sp-2) + 2px)}.setup-page:has(>.panel-scroll)>.btn-row{flex-direction:column}.setup-page:has(>.panel-scroll)>.btn-row>*{flex:none}#js-page-boat:not([hidden]){--switch-lane: calc(38px + var(--sp-2));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:var(--sp-5)}#js-page-boat .field-row-name{flex-shrink:1;min-width:0}#js-page-boat .field-row-ctl{flex-shrink:0}#js-page-boat .field-row-ctl:not(:has(.switch)){margin-right:var(--switch-lane)}#js-page-boat .field-pair>.field-row{padding-right:calc(var(--sp-3) + var(--switch-lane))}#js-page-boat .field-pair .field-row-ctl{margin-right:0}.route-grid{grid-template-columns:auto minmax(0,1fr) repeat(4,minmax(4rem,max-content))}.rc-col-l2{display:inline;margin-left:.3em}.graphs-header{container:graphs-head / inline-size;padding-inline:var(--sp-2)}.graphs-title{flex:none;white-space:nowrap}@container graphs-head (width < 21rem){.graphs-forecast{display:none}}}
