@font-face{font-family:B612;src:local("B612-Regular"),url(/fonts/B612-Regular.ttf)}.navigation-map{position:relative;width:100%;height:100%}.navigation-map__canvas{inset:0}.navigation-map__follow-ctrl{position:relative;background-repeat:no-repeat;background-position:center;background-size:18px 18px;transition:background-color .15s ease;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M4 9V4h5'/><path d='M15 4h5v5'/><path d='M20 15v5h-5'/><path d='M9 20H4v-5'/></svg>")}.navigation-map__follow-ctrl:hover{background-color:#0000000d}.navigation-map__follow-ctrl.is-active{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='5'/><circle cx='12' cy='12' r='1.5' fill='%23333' stroke='none'/><path d='M12 2v3'/><path d='M12 19v3'/><path d='M2 12h3'/><path d='M19 12h3'/></svg>")}.navigation-map__legend{position:absolute;bottom:5px;left:5px;z-index:10;min-width:200px;padding:7px 8px;border-radius:8px;background:#141414e6;border:1px solid rgba(255,255,255,.12);box-shadow:0 6px 18px #00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}.navigation-map__legend-title{font-size:12px;font-weight:600;color:#fff;line-height:1.2;margin-bottom:4px}.navigation-map__legend-bar{width:100%;height:12px;border-radius:999px;overflow:hidden;border:none}.navigation-map__legend-scale{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;font-weight:600;color:#fff}.maplibregl-ctrl-scale{background:#0000;color:#fff;border-radius:0 0 2px 2px;font-size:16px;font-weight:600;padding:3px 8px}.energy-flow-container{display:flex;justify-content:center;align-items:center;height:30vh}.energy-flow-svg{width:100%;height:100%}.node{fill:#212227;stroke:#555;stroke-width:5px}.node-group.active .node{stroke:#55a858}.central-node{stroke:#2e7d32;stroke-width:3px}.central-value{font-size:14px;font-weight:700}.node-icon{font-size:20px;dominant-baseline:middle}.node-value{font-size:12px;fill:#eee;dominant-baseline:middle}.node-extra{font-size:10px;fill:#eee}.node-label{font-size:11px;fill:#eee;font-family:Arial,sans-serif}.flow-line{fill:none;stroke:#777;stroke-linecap:round;stroke-dasharray:8 16}.flow-line.active{stroke:#2e7d32;animation:dash 1s linear infinite;color:#249918cc}@keyframes dash{0%{stroke-dashoffset:0}to{stroke-dashoffset:-24}}.radar-nav{width:100%;height:100%;display:flex;flex:1;min-width:0;min-height:0;align-items:center;justify-content:center;max-width:100%;max-height:100%}.radar-nav__stage{position:relative;width:100%;height:100%;max-width:100%;border-radius:.65rem;overflow:hidden}.radar-nav__svg{position:absolute;inset:0;width:100%;height:100%;max-width:100%;display:block}.radar-nav__canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}.radar-nav__bg{fill:none}.radar-nav__glow{pointer-events:none}.radar-nav__ring,.radar-nav__rangeRing,.radar-nav__headingLine,.radar-nav__headingBoxRect,.radar-nav__trajectory,.radar-nav__trajectoryTriangle,.radar-nav__shipMarker,.radar-nav__vectorLine,.radar-nav__newHeadingArrow{vector-effect:non-scaling-stroke}.radar-nav__ring{fill:none;stroke:#ffffff59;stroke-width:2}.radar-nav__rangeRing{fill:none;stroke:#ffffff40;stroke-width:1.5;stroke-dasharray:6 6;stroke-linecap:round}.radar-nav__rangeLabel,.radar-nav__label,.radar-nav__cardinal{-webkit-user-select:none;-moz-user-select:none;user-select:none;paint-order:stroke;stroke:#000000e6;stroke-width:3}.radar-nav__rangeLabel{fill:#ffffff8c;font-size:7px;font-weight:700;stroke:#000000d9}.radar-nav__label{fill:#ffffffe6;font-size:10px;font-weight:700}.radar-nav__cardinal{fill:#ffffffd9;font-size:10px;font-weight:800}.radar-nav__headingLine{stroke:#00b4ff80;stroke-width:2}.radar-nav__headingBoxRect{fill:#000;stroke:#ffffff40;stroke-width:1}.radar-nav__headingBoxText{fill:#fffffff2;font-size:18px;font-weight:800;letter-spacing:1.5px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.radar-nav__newHeadingArrow{fill:none;stroke:#67e36f;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.radar-nav__windDirArrow{fill:none;stroke:#ffdc00f2;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.radar-nav__windDirHead{fill:#ffdc00f2;stroke:none}.radar-nav__vectorLine{fill:none;stroke-width:2;stroke-linecap:round}.radar-nav__vectorHead{stroke:none;vector-effect:non-scaling-stroke}.radar-nav__trajectory{fill:none;stroke:#ffff00e6;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.radar-nav__trajectoryTriangle{fill:none;stroke:#dcdcdc8c;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.radar-nav__shipMarker{fill:none;stroke:#fffffff2;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.spd-container{width:100%;height:100%;min-height:0;min-width:0;overflow:visible;display:flex;align-items:stretch;justify-content:center;padding:5px}.spd{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:visible}.spd__frame{fill:#000000eb;stroke:#ffffff1f;stroke-width:1}.spd__scaleBg{fill:#78aaff38}.spd__targetZone{fill:#ffffff0d}.spd__tick{stroke:#ffffffb3;stroke-width:2;stroke-linecap:round}.spd__tick--major{stroke-width:3}.spd__label{fill:#ffffffeb;font-size:26px;dominant-baseline:middle}.spd__rangeLine{stroke:#ffffff59;stroke-width:2}.spd__range--below{fill:var(--dashboard-red)}.spd__range--above{fill:var(--dashboard-purple)}.spd__targetCircle{fill:#0000;stroke:#8cffaaf2;stroke-width:5}.spd__targetDash{stroke:var(--dashboard-yellow);stroke-width:4;stroke-linecap:round}.spd__targetDashLine{stroke:var(--dashboard-yellow);stroke-width:3;stroke-linecap:round}.spd__targetOffArrow{fill:var(--dashboard-yellow)}.spd__targetOffCap{stroke:var(--dashboard-yellow);stroke-width:3;stroke-linecap:round;opacity:.9}.spd__current--in{fill:#0000;stroke:#78dcffd9;stroke-width:3}.spd__current--out{fill:#0000;stroke:#ff0000d9;stroke-width:5}.spd__currentFill--none{fill:#0000}.spd__currentFill--below{fill:var(--dashboard-red)}.spd__currentFill--above{fill:var(--dashboard-purple)}.spdDemo{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}.spdDemo__panel{background:#0000000a;border:1px solid rgba(0,0,0,.08);border-radius:14px;padding:14px}.spdDemo__row{display:grid;grid-template-columns:150px 1fr 64px;gap:10px;align-items:center;margin-bottom:10px}.spdDemo__label{font-size:13px;opacity:.85}.spdDemo__value{font-variant-numeric:tabular-nums;text-align:right}.spdDemo__status{margin-top:10px}.spdDemo__pill{display:inline-block;padding:6px 10px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#fff9;font-size:12px}.spdDemo__viz{display:grid;align-items:start;justify-items:start}.data-age{display:inline-block;align-items:center;font-size:.9rem;font-variant-numeric:tabular-nums}.data-age__label{font-weight:500;color:#666}.data-age__item{display:inline-flex;margin-left:.25rem;align-items:end;border-radius:2px;background:#111}.data-age__key{font-weight:600;color:#000;background:#5a5a5a;padding:2px 1px 0;border-radius:2px 0 0 2px}.unavailable>.data-age__key{background:#870000!important}.delayed>.data-age__key{background:#7a7c00!important}.active>.data-age__key{background:#05d31f}.data-age__value{min-width:3ch;color:#909090;text-align:right;border-left:0;border-right:1px solid #5a5a5a;border-bottom:1px solid #5a5a5a;border-top:1px solid #5a5a5a;border-top-right-radius:2px;border-bottom-right-radius:2px;padding-top:1px;font-size:85%;line-height:113%;padding-left:1px}.dsgvo-ai-warning{font-size:60%;color:#666}.scheduleTimelineShell{width:100%;height:100%;min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;justify-items:center;align-items:center;overflow:hidden;padding-top:5px}.scheduleSvgWrap{width:100%;height:100%;min-width:0;min-height:0;display:flex;align-items:stretch;justify-content:center;overflow:hidden;padding-bottom:5px}.scheduleSvg{width:100%;height:100%;max-width:100%;max-height:100%;display:block;overflow:visible}.scheduleTimeCyan{color:var(--dashboard-blue)}.scheduleOk{color:var(--dashboard-green)}.scheduleWarn{color:var(--dashboard-yellow)}.scheduleLate{color:var(--dashboard-red)}.scheduleMuted{color:var(--dashboard-white)}.timelineTrack{stroke:#7a7a7a;stroke-width:2.5;stroke-linecap:round;opacity:.75}.timelineSpeed{stroke-width:12;stroke-linecap:round}.timelineNodeOuter{fill:#000;stroke:#cfcfcf;stroke-width:4}.timelineMarker{fill:#000;stroke:var(--dashboard-blue);stroke-width:5}.timelineMarkerGlow{fill:none;stroke:#00c6ff40;stroke-width:14}.scheduleTextBlock{width:100%;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.scheduleTopLine,.scheduleBottomLine{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.05;text-align:center}.scheduleTopLine,.scheduleBottomLine{font-size:clamp(.4rem,.7vw,1rem);font-weight:600}.scheduleBottomLine>span{font-size:clamp(.3rem,.5vw,.8rem);font-weight:400}.scheduleBottomLine>.unit{font-size:.45em}.scheduleTextBlockTop,.scheduleTextBlockBottom{gap:.15rem}.delayOnStartWarn{color:#ff4d4f;font-weight:700;animation:blink 1.2s infinite}:root{--font-metric-extra: clamp(1.2rem, 3vw, 4.5rem);--font-metric-large: clamp(1rem, 2vw, 2.8rem);--font-metric-medium: clamp(.8rem, 1.4vw, 2.2rem);--font-metric-medium-smaller: clamp(.7rem, 1.2vw, 2rem);--font-metric-small: clamp(.5rem, 1vw, 1.5rem);--icon-speed-faster: "▼";--icon-speed-slower: "▲";--icon-speed-neutral: " ";--icon-speed-faster-tail: "";--icon-speed-slower-tail: "";--icon-heading-right: "↱";--icon-heading-left: "↰";--icon-heading-neutral: " "}.steering-container{position:relative;font-family:B612;height:100%;width:100%;min-height:0;min-width:0}.steering-content{display:grid;grid-template-columns:minmax(100px,12%) minmax(0,1fr) minmax(100px,12%);height:100%;width:100%;min-height:0;min-width:0;background:var(--dashboard-bg);color:var(--dashboard-white);overflow:hidden;padding:2px;box-sizing:border-box}.steering-content.no-signal{filter:grayscale(100%) brightness(.6);transition:filter .3s ease}.left-view-speed{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;overflow:visible}.middle-view-radar{position:relative;min-width:0;min-height:0;overflow:visible}.right-view-time{display:grid;grid-template-columns:auto minmax(40px,50%);min-width:0;min-height:0;justify-items:end;align-items:start;z-index:10;gap:.25rem}.flex-box-component{min-height:0;min-width:0;overflow:visible;display:flex}.inside-flex-container{flex:1;display:flex;min-height:0;min-width:0;height:100%;width:100%;overflow:visible}.radar-box{position:absolute;top:var(--radar-top, 0px);height:var(--radar-height, 100%);width:100%;z-index:1}.main-metric-top.middle-main-top-metrics.speed-dev-neutral:before{content:var(--icon-speed-neutral);margin-right:.3rem}.main-metric-top.middle-main-top-metrics.speed-dev-faster:before{content:var(--icon-speed-faster);margin-right:.3rem}.main-metric-top.middle-main-top-metrics.speed-dev-slower:before{content:var(--icon-speed-slower);margin-right:.3rem}.main-metric-top.middle-main-top-metrics.speed-dev-faster:after{content:var(--icon-speed-faster-tail);margin-left:.3rem}.main-metric-top.middle-main-top-metrics.speed-dev-slower:after{content:var(--icon-speed-slower-tail);margin-left:.3rem}.main-metric-top.middle-main-top-metrics.heading-adj-neutral:before,.main-metric-top.middle-main-top-metrics.heading-adj-left:before,.main-metric-top.middle-main-top-metrics.heading-adj-right:before{margin-right:.3rem}.main-metric-top.middle-main-top-metrics.heading-adj-neutral:before{content:var(--icon-heading-neutral)}.main-metric-top.middle-main-top-metrics.heading-adj-left:before{content:var(--icon-heading-left)}.main-metric-top.middle-main-top-metrics.heading-adj-right:before{content:var(--icon-heading-right)}.top-row-adj{position:absolute;top:0;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16%;min-width:0;z-index:10}.right-side-metrics-box{display:grid;grid-template-rows:auto 1fr;place-items:flex-end;gap:12px;min-width:0;height:100%}.top-metrics-container{display:grid;grid-template-columns:max-content max-content;-moz-column-gap:5px;column-gap:5px;align-items:baseline;justify-items:end;min-width:0}.line-metric-container{display:grid;grid-template-rows:auto auto;align-items:baseline;justify-items:stretch;min-width:0}.metric-box{display:flex;align-items:center;justify-content:space-between;gap:1px;min-width:0;flex-direction:column;padding-top:.4rem}.metric-box-right{flex-direction:row}.metric-box-bigger{padding:.4rem .5rem}.middle-box-left{align-items:flex-end}.middle-box-right{align-items:flex-start}.title-metric{color:var(--dashboard-neutral);font-size:var(--font-metric-small);white-space:nowrap;text-overflow:ellipsis;max-width:100%}.main-metric-top{color:var(--dashboard-green);font-weight:700;font-size:var(--font-metric-large);line-height:1;white-space:nowrap;text-overflow:ellipsis;padding:.3rem}.second-metric-top{font-weight:700;font-size:var(--font-metric-large);line-height:1;white-space:nowrap;text-overflow:ellipsis;padding:.2rem}.value-with-unit{font-size:var(--font-metric-medium)}.expected-value{color:var(--dashboard-yellow)}.expected-reference-value{color:var(--dashboard-orange)}.stable-value{color:var(--dashboard-white)}.time-delay{font-size:var(--font-metric-small)!important;padding-bottom:2px;justify-self:end;margin-top:auto}.speed-dev-neutral{color:var(--dashboard-neutral)}.speed-dev-faster{color:var(--dashboard-purple)}.speed-dev-slower{color:var(--dashboard-red)}.heading-adj-neutral{color:var(--dashboard-neutral)}.heading-adj-warning{color:var(--dashboard-yellow)}.delay-status-early,.delay-status-on-time,.delay-status-late{font-weight:700}.delay-status-early{color:var(--dashboard-green)}.delay-status-on-time{color:var(--dashboard-neutral)}.delay-status-late{color:var(--dashboard-red)}.delay-unit{color:inherit}.smaller-metric-top{font-weight:400;font-size:var(--font-metric-small);color:#d8d8d8}.middle-main-top-metrics{font-size:var(--font-metric-extra)!important;background:#2c2c2c;border-radius:4px}.middle-main-top-metrics>span{margin-right:.5rem;font-size:clamp(1.1rem,2.1vw,2rem)}.unit-metric-top{font-size:.55em;margin-left:3px}.low-metrics-container{display:grid;grid-template-rows:auto auto auto 1fr;row-gap:4px;justify-items:right;min-width:0;padding-top:5px;height:100%}.low-main-metric{font-size:var(--font-metric-large);line-height:1;white-space:nowrap;padding-top:5px;margin-left:.1em}.unit{margin-left:.1em;font-size:.55em}.delayed-value{font-size:1em;vertical-align:super}.city-value{color:var(--dashboard-blue)}.timeline-column-container{display:grid;align-items:start;min-width:0;height:100%;width:100%;min-height:0;justify-content:center;border-left:1px solid #333;padding:0 1px 5px;overflow:hidden}.timeline-container{width:100%;min-width:0;min-height:0;height:100%;display:flex;justify-content:center}.no-signal-overlay{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10}.no-signal-title{color:#ff4d4f;font-size:2rem;font-weight:700;letter-spacing:2px;animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.3}}.no-data-overlay{position:absolute;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10}.no-data-title{color:var(--dashboard-blue);font-size:2rem;font-weight:700;letter-spacing:2px;animation:blink 1.2s infinite}.error-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:10}.error-title{color:#ff4d4f;font-size:2rem;font-weight:700;letter-spacing:2px;background:#000000d9;border-radius:5px;border-color:#ffffff40;border-style:solid;padding:5px;text-align:center}:root{--primary-bg: #f5f5f5;--card-bg: #ffffff;--dashboard-bg: #000;--font-family: "Inter", sans-serif;--card-radius: 1rem;--card-shadow: 0 4px 12px rgba(0, 0, 0, .08);--accent-blue: #146aff;--accent-green: #05ad21;--accent-red: #ff4d4f;--accent-amber: #f6c25c;--text-muted: rgba(0, 0, 0, .7);--dashboard-blue: #2bb7ff;--dashboard-yellow: #ffff00;--dashboard-orange: #ffcc00;--dashboard-green: #67e36f;--dashboard-red: #d7431f;--dashboard-purple: rgba(160, 44, 147, .95);--dashboard-white: rgba(207, 207, 207, .9);--dashboard-neutral: #8d8d8d;--gauge-bg: #d3d3d3;--gauge-tick: #d3d3d3;--gauge-needle: #1e1e1e;--gauge-number: #d3d3d3;--compass-ring: #c5c5c5;--compass-needle: #1e1e1e;--logos-bar-h: 60px}[data-theme=dark]{color-scheme:dark;color:#f2f2f2;--primary-bg: #1b1e25;--card-bg: #252a33;--card-shadow: 0 4px 12px rgba(0, 0, 0, .6);--accent-blue: #4c8dff;--accent-green: #28c76f;--accent-red: #ff4d4f;--accent-amber: #f6c25c;--text-muted: rgba(255, 255, 255, .7);--gauge-bg: #505866;--gauge-tick: #aab1c1;--gauge-needle: #f2f2f2;--gauge-number: #d3d3d3;--compass-ring: #4d5562;--compass-needle: #f2f2f2}*,*:before,*:after{box-sizing:border-box}body{height:100dvh;margin:0;color:#1e1e1e;font-family:var(--font-family);background:var(--primary-bg)}#root{height:100vh;overflow:hidden}#root .page-container{height:100%;overflow:auto}.page-container{position:relative;width:100%;min-height:100vh}.dashboard-container{display:flex;align-items:stretch;justify-content:center;width:100dvw;height:100dvh;margin-top:.25em}.dashboard-grid{display:grid;grid-template-columns:1fr 40px 0px;align-items:start;width:100dvw;height:100dvh;gap:0;transition:grid-template-columns .3s ease}.dashboard-container.sidebar-open .dashboard-grid{grid-template-columns:minmax(300px,1.4fr) 40px minmax(250px,.6fr);gap:2px}.center-column{padding-left:5px}.left-column{display:grid;grid-template-rows:50% 49%;height:100%;min-height:0;gap:.25em}.left-column .steering-box,.left-column .map-card{height:100%}.side-column{display:flex;flex-direction:column;justify-content:flex-start;height:100%;overflow:hidden;overflow-y:auto}.side-column.sidebar-open{padding-right:5px}.side-column>*+*{margin-top:.25rem}.side-column>*:last-child{margin-bottom:0}.side-column .additional-box{margin-bottom:.5rem}.box,.steering-box,.additional-box,.ecoscore-container,.map-card{display:flex;flex-direction:column;background:var(--card-bg);border-radius:var(--card-radius);box-shadow:var(--card-shadow)}.box,.steering-box,.additional-box,.ecoscore-container{justify-content:space-between;padding:.5rem}.map-card{padding:.5rem}.center-text{margin:0 0 .5rem;font-size:1.2rem;font-weight:600;text-align:center}.map{flex:1;overflow:hidden;border-radius:var(--card-radius)}.leaflet-container,.maplibregl-map{width:100%;height:100%;border-radius:var(--card-radius)}.poi-popup .maplibregl-popup-content{color:#000}.poi-popup .maplibregl-popup-close-button{color:#000;background:transparent;border:none;box-shadow:none}.steering-box,.steering-wrapper{justify-content:flex-start!important}.steering-wrapper{width:100%;height:100%;min-height:0}.navigation-row{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;gap:1.5rem}.nav-column{display:flex;flex-direction:column;align-items:center;text-align:center}.next-stop-text{margin:0;color:gray;font-size:.9rem;font-weight:300}.next-stop-text .highlight{color:var(--accent-blue);font-size:1.1rem}.small-info{margin:0;color:var(--text-muted);font-size:1.1rem}.nav-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;height:100%;min-height:0;gap:1rem}.nav-grid.nav-grid--two{grid-template-columns:1fr 2fr;grid-template-rows:1fr;align-items:stretch;gap:1rem}.nav-grid.nav-grid--two .nav-tile{height:100%}.nav-tile{display:flex;flex-direction:column;min-width:0;min-height:0;padding:.75rem;background:#0000000a;border:1px solid rgba(0,0,0,.06);border-radius:.75rem}[data-theme=dark] .nav-tile{background:#ffffff0a;border-color:#ffffff14}.tile-header{margin-bottom:.25rem;color:var(--text-muted);font-size:.95rem;font-weight:600}.tile-body{align-items:center;justify-content:center}.tile-body-left{align-items:flex-start;justify-content:flex-start}.tile-body-center{align-items:center;justify-content:center;text-align:center}.tile-body.tile-body-center{height:100%;align-content:center}.tile-body.radar-tile-body{display:flex;height:100%}.radar-body{height:100%}.compass{width:min(160px,80%);aspect-ratio:1;transition:transform .25s}.compass:hover{transform:scale(1.05)}.compass svg{width:100%;height:100%}.compass-bg{fill:var(--card-bg);stroke:#e0e0e0;stroke-width:1}.compass-ring{fill:none;stroke:var(--compass-ring);stroke-width:2}.compass-dot{fill:var(--accent-green);stroke:#fff;stroke-width:1}.compass-needle{fill:var(--compass-needle);stroke:var(--compass-needle);stroke-width:4;transition:stroke .25s,fill .25s}.compass-needle.match{fill:var(--accent-green);stroke:var(--accent-green)}.compass-label{fill:#cfd3dc;font-size:14px;font-weight:600;pointer-events:none}.gauge-wrapper{width:100%;max-width:140px}.nav-tile .compass{width:min(180px,90%)}.nav-tile .gauge-wrapper{width:100%;max-width:180px}.gauge-tick{fill:var(--gauge-tick)}.speed-column{display:flex;justify-content:flex-end}.chart-container{display:flex;flex:1;align-items:center;justify-content:center}.score-container{display:flex;justify-content:center;margin-top:.5rem}.score-value{padding:.45rem 1.1rem;color:#fff;font-size:1.1rem;font-weight:500;background:#1e1e1e;border-radius:.75rem}.circle-container{display:flex;align-items:center;justify-content:center;margin:auto}.circle-container.large{width:150px;height:150px}.arrival-line--expected{margin:0;font-size:1rem;font-weight:600}.highlight-arrival{margin:0 0 .1rem;font-size:2rem;font-weight:600}.arrival-line--expected-sub{margin-top:-.2rem;margin-bottom:.6rem;color:gray}.arrival-line--buffer{font-size:1.1rem}.arrival-line--pred{margin-bottom:.6rem}.arrival-line--expected-unit{font-size:60%}.arrival-label{display:inline-block;min-width:1.1rem;font-weight:700;opacity:.7}.arrival-line--expected.ok{color:var(--accent-green)}.arrival-line--expected.neutral{color:var(--text-muted)}.arrival-line--expected.bad{color:var(--accent-red)}.harbor-overlay{position:fixed;inset:0;z-index:700;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#000000a6,#000000d9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.harbor-overlay-content{min-width:420px;max-width:520px;padding:2.2rem 3.2rem;color:#f6f7fb;text-align:center;background:#16181ff5;border:1px solid rgba(120,140,255,.25);border-radius:16px;box-shadow:0 18px 45px #000000b3;animation:harbor-pop-in .16s ease-out}.harbor-overlay-icon{margin-bottom:.75rem;font-size:2.4rem;filter:drop-shadow(0 0 6px rgba(120,140,255,.55))}.harbor-overlay-title{margin:0;font-size:1.6rem;font-weight:700;letter-spacing:.03em}.harbor-overlay-text{margin:.6rem 0 .2rem;font-size:1.05rem;opacity:.9}.harbor-overlay-subtitle{margin-top:.8rem;font-size:.98rem;opacity:.7}.harbor-overlay-close{position:absolute;top:10px;right:10px;font-size:20px;background:transparent;border:none;cursor:pointer}@keyframes harbor-pop-in{0%{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.logos-bar{position:sticky;bottom:.25rem;z-index:5;display:flex;align-items:center;justify-content:center;height:var(--logos-bar-h);margin-top:auto;padding:.5rem .75rem;gap:1rem;background:var(--card-bg);border:1px solid rgba(0,0,0,.06);border-radius:var(--card-radius);box-shadow:var(--card-shadow)}[data-theme=dark] .logos-bar{border-color:#ffffff1a}.logos-bar img{width:auto;max-width:160px;height:auto;max-height:calc(var(--logos-bar-h) - 24px);-o-object-fit:contain;object-fit:contain}.toggle-switch-container{display:flex;justify-content:center;margin-bottom:.5rem}.toggle-switch{display:inline-flex;overflow:hidden;font-size:.9rem;background-color:#1a1a1a;border:1px solid #333;border-radius:10px}.toggle-switch button{flex:1;padding:.4rem 1rem;color:#ccc;background-color:transparent;border:none;cursor:pointer;transition:background-color .2s,color .2s}.toggle-switch button.active{color:#fff;background-color:#007bff}.session-quiet-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:#0000006b;background:#0000000a;border:1px solid rgba(0,0,0,.14);border-radius:6px;cursor:pointer}.session-quiet-button:hover,.session-quiet-button:focus-visible{color:#000000c7;background:#00000014;border-color:#0000003d}[data-theme=dark] .session-quiet-button{color:#ffffff9e;background:#ffffff0f;border-color:#ffffff2e}[data-theme=dark] .session-quiet-button:hover,[data-theme=dark] .session-quiet-button:focus-visible{color:#fff;background:#ffffff1f;border-color:#ffffff59}.sidebar-toggle{position:fixed;top:50%;z-index:500;width:40px;height:100dvh;padding:12px 8px;color:#fff;background:#1e293b;border:none;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px #0003;cursor:pointer;transform:translateY(-50%);transition:all .3s ease}.sidebar-toggle span{font-weight:700;letter-spacing:2px;writing-mode:vertical-rl;transform:rotate(180deg)}.sidebar-toggle:hover{padding-left:12px;background:#334155}.sidebar-toggle.open{background:var(--card-bg);transform:translateY(-50%) translate(-4px)}.user-logs-nav-button,.page-back-button{position:fixed;top:10px;left:10px;z-index:999;padding:10px 16px;color:#fff;font-size:14px;font-weight:600;border:none;border-radius:6px;box-shadow:0 2px 8px #00000026;cursor:pointer;transition:all .2s ease}.user-logs-nav-button{background-color:#06c}.page-back-button{background-color:#666}.user-logs-nav-button:hover{background-color:#0052a3}.page-back-button:hover{background-color:#555}.user-logs-nav-button:hover,.page-back-button:hover{box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.user-logs-nav-button:active,.page-back-button:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.debug-toggle{position:fixed;top:10px;right:10px;z-index:501;padding:10px 12px;color:#fff;background:#222;border:none;border-radius:6px;cursor:pointer}.debug-sidebar{position:fixed;top:0;right:-350px;z-index:500;width:350px;height:100%;padding:20px;overflow-y:auto;color:#fff;background:#111;transition:right .3s ease}.debug-sidebar.open{right:0}.debug-option{display:block;margin:10px 0}.debug-section{margin-top:20px}.debug-section h4{margin:0 0 10px;font-size:.95rem}.debug-field{display:grid;gap:6px;color:#ffffffb8;font-size:.85rem}.debug-input{width:100%;min-width:0;padding:8px 10px;color:#fff;background:#181818;border:1px solid #444;border-radius:6px}.debug-actions-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.debug-action{display:block;width:100%;margin:8px 0;padding:8px 10px;color:#fff;text-align:left;background:#222;border:1px solid #444;border-radius:6px;cursor:pointer}.debug-action:hover{background:#2f2f2f}.debug-actions-row .debug-action{margin:0;text-align:center}.debug-action:disabled{cursor:not-allowed;opacity:.48}.debug-status{margin-top:8px;color:#ffffff94;font-size:.78rem}.debug-section pre{padding:10px;overflow-x:auto;font-size:12px;background:#000}@media(max-width:900px){body{overflow:auto}.dashboard-container{align-items:flex-start;height:100dvh;padding:.75rem;overflow:auto}.dashboard-grid{grid-template-columns:1fr;height:auto}.left-column,.side-column{height:auto;min-height:0;overflow:visible}.left-column{height:auto}.side-column{justify-content:flex-start;padding-block:0}.side-column>*+*{margin-top:1.5rem}.map{height:50vh;min-height:320px}.steering-box{max-height:80vw}.navigation-row{flex-direction:column}.compass{width:140px}.nav-grid{grid-template-columns:1fr 1fr;grid-template-rows:none;grid-auto-rows:minmax(140px,auto)}.nav-grid.nav-grid--two{grid-template-columns:1fr;grid-template-rows:auto auto}.logos-bar{height:64px;gap:.75rem}.logos-bar img{max-width:120px;max-height:44px}.sidebar-toggle{display:none}}.login-page{height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#1b2a41,#0b1220);font-family:system-ui,sans-serif}.login-card{width:360px;padding:32px;border-radius:16px;background:#ffffff0f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);color:#fff;box-shadow:0 20px 60px #0006}.login-header h1{margin:0;font-size:22px}.login-header p{margin:6px 0 20px;opacity:.7;font-size:13px}.login-form{display:flex;flex-direction:column;gap:14px}.login-form label{display:flex;flex-direction:column;font-size:12px;opacity:.8;gap:6px}.login-form input{padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#0003;color:#fff;outline:none}.login-form input:focus{border-color:#64a0ffcc}.login-form button{margin-top:10px;padding:10px;border-radius:10px;border:none;background:#4c8dff;color:#fff;font-weight:600;cursor:pointer;transition:.2s}.login-form button:hover{background:#3a7cff}.login-error{color:#ff6b6b;font-size:12px}
