:root{--bg: #050507;--panel: #0b0b0f;--panel-raised: #121218;--line: #1f1f27;--line-strong: #2f2f3a;--text: #f2f2f5;--text-muted: #a3a3ad;--text-on-accent: #050507;--accent: #9b8cff;--cyan: #7fe6c8;--amber: #f0b45a;--hazard: #ff6b81;--ok: #7be0a8;--class-ok: var(--ok);--class-caution: var(--amber);--class-avoid: var(--hazard);--paper: #fafafc;--ink: #0b0b0f;--ink-muted: #5a5a66;--ink-line: #d0d0da;--accent-ink: #5a44d6;--accent-line: #7b61ff;--ok-ink: #1f7a4d;--caution-ink: #85560a;--hazard-ink: #c0243c;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: var(--font-sans);--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .9375rem;--fs-lg: 1.125rem;--fs-xl: 1.5rem;--fs-stat: 1.0625rem;--radius-sm: 6px;--radius: 10px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--hit: 32px;--topbar-h: 48px;--profile-h: 176px;--col-left: 248px;--col-right: 308px;--focus-ring: 0 0 0 2px var(--bg), 0 0 0 4px var(--cyan)}@media (pointer: coarse),(max-width: 899px){:root{--hit: 44px}}@media (max-width: 1099px) and (min-width: 900px){:root{--col-left: 224px;--col-right: 276px;--profile-h: 160px}}@media (max-width: 899px){:root{--profile-h: 168px}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/app/fonts/inter-latin-opsz-normal.woff2) format("woff2")}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-optical-sizing:auto;font-size:var(--fs-md);line-height:1.4;-webkit-font-smoothing:antialiased;overflow:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.035;background-image:radial-gradient(var(--text) .5px,transparent .6px),radial-gradient(var(--text) .5px,transparent .6px);background-size:3px 3px,5px 5px;background-position:0 0,1px 2px}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}:focus{outline:none}:focus-visible{outline:none;box-shadow:var(--focus-ring)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.eyebrow{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-weight:500}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--hit);padding:0 var(--space-3);background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-sm);font-weight:500;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--text-muted)}.btn:disabled{opacity:.5}.btn--primary{background:#fff;border-color:#fff;color:var(--text-on-accent);font-weight:600}.btn--primary:hover:not(:disabled){background:#e9e9ea;border-color:#e9e9ea}.btn--ghost{background:transparent}.btn[aria-pressed=true]{border-color:var(--cyan);color:var(--cyan)}.btn--icon{width:var(--hit);padding:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.shell{position:relative;z-index:1;display:grid;grid-template-rows:var(--topbar-h) minmax(0,1fr);height:100dvh}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--panel);border-bottom:1px solid var(--line)}.topbar__left,.topbar__right{display:flex;align-items:center;gap:var(--space-3);min-width:0}.topbar__right{justify-content:flex-end}.topbar__brand{font-size:var(--fs-lg);font-weight:700;letter-spacing:.28em;line-height:1}.topbar__site{color:var(--text-muted);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:var(--space-3);border-left:1px solid var(--line-strong)}.topbar__time{color:var(--text-muted);font-size:var(--fs-xs);white-space:nowrap}.topbar__modes{display:flex;border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden}.seg{min-height:var(--hit);padding:0 var(--space-4);background:transparent;border:0;color:var(--text-muted);font-size:var(--fs-sm);font-weight:500}.seg+.seg{border-left:1px solid var(--line-strong)}.seg:hover{color:var(--text)}.seg[aria-pressed=true]{background:var(--panel-raised);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.seg:focus-visible{box-shadow:var(--focus-ring)}.topbar__drawer-btn{display:none}.shell__body{position:relative;display:grid;min-height:0;grid-template-columns:var(--col-left) minmax(0,1fr) var(--col-right);grid-template-rows:minmax(0,1fr) var(--profile-h);grid-template-areas:"left map right" "profile profile profile"}.shell__left{grid-area:left;background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;min-height:0}.shell__right{grid-area:right;background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;min-height:0}.shell__map{grid-area:map;min-width:0;min-height:0}.shell__profile{grid-area:profile;background:var(--panel);border-top:1px solid var(--line);min-width:0;min-height:0}.shell__backdrop{display:none}@media (max-width: 899px){.topbar{grid-template-columns:auto 1fr auto;padding:0 var(--space-2);gap:var(--space-2)}.topbar__site,.topbar__time{display:none}.topbar__drawer-btn{display:inline-flex}.topbar__modes{justify-self:center}.shell__body{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto var(--profile-h);grid-template-areas:"map" "summary" "profile"}.shell__left,.shell__right{position:fixed;top:var(--topbar-h);bottom:0;z-index:30;width:min(340px,88vw);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s}.shell__left{left:0;transform:translate(-100%)}.shell__right{right:0;transform:translate(100%)}[data-drawer=layers] .shell__left,[data-drawer=route] .shell__right{transform:none;visibility:visible;transition-delay:0s}.shell__backdrop{display:block;position:fixed;inset:var(--topbar-h) 0 0 0;z-index:20;border:0;background:#05050799}}@media (max-width: 520px){.topbar__brand{letter-spacing:.16em}.topbar .seg{padding:0 var(--space-3)}}.boot{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);color:var(--text-muted)}.panel,.panel__section{padding:var(--space-4)}.panel__section+.panel__section{border-top:1px solid var(--line)}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3);min-height:24px}.panel__title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.panel__meta{font-size:var(--fs-xs);color:var(--text-muted)}.muted{color:var(--text-muted);font-size:var(--fs-sm)}.btn--block{width:100%}.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.tag{display:inline-flex;align-items:center;margin-left:var(--space-2);padding:1px 6px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.6875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.tag--warn{margin-left:0;border-color:var(--amber);color:var(--amber)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid currentColor;border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.badge--ok{color:var(--class-ok)}.badge--caution{color:var(--class-caution)}.badge--avoid{color:var(--class-avoid)}.notice{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--panel-raised);font-size:var(--fs-sm)}.notice>span{flex:1 1 140px}.notice--warn{border-color:var(--amber);color:var(--amber)}.notice--error{border-color:var(--hazard)}.notice--error>svg{color:var(--hazard)}.layer-list{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.layer-row{min-width:0;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-raised)}.layer-row--on{border-color:var(--line-strong)}.layer-row--disabled .layer-row__label,.layer-row--disabled .layer-row__desc{color:var(--text-muted)}.layer-row__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.layer-row__text{display:grid;gap:2px;min-width:0}.layer-row__label{font-weight:600;font-size:var(--fs-md)}.layer-row__desc{font-size:var(--fs-xs);color:var(--text-muted)}.layer-row__reason{display:flex;align-items:center;gap:6px;margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--text-muted)}.layer-row__legend{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line);display:grid;gap:var(--space-2)}.switch{position:relative;flex:none;width:44px;min-height:var(--hit);padding:0;background:transparent;border:0}.switch:before{content:"";position:absolute;left:0;top:50%;width:40px;height:22px;margin-top:-11px;border:1px solid var(--line-strong);border-radius:11px;background:var(--bg)}.switch__thumb{position:absolute;left:4px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--text-muted);transition:transform .15s ease,background-color .15s ease}.switch[aria-checked=true]:before{border-color:var(--accent);background:#9b8cff2e}.switch[aria-checked=true] .switch__thumb{transform:translate(18px);background:var(--accent)}.switch:disabled{opacity:.4}.legend{display:grid;gap:4px;margin:0;padding:0;list-style:none;font-size:var(--fs-xs)}.legend__item{display:flex;align-items:center;gap:var(--space-2)}.legend__text{color:var(--text-muted)}.legend__swatch{width:18px;height:0;border-top:3px solid}.legend__swatch--ok{border-color:var(--class-ok)}.legend__swatch--caution{border-color:var(--class-caution);border-top-style:dashed}.legend__swatch--avoid{border-color:var(--class-avoid);border-top-style:dotted}.legend__note{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-muted)}.legend__note--warn{color:var(--amber)}.legend__source{min-width:0;font-size:var(--fs-xs);color:var(--text-muted);overflow-wrap:anywhere}.legend__source-list{display:grid;gap:2px;margin:4px 0 0;padding-left:1.1em}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin:0 0 var(--space-4)}.stat{min-width:0}.stat__label{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:2px}.stat__value{margin:0;font-size:var(--fs-stat);white-space:nowrap;font-weight:500;line-height:1.2}.safety{display:grid;justify-items:start;gap:var(--space-2)}.safety__reason{font-size:var(--fs-sm);color:var(--text-muted)}.summary--stale .stat-grid,.summary--stale .safety{opacity:.5}.empty__title{margin-bottom:var(--space-2);font-weight:600}.empty__steps{margin:0;padding-left:1.25em;display:grid;gap:var(--space-1);color:var(--text-muted);font-size:var(--fs-sm)}.progress-text{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--fs-sm);color:var(--text-muted)}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--panel-raised),var(--line),var(--panel-raised));background-size:200% 100%;animation:shimmer 1.4s linear infinite}.skeleton--label{height:10px;width:60%;margin-bottom:6px}.skeleton--value{height:22px;width:85%}.skeleton--badge{height:28px;width:70%;margin-top:var(--space-3)}.skeleton--fill{position:absolute;inset:var(--space-2) 0}@keyframes shimmer{to{background-position:-200% 0}}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.table{width:100%;border-collapse:collapse;font-size:var(--fs-xs)}.table th,.table td{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table thead th{color:var(--text-muted);font-weight:500}.table tbody th{font-weight:500}.compare{margin-top:var(--space-4)}.drawer{margin-top:var(--space-4);border:1px solid var(--line);border-radius:var(--radius)}.drawer__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--hit);padding:0 var(--space-3);background:transparent;border:0;font-size:var(--fs-sm);font-weight:500}.drawer__body{display:grid;gap:var(--space-3);padding:var(--space-3);border-top:1px solid var(--line)}.drawer__body[hidden]{display:none}.chevron{transition:transform .15s ease}.chevron--open{transform:rotate(180deg)}.chip-list{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-3);padding:0;list-style:none}.chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--hit);padding:0 var(--space-3) 0 var(--space-2);background:var(--panel-raised);border:1px solid var(--line-strong);border-radius:999px;font-size:var(--fs-xs)}.chip:hover{border-color:var(--text-muted)}.chip--selected{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.pin{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--accent);background:var(--accent);color:var(--text-on-accent);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600}.pin--start{background:var(--bg);color:var(--accent)}.stop-card{display:grid;gap:var(--space-3)}.stop-card__title{display:flex;align-items:center;gap:var(--space-3)}.stop-card__title h3{font-size:var(--fs-lg);font-weight:600}.kv{display:grid;gap:var(--space-2);margin:0}.kv dt{font-size:var(--fs-xs);color:var(--text-muted)}.kv dd{margin:0;font-size:var(--fs-sm)}.image-slot{margin:0}.image-slot img,.image-slot__empty{display:grid;place-items:center;align-content:center;gap:var(--space-2);width:100%;aspect-ratio:16 / 9;max-height:140px;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--text-muted);font-size:var(--fs-xs)}.image-slot img{border-style:solid;object-fit:cover}.image-slot__credit{margin-top:var(--space-1);font-size:var(--fs-xs);color:var(--text-muted)}.mobile-summary{display:none}@media (max-width: 899px){.mobile-summary{grid-area:summary;display:flex;align-items:center;gap:var(--space-3);min-height:var(--hit);padding:var(--space-1) var(--space-3);background:var(--panel);border:0;border-top:1px solid var(--line);font-size:var(--fs-sm);text-align:left}.mobile-summary--stale>.badge,.mobile-summary--stale>.mono{opacity:.5}.mobile-summary__chev{margin-left:auto;transform:rotate(-90deg)}}.field{display:grid;gap:var(--space-2);margin:var(--space-3) 0}.field__label{font-size:var(--fs-xs);color:var(--text-muted)}.select{width:100%;min-height:36px;padding:0 var(--space-3);background:var(--panel-raised);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-sm)}.select:focus-visible{outline:none;box-shadow:var(--focus-ring)}.drawer__subtitle{margin:var(--space-4) 0 var(--space-2);font-size:var(--fs-sm);font-weight:600}.source-list{margin:0;padding-left:var(--space-4);color:var(--text-muted);font-size:var(--fs-sm);overflow-wrap:anywhere}.map-wrap{position:relative;height:100%;overflow:hidden;background:var(--bg)}.map-wrap--loading,.map-wrap--error{display:flex;align-items:center;justify-content:center;gap:var(--space-3);color:var(--text-muted)}.map-wrap--error{color:var(--hazard)}.ares-map.ares-map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.ares-map .maplibregl-canvas{cursor:crosshair}.ares-map .maplibregl-canvas:focus-visible{box-shadow:inset 0 0 0 2px var(--cyan)}.maplibregl-ctrl-attrib{background:#0b0b0fd9!important;color:var(--text-muted)!important;font-family:var(--font-sans);font-size:11px}.maplibregl-ctrl-attrib a{color:var(--text-muted)!important}.map-ticks{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;font-size:10px;color:var(--text-muted)}.map-tick{position:absolute;padding:1px 4px;background:#050507cc;border:1px solid var(--line-strong);border-radius:3px;white-space:nowrap}.map-tick--top{top:6px;transform:translate(-50%)}.map-tick--left{left:6px;transform:translateY(-50%)}.map-status{position:absolute;top:34px;left:50%;transform:translate(-50%);display:grid;gap:var(--space-2);justify-items:center;pointer-events:none;max-width:calc(100% - 140px)}.map-pill{display:flex;align-items:center;gap:var(--space-2);margin:0;padding:6px 12px;background:#0b0b0feb;border:1px solid var(--line-strong);border-radius:999px;font-size:var(--fs-sm);text-align:center}.map-pill--warn{border-color:var(--amber);color:var(--amber)}.map-scale{position:absolute;left:12px;bottom:28px;display:grid;gap:2px;pointer-events:none;font-size:11px}.map-scale__label{color:var(--text)}.map-scale__bar{display:block;height:6px;border:1px solid var(--text);border-top:0}.map-north{position:absolute;top:34px;right:12px;display:grid;justify-items:center;gap:2px;color:var(--text);font-size:11px;pointer-events:none}.map-zoom{position:absolute;right:12px;bottom:40px;display:grid;gap:4px}.map-zoom .btn{background:#0b0b0feb}.map-readout{position:absolute;left:12px;bottom:6px;display:flex;gap:var(--space-2);align-items:baseline;font-size:11px;pointer-events:none;padding:1px 6px;background:#050507cc;border-radius:3px}.map-readout output{color:var(--cyan)}.map-key{position:absolute;right:12px;top:96px;display:grid;gap:4px;margin:0;padding:6px 10px;list-style:none;background:#0b0b0feb;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--fs-xs);pointer-events:none}.map-key li{display:flex;align-items:center;gap:var(--space-2)}.map-key__line{width:22px;border-top:4px solid var(--accent)}.map-key__line--alt{border-top:3px dashed var(--text-muted)}.pin-marker{position:relative;display:grid;place-items:center;width:30px;height:30px;padding:0;border:2px solid var(--bg);border-radius:50%;background:var(--accent);color:var(--text-on-accent);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;cursor:grab;touch-action:none}.pin-marker:after{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px}.pin-marker--start{background:var(--bg);color:var(--accent);border-color:var(--accent)}.pin-marker--selected{box-shadow:0 0 0 3px var(--cyan)}.pin-marker:focus-visible{box-shadow:0 0 0 2px var(--bg),0 0 0 5px var(--cyan)}.pin-marker:active{cursor:grabbing}.hazard-label{padding:2px 6px;background:#050507e0;border:1px solid var(--hazard);border-radius:3px;color:var(--text);font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none}.hover-marker{width:14px;height:14px;border:2px solid var(--bg);border-radius:50%;background:var(--cyan);pointer-events:none}.hover-marker[hidden]{display:none}@media (max-width: 899px){.map-status{max-width:calc(100% - 24px);top:40px}.map-north{top:40px}.map-key{top:104px}}.profile{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%;padding:var(--space-3) var(--space-4) var(--space-2)}.profile__head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-2)}.profile__head .panel__title{margin-right:var(--space-2)}.profile__legend{display:flex;gap:var(--space-2);margin:0 0 0 auto;padding:0;list-style:none}.profile__chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--text-muted)}.profile__chip--ok svg{color:var(--class-ok)}.profile__chip--caution svg{color:var(--class-caution)}.profile__chip--avoid svg{color:var(--class-avoid)}.profile__body{position:relative;min-height:0;border-radius:var(--radius-sm)}.profile__body--stale .profile__svg{opacity:.4}.profile__svg{display:block;touch-action:none}.profile__grid{stroke:var(--line);stroke-width:1}.profile__tick{fill:var(--text-muted);font-size:10px}.profile__seg--ok{color:var(--class-ok)}.profile__seg--caution{color:var(--class-caution)}.profile__seg--avoid{color:var(--class-avoid)}.profile__area{fill:currentColor;fill-opacity:.16}.profile__line{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}.profile__stop-line{stroke:var(--line-strong);stroke-dasharray:3 3}.profile__stop-dot{fill:var(--accent)}.profile__stop-label{fill:var(--text-on-accent);font-family:var(--font-mono);font-size:10px;font-weight:600}.profile__hover line{stroke:var(--cyan);stroke-width:1}.profile__hover circle{fill:var(--cyan);stroke:var(--bg);stroke-width:2}.profile__hover rect{fill:var(--panel-raised);stroke:var(--line-strong)}.profile__hover text{fill:var(--text);font-size:11px}.profile__hit{fill:transparent;cursor:crosshair}.profile__empty{display:grid;place-items:center;height:100%;margin:0;text-align:center}@media (max-width: 899px){.profile{padding:var(--space-2) var(--space-3)}.profile__legend{margin-left:0}}@media (max-width: 599px){.profile__chip span:last-child{display:none}.profile__head{gap:var(--space-2)}}.card-screen{overflow:auto;min-height:0;padding:var(--space-4);display:grid;justify-items:center;align-content:start;gap:var(--space-4)}.card-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;width:210mm;max-width:100%}.card-toolbar .notice{margin:0;flex:1}.card-empty{display:grid;justify-items:start;gap:var(--space-3);max-width:420px;margin-top:var(--space-5)}.card{width:210mm;min-height:148mm;padding:6mm;background:var(--paper);color:var(--ink);font-size:7.5pt;line-height:1.35;border-radius:var(--radius-sm);display:grid;align-content:start;gap:3mm}.card__head{display:flex;justify-content:space-between;align-items:baseline;gap:4mm;padding-bottom:2mm;border-bottom:.3mm solid var(--ink)}.card__title{font-size:13pt;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.card__sub,.card__meta{margin:0;color:var(--ink-muted)}.card__meta{font-size:6.5pt;text-align:right}.card__grid{display:grid;grid-template-columns:96mm 1fr;gap:4mm;align-items:start}.card__col{display:grid;gap:2.5mm;min-width:0}.card__h{margin-bottom:1mm;font-size:6.5pt;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.card__muted{color:var(--ink-muted)}.card__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm;margin:0 0 1.5mm}.card__stats dt{font-size:6.5pt;color:var(--ink-muted)}.card__stats dd{margin:0;font-size:12pt;font-weight:600;white-space:nowrap}.card__safety{display:flex;align-items:center;flex-wrap:wrap;gap:2mm}.card .badge{padding:.6mm 2mm;font-size:7.5pt}.card .badge--ok,.card__class--ok{color:var(--ok-ink)}.card .badge--caution,.card__class--caution{color:var(--caution-ink)}.card .badge--avoid,.card__class--avoid{color:var(--hazard-ink)}.card__class{display:inline-flex;align-items:center;gap:1mm;font-weight:600;white-space:nowrap}.card__table{width:100%;border-collapse:collapse;font-size:6.8pt}.card__table th,.card__table td{padding:.7mm 1mm;border-bottom:.2mm solid var(--ink-line);text-align:left;vertical-align:baseline;font-weight:400}.card__table thead th{color:var(--ink-muted);font-weight:600}.card__table tbody th{font-weight:600;white-space:nowrap}.card__table .num{text-align:right;white-space:nowrap}.card__note{margin-top:1mm;font-size:6.2pt;color:var(--ink-muted)}.card__assumptions ul{margin:0;padding:0;list-style:none;font-size:6.8pt}.card__assumptions li{break-inside:avoid;padding:.3mm 0}.sketch{display:block;width:100%;height:auto}.sketch__frame{fill:#fff;stroke:var(--ink);stroke-width:1}.sketch__route{fill:none;stroke:var(--accent-line);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.sketch__hazard{stroke:var(--hazard-ink);stroke-width:1.6;stroke-dasharray:5 3}.sketch__hatch{stroke:var(--hazard-ink);stroke-width:1.1}.sketch__label{fill:var(--ink);font-family:var(--font-mono);font-size:11px}.sketch__label--hazard{fill:var(--hazard-ink);font-family:var(--font-sans);font-weight:600;paint-order:stroke;stroke:#fff;stroke-width:3px}.sketch__scale{fill:none;stroke:var(--ink);stroke-width:1.5}.sketch__north{fill:var(--ink)}.sketch__pin{fill:var(--accent-ink);stroke:#fff;stroke-width:2}.sketch__pin--start{fill:#fff;stroke:var(--accent-ink)}.sketch__pin-text{fill:#fff;font-family:var(--font-mono);font-size:12px;font-weight:600}.sketch__pin--start+.sketch__pin-text{fill:var(--accent-ink)}@page{size:A5 landscape;margin:6mm}@media print{html,body,#root{height:auto;overflow:visible;background:#fff}body:before,.topbar,.card-toolbar{display:none!important}.shell{display:block;height:auto}.card-screen{display:block;padding:0;overflow:visible}.card{width:auto;min-height:0;padding:0;border-radius:0;background:#fff}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.hud-screen{overflow:auto;min-height:0;padding:var(--space-4);display:grid;align-content:start;justify-items:center;gap:var(--space-4);background:radial-gradient(ellipse at 50% 35%,var(--panel) 0%,var(--bg) 70%)}.hud-banner{display:flex;align-items:center;gap:var(--space-3);width:min(980px,100%);padding:var(--space-3);border:1px solid var(--amber);border-radius:var(--radius);background:var(--panel);font-size:var(--fs-sm)}.hud-banner .tag{flex:none;margin:0}.hud{position:relative;display:grid;gap:var(--space-5);width:min(980px,100%);padding:var(--space-5);border:1px solid var(--line-strong);border-radius:var(--radius);background:#05050799}.hud:before,.hud:after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--accent);pointer-events:none}.hud:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.hud:after{right:-1px;bottom:-1px;border-left:0;border-top:0}.hud__top{display:grid;justify-items:center;gap:var(--space-2)}.hud__heading{margin:0;font-size:var(--fs-lg);font-weight:500}.hud__heading .eyebrow{margin-right:var(--space-2)}.hud__compass{width:min(600px,100%);height:auto;overflow:visible}.hud__axis{stroke:var(--line-strong);fill:none}.hud__tick{stroke:var(--text-muted)}.hud__cardinal{fill:var(--text);font-size:13px;font-weight:600}.hud__degree{fill:var(--text-muted);font-family:var(--font-mono);font-size:10px}.hud__caret{fill:var(--accent)}.hud__m-stop{fill:var(--accent);stroke:var(--bg);stroke-width:2}.hud__m-hazard{fill:var(--bg);stroke:var(--hazard);stroke-width:2;stroke-linejoin:round}.hud__m-text{font-family:var(--font-mono);font-size:12px;font-weight:600;fill:var(--text-on-accent)}.hud__m-hazard+.hud__m-text{fill:var(--hazard)}.hud__m-arrow{fill:var(--text)}.hud__row{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--space-5);align-items:center}.hud__block{display:grid;gap:var(--space-2);justify-items:start}.hud__ahead,.hud__slope{justify-items:center}.hud__slope{justify-items:end;text-align:right}.hud__name{display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:var(--fs-lg);font-weight:600}.hud__big{margin:0;font-size:2.5rem;font-weight:500;line-height:1.1}.hud__caption{margin:0;font-size:var(--fs-xs);color:var(--text-muted)}.hud__status{display:flex;align-items:center;gap:var(--space-2);margin:0;font-weight:600}.hud__slope--ok .hud__status,.hud__slope--ok .hud__gauge-line{color:var(--class-ok);stroke:var(--class-ok)}.hud__slope--caution .hud__status,.hud__slope--caution .hud__gauge-line{color:var(--class-caution);stroke:var(--class-caution)}.hud__slope--avoid .hud__status,.hud__slope--avoid .hud__gauge-line{color:var(--class-avoid);stroke:var(--class-avoid)}.hud__gauge{width:130px;height:auto}.hud__gauge-base{stroke:var(--line-strong);stroke-width:2;fill:none}.hud__gauge-line{stroke-width:3;fill:none;stroke-linecap:round}.hud__gauge-rise{stroke:var(--line-strong);stroke-dasharray:3 3;fill:none}.hud__ring{width:220px;height:220px}.hud__ring-bg{fill:var(--panel);stroke:var(--line-strong)}.hud__ring-mid{fill:none;stroke:var(--line);stroke-dasharray:2 4}.hud__route{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.hud__zone{fill:#ff6b8140;stroke:var(--hazard);stroke-dasharray:4 3}.hud__stop{fill:var(--text-muted);stroke:var(--bg);stroke-width:1.5}.hud__stop--next{fill:var(--cyan)}.hud__me{fill:var(--text);stroke:var(--bg)}.hud__north{fill:var(--text-muted);font-size:11px;font-weight:600}.hud__alert{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--hazard);border-radius:var(--radius)}.hud__alert svg{color:var(--hazard);flex:none}.hud-control{display:flex;align-items:center;gap:var(--space-3);width:min(980px,100%);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);font-size:var(--fs-sm)}.hud-control input[type=range]{flex:1;min-height:var(--hit);accent-color:var(--accent)}.hud-control input[type=range]:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}@media (max-width: 899px){.hud__row{grid-template-columns:1fr;justify-items:center;text-align:center}.hud__block,.hud__slope{justify-items:center;text-align:center}.hud-control{flex-wrap:wrap}}
