:root{--header-height:52px;--manifest-width:280px;--font-display:"Barlow Condensed",system-ui,sans-serif;--font-mono:"Azeret Mono","Courier New",monospace;--font-label:"Azeret Mono","Courier New",monospace;--glow-sm:0 0 0 transparent;--glow-md:0 0 0 transparent;--glow-lg:0 0 0 transparent;--glow-text:0 0 0 transparent;--amber:#e8a630;--amber-dim:#5a4018;--red-alert:#ff4444;--green-ok:#44cc88;--radius-subtle:4px;--radius-accent:12px;--primary-rgb:122,157,184}@keyframes crt-flicker{0%,100%{opacity:1;filter:brightness(1)}50%{opacity:0.98;filter:brightness(0.98)}}@media (max-width:768px){@keyframes crt-flicker{0%,100%{opacity:1}50%{opacity:0.95}}}.theme-sb{--bg-deep:#000000;--bg-panel:#020507;--bg-surface:#050b10;--bg-elevated:#09121a;--primary-dim:#3d5c72;--primary-muted:#4e6e87;--primary-base:#5f82a0;--primary:#7a9db8;--primary-glow:#7a9db8;--primary-pale:#a8c4d8;--primary-rgb:122,157,184}.theme-syd{--bg-deep:#000000;--bg-panel:#080306;--bg-surface:#0e050c;--bg-elevated:#160812;--primary-dim:#7a3a58;--primary-muted:#924666;--primary-base:#a85275;--primary:#c26085;--primary-glow:#c26085;--primary-pale:#d9a0b4;--primary-rgb:194,96,133}.theme-sea{--bg-deep:#000000;--bg-panel:#080403;--bg-surface:#0e0805;--bg-elevated:#150c07;--primary-dim:#8a4e30;--primary-muted:#a05a38;--primary-base:#b86842;--primary:#cc7748;--primary-glow:#d97f4e;--primary-pale:#e8a87e;--primary-rgb:204,119,72;--amber:#cc7748;--amber-dim:#4d2b1b}.theme-nyc{--bg-deep:#000000;--bg-panel:#06020a;--bg-surface:#0c0412;--bg-elevated:#12061c;--primary-dim:#722850;--primary-muted:#8c3260;--primary-base:#a43e72;--primary:#c4507a;--primary-glow:#c4507a;--primary-pale:#d998b0;--primary-rgb:196,80,122;--amber:#c04a6e;--amber-dim:#491c30;--red-alert:#c46070;--green-ok:#5aaa8c}.theme-at{--bg-deep:#000000;--bg-panel:#020706;--bg-surface:#030d0b;--bg-elevated:#051410;--primary-dim:#3a6e58;--primary-muted:#4a8068;--primary-base:#5a9278;--primary:#6aaa8a;--primary-glow:#6aaa8a;--primary-pale:#9ccdb8;--primary-rgb:106,170,138}.theme-bne{--bg-deep:#000000;--bg-panel:#070302;--bg-surface:#0e0604;--bg-elevated:#140806;--primary-dim:#8c5540;--primary-muted:#a86050;--primary-base:#bc6e5c;--primary:#d07c68;--primary-glow:#d07c68;--primary-pale:#e2aa98;--primary-rgb:208,124,104;--amber:#b89046}.theme-stk{--bg-deep:#000000;--bg-panel:#020408;--bg-surface:#03070f;--bg-elevated:#060d1a;--primary-dim:#3a587a;--primary-muted:#486a90;--primary-base:#587ea8;--primary:#6892bc;--primary-glow:#6892bc;--primary-pale:#9abcd8;--primary-rgb:104,146,188;--amber:#6892bc}.theme-no{--bg-deep:#000000;--bg-panel:#070405;--bg-surface:#0e0709;--bg-elevated:#14090d;--primary-dim:#8c2030;--primary-muted:#b02a3e;--primary-base:#cc3548;--primary:#e04055;--primary-glow:#e04055;--primary-pale:#f0a0aa;--primary-rgb:224,64,85;--amber:#e09030}.desktop-only{display:inline}.mobile-only{display:none}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;background:var(--bg-deep);color:var(--primary);font-family:var(--font-mono);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased}.boot-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10000;background:#000000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;overflow-y:auto}.boot-overlay.done{animation:crt-power-off 0.4s ease-out forwards;pointer-events:none}.boot-overlay.done.done-smooth{animation:fade-out-smooth 0.3s ease-out forwards}@keyframes fade-out-smooth{to{opacity:0;visibility:hidden}}.stale-warning{position:fixed;top:calc(var(--header-height) + 12px);left:50%;transform:translateX(-50%);z-index:1000;background:rgba(232,166,48,0.9);color:#000;padding:6px 16px;font-family:var(--font-display);font-weight:700;font-size:11px;letter-spacing:2px;display:flex;align-items:center;gap:10px;box-shadow:none;border:1px solid #fff;animation:warning-pulse 2s infinite ease-in-out;pointer-events:none}.stale-warning.hidden{display:none}@keyframes warning-pulse{0%{opacity:0.9;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.02)}100%{opacity:0.9;transform:translateX(-50%) scale(1)}}.warning-icon{font-size:14px}.boot-logo{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:5px;color:var(--primary);text-shadow:none;text-transform:uppercase;opacity:0;animation:boot-fade-in 0.6s ease forwards}.returning-to-selector .boot-logo{opacity:1;animation:none}.first-visit .boot-logo{animation:crt-power-on 0.8s cubic-bezier(0.2,0.8,0.3,1) 0.2s both}.boot-status{font-family:var(--font-mono);font-size:12px;letter-spacing:3px;color:var(--primary-muted);text-transform:uppercase;height:20px;display:flex;align-items:center}.boot-spinner{display:none;font-family:var(--font-mono);font-size:11px;letter-spacing:2px;color:var(--primary-muted);animation:blink 1s step-end infinite;margin-top:16px}.auto-restoring .agency-selector{display:none}.boot-overlay.agency-picking .boot-logo{visibility:hidden}.agency-selecting .boot-logo{opacity:0!important;visibility:hidden!important}.agency-selector{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px;width:100%;max-width:500px;padding:0 20px}.agency-btn{background:rgba(var(--primary-rgb,94,240,224),0.05);background:rgba(255,255,255,0.03);border:1px solid var(--primary-dim);color:var(--primary);padding:20px 16px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:10px;transition:all 0.25s cubic-bezier(0.4,0,0.2,1);outline:none;min-width:160px;border-radius:var(--radius-subtle)}.agency-btn:hover:not(:disabled){background:rgba(255,255,255,0.08);border-color:var(--primary);box-shadow:var(--glow-md);transform:translateY(-2px)}.agency-btn:disabled{opacity:0.4;cursor:not-allowed;border-style:dashed;filter:grayscale(1)}@keyframes btn-connecting{0%,100%{border-color:var(--primary-dim)}50%{border-color:var(--primary)}}.agency-btn.loading{animation:btn-connecting 1.4s ease-in-out infinite;pointer-events:none}.agency-btn.loading-others{opacity:0;pointer-events:none;transition:opacity 0.2s ease}.agency-id{font-family:var(--font-mono);font-size:10px;color:var(--primary-muted);letter-spacing:1px}.agency-name{font-family:var(--font-display);font-size:14px;letter-spacing:2px;text-transform:uppercase;text-align:center}@keyframes boot-fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes crt-power-off{0%{opacity:1}100%{opacity:0;visibility:hidden}}@keyframes crt-power-on{0%{opacity:0;transform:scale(0.98)}100%{opacity:1;transform:scale(1)}}.crt-power-on{animation:crt-power-on 0.5s cubic-bezier(0.2,0.8,0.3,1) both}.crt-power-on-d1{animation-delay:0.05s}.crt-power-on-d2{animation-delay:0.12s}.crt-power-on-d3{animation-delay:0.2s}.crt-power-on-d4{animation-delay:0.3s}@keyframes crt-global{0%,100%{opacity:1}50%{opacity:0.96}}.value-refresh{animation:text-fade-in 0.4s ease-out}@keyframes text-fade-in{from{opacity:0.4;filter:brightness(1.4)}to{opacity:1;filter:brightness(1)}}#command-bar{position:fixed;top:0;left:0;right:0;height:var(--header-height);z-index:1000;will-change:opacity,transform;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(40px,1fr);align-items:center;padding:0 20px;background:rgba(4,12,18,0.98);border-bottom:2px solid rgba(var(--primary-rgb),0.12);animation:crt-global 4s infinite ease-in-out;transition:transform 0.4s cubic-bezier(0.4,0,0.2,1),opacity 0.4s cubic-bezier(0.4,0,0.2,1)}#command-bar.data-pulse{border-bottom-color:rgba(var(--primary-rgb),0.4)}.command-bar-left{display:flex;align-items:center;gap:12px;min-width:0}.command-bar-center{display:flex;align-items:center;gap:32px;justify-content:center}.command-bar-right{display:flex;align-items:center;gap:12px;justify-content:flex-end}.stats-toggle-btn{display:none;background:none;border:1px solid rgba(var(--primary-rgb),0.2);padding:4px 10px;cursor:pointer;align-items:center;gap:8px;color:var(--primary);font-family:var(--font-mono);border-radius:var(--radius-subtle);transition:all 0.2s}.stats-toggle-btn:hover{background:rgba(var(--primary-rgb),0.06);border-color:var(--primary)}.stats-toggle-btn .toggle-icon{font-size:10px;color:var(--primary-dim);transition:transform 0.3s}.command-bar-center.expanded .toggle-icon{transform:rotate(180deg)}.stats-container{display:flex;align-items:center;gap:32px}.signal-icon{width:36px;height:36px;position:relative;display:flex;align-items:center;justify-content:center;background:rgba(var(--primary-rgb),0.05);border:1px solid var(--primary-dim);border-radius:50%;color:var(--primary);opacity:0.85;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);cursor:pointer}.signal-icon:hover{opacity:1;background:rgba(var(--primary-rgb),0.15);transform:scale(1.05);border-color:var(--primary);box-shadow:var(--glow-md)}.signal-icon svg{width:30px;height:30px}.command-title{min-width:0;overflow:hidden}.command-title h1{font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:3px;color:var(--primary);text-shadow:var(--glow-text);line-height:1.2;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-title .subtitle{font-family:var(--font-label);font-size:9px;font-weight:700;letter-spacing:2.5px;color:var(--primary-dim);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.status-display{display:flex;flex-direction:column;align-items:center;gap:2px}.status-label{font-family:var(--font-label);font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--primary-dim);text-transform:uppercase}.status-value{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--primary);text-shadow:var(--glow-text);display:flex;align-items:center;gap:6px}.status-value small{font-size:10px;color:var(--primary-dim);margin-left:1px;text-transform:uppercase}.status-dot{width:5px;height:5px;display:inline-block;border-radius:2px}.status-dot.online{background:var(--primary);box-shadow:var(--glow-md)}.status-dot.offline{background:var(--red-alert)}.status-dot.warning{background:var(--amber)}.pulse-countdown{font-variant-numeric:tabular-nums;min-width:2ch;text-align:center}#map{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1;background:#000000;transition:opacity 0.4s ease-in-out}#map.map-fading{opacity:0}.maplibregl-ctrl-group{background:rgba(7,18,24,0.9)!important;border:1px solid color-mix(in srgb,var(--primary) 10%,transparent)!important;box-shadow:var(--glow-sm)!important;border-radius:0!important}.maplibregl-ctrl-group button{background-color:transparent!important;border-color:color-mix(in srgb,var(--primary) 6%,transparent)!important;border-radius:0!important}.maplibregl-ctrl-group button + button{border-top:1px solid color-mix(in srgb,var(--primary) 6%,transparent)!important}.maplibregl-ctrl-group button:hover{background-color:color-mix(in srgb,var(--primary) 6%,transparent)!important}.theme-sb .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(85%) sepia(30%) saturate(150%) hue-rotate(145deg) brightness(105%)}.theme-syd .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(50%) sepia(80%) saturate(150%) hue-rotate(280deg) brightness(110%)}.theme-sea .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(75%) sepia(90%) saturate(180%) hue-rotate(350deg) brightness(100%)}.theme-nyc .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(45%) sepia(85%) saturate(400%) hue-rotate(270deg) brightness(110%)}.theme-at .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(70%) sepia(50%) saturate(150%) hue-rotate(120deg) brightness(105%)}.theme-bne .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(55%) sepia(80%) saturate(300%) hue-rotate(340deg) brightness(110%)}.theme-stk .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(60%) sepia(40%) saturate(200%) hue-rotate(170deg) brightness(105%)}.theme-no .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:brightness(0) saturate(100%) invert(36%) sepia(84%) saturate(3015%) hue-rotate(334deg) brightness(101%) contrast(102%)}.maplibregl-ctrl-attrib a{color:var(--primary-muted)!important}.control-panel{position:fixed;z-index:100;background:rgba(7,18,24,0.85);border:1px solid rgba(var(--primary-rgb),0.1);border-radius:var(--radius-subtle);box-shadow:0 4px 24px rgba(0,0,0,0.5);min-width:190px;max-width:240px;overflow:hidden}#left-controls-wrapper{top:calc(var(--header-height) + 12px);left:12px;max-height:calc(100vh - var(--header-height) - 180px);transition:opacity 0.4s cubic-bezier(0.4,0,0.2,1),visibility 0s,transform 0.4s cubic-bezier(0.4,0,0.2,1)}body.theme-sb #left-controls-wrapper .control-panel{width:220px}#route-controls,#timetable-controls{display:flex;flex-direction:column}#route-controls>div:nth-child(2){display:flex;flex-direction:column;flex:1;min-height:0;padding-bottom:0}#route-list{overflow-y:auto;flex:1;min-height:0;padding-bottom:6px;margin-bottom:6px}#route-controls>div:nth-child(3){flex:0 0 auto}.panel-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:rgba(var(--primary-rgb),0.03);border-bottom:1px solid rgba(var(--primary-rgb),0.07);font-family:var(--font-display);font-size:10px;font-weight:600;letter-spacing:2px;color:var(--primary-base);text-transform:uppercase;user-select:none}.panel-icon{color:var(--primary);text-shadow:var(--glow-text);font-size:8px}.panel-toggle{margin-left:auto;background:none;border:1px solid transparent;color:transparent!important;cursor:pointer;width:24px;height:24px;border-radius:2px;position:relative;transition:border-color 0.2s ease-out,background 0.2s ease-out,box-shadow 0.2s ease-out}.panel-toggle::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;background-color:var(--primary-dim);-webkit-mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.36 6.64a9 9 0 1 1-12.73 0'/%3E%3Cline x1='12' y1='2' x2='12' y2='12'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.36 6.64a9 9 0 1 1-12.73 0'/%3E%3Cline x1='12' y1='2' x2='12' y2='12'/%3E%3C/svg%3E") center/contain no-repeat;transition:background-color 0.2s}@media (hover:hover){.panel-toggle:hover{border-color:color-mix(in srgb,var(--primary) 30%,transparent);background:color-mix(in srgb,var(--primary) 10%,transparent)}.panel-toggle:hover::before{background-color:var(--primary)}}.panel-toggle.active::before{background-color:var(--primary)}.panel-toggle.active{border-color:color-mix(in srgb,var(--primary) 40%,transparent);background:color-mix(in srgb,var(--primary) 8%,transparent);box-shadow:var(--glow-sm)}.panel-body{padding:0 12px 6px;overflow-y:auto;max-height:800px;opacity:1;transition:max-height 0.25s cubic-bezier(0.4,0,0.2,1),padding 0.25s cubic-bezier(0.4,0,0.2,1),opacity 0.25s cubic-bezier(0.4,0,0.2,1)}@keyframes crt-flicker-off{from{opacity:1}to{opacity:0}}@keyframes crt-flicker-on{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.panel-body.collapsed{max-height:0!important;padding-top:0!important;padding-bottom:0!important;border-top:none!important;overflow:hidden!important;opacity:0;transition:max-height 0.25s cubic-bezier(0.4,0,0.2,1),padding 0.25s cubic-bezier(0.4,0,0.2,1),opacity 0.2s cubic-bezier(0.4,0,0.2,1)}.route-actions{padding:12px;border-bottom:1px solid rgba(var(--primary-rgb),0.06)}.action-btn{background:rgba(var(--primary-rgb),0.05);border:1px solid var(--primary-dim);border-radius:var(--radius-subtle);color:var(--primary-pale);font-family:var(--font-mono);font-size:9px;padding:2px 8px;cursor:pointer;letter-spacing:1px;transition:all 0.12s}.action-btn:hover{background:rgba(var(--primary-rgb),0.1);border-color:var(--primary);color:var(--primary)}.action-btn.small{font-size:10px;font-weight:700;padding:4px 0;width:100%;display:flex;align-items:center;justify-content:center;gap:6px;background:rgba(var(--primary-rgb),0.03);border-color:rgba(var(--primary-rgb),0.2);letter-spacing:2px;text-transform:uppercase}.action-btn.small:hover{background:rgba(var(--primary-rgb),0.1);border-color:var(--primary);box-shadow:var(--glow-sm)}.toggle-item{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;font-size:12px;color:var(--primary-pale);transition:color 0.12s}.toggle-item:hover{color:var(--primary)}.toggle-item input[type="checkbox"]{display:none}@keyframes radar-ping{0%{opacity:0.3}50%{opacity:0.9}100%{opacity:0.3}}.signal-icon svg path{animation:radar-ping 2s infinite ease-in-out}.signal-icon svg path:nth-child(2){animation-delay:0.5s}.toggle-switch{width:12px;height:12px;border:1px solid var(--primary-dim);border-radius:2px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.12s}.toggle-item input[type="checkbox"]:checked + .toggle-switch{background:var(--primary-base);border-color:var(--primary);box-shadow:var(--glow-sm)}.toggle-item input[type="checkbox"]:checked + .toggle-switch::after{content:"";width:6px;height:6px;background:var(--bg-deep)}.loading-indicator{font-size:10px;color:var(--primary-dim);letter-spacing:1px;padding:6px 0;animation:blink 1.5s step-end infinite}@keyframes blink{50%{opacity:0}}#vessel-manifest{position:fixed;top:var(--header-height);right:0;bottom:0;width:var(--manifest-width);z-index:100;background:rgba(7,18,24,0.85);border-left:1px solid rgba(var(--primary-rgb),0.1);border-radius:var(--radius-subtle) 0 0 var(--radius-subtle);display:flex;flex-direction:column;overflow:hidden;transition:transform 0.4s cubic-bezier(0.4,0,0.2,1),opacity 0.4s cubic-bezier(0.4,0,0.2,1)}.manifest-header{padding:11px 16px;background:rgba(var(--primary-rgb),0.03);border-bottom:1px solid rgba(var(--primary-rgb),0.07);display:flex;align-items:center;justify-content:space-between}.manifest-header-title{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--primary-base);text-transform:uppercase}.manifest-count{font-family:var(--font-mono);font-size:12px;color:var(--primary);text-shadow:var(--glow-text);background:rgba(var(--primary-rgb),0.06);padding:1px 8px;border:1px solid rgba(var(--primary-rgb),0.1);border-radius:var(--radius-subtle)}.manifest-list{flex:1;overflow-y:auto;padding:6px 0;display:flex;flex-direction:column}.manifest-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;border-left:3px solid transparent;transition:all 0.15s ease;position:relative}.manifest-item:hover{background:rgba(var(--primary-rgb),0.1)}.manifest-item.active{background:color-mix(in srgb,var(--primary) 15%,transparent)}.manifest-item.playback-hidden{opacity:0.3;filter:grayscale(100%);transition:all 0.2s ease}.manifest-item.offline{opacity:0.53;filter:brightness(0.8) grayscale(0.7)}.manifest-item.offline .manifest-name{color:var(--primary-dim)}.manifest-item.offline .manifest-route{color:var(--primary-dimmer)}.manifest-item.offline .manifest-speed{color:var(--primary-dimmer)}.manifest-blip{width:8px;height:8px;border:1.5px solid var(--primary);border-radius:2px;flex-shrink:0;position:relative}.manifest-blip::after{content:"";position:absolute;top:50%;left:50%;width:3px;height:3px;background:var(--primary);transform:translate(-50%,-50%);opacity:0.7}.manifest-item.inactive .manifest-blip{border-color:var(--amber-dim)}.manifest-item.inactive .manifest-blip::after{background:var(--amber-dim)}.manifest-info{flex:1;min-width:0}.manifest-name{font-family:var(--font-mono);font-size:12px;color:var(--primary);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:none}.manifest-route{font-family:var(--font-label);font-size:10px;font-weight:700;color:var(--primary-dim);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.manifest-speed{font-family:var(--font-mono);font-size:11px;color:var(--primary-muted);flex-shrink:0}.detail-panel{position:fixed;bottom:0;left:50%;transform:translateX(-50%) translateY(0) scale(1);z-index:500;width:540px;max-width:calc(100vw - var(--manifest-width) - 28px);background:rgba(7,18,24,0.92);border:1px solid rgba(var(--primary-rgb),0.12);border-bottom:none;border-radius:var(--radius-subtle) var(--radius-subtle) 0 0;box-shadow:0 -4px 40px rgba(0,0,0,0.6);transition:transform 0.35s cubic-bezier(0.22,1,0.36,1),opacity 0.35s ease;will-change:transform,opacity;padding:16px 20px 12px}.detail-panel.hidden{transform:translateX(-50%) translateY(100%) scale(0.97);opacity:0;pointer-events:none}.detail-close{position:absolute;top:10px;right:14px;background:none;border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);color:var(--primary-muted);font-size:12px;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-subtle);transition:all 0.12s;text-shadow:var(--glow-sm);box-shadow:var(--glow-sm)}.detail-close:hover{color:var(--primary);border-color:var(--primary);box-shadow:var(--glow-md);text-shadow:var(--glow-text)}.detail-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.detail-icon{width:14px;height:14px;border:1.5px solid var(--primary);border-radius:2px;box-shadow:var(--glow-sm);flex-shrink:0;overflow:hidden}.detail-header h2{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:3px;color:var(--primary);text-shadow:var(--glow-text);text-transform:uppercase;margin-bottom:-2px}.detail-subtitle{font-family:var(--font-label);font-size:9px;font-weight:700;letter-spacing:1.5px;color:var(--primary-dim);text-transform:uppercase}.detail-status-chip{display:inline-block;font-family:var(--font-label);font-size:9px;font-weight:900;letter-spacing:1px;padding:2px 8px;text-transform:uppercase;border:1px solid;white-space:nowrap}.detail-status-chip.in-transit{color:var(--primary);border-color:rgba(var(--primary-rgb),0.2);background:rgba(var(--primary-rgb),0.06)}.detail-status-chip.docked{color:var(--amber);border-color:rgba(232,166,48,0.2);background:rgba(232,166,48,0.06)}.detail-status-chip.at-terminal{color:var(--green-ok);border-color:rgba(68,204,136,0.2);background:rgba(68,204,136,0.06)}.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.detail-cell{display:flex;flex-direction:column;gap:3px;padding:6px 8px;background:rgba(var(--primary-rgb),0.02);border:1px solid rgba(var(--primary-rgb),0.06);border-radius:2px}.detail-label{font-family:var(--font-label);font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--primary-dim);text-transform:uppercase}.detail-value{font-family:var(--font-mono);font-size:13px;color:var(--primary);word-break:break-word;text-transform:uppercase;text-shadow:none;font-variant-numeric:tabular-nums}.detail-footer{margin-top:10px;padding-top:8px;border-top:1px solid rgba(var(--primary-rgb),0.07);font-size:9px;color:var(--primary-dim);letter-spacing:1px;text-transform:uppercase}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--primary-dim)}::-webkit-scrollbar-thumb:hover{background:var(--primary-muted)}.maplibregl-popup-content{background:rgba(7,18,24,0.94)!important;border:1px solid rgba(var(--primary-rgb),0.12)!important;border-radius:0!important;box-shadow:var(--glow-sm)!important;color:var(--primary)!important;font-family:var(--font-mono)!important;font-size:11px!important;padding:6px 10px!important}.maplibregl-popup-tip{border-top-color:rgba(var(--primary-rgb),0.12)!important}.terminal-popup-name{font-family:var(--font-mono);font-size:11px;letter-spacing:1px;color:var(--primary);text-shadow:var(--glow-text);text-transform:uppercase}@media (max-width:1024px){:root{--manifest-width:240px}}@media (max-width:900px){:root{--manifest-width:200px}.detail-panel{max-width:calc(100vw - var(--manifest-width) - 24px)}}@media (max-width:768px){html:not(.auto-restoring) .boot-overlay{justify-content:flex-start;padding:60px 0}.agency-selector{grid-template-columns:1fr;max-width:320px;gap:12px}.agency-btn{padding:16px 20px;width:100%}.boot-logo{font-size:22px;letter-spacing:5px}.desktop-only{display:none!important}.mobile-only{display:inline!important}#command-bar{padding:0 10px;height:var(--header-height);transition:height 0.3s cubic-bezier(0.4,0,0.2,1);display:flex;justify-content:space-between;align-items:center}.command-bar-left{flex:1;min-width:0;display:flex;align-items:center;gap:8px}#stats-container .status-display:first-child{display:none}#left-controls-wrapper{top:var(--routes-top,calc(var(--header-height) + 8px))!important;left:8px!important;right:8px!important;width:auto!important;transition:top 0.3s cubic-bezier(0.4,0,0.2,1)}#left-controls-wrapper .control-panel{flex:1;width:auto!important;max-width:none!important;min-width:0!important}#route-controls{max-height:var(--routes-max-height,45vh)!important;bottom:auto!important;transition:max-height 0.3s ease}#vessel-manifest{top:var(--manifest-top,var(--header-height))!important;transition:top 0.25s cubic-bezier(0.4,0,0.2,1),transform 0.3s cubic-bezier(0.4,0,0.2,1)}.tp-filter-group{flex-direction:column}.timetable-next-tag{display:none!important}#info-toggle{display:none!important}#manifest-toggle{display:flex!important}.command-bar-center{position:static;transform:none;flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:0}.command-bar-right{flex:1;display:flex;justify-content:flex-end;align-items:center;gap:12px}.command-bar-right .status-display{display:none}.stats-toggle-btn{display:none!important}.stats-container{display:flex;width:100vw;padding:12px 10px 15px;justify-content:center;flex-wrap:wrap;gap:10px 16px;background:rgba(4,12,18,0.99);border-top:1px solid rgba(var(--primary-rgb),0.15);position:absolute;bottom:0;left:0;transform:translateY(100%);z-index:1001}@keyframes slide-down{from{opacity:0;transform:translateY(calc(100% - 10px))}to{opacity:1;transform:translateY(100%)}}.command-title h1{font-size:13px;letter-spacing:0.5px;white-space:nowrap}#vessel-manifest{top:var(--manifest-top,var(--header-height));transition:top 0.25s cubic-bezier(0.4,0,0.2,1),transform 0.3s cubic-bezier(0.4,0,0.2,1);position:fixed;right:0;bottom:0;width:85%;max-width:320px;transform:translateX(100%);background:rgba(7,18,24,0.98);box-shadow:-10px 0 30px rgba(0,0,0,0.5);animation:crt-flicker 0.4s ease-out}#vessel-manifest.open{transform:translateX(0)}.command-title .subtitle{display:none}.detail-panel{width:100%!important;max-width:100%!important;left:0!important;transform:translateY(0)!important;padding:12px 16px 10px}.detail-panel.hidden{transform:translateY(100%)!important}.detail-grid{grid-template-columns:repeat(2,1fr);gap:6px}.detail-header h2{font-size:13px}.control-panel{min-width:140px;max-width:160px}#route-controls{left:auto}#playback-panel{bottom:12px;left:10px;right:10px;width:auto!important;padding:8px 12px;flex-direction:column;align-items:stretch;gap:8px}.playback-slider-container{width:100%}.playback-controls{justify-content:space-between}.playback-setting{padding-left:0;border-left:none}.action-btn.small{font-size:10px;padding:5px 0}@keyframes crt-flicker{0%{filter:brightness(1.3)}20%{filter:brightness(1)}40%{filter:brightness(1.2)}60%{filter:brightness(0.95)}80%{filter:brightness(1.1)}100%{filter:brightness(1)}}}@media (max-width:480px){.command-bar-right .status-display{display:none}.command-bar-right{gap:8px}#playback-panel{background:rgba(3,10,14,0.96)}}.crt-flicker{animation:crt-flicker 0.4s ease-out}.morse-signal{width:100%;height:100%;border-radius:0;background:transparent;box-shadow:none;transition:background 0.05s,box-shadow 0.05s}.morse-signal.on{background:var(--morse-color,var(--primary))}@keyframes value-update-glitch{0%{background-color:color-mix(in srgb,var(--primary) 20%,transparent)}100%{background-color:transparent}}.value-update-anim{animation:value-update-glitch 0.25s cubic-bezier(0.1,0.9,0.2,1)}.detail-value:has(.pred-indicator){display:flex;align-items:center;justify-content:space-between}.pred-time{flex:1}.pred-indicator{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px}.pred-on-schedule{font-size:15px;color:var(--primary);text-shadow:var(--glow-text)}.pred-no-data{color:var(--primary);opacity:0.45}.pred-no-data::before{content:'';display:block;width:7px;height:7px;border-radius:50%;background:currentColor}.pred-late::before,.pred-early::before{content:'';display:block;width:9px;height:9px;border-top:2.5px solid currentColor;border-right:2.5px solid currentColor}.pred-late{color:#ff5555}.pred-late::before{transform:rotate(135deg)}.pred-early{color:#55ff99}.pred-early::before{transform:rotate(-45deg)}#playback-panel{position:fixed;bottom:24px;left:20px;right:20px;z-index:200;background:rgba(7,18,24,0.92);border:1px solid rgba(var(--primary-rgb),0.2);border-radius:var(--radius-subtle) var(--radius-subtle) 0 0;padding:12px 20px;display:flex;align-items:center;gap:16px;transition:opacity 0.3s,transform 0.3s}#playback-panel.hidden{opacity:0;pointer-events:none;transform:translateY(40px)}.playback-controls{display:flex;align-items:center;gap:12px}.playback-btn{background:none;border:1px solid var(--primary-dim);color:var(--primary);font-family:var(--font-mono);font-size:11px;padding:4px 10px;cursor:pointer;border-radius:var(--radius-subtle);text-transform:uppercase}.playback-btn:hover{background:rgba(var(--primary-rgb),0.1);border-color:var(--primary)}.playback-btn.active{background:rgba(var(--primary-rgb),0.2);border-color:var(--primary);color:#fff;text-shadow:var(--glow-md)}.playback-setting{display:flex;align-items:center;gap:8px;padding-left:12px;border-left:1px solid rgba(var(--primary-rgb),0.1)}.playback-label{font-family:var(--font-label);font-size:8px;font-weight:700;color:var(--primary-dim);letter-spacing:1px;text-transform:uppercase}.playback-select{background:#000;border:1px solid var(--primary-dim);color:var(--primary);font-family:var(--font-mono);font-size:10px;padding:1px 4px;outline:none;border-radius:2px;cursor:pointer}.playback-select:focus{border-color:var(--primary)}#playback-loop{appearance:none;width:10px;height:10px;border:1px solid var(--primary-dim);background:transparent;cursor:pointer;vertical-align:middle;position:relative;top:-1px}#playback-loop:checked{background:var(--primary)}.playback-slider-container{flex:1;display:flex;flex-direction:column}.playback-time-label{font-family:var(--font-mono);font-size:10px;color:var(--primary-pale);margin-bottom:6px}.playback-slider{width:100%;-webkit-appearance:none;appearance:none;background:transparent;cursor:pointer}.playback-slider::-webkit-slider-runnable-track{width:100%;height:2px;background:var(--primary-dim)}.playback-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:var(--primary);border-radius:2px;box-shadow:var(--glow-sm);margin-top:-5px}.maplibregl-ctrl-bottom-left{bottom:12px!important;left:12px!important;display:flex!important;flex-direction:column!important;align-items:center!important;width:32px!important;gap:8px!important;pointer-events:none!important}.maplibregl-ctrl-bottom-left>*{pointer-events:auto!important;margin:0!important;padding:0!important}.maplibregl-ctrl-attrib{width:30px!important;height:30px!important;background:rgba(4,12,18,0.85)!important;border:1px solid rgba(var(--primary-rgb),0.06)!important;overflow:visible!important;position:relative!important;display:flex!important;align-items:center!important;justify-content:center!important}.maplibregl-ctrl-attrib-button{width:30px!important;height:30px!important;margin:0!important;padding:0!important;outline:none!important;background-position:center!important;display:block!important}.maplibregl-ctrl-attrib summary{list-style:none!important;outline:none!important}.maplibregl-ctrl-attrib summary::-webkit-details-marker{display:none!important}body.playback-active .maplibregl-ctrl-bottom-left{bottom:100px!important}@media (min-width:769px){body.playback-active #route-controls{max-height:calc(100vh - var(--header-height) - 290px)!important}#left-controls-wrapper{display:flex}#left-controls-wrapper .control-panel{display:flex;flex-direction:column;max-height:calc(100vh - var(--header-height) - 180px);overflow:hidden}#route-controls,#timetable-controls{min-height:0;flex:1}}.playback-active #next-pulse-container{display:none!important}.maplibregl-ctrl-attrib[open]{width:30px!important}.maplibregl-ctrl-attrib-inner,.maplibregl-ctrl-attrib[open]>*:not(summary){position:absolute!important;left:35px!important;top:50%!important;transform:translateY(-50%)!important;white-space:nowrap!important;background:rgba(4,12,18,0.85)!important;border:1px solid rgba(var(--primary-rgb),0.06)!important;padding:4px 10px!important;border-radius:4px!important;color:var(--primary-dim)!important;font-family:var(--font-mono)!important;font-size:9px!important;pointer-events:auto!important}.maplibregl-ctrl-attrib a{color:var(--primary-muted)!important}.info-btn{background:none;border:1px solid rgba(var(--primary-rgb),0.18);color:var(--primary-dim);cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all 0.2s ease;padding:0;border-radius:var(--radius-subtle)}.info-btn.active{color:var(--primary);border-color:var(--primary);background:rgba(255,255,255,0.08);box-shadow:var(--glow-sm)}@media (hover:hover) and (pointer:fine){.info-btn:hover{color:var(--primary);border-color:var(--primary);background:rgba(255,255,255,0.08);box-shadow:var(--glow-sm)}}#audio-toggle .audio-wave-1,#audio-toggle .audio-wave-2{opacity:0.25;transition:opacity 0.3s ease,stroke 0.3s ease}#audio-toggle.active .audio-wave-1{opacity:0.85;animation:audio-pulse-1 1.6s infinite ease-in-out}#audio-toggle.active .audio-wave-2{opacity:0.85;animation:audio-pulse-2 1.6s infinite ease-in-out}@keyframes audio-pulse-1{0%,100%{opacity:0.3}50%{opacity:0.95}}@keyframes audio-pulse-2{0%,100%{opacity:0.15}40%,60%{opacity:0.95}}.exit-fullscreen-btn{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:1100;background:rgba(4,12,18,0.92);border:1px solid var(--primary-dim);color:var(--primary-dim);font-family:var(--font-mono);font-size:10px;letter-spacing:2px;padding:6px 16px;cursor:pointer;display:flex;align-items:center;gap:6px;border-radius:var(--radius-subtle);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity 0.3s ease,visibility 0s 0.3s,color 0.2s ease,border-color 0.2s ease,background 0.2s ease,box-shadow 0.2s ease}body.fullscreen-mode .exit-fullscreen-btn{opacity:1;visibility:visible;pointer-events:auto;transition:opacity 0.4s 0.15s ease,visibility 0s 0s,color 0.2s ease,border-color 0.2s ease,background 0.2s ease,box-shadow 0.2s ease}.exit-fullscreen-btn:hover{color:var(--primary);border-color:var(--primary);background:rgba(4,12,18,0.98);box-shadow:var(--glow-sm)}body.fullscreen-mode #command-bar{transform:translateY(calc(-100% - 80px));opacity:0;pointer-events:none}body.fullscreen-mode #vessel-manifest{transform:translateX(100%)!important;opacity:0!important;pointer-events:none!important}body.fullscreen-mode #left-controls-wrapper{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateX(-20px)}body.fullscreen-mode .stale-warning{opacity:0;pointer-events:none}body.fullscreen-mode .detail-panel{opacity:0;pointer-events:none}body.fullscreen-mode #playback-panel{opacity:0;pointer-events:none}#fullscreen-toggle.active{color:var(--primary);border-color:var(--primary);background:rgba(255,255,255,0.08);box-shadow:var(--glow-sm)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(3,10,14,0.95);z-index:2000;display:flex;align-items:center;justify-content:center;transition:opacity 0.3s ease}.modal-overlay.hidden{opacity:0;pointer-events:none}.modal-container{background:rgba(7,18,24,0.95);border:1px solid var(--primary-dim);width:500px;max-width:90%;max-height:85vh;box-shadow:var(--glow-lg);display:flex;flex-direction:column;position:relative;border-radius:var(--radius-subtle)}#trip-planner-modal .modal-container{animation:crt-flicker-on 0.25s ease-out forwards}@keyframes modal-slide-up{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:6px;right:12px;background:none;border:1px solid color-mix(in srgb,var(--primary) 25%,transparent);color:var(--primary-muted);font-size:14px;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-subtle);transition:all 0.15s;z-index:10;text-shadow:var(--glow-sm);box-shadow:var(--glow-sm)}.modal-close:hover{color:var(--primary);border-color:var(--primary);box-shadow:var(--glow-md);text-shadow:var(--glow-text)}.modal-header{padding:12px 16px;background:rgba(var(--primary-rgb),0.03);border-bottom:1px solid rgba(var(--primary-rgb),0.1);display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:3px;color:var(--primary-base)}.modal-body{padding:24px;overflow-y:auto;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--primary-pale);flex:0 1 auto;min-height:0}.modal-body section{margin-bottom:24px}.modal-body section:last-child{margin-bottom:0}.modal-body h3{font-size:11px;color:var(--primary-dim);letter-spacing:2px;margin-bottom:8px;text-transform:uppercase}.modal-body p{margin-bottom:12px}.modal-body .highlight{color:var(--primary);text-shadow:var(--glow-text)}.modal-body a{color:var(--primary);text-decoration:none;border-bottom:1px solid rgba(var(--primary-rgb),0.3);transition:all 0.2s}.modal-body a:hover{border-bottom-color:var(--primary);text-shadow:var(--glow-text)}.modal-footer{padding:10px 24px;background:rgba(3,10,14,0.5);border-top:1px solid rgba(var(--primary-rgb),0.06);font-size:9px;color:var(--primary-dim);letter-spacing:2px;text-align:center}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{transition:bottom 0.3s cubic-bezier(0.4,0,0.2,1),opacity 0.2s ease}body.playback-active .maplibregl-ctrl-bottom-left,body.playback-active .maplibregl-ctrl-bottom-right{bottom:85px!important}@media (max-width:768px){body.playback-active .maplibregl-ctrl-bottom-left,body.playback-active .maplibregl-ctrl-bottom-right{bottom:125px!important}body.vessel-selected .maplibregl-ctrl-bottom-left,body.vessel-selected .maplibregl-ctrl-bottom-right,body.playback-active .maplibregl-ctrl-bottom-left,body.playback-active .maplibregl-ctrl-bottom-right{opacity:0!important;pointer-events:none!important}}#trip-planner-panel{position:fixed;transform:none;transition:opacity 0.3s ease,transform 0.3s ease}#trip-planner-panel.hidden{opacity:0;pointer-events:none;transform:scale(0.97) translateY(-10px)}.cyber-select option{background:var(--bg-panel);color:var(--primary);font-family:var(--font-mono)}.timetable-trip-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px}@media (max-width:600px){.timetable-trip-header{flex-direction:column;align-items:flex-start;gap:6px}}.timetable-row{display:flex;flex-direction:column;background:color-mix(in srgb,var(--primary) 5%,transparent);padding:12px 14px 12px 18px;margin-bottom:2px;transition:all 0.2s ease}.timetable-row:hover{background:color-mix(in srgb,var(--primary) 12%,transparent)}.timetable-row.past{opacity:0.5}.timetable-row.is-next{background:color-mix(in srgb,var(--primary) 12%,transparent)}.timetable-row.is-next:hover{background:color-mix(in srgb,var(--primary) 18%,transparent)}.timetable-next-tag{font-family:var(--font-mono);font-size:10px;background:var(--primary);color:#000;padding:2px 6px;border-radius:2px;margin-right:8px;font-weight:bold;letter-spacing:1px;align-items:center;justify-content:center;display:none}.timetable-row.is-next .timetable-next-tag{display:inline-flex}.countdown-container{font-family:var(--font-mono);font-size:10px;color:var(--primary-muted);border:1px dashed color-mix(in srgb,var(--primary) 30%,transparent);padding:2px 6px;border-radius:2px;font-weight:normal;letter-spacing:0.5px;align-items:center;justify-content:center;white-space:nowrap;display:inline-flex}.timetable-row.past .countdown-container,.timetable-row.past .timetable-tags-block{display:none}.countdown-text{color:var(--primary);margin-left:4px}.timetable-route-label{font-size:10px;color:var(--primary-muted);margin-top:6px;text-transform:uppercase;font-family:var(--font-mono);letter-spacing:0.5px}.timetable-time-display{font-size:16px;font-weight:bold;color:var(--primary);display:flex;align-items:center;font-family:var(--font-display);letter-spacing:1px}.timetable-time-arrow{color:var(--primary-dim);margin:0 6px}.timetable-tags-block{display:flex;align-items:center}.timetable-origin-dest{font-size:11px;color:#fff;margin-top:4px;font-weight:bold;letter-spacing:0.5px;word-break:break-word}.timetable-origin-dest .to-label{color:var(--primary-muted)}.tp-modal-body{display:flex!important;flex-direction:column!important;overflow:hidden!important}.tp-filter-group{display:flex;gap:12px;margin-bottom:20px;align-items:stretch;justify-content:space-between;flex-shrink:0}.tp-filter-item{flex:1;background:rgba(0,0,0,0.3);border:1px solid var(--primary-dim);border-radius:var(--radius-subtle);padding:4px 8px;position:relative;min-width:0}#tp-results-container{flex:1;min-height:200px;overflow-y:auto;overflow-x:clip;border:1px solid var(--primary-dim);border-radius:var(--radius-subtle);background:rgba(0,0,0,0.2);position:relative}@media (max-width:600px){.tp-filter-group{flex-direction:column;gap:8px}}#tp-results-container::-webkit-scrollbar{width:4px}#tp-results-container::-webkit-scrollbar-track{background:rgba(var(--primary-rgb),0.05)}#tp-results-container::-webkit-scrollbar-thumb{background:var(--primary-dim)}@keyframes pulse-glow{0%{opacity:0.7;border-color:transparent}50%{opacity:1;border-color:var(--primary-dim)}100%{opacity:0.7;border-color:transparent}}.pulse-icon{animation:pulse-glow 2s infinite;border-radius:2px;border:1px solid transparent}.custom-combobox{position:relative;width:100%;display:flex;align-items:center;justify-content:space-between;cursor:text}.custom-select{width:100%;border:none;background:transparent;color:var(--primary);font-family:var(--font-mono);font-size:14px;outline:none;padding:2px 24px 2px 0;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;text-align:left;user-select:none;-webkit-user-select:none}.custom-select::placeholder{color:var(--primary);opacity:1}.custom-select:focus-visible{outline:none;background:rgba(var(--primary-rgb),0.15)}.custom-combobox .arrow{position:absolute;right:0;pointer-events:none;color:var(--primary);display:inline-block;transition:transform 0.2s}.custom-combobox.open .arrow{transform:rotate(180deg)}:focus-visible{outline:2px solid var(--primary);outline-offset:4px}button:focus-visible,.signal-icon:focus-visible{outline:2px dashed var(--primary);outline-offset:2px}.custom-options{position:absolute;top:calc(100% + 5px);left:0;width:100%;background:rgba(0,0,0,0.9);border:1px solid var(--primary-dim);border-radius:var(--radius-subtle);box-shadow:0 10px 40px rgba(0,0,0,0.6);z-index:100;max-height:250px;overflow-y:auto;display:none;margin:0;padding:0;list-style:none;will-change:transform,opacity}.custom-options.open{display:block}.custom-options li{padding:10px 12px 10px 10px;color:var(--primary-muted);font-family:var(--font-mono);font-size:13px;cursor:pointer;transition:all 0.15s ease;border-bottom:1px solid rgba(var(--primary-rgb),0.1);border-left:2px solid transparent;box-sizing:border-box}.custom-options li:hover,.custom-options li.active,.custom-options li.keyboard-active{background:rgba(var(--primary-rgb),0.15);color:var(--primary);padding-left:10px}.custom-options::-webkit-scrollbar{width:4px}.custom-options::-webkit-scrollbar-thumb{background:var(--primary-dim)}.spinner{width:30px;height:30px;border:3px solid rgba(var(--primary-rgb),0.2);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{100%{transform:rotate(360deg)}}.cyber-date-input{width:100%;height:100%;background:transparent!important;border:none!important;color:var(--primary)!important;font-family:var(--font-mono)!important;font-size:14px!important;outline:none!important;cursor:pointer!important;padding:0!important}.cyber-date-input::placeholder{color:var(--primary-muted)}.flatpickr-calendar{background:rgba(0,0,0,0.95)!important;border:1px solid var(--primary-dim)!important;box-shadow:0 0 15px rgba(0,0,0,0.8)!important;font-family:var(--font-mono)!important;border-radius:var(--radius-subtle)!important;color:var(--primary)!important}.flatpickr-months{background:transparent!important}.flatpickr-month{color:var(--primary)!important}.flatpickr-current-month .flatpickr-monthDropdown-months{background:transparent!important;color:var(--primary)!important}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:rgba(var(--primary-rgb),0.1)!important}.flatpickr-day{color:var(--primary-muted)!important;border-radius:2px!important;transition:all 0.1s!important;border:1px solid transparent!important}.flatpickr-day:hover{background:rgba(var(--primary-rgb),0.2)!important;border-color:var(--primary-dim)!important;color:var(--primary)!important}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:var(--primary-dim)!important;border-color:var(--primary)!important;color:#000!important;font-weight:bold!important}.flatpickr-day.today{border-color:rgba(var(--primary-rgb),0.4)!important}span.flatpickr-weekday{color:var(--primary-muted)!important}.flatpickr-time{display:none!important}.flatpickr-calendar.arrowTop:before{border-bottom-color:var(--primary-dim)!important}.flatpickr-calendar.arrowTop:after{border-bottom-color:rgba(0,0,0,0.95)!important}.flatpickr-calendar.arrowBottom:before{border-top-color:var(--primary-dim)!important}.flatpickr-calendar.arrowBottom:after{border-top-color:rgba(0,0,0,0.95)!important}.trip-stops-timeline{display:flex;align-items:flex-start;margin-top:10px;padding:6px 2px 2px;animation:boot-fade-in 0.3s ease;overflow-x:auto;-webkit-overflow-scrolling:touch}.trip-stop-node{display:flex;flex-direction:column;align-items:center;flex-shrink:0;min-width:0}.trip-stop-pip{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--primary-dim);background:transparent;transition:all 0.2s ease;flex-shrink:0}.trip-stop-node.endpoint .trip-stop-pip{border-color:var(--primary)}.trip-stop-node.active .trip-stop-pip{border-color:var(--primary-muted)}.trip-stop-node.endpoint.active .trip-stop-pip{border-color:transparent}.trip-stop-label{font-family:var(--font-mono);font-size:9px;color:var(--primary-dim);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px;text-align:center;letter-spacing:0.3px}.trip-stop-node.active .trip-stop-label{color:var(--primary-muted)}.trip-stop-node.endpoint .trip-stop-label{color:var(--primary);font-weight:bold}.trip-stop-time{font-family:var(--font-mono);font-size:8px;color:var(--primary-dim);margin-top:2px;letter-spacing:0.2px}.trip-stop-node.active .trip-stop-time{color:var(--primary-muted)}.trip-stop-node.endpoint .trip-stop-time{color:var(--primary-base)}.trip-stop-track{flex:1;height:0;border-top:1px dashed var(--primary-dim);margin:4px 6px 0;min-width:16px;opacity:0.4}.trip-stop-track.active{border-top-style:solid;opacity:0.8}@media (max-width:600px){.trip-stop-label{max-width:56px;font-size:8px}.trip-stop-time{font-size:7px}.trip-stop-track{min-width:10px;margin:4px 3px 0}.trip-stops-timeline{padding:4px 0 2px}}@keyframes sonarRipple{0%{transform:scale(0.5);opacity:0.75}100%{transform:scale(2.5);opacity:0}}.sonar-ripple{position:absolute;left:-8px;top:-8px;width:16px;height:16px;border-radius:50%;border:1px solid currentColor;box-shadow:0 0 8px currentColor,inset 0 0 4px currentColor;pointer-events:none;animation:sonarRipple 1.4s cubic-bezier(0.1,0.8,0.3,1) forwards}