@keyframes sl-details-open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes userPulse{0%,to{filter:drop-shadow(0 0 0 transparent)}50%{filter:drop-shadow(0 0 10px rgba(0,94,184,.7))}}@keyframes sl-shimmer{0%{background-position:100%0}to{background-position:0 0}}:root{--blue:#005EB8;--blue2:#004B93;--red:#E30613;--green:#009639;--orange:#F6A800;--purple:#D0007E;--pink:#EC008C;--cyan:#00A3E0;--dark:#0f172a;--muted:#64748b;--border:#d7e0ea;--bg:#f6f9fc;--card:#fff;--shadow:0 16px 50px rgba(15,23,42,.14);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0}a{text-decoration:none;color:inherit}.app-header,.brand{display:flex;align-items:center}.app-header{background:rgba(255,255,255,.94);backdrop-filter:blur(16px);justify-content:space-between;position:fixed;top:0;left:0;right:0}.brand{font-size:20px}.brand-icon{display:grid;place-items:center}.tabs{display:flex}.tab{color:#475569}.tab.active,.tab:hover{background:#edf2f7}.seo-intro{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.seo-intro nav{display:inline}.seo-intro a{margin-right:8px}#view-map,body,html,main{height:100%}.view,body[data-view=map] .app-footer{display:none}.view.active{display:block}.page{max-width:1120px;margin:0 auto}.page h1{font-size:30px;font-weight:800;letter-spacing:-.03em;margin:0 0 6px}.page p{color:#5f6f82;font-size:18px}.app-footer{position:fixed;right:12px;bottom:4px;z-index:300;font-size:12px;background:rgba(255,255,255,.8);padding:2px 6px;border-radius:6px;color:#334155}.map-unavailable{display:grid;place-items:center;text-align:center;padding:24px;color:#334155;background:#e5edf4;font-weight:700}#view-map{position:relative}#map{width:100%;background:#e5edf4}.leaflet-container{overflow:hidden;position:relative;outline:0}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container .leaflet-overlay-pane svg,.leaflet-container .leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-image-layer{max-height:none!important}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important}.leaflet-zoom-animated{transform-origin:0 0}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-grab{cursor:grab}.leaflet-dragging .leaflet-grab{cursor:move;cursor:grabbing}.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-bar a,.leaflet-control-zoom a{border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none}.leaflet-control-zoom a{background:#fff;color:#111}.leaflet-control-zoom a:hover{background:#f4f4f4}.leaflet-control-zoom-in{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-control-zoom-out{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:0!important}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.35);border-radius:4px}.leaflet-bar a{background-color:#fff;color:#000}.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-control-attribution{background:rgba(255,255,255,.8);padding:0 5px;margin:0;color:#333;font-size:11px;line-height:1.4}.leaflet-container a{color:#0078a8}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg,.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-vml-shape{width:1px;height:1px}.leaflet-touch .leaflet-control-zoom a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.glass{background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border:1px solid rgba(203,213,225,.85);border-radius:18px;box-shadow:var(--shadow)}.panel-row{display:flex;gap:12px;align-items:center}.between{justify-content:space-between}.map-tools{display:flex;gap:6px}.icon-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:9px;background:#fff;color:#475569;font-weight:700}.icon-btn.active{border-color:var(--blue);background:#eaf2ff;color:var(--blue)}.chips{display:flex;flex-wrap:wrap}.chip,.pill{border:1px solid var(--border);background:#fff;border-radius:10px;color:#334155;cursor:pointer}.chip span{margin-left:7px;background:rgba(255,255,255,.24);padding:2px 8px;border-radius:7px;min-width:18px;text-align:center}.chip.active{color:#fff;border-color:transparent}.chip.bus.active{background:var(--red)}.chip.metro.active{background:var(--blue)}.chip.train.active{background:var(--purple)}.chip.tram.active{background:var(--orange)}.chip.ship.active{background:#028994}.chip.neutral.active{background:#eef4fb;color:#0f172a;border-color:#d8e2ec}.vehicle-card{position:absolute;top:100px;left:430px}.vehicle-card.hidden{display:none}.vehicle-head{background:var(--blue);color:#fff;display:flex;gap:10px}.vehicle-head .badge{background:rgba(255,255,255,.2);border-radius:7px;padding:4px 9px}.vehicle-body{padding:14px}.vehicle-row{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding:11px 0}.vehicle-row:first-child{border-top:0}.vehicle-row small{color:#64748b}.filters input,.grid-form input,.grid-form select{width:100%;margin-top:6px;border-radius:10px;background:#fff}.filters select{width:100%;border-radius:10px;background:#fff}.small-chips,.wide{grid-column:1/-1}.small-chips{display:flex;gap:6px;flex-wrap:wrap}.small-chips button{border:1px solid var(--border);background:#f8fafc;border-radius:7px;padding:7px 9px;font-size:12px}.primary{background:var(--blue);border:0;color:#fff;padding:13px 16px;cursor:pointer}.primary:hover{background:var(--blue2)}.card{background:var(--card);border-radius:18px;margin:18px 0}.grid-form{display:grid;grid-template-columns:repeat(3,1fr) auto;gap:14px;align-items:end}.result-list{display:grid;gap:14px;margin-top:18px}.result-card{background:#fff;border-radius:18px}.result-card.severe{background:#fff5f5;border-color:#ffaaa8}.result-card.warn{background:#fffaf0;border-color:#ffc978}.result-card h2,.result-card h3{margin:0 0 8px}.meta{display:flex;gap:8px;flex-wrap:wrap;color:#64748b;font-size:13px}.tag{background:#eef3f8;border:1px solid #d6e1ec;border-radius:7px;padding:4px 7px}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pill.active{background:#0f172a}.code-card{padding:18px;border-radius:18px;overflow:auto}.vehicle-marker{border-radius:50%;display:grid;place-items:center;font-weight:800}.vehicle-marker.bus{background:var(--red)}.vehicle-marker.metro{background:var(--blue)}.vehicle-marker.train{background:var(--purple)}.vehicle-marker.tram{background:var(--orange)}.vehicle-marker.ship{background:#028994}.stop-marker{background:#fff;border:2px solid var(--blue);width:10px;height:10px;border-radius:50%}.leaflet-popup-content{font-family:inherit}.muted,.next-stops li small{color:#64748b}.error{color:#b91c1c}.ok{color:#15803d}@media (max-width:900px){.app-header{padding:0 12px}.tabs{overflow-x:auto}.tab{padding:10px}.brand small,.map-control-panel{display:none}.vehicle-card{left:12px;top:230px}.grid-form{grid-template-columns:1fr}.page{padding-top:108px}}.station-card{position:absolute}.station-card.hidden{display:none}.station-head{border-bottom:1px solid var(--border);position:relative}.station-head h2{font-size:18px;margin:0}.close{margin-left:auto;background:rgba(255,255,255,.2);color:inherit;cursor:pointer}.vehicle-head .close{padding:2px 8px}.next-stops{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#f8fafc}.next-stops ol{list-style:none;margin:8px 0 0;padding:0}.next-stops li{display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:center;padding:5px 0}.dot{width:8px;height:8px;border-radius:50%;background:#94a3b8;display:inline-block}.dot.active{background:var(--blue)}.vehicle-actions{gap:8px}.depart-tabs button,.vehicle-actions button{border:1px solid var(--border);background:#fff;cursor:pointer}.vehicle-actions button{padding:10px}.depart-tabs button{border:0;color:#64748b}.depart-tabs,.vehicle-actions{display:grid;grid-template-columns:1fr 1fr}.depart-tabs button.active{font-weight:700}.departure-list{border:1px solid var(--border);overflow:hidden}.departure-row{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-top:1px solid var(--border);align-items:center}.departure-row:first-child{border-top:0}.departure-row em{display:inline-block;margin-left:8px;color:#d97706;font-style:normal;background:#fff7ed;border:1px solid #fed7aa;border-radius:7px;padding:2px 6px}.departure-row.cancelled,.departure-row.late strong{color:#dc2626}.line-chip{background:#334155;color:#fff;border-radius:6px;padding:3px 7px;margin-right:5px}.warn-text{color:#d97706}.filters label{display:grid;gap:6px;color:#64748b;font-size:14px;min-width:min(360px,100%)}.admin-page .card h2,.filters select{margin-top:0}.leaflet-marker-icon .vehicle-marker{transform:translateZ(0)}@media (max-width:900px){.station-card{left:12px;right:12px;width:auto;top:285px}.filters label{min-width:100%}}.admin-login{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:14px;align-items:end}.admin-login label{display:grid;gap:6px;color:#64748b;font-size:14px}.admin-login input[type=password]{border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:16px}.check-row{display:flex!important;align-items:center;gap:8px;color:#334155!important}.check-row input{width:auto!important}.admin-notice{border-radius:14px;padding:12px 16px;margin:14px 0;border:1px solid var(--border);background:#fff}.admin-notice.hidden{display:none}.admin-notice.ok{background:#f0fdf4;border-color:#86efac;color:#166534}.admin-notice.info{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}.admin-notice.error{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.admin-metric{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px}.admin-metric small{display:block;color:#64748b;margin-bottom:8px}.admin-metric strong{font-size:26px}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-actions button,.admin-section-head button,.admin-table button{border:1px solid var(--border);background:#fff;padding:10px 12px;cursor:pointer}.admin-table button{border-radius:10px}.admin-actions button:hover,.admin-section-head button:hover,.admin-table button:hover{background:#f1f5f9}.admin-actions button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.admin-actions button:disabled{opacity:.6;cursor:progress}.small-code{max-height:280px}.admin-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.status-list dl{display:grid;gap:8px;margin:0}.status-list dl div{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #eef2f7}.status-list dt{font-weight:700;color:#334155}.status-list dd{margin:0;color:#0f172a;word-break:break-word}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table td,.admin-table th{padding:10px 12px;border-bottom:1px solid #e2e8f0;text-align:left;vertical-align:top}.admin-table th{background:#f8fafc;color:#475569;position:sticky;top:0;z-index:1}.admin-table code{white-space:pre-wrap;word-break:break-word}.status-error,.status-success{color:#15803d;font-weight:700}.status-error{color:#b91c1c}.status-running{color:#b45309;font-weight:700}@media (max-width:900px){.admin-grid,.admin-login,.admin-two-col,.status-list dl div{grid-template-columns:1fr}.admin-section-head{align-items:flex-start;flex-direction:column}.admin-metric strong{font-size:22px}}.admin-page #adminSecureArea[data-server-locked="1"],.hidden{display:none!important}.admin-login{display:block}.admin-login .grid-form{grid-template-columns:repeat(2,minmax(220px,1fr)) auto}.admin-login input:not([type]),.admin-login input[type=password],.admin-login input[type=text]{border:1px solid var(--border);border-radius:10px;padding:12px 14px;font-size:16px}.admin-session{background:#f8fafc}.admin-session .admin-section-head{align-items:center}.admin-session p{margin:.25rem 0 0}@media (max-width:900px){.admin-login .grid-form{grid-template-columns:1fr}.admin-session .admin-section-head{align-items:flex-start;flex-direction:column}}:root{--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:26px;--radius-pill:999px;--transition-fast:.13s cubic-bezier(.2,.8,.2,1);--transition-base:.18s cubic-bezier(.2,.8,.2,1);--font-numeric:"tabular-nums"}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.app-header{height:68px;padding:0 clamp(14px,4vw,56px);border-bottom:1px solid var(--hairline)}.brand{gap:10px}.brand strong{font-size:17px;font-weight:800}.brand small{font-size:10px;padding:3px 7px;border-radius:6px;background:#eef3f8;background:color-mix(in srgb,var(--blue) 10%,var(--surface));color:var(--blue);border:1px solid rgba(0,94,184,.22);border:1px solid color-mix(in srgb,var(--blue) 22%,transparent)}.brand-icon{box-shadow:0 4px 14px rgba(0,94,184,.28),0 1px 0 rgba(255,255,255,.18) inset}.tab,.tabs{border-radius:var(--radius-pill)}.tabs{gap:2px}.tab{padding:8px 15px;font-size:13.5px;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.tab:hover:not(.active){background:var(--surface-hover);color:var(--blue)}#view-map{padding-top:68px}#map{height:calc(100dvh - 68px)}.map-control-panel{border-radius:var(--radius-xl);box-shadow:0 16px 48px rgba(15,23,42,.18),0 1px 0 rgba(255,255,255,.55) inset}.map-control-panel.compact{top:84px;width:50px;padding:0}.panel-toggle-btn{box-shadow:0 6px 20px rgba(0,94,184,.2);transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.panel-toggle-btn:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,94,184,.28)}.map-control-panel.compact .panel-toggle-btn,.panel-toggle-btn{border-radius:14px;width:44px;height:44px}.chips{margin-top:11px}.chip,.pill{border-radius:var(--radius-pill);padding:8px 13px;font-size:12.5px;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast)}.chip:active{transform:scale(.97)}.map-extra-actions button{border-radius:var(--radius-pill);font-size:13px;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}#mapLocateButton.active{background:var(--blue)!important;border-color:var(--blue)!important;box-shadow:0 4px 14px rgba(0,94,184,.3)!important}.station-card,.vehicle-card{border-radius:var(--radius-xl);border:1px solid var(--hairline)}.station-head-v39{border-top-width:4px}.station-head,.vehicle-head{padding:12px 14px!important}.station-title h2{font-weight:800}.vehicle-title-row strong{font-size:16px;font-weight:800}.close{border-radius:var(--radius-pill)!important;font-size:17px;transition:background var(--transition-fast),transform var(--transition-fast)}.station-board-hero-v89{border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface-soft)}.station-board-hero-v89>div:first-child strong{font-size:22px;letter-spacing:-.04em;font-variant-numeric:var(--font-numeric)}.station-board-hero-v89>div:first-child small{font-size:11px}.station-board-hero-v89>div:first-child span{font-size:11px;color:var(--text-muted)}.station-quick-grid{gap:0}.station-quick-grid-sl>div,.station-quick-grid>div{padding:9px 10px!important}.station-quick-grid strong{font-weight:800}.depart-tabs,.station-tabs{border-radius:var(--radius-md)!important;gap:2px!important}.station-tabs{padding:3px!important}.depart-tabs button,.station-tabs button{font-size:13px;min-height:36px;transition:background var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}.depart-tabs button{padding:8px 12px}.station-tabs button{border-radius:11px!important;font-weight:700}.depart-tabs button.active{background:var(--blue)!important;color:#fff!important}.station-tabs button.active{box-shadow:0 2px 8px rgba(0,94,184,.22)}.sl-dep-line .line-chip{padding:4px 7px}.sl-dep-main strong{font-weight:700}.sl-dep-time strong{font-weight:800;font-variant-numeric:var(--font-numeric)}.sl-live-pill{border-radius:var(--radius-pill)}.page{padding:120px 24px 80px}.card,.result-card{border-radius:var(--radius-xl);border:1px solid var(--hairline);padding:20px}.primary{border-radius:var(--radius-md);font-size:14px;font-weight:750;letter-spacing:-.01em;transition:background var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.primary:hover{box-shadow:0 8px 24px rgba(0,94,184,.26)}.primary:active{box-shadow:0 3px 10px rgba(0,94,184,.16)}.filters input,.filters select,.grid-form input,.grid-form select{padding:11px 13px;font-size:14.5px;border:1.5px solid var(--border)}.filters input,.filters select,.grid-form input,.grid-form select,.planner-options input,.planner-options select,.suggest-wrap input{border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.grid-form input:focus,.suggest-wrap input:focus{border-color:var(--blue)}.status-card-v51{border-radius:var(--radius-lg)!important}.status-badge-v51{border-radius:var(--radius-pill)}.map-control-panel::-webkit-scrollbar,.station-body::-webkit-scrollbar,.vehicle-body::-webkit-scrollbar{width:4px}.map-control-panel::-webkit-scrollbar-track,.station-body::-webkit-scrollbar-track,.vehicle-body::-webkit-scrollbar-track{background:0 0}.map-control-panel::-webkit-scrollbar-thumb,.station-body::-webkit-scrollbar-thumb,.vehicle-body::-webkit-scrollbar-thumb{background:var(--hairline);border-radius:4px}html[data-theme=dark] .app-header{box-shadow:0 1px 0 rgba(255,255,255,.04),0 6px 24px rgba(0,0,0,.3)}html[data-theme=dark] .brand small{background:rgba(0,94,184,.18);border-color:rgba(0,94,184,.35)}html[data-theme=dark] .tab.active{box-shadow:0 3px 12px rgba(0,94,184,.35)}html[data-theme=dark] .map-control-panel{box-shadow:0 16px 48px rgba(0,0,0,.4),0 1px 0 rgba(255,255,255,.04) inset}html[data-theme=dark] .vehicle-card{box-shadow:0 20px 56px rgba(0,0,0,.45),0 1px 0 rgba(255,255,255,.04) inset}html[data-theme=dark] .station-board-hero-v89{background:var(--surface-soft);border-color:var(--hairline)}html[data-theme=dark] .depart-tabs button.active,html[data-theme=dark] .station-tabs button.active,html[data-theme=dark] .tab.active{background:var(--blue)!important;color:#fff!important}html[data-theme=dark] .primary:hover{box-shadow:0 8px 24px rgba(0,94,184,.38)}@media (max-width:700px){.brand-icon{width:36px;height:36px;font-size:14px}.brand strong{font-size:17px}.tab{padding:8px 11px;font-size:13px}.sl-departure-row{grid-template-columns:48px minmax(0,1fr) 56px!important;gap:7px;padding:10px 9px}.sl-dep-line .line-chip{min-width:32px;font-size:13px}.sl-dep-time strong{font-size:16px}}@media (max-width:390px){.tab{padding:7px 9px;font-size:12.5px}}.header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}@media (max-width:700px){.header-actions{grid-column:2;grid-row:1}.pwa-install-btn{padding:6px 10px;font-size:0;gap:0}.pwa-install-btn::before{content:"⊕";font-size:.95rem}}.sl-language-switcher{display:flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--card);color:var(--dark);border-radius:999px;padding:5px 8px;box-shadow:0 8px 22px rgba(15,23,42,.08);white-space:nowrap}.sl-language-title{font-size:12px;font-weight:800;color:#64748b;letter-spacing:.01em}.sl-language-switcher select{appearance:none;border:0;background:0 0;color:inherit;font:inherit;font-weight:800;cursor:pointer;max-width:132px;outline:0;padding:4px 18px 4px 2px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 9px) 50%,calc(100% - 5px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.sl-language-switcher:focus-within{outline:3px solid rgba(0,94,184,.28);outline:3px solid color-mix(in srgb,var(--blue) 28%,transparent);outline-offset:2px;border-color:var(--blue)}html[data-theme=dark] .sl-language-switcher{background:#101d30;color:#e5edf7;border-color:#2a3a52}html[data-theme=dark] .sl-language-title{color:#cbd5e1}@media (max-width:1040px){.sl-language-title{display:none}.sl-language-switcher{padding:5px 6px}.sl-language-switcher select{max-width:84px;font-size:13px}}@media (max-width:700px){.sl-language-switcher{grid-column:2;grid-row:1;padding:3px 5px}.sl-language-switcher select{max-width:62px;padding-right:16px;font-size:14px}.sl-language-switcher select option{font-size:14px}}.planner-card{display:grid;gap:16px}.planner-main{display:grid;grid-template-columns:1fr auto auto 1fr;gap:12px;align-items:end}.planner-options label,.suggest-wrap{display:grid;gap:6px;color:#64748b;font-size:14px}.planner-options input,.planner-options select,.suggest-wrap input{border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:16px;background:#fff}.planner-choice{color:#64748b;min-height:18px}.icon-action,.planner-actions button:not(.primary){border:1px solid var(--border);background:#fff;border-radius:12px;padding:12px 14px;cursor:pointer}.icon-action:hover,.planner-actions button:not(.primary):hover{background:#f1f5f9}.icon-action.swap{font-size:20px;line-height:1}.planner-advanced{border:1px solid #e2e8f0;border-radius:16px;background:#f8fafc;padding:12px 14px}.planner-advanced summary{cursor:pointer;font-weight:700;color:#0f172a;list-style:none;display:flex;align-items:center;gap:6px;user-select:none}.planner-advanced summary::-webkit-details-marker{display:none}.planner-advanced summary::before{content:"▶";font-size:10px;transition:transform .2s ease;flex-shrink:0}.planner-advanced[open] summary::before{transform:rotate(90deg)}.planner-advanced .planner-options{overflow:hidden;animation:sl-details-open .2s ease}.planner-options{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;margin-top:12px}.planner-modes{display:flex;gap:8px;flex-wrap:wrap}.planner-modes label{border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 12px;display:flex;gap:7px;align-items:center;cursor:pointer}.planner-actions{display:flex;gap:10px;align-items:center}.journey-card{border-left:5px solid var(--blue)}.journey-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.journey-top h2{margin-bottom:2px}.journey-copy,.planner-travel-method label{border:1px solid var(--border);background:#fff;border-radius:10px;padding:8px 12px;cursor:pointer}.journey-chips{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.journey-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:12px;padding:10px 12px;margin:10px 0}.journey-details summary{cursor:pointer;font-weight:700;margin-top:10px}.leg-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:10px}.leg-item{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:start;border-top:1px solid #eef2f7;padding-top:10px}.leg-badge{background:#0f172a;color:#fff;border-radius:10px;padding:8px 10px;font-weight:800;text-align:center}.leg-main p{margin:.25rem 0;color:#334155}.leg-main small{color:#64748b}@media (max-width:900px){.planner-main,.planner-options{grid-template-columns:1fr}.planner-actions{display:grid}.leg-item{grid-template-columns:1fr}.journey-top{flex-direction:column}.icon-action.swap{order:2}.planner-main label:first-child{order:1}.planner-main label:last-child{order:3}}.planner-travel-method{border:1px solid #dbe6f1;border-radius:16px;background:#f8fafc;padding:12px 14px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.planner-time-panel legend,.planner-travel-method legend{font-weight:800;color:#0f172a;padding:0 6px}.planner-travel-method label{border-radius:999px;padding:9px 12px;display:flex;gap:8px;align-items:center}.planner-travel-method label:has(input:checked){border-color:var(--blue);background:#eaf2ff;color:var(--blue);font-weight:800}.planner-time-panel{border:1px solid #dbe6f1;border-radius:16px;background:#f8fafc;padding:12px 14px}.planner-time-grid{display:grid;grid-template-columns:minmax(150px,1fr) minmax(130px,1fr) minmax(170px,1fr) auto;gap:12px;align-items:end}.planner-time-grid label{display:grid;gap:6px;color:#64748b;font-size:14px}.planner-time-grid input,.planner-time-grid select{border:1px solid var(--border);border-radius:12px;padding:12px 14px;font-size:16px;background:#fff}.planner-now-btn{min-height:46px;align-self:end;white-space:nowrap}.route-result-card{border-left-color:#0f766e}.route-step-list .route-step{grid-template-columns:120px 1fr}.planner-card[data-travel-mode=bike] .planner-main,.planner-card[data-travel-mode=car] .planner-main,.planner-card[data-travel-mode=walk] .planner-main{grid-template-columns:1fr auto auto 1fr}@media (max-width:900px){.planner-travel-method{display:grid;grid-template-columns:1fr 1fr}.planner-travel-method legend{grid-column:1/-1}.planner-time-grid,.route-step-list .route-step{grid-template-columns:1fr}.planner-now-btn{width:100%}}.planner-quick-panel{gap:10px}.planner-access-panel,.planner-quick-panel{border:1px solid #dbe6f1;border-radius:16px;background:#f8fafc;padding:12px 14px;display:grid}.planner-quick-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.planner-quick-head small{display:block;color:#64748b;margin-top:2px}.planner-quick-actions,.planner-quick-places{display:flex;flex-wrap:wrap;gap:8px}.planner-nearby-chip button,.planner-quick-actions button,.planner-quick-places button{border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}.planner-compare-tile,.planner-insight{border:1px solid var(--border);background:#fff;padding:8px 12px;cursor:pointer}.planner-compare-tile:hover,.planner-insight:hover,.planner-nearby-chip button:hover,.planner-quick-actions button:hover,.planner-quick-places button:hover{background:#eef6ff;border-color:#9ec5fe}.planner-access-panel label,.planner-nearby-chip{display:flex;align-items:center;gap:8px;border:1px solid var(--border);background:#fff;border-radius:14px;padding:8px 10px}.planner-nearby-chip small{color:#64748b}.planner-access-panel{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.planner-access-panel legend{font-weight:800;color:#0f172a;padding:0 6px}.planner-access-panel label{border-radius:999px;padding:8px 12px;gap:7px;cursor:pointer}.planner-access-panel label:has(input:checked){border-color:#0f766e;background:#ecfdf5;color:#0f766e;font-weight:800}.planner-compare-panel,.planner-smart-results{margin-top:16px}.planner-compare-card,.planner-insights-card{display:grid;gap:12px}.planner-compare-grid,.planner-insight-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.planner-compare-tile,.planner-insight{border-radius:16px;text-align:left;display:grid;gap:3px;align-content:start;min-height:96px}.planner-compare-tile span,.planner-insight span{font-size:22px}.planner-compare-tile strong,.planner-insight strong{color:#0f172a}.planner-compare-tile small,.planner-insight small{color:#64748b;line-height:1.35}.planner-compare-tile.active{border-color:var(--blue);background:#eaf2ff}.planner-offline-card{border-left:5px solid #f59e0b}.planner-access-note{margin-top:2px}.smart-watch-journeys{margin-bottom:12px}html[data-theme=dark] .planner-access-panel,html[data-theme=dark] .planner-quick-panel,html[data-theme=dark] .planner-time-panel,html[data-theme=dark] .planner-travel-method{background:#0f172a;border-color:#23344f}html[data-theme=dark] .planner-access-panel label,html[data-theme=dark] .planner-compare-tile,html[data-theme=dark] .planner-insight,html[data-theme=dark] .planner-nearby-chip,html[data-theme=dark] .planner-nearby-chip button,html[data-theme=dark] .planner-quick-actions button,html[data-theme=dark] .planner-quick-places button{background:#111827;border-color:#334155;color:#e2e8f0}html[data-theme=dark] .line-focus-bar strong,html[data-theme=dark] .planner-compare-tile strong,html[data-theme=dark] .planner-insight strong{color:#f8fafc}html[data-theme=dark] .planner-compare-tile.active{background:#10284a;border-color:#2b7de9}@media (max-width:900px){.planner-quick-head{display:grid}.planner-quick-actions,.planner-quick-places{display:grid;grid-template-columns:1fr 1fr}.planner-access-panel{display:grid;grid-template-columns:1fr}.planner-compare-grid,.planner-insight-grid{grid-template-columns:1fr 1fr}.planner-nearby-chip{display:grid;grid-template-columns:1fr auto auto auto}.journey-action-row{justify-content:flex-start}}@media (max-width:560px){.planner-compare-grid,.planner-insight-grid,.planner-nearby-chip,.planner-quick-actions,.planner-quick-places{grid-template-columns:1fr}.planner-quick-actions button,.planner-quick-places button{width:100%}}.station-card{width:390px;top:170px;left:610px;background:rgba(255,255,255,.96)}.station-head-image{padding:14px 16px 12px;background:#fff;border-bottom:1px solid #e5edf5;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.station-title{display:flex;align-items:flex-start;gap:10px;min-width:0}.station-title h2{font-size:18px;line-height:1.15;margin:0 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-title small{color:#64748b}.station-close,.station-pin{display:grid;place-items:center}.station-pin{border:2px solid #bfdbfe;border-radius:999px;width:26px;height:26px;flex:0 0 auto;background:#eff6ff}.station-close{background:#f1f5f9!important;color:#334155!important;border:1px solid #dbe4ee!important;width:28px;height:28px;line-height:1;margin-left:0!important}.station-body{padding:12px 14px 14px}.station-block{border-bottom:1px solid #e6edf5;padding:8px 0 10px}.station-block:first-child{padding-top:0}.station-label{font-size:11px;font-weight:800;color:#64748b;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px}.station-line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;background:#334155;color:#fff;font-size:13px}.station-line-badge.bus{background:#ef4b44}.station-line-badge.metro{background:#0b57b7}.station-line-badge.train{background:#e9569b}.station-line-badge.tram{background:#d99000}.station-line-badge.ship{background:#028994}.station-chain{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px;margin:10px 0}.chain-row{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:7px;align-items:center;padding:5px 0;color:#475569;font-size:13px}.chain-row+.chain-row{border-top:1px solid #e8eef5}.chain-dot,html[data-theme=dark] .map-place-popup small{color:#94a3b8}.station-warnings{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:12px;padding:8px 10px;margin:10px 0;font-size:13px}.station-tabs{margin:10px 0 8px;border:1px solid #dbe4ee;border-radius:12px;overflow:hidden;background:#fff}.station-tabs button{padding:10px 12px}.station-tabs button.active{background:#f8fafc}.station-tab-body.hidden{display:none!important}.station-footer{display:grid;gap:10px;margin-top:10px}.station-footer .primary{width:100%;padding:11px 12px}.station-empty{border:1px dashed #dbe4ee;padding:12px;background:#f8fafc}.departure-list,.station-empty{border-radius:12px}.departure-row{min-height:48px}.line-chip.bus{background:#ef4b44}.line-chip.metro{background:#0b57b7}.line-chip.train{background:#e9569b}.line-chip.tram{background:#d99000}.line-chip.ship{background:#028994}@media (max-width:900px){.station-card{left:12px;right:12px;width:auto;top:285px}.chain-row{grid-template-columns:auto 1fr}.chain-dot{display:none}}.vehicle-card{width:330px;background:rgba(255,255,255,.97);border:1px solid rgba(203,213,225,.95);max-height:calc(100vh - 116px)}.vehicle-head{border-bottom:1px solid rgba(255,255,255,.24);align-items:center;justify-content:space-between}.vehicle-head.bus{background:#ef4b44}.vehicle-head.metro{background:#0b57b7}.vehicle-head.train{background:#7b55c7}.vehicle-head.tram{background:#d99000}.vehicle-head.ship{background:#028994}.vehicle-title-row{display:flex;align-items:center;gap:9px;min-width:0;line-height:1.2}.vehicle-mode-icon{width:24px;height:24px;border-radius:7px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-weight:900;flex:0 0 auto}.vehicle-head .badge{background:rgba(255,255,255,.25);font-weight:900;min-width:30px;text-align:center}.vehicle-title{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:215px}.route-arrow{opacity:.85;margin:0 4px}.vehicle-popup-body{padding:0}.vehicle-popup-body .next-stops{margin:0;border:0;border-radius:0;border-bottom:1px solid #dbe4ee;background:#f8fbff;padding:12px 14px}.vehicle-popup-body .next-stops small{display:flex;gap:6px;align-items:center;color:#475569;font-weight:700}.vehicle-loading{margin-left:auto;color:#64748b;font-weight:500}.vehicle-popup-body .next-stops li{grid-template-columns:16px 1fr auto;padding:6px 0}.vehicle-popup-body .next-stops li.empty b{color:#64748b}.vehicle-popup-body .dot.active{background:#0b57b7}.vehicle-popup-body .vehicle-row{padding:11px 14px;align-items:center;background:#fff}.vehicle-row-label{display:flex;align-items:center;gap:9px}.vehicle-row-label i{width:18px;text-align:center;color:#64748b;font-style:normal}.vehicle-row-label small{font-size:14px}.vehicle-popup-body .vehicle-row strong{font-size:16px;font-weight:500;color:#0f172a;text-align:right}.vehicle-popup-body .vehicle-row strong.ok{color:#159447}.vehicle-popup-body .vehicle-row strong.warn-text{color:#d97706}.vehicle-extra{border-top:1px solid var(--border);background:#fff}.vehicle-extra summary{cursor:pointer;padding:10px 14px;color:#64748b;font-size:13px}.vehicle-actions,.vehicle-extra .vehicle-row{padding:8px 14px;background:#f8fafc}.vehicle-actions{padding:10px 14px;margin:0!important;border-top:1px solid var(--border)}.vehicle-actions button{font-weight:700}.vehicle-updated{display:block;padding:0 14px 10px;background:#f8fafc}.vehicle-head .close{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.24);width:28px;height:28px;display:grid;place-items:center;margin-left:8px}.vehicle-head .close:hover{background:rgba(255,255,255,.3)}@media (max-width:900px){.vehicle-card{left:12px!important;right:12px;width:auto!important;top:230px!important}.vehicle-title{max-width:calc(100vw - 168px)}}.merged-stops-panel{margin:10px 0 12px;border:1px solid rgba(148,163,184,.38);border-radius:14px;background:rgba(248,250,252,.78);overflow:hidden}.merged-stops-panel summary{cursor:pointer;padding:10px 12px;font-weight:800;color:#334155;list-style:none}.merged-stops-panel summary::-webkit-details-marker{display:none}.merged-stops-panel summary::after{content:"▾";float:right;color:#64748b}.merged-stops-panel[open] summary::after{content:"▴"}.merged-stops-panel ul{margin:0;padding:0 10px 10px;list-style:none;display:grid;gap:6px}.merged-stops-panel li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border-radius:10px;background:#fff;border:1px solid rgba(226,232,240,.9)}.merged-stops-panel strong{display:block;font-size:.88rem;color:#0f172a}.merged-stops-panel small{display:block;color:#64748b;font-size:.76rem}.merged-stops-panel button{border:1px solid rgba(0,94,184,.25);background:#eaf2ff;color:#063b75;border-radius:999px;padding:6px 10px;font-weight:800}[data-theme=dark] .merged-stops-panel{background:rgba(15,23,42,.7);border-color:rgba(148,163,184,.25)}[data-theme=dark] .merged-stops-panel li{background:rgba(15,23,42,.92);border-color:rgba(148,163,184,.22)}[data-theme=dark] .merged-stops-panel strong{color:#e2e8f0}.brand-icon{position:relative;width:46px;height:46px;border-radius:50%;background:var(--blue);color:#fff;font-weight:950;letter-spacing:-.04em;font-size:18px;border:3px solid #fff;box-shadow:0 8px 24px rgba(0,94,184,.34),0 0 0 2px var(--blue);overflow:hidden}.brand-icon::after{content:"";position:absolute;right:6px;bottom:6px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.28)}.brand-icon span{position:relative;z-index:1}.brand small{color:#004b93}.brand small,.tab.active,.tab:hover{background:#e6f1fb}.tab:hover{color:#003b73}.chip.metro.active,.primary{background:#005eb8}.chip.train.active{background:#ec008c}.primary:hover{background:#004b93}.vehicle-marker{border:3px solid #fff;box-shadow:0 3px 14px rgba(15,23,42,.38)}.vehicle-head,.vehicle-head.bus,.vehicle-head.metro,.vehicle-head.ship,.vehicle-head.train,.vehicle-head.tram,.vehicle-marker,.vehicle-marker.bus,.vehicle-marker.metro,.vehicle-marker.ship,.vehicle-marker.train,.vehicle-marker.tram{background:var(--sl-line-color,var(--blue))}.line-chip,.station-line-badge{background:var(--sl-line-color,#334155);border-color:var(--sl-line-color,#334155)}.line-chip.tram,.station-line-badge.tram{color:#111827}.station-pin{border-color:#b7d7f2;background:#e6f1fb}.station-pin,.vehicle-popup-body .next-stops li.current b{color:#005eb8}.vehicle-popup-body .dot.active{background:#005eb8;box-shadow:0 0 0 4px rgba(0,94,184,.12)}.leaflet-interactive{outline:0}.stop-marker{border-color:#005eb8}.chip.metro-blue:not(.active),.chip.metro-green:not(.active),.chip.metro-red:not(.active){background:#fff}.chip.metro-green{border-color:#009639}.chip.metro-red{border-color:#d52b1e}.chip.metro-blue{border-color:#0072ce}.line-chip.metro-green,.station-line-badge.metro-green,.vehicle-head.metro-green,.vehicle-marker.metro-green{background:#009639}.line-chip.metro-red,.station-line-badge.metro-red,.vehicle-head.metro-red,.vehicle-marker.metro-red{background:#d52b1e}.line-chip.metro-blue,.station-line-badge.metro-blue,.vehicle-head.metro-blue,.vehicle-marker.metro-blue{background:#0072ce}.line-chip.metro-blue,.line-chip.metro-green,.line-chip.metro-red,.station-line-badge.metro-blue,.station-line-badge.metro-green,.station-line-badge.metro-red{color:#fff;border-color:var(--sl-line-color,currentColor)}.vehicle-marker.metro-blue,.vehicle-marker.metro-green,.vehicle-marker.metro-red{background:var(--sl-line-color,#0072CE);box-shadow:0 3px 14px rgba(15,23,42,.38)}.vehicle-head.metro-blue,.vehicle-head.metro-green,.vehicle-head.metro-red{background:var(--sl-line-color,#0072CE)}@media (max-width:900px){.map-control-panel.compact{left:auto;right:12px;width:48px}}.pwa-install-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;border:1.5px solid var(--blue);background:0 0;color:var(--blue);font-size:.82rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;margin-left:8px}.pwa-install-btn:hover{background:var(--blue);color:#fff}.pwa-install-btn:disabled{opacity:.55;cursor:progress}.pwa-install-btn.hidden{display:none!important}html[data-theme=dark] .pwa-install-btn{border-color:#60a5fa;color:#60a5fa}html[data-theme=dark] .pwa-install-btn:hover{background:#60a5fa;color:#0f172a}.ios-install-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:#1e293b;color:#f1f5f9;padding:12px 16px;border-radius:14px;font-size:.83rem;line-height:1.45;max-width:min(360px,calc(100vw - 32px));box-shadow:0 8px 32px rgba(0,0,0,.35);z-index:9999;animation:toastIn .25s ease}.ios-install-close:hover,.ios-install-toast strong{color:#fff}.ios-install-close,.ios-install-icon{font-size:18px;flex:0 0 auto}.ios-install-close{margin-left:auto;background:0 0;border:0;color:#94a3b8;cursor:pointer;padding:0 2px;line-height:1}@media (display-mode:window-controls-overlay){.app-header{padding-left:env(titlebar-area-x,0);padding-right:calc(100vw - env(titlebar-area-x,0) - env(titlebar-area-width,100vw))}}.user-location-icon{background:0 0!important;border:0!important;box-shadow:none!important}.user-location-icon--pulse{animation:userPulse 2s ease-out infinite}.user-location-icon--heading svg{filter:drop-shadow(0 2px 4px rgba(0,94,184,.45))}.poi-marker{--poi-accent:#94a3b8;width:17px;height:17px;position:relative;display:flex;align-items:center;justify-content:center;font-size:9.5px;background:#fff;border:1.5px solid var(--poi-accent);border-radius:50%;box-shadow:0 3px 9px rgba(15,23,42,.16),0 0 0 2px rgba(255,255,255,.88);transition:transform .15s ease,box-shadow .15s ease}.poi-marker:hover{transform:scale(1.12);box-shadow:0 5px 12px rgba(15,23,42,.18),0 0 0 2px rgba(255,255,255,.95)}.poi-marker__emoji{display:block;line-height:1;filter:saturate(1.05)}.poi-marker::after{content:"";position:absolute;right:-1px;bottom:-1px;width:5.5px;height:5.5px;border-radius:999px;background:var(--poi-accent);border:2px solid #fff;box-shadow:0 1px 4px rgba(15,23,42,.16)}.poi-marker--cafe,.poi-marker--fast_food,.poi-marker--restaurant,.poi-popup-inner--cafe,.poi-popup-inner--fast_food,.poi-popup-inner--restaurant{--poi-accent:#f97316}.poi-marker--bar,.poi-marker--pub,.poi-popup-inner--bar,.poi-popup-inner--pub{--poi-accent:#b45309}.poi-marker--pharmacy,.poi-popup-inner--pharmacy{--poi-accent:#22c55e}.poi-marker--atm,.poi-popup-inner--atm{--poi-accent:#3b82f6}.poi-marker--toilets,.poi-popup-inner--toilets{--poi-accent:#8b5cf6}.poi-marker--bicycle_parking,.poi-popup-inner--bicycle_parking{--poi-accent:#0ea5e9}.poi-marker--convenience,.poi-marker--supermarket,.poi-popup-inner--convenience,.poi-popup-inner--supermarket{--poi-accent:#f59e0b}.poi-marker--cinema,.poi-marker--theatre,.poi-popup-inner--cinema,.poi-popup-inner--theatre{--poi-accent:#a855f7}.poi-marker--library,.poi-popup-inner--library{--poi-accent:#6366f1}.poi-marker--museum,.poi-popup-inner--museum{--poi-accent:#7c3aed}.poi-marker--apartment,.poi-marker--guest_house,.poi-marker--hostel,.poi-marker--hotel,.poi-popup-inner--apartment,.poi-popup-inner--guest_house,.poi-popup-inner--hostel,.poi-popup-inner--hotel{--poi-accent:#0891b2}.poi-marker--artwork,.poi-marker--gallery,.poi-popup-inner--artwork,.poi-popup-inner--gallery{--poi-accent:#db2777}.poi-marker--attraction,.poi-marker--viewpoint,.poi-popup-inner--attraction,.poi-popup-inner--viewpoint{--poi-accent:#ca8a04}.poi-marker--aquarium,.poi-marker--zoo,.poi-popup-inner--aquarium,.poi-popup-inner--zoo{--poi-accent:#16a34a}.poi-marker--theme_park,.poi-popup-inner--theme_park{--poi-accent:#f43f5e}.poi-marker--information,.poi-popup-inner--information{--poi-accent:#0284c7}.poi-marker--castle,.poi-marker--fort,.poi-marker--manor,.poi-marker--memorial,.poi-marker--monument,.poi-marker--ship,.poi-popup-inner--castle,.poi-popup-inner--fort,.poi-popup-inner--manor,.poi-popup-inner--memorial,.poi-popup-inner--monument,.poi-popup-inner--ship{--poi-accent:#92400e}.poi-marker--archaeological_site,.poi-marker--building,.poi-marker--church,.poi-marker--ruins,.poi-popup-inner--archaeological_site,.poi-popup-inner--building,.poi-popup-inner--church,.poi-popup-inner--ruins{--poi-accent:#b45309}.poi-marker--garden,.poi-marker--nature_reserve,.poi-marker--park,.poi-popup-inner--garden,.poi-popup-inner--nature_reserve,.poi-popup-inner--park{--poi-accent:#15803d}.poi-marker--beach_resort,.poi-popup-inner--beach_resort{--poi-accent:#0e7490}.poi-marker--marina,.poi-popup-inner--marina{--poi-accent:#0369a1}.poi-type-label{display:inline-flex;align-items:center;width:max-content;padding:4px 8px;border-radius:999px;font-size:11px;color:var(--poi-accent,#334155);background:rgba(241,245,249,.95);border:1px solid rgba(203,213,225,.95);font-weight:700;text-transform:uppercase;letter-spacing:.04em}#togglePOI.active{background:var(--blue);color:#fff;border-color:var(--blue)}.poi-leaflet-popup .leaflet-popup-content-wrapper{background:#fff;border:1px solid #dbe4ee;border-radius:16px;box-shadow:0 16px 40px rgba(15,23,42,.18);padding:0;overflow:hidden}.poi-leaflet-popup .leaflet-popup-content{margin:0}.poi-leaflet-popup .leaflet-popup-tip-container{margin-top:-1px}.poi-leaflet-popup .leaflet-popup-tip{background:#fff;box-shadow:none;border:1px solid #dbe4ee}.poi-popup-inner{--poi-accent:#005EB8;background:#fff;color:#0f172a;padding:12px 13px;display:flex;flex-direction:column;gap:10px;min-width:190px}.poi-popup-header{display:flex;align-items:flex-start;gap:10px}.poi-popup-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:12px;background:rgba(241,245,249,.95);border:1px solid rgba(203,213,225,.95);font-size:18px}.poi-popup-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.poi-popup-title{display:block;font-size:15px;line-height:1.25;color:#0f172a;word-break:break-word}.nav-btn,.poi-nav-btn{border-radius:10px;font-weight:700;cursor:pointer}.poi-nav-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;border:1px solid var(--poi-accent,#005EB8);background:var(--poi-accent,#005EB8);color:#fff;padding:9px 10px;font-size:13px;box-shadow:0 6px 14px rgba(15,23,42,.12)}.poi-nav-btn:hover{filter:brightness(.96)}.nav-btn{border:1px solid #005eb8!important;color:#005eb8!important;background:#fff!important;padding:10px 12px}.nav-btn:hover{background:#e6f1fb!important}.map-place-popup{display:flex;flex-direction:column;gap:7px;min-width:190px;color:#0f172a}.map-place-popup strong{font-size:15px;line-height:1.25}.map-place-popup small{color:#64748b;font-size:12px}.map-place-nav-btn{justify-content:center;width:100%;margin-top:2px;background:#005eb8!important;color:#fff!important;box-shadow:0 8px 18px rgba(0,94,184,.22)}.map-place-nav-btn:hover{background:#004c96!important}html[data-theme=dark] #mapSearchInput,html[data-theme=dark] .map-place-popup{color:#e2e8f0}.map-place-nav-btn,.nav-bar,.nav-bar-arrow-col{display:flex;align-items:center}.nav-bar{position:absolute;left:50%;transform:translateX(-50%);z-index:1270;gap:12px;max-width:min(480px,calc(100vw - 28px));width:100%;padding:12px 16px;border-radius:999px;background:rgba(10,20,40,.93);color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.32);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.nav-bar.hidden{display:none}.nav-bar-arrow-col{flex-direction:column;gap:2px;flex:0 0 auto}.nav-arrow{font-size:24px;line-height:1;color:#60a5fa}.nav-bar-arrow-col small{font-size:10px;font-weight:800;color:#94a3b8;letter-spacing:.04em}.nav-bar-info{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.nav-bar-info strong{font-size:22px;font-weight:900;letter-spacing:-.02em;line-height:1;transition:color .6s ease}.nav-bar-info span{font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-stop-btn{flex:0 0 auto;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.1);color:#fff;font-size:16px;cursor:pointer;display:grid;place-items:center}.nav-stop-btn:hover{background:rgba(255,255,255,.2)}.nav-bar-eta{flex:0 0 auto;font-size:11px;font-weight:800;color:#94a3b8;letter-spacing:.04em;white-space:nowrap;background:rgba(255,255,255,.08);border-radius:20px;padding:3px 9px;border:1px solid rgba(255,255,255,.12)}.nav-arrow{transition:transform .4s ease,color .6s ease}@media (max-width:600px){.nav-bar{bottom:80px;border-radius:18px}.nav-bar-info strong{font-size:18px}}#view-map .leaflet-bottom{margin-bottom:68px}.bottom-bar,.bottom-bar-chips{display:flex;align-items:center}.bottom-bar{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0));left:50%;transform:translateX(-50%);z-index:720;border-radius:999px;max-width:calc(100vw - 24px);width:max-content}.bottom-bar-chips{gap:5px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;flex-shrink:1;min-width:0;-webkit-mask-image:linear-gradient(to right,#000 85%,transparent 100%);mask-image:linear-gradient(to right,#000 85%,transparent 100%)}.bottom-bar-chips.at-end{-webkit-mask-image:none;mask-image:none}.bottom-bar-chips::-webkit-scrollbar{display:none}.bottom-bar-chips .chip{padding:6px 11px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:5px;transition:background .14s,border-color .14s,color .14s}.bottom-bar-chips .chip span{background:rgba(0,0,0,.1);border-radius:999px;padding:1px 6px;font-size:11px;font-weight:800;min-width:20px;text-align:center}.bottom-bar-chips .chip.active span{background:rgba(255,255,255,.25)}.bottom-bar-actions{display:flex;align-items:center;gap:6px;padding-left:8px;border-left:1px solid var(--border);flex-shrink:0}.bb-btn,.bottom-bar-chips .chip{border:1.5px solid var(--border);flex-shrink:0}.bb-btn{width:36px;height:36px;border-radius:50%;background:#fff;font-size:16px;cursor:pointer;display:grid;place-items:center;transition:background .14s,border-color .14s,color .14s,opacity .14s}.bb-btn:hover{background:#e6f1fb;border-color:#005eb8}.bb-btn.active,.bb-btn[aria-pressed=true]{background:#005eb8;border-color:#005eb8;color:#fff}.bb-btn:disabled{opacity:.68;cursor:progress}#togglePOI.active.bb-btn{background:#005eb8;border-color:#005eb8;color:#fff;filter:none}.bb-updated{font-size:10px;color:#94a3b8;font-weight:700;letter-spacing:.03em;white-space:nowrap;padding:0 2px}@media (max-width:600px){.bottom-bar{bottom:calc(10px + env(safe-area-inset-bottom,0));padding:7px 10px;gap:6px}.bottom-bar-chips .chip{padding:5px 9px;font-size:11px}.bb-updated{display:none}#view-map .leaflet-bottom{margin-bottom:62px}}.nav-bar{bottom:80px}@media (max-width:600px){.nav-bar{bottom:70px}}.map-extra-actions{display:none}.map-control-panel{display:none!important}.poi-info-block{display:flex;flex-direction:column;gap:5px;border-top:1px solid #e2e8f0;padding-top:8px;font-size:12px;color:#334155}.poi-info-row{display:flex;align-items:flex-start;gap:4px;line-height:1.45}.poi-info-muted{color:#94a3b8}.poi-info-desc{color:#475569;font-style:italic}.poi-info-hours{flex-direction:column;gap:4px}.poi-hours-text{font-size:11px;color:#475569;line-height:1.5}.poi-hours-text b{color:#1e293b;font-weight:700}.poi-open-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;width:fit-content}.poi-open-yes{background:#dcfce7;color:#15803d}.poi-open-no{background:#fee2e2;color:#b91c1c}.poi-open-24{background:#dbeafe;color:#1d4ed8}.poi-link{color:#005eb8;text-decoration:none;word-break:break-all}.poi-link:hover{text-decoration:underline}.poi-popup-inner:has(.poi-info-block){min-width:220px;max-width:280px}.poi-marker--ice_cream,.poi-popup-inner--ice_cream{--poi-accent:#ec4899}.poi-marker--bakery,.poi-popup-inner--bakery{--poi-accent:#d97706}.poi-marker--bank,.poi-popup-inner--bank{--poi-accent:#1d4ed8}.poi-marker--post_office,.poi-popup-inner--post_office{--poi-accent:#dc2626}.poi-marker--marketplace,.poi-marker--nightclub,.poi-popup-inner--marketplace,.poi-popup-inner--nightclub{--poi-accent:#7c3aed}.poi-marker--casino,.poi-popup-inner--casino{--poi-accent:#b45309}.poi-marker--spa,.poi-popup-inner--spa{--poi-accent:#db2777}.poi-marker--swimming_pool,.poi-popup-inner--swimming_pool{--poi-accent:#0284c7}.poi-marker--chalet,.poi-marker--motel,.poi-popup-inner--chalet,.poi-popup-inner--motel{--poi-accent:#0891b2}.poi-marker--camp_site,.poi-marker--wilderness_hut,.poi-popup-inner--camp_site,.poi-popup-inner--wilderness_hut{--poi-accent:#15803d}.poi-marker--fitness_centre,.poi-marker--sports_centre,.poi-popup-inner--fitness_centre,.poi-popup-inner--sports_centre{--poi-accent:#0369a1}.poi-marker--golf_course,.poi-marker--miniature_golf,.poi-popup-inner--golf_course,.poi-popup-inner--miniature_golf{--poi-accent:#15803d}.poi-marker--bowling_alley,.poi-popup-inner--bowling_alley{--poi-accent:#7c3aed}.poi-marker--ice_rink,.poi-popup-inner--ice_rink{--poi-accent:#0284c7}.poi-marker--water_park,.poi-popup-inner--water_park{--poi-accent:#0891b2}.poi-marker--department_store,.poi-marker--mall,.poi-popup-inner--department_store,.poi-popup-inner--mall{--poi-accent:#7c3aed}.poi-marker--clothes,.poi-marker--shoes,.poi-popup-inner--clothes,.poi-popup-inner--shoes{--poi-accent:#db2777}.poi-marker--sports,.poi-popup-inner--sports{--poi-accent:#0369a1}.poi-marker--computer,.poi-marker--electronics,.poi-marker--mobile_phone,.poi-popup-inner--computer,.poi-popup-inner--electronics,.poi-popup-inner--mobile_phone{--poi-accent:#1d4ed8}.poi-marker--books,.poi-marker--stationery,.poi-popup-inner--books,.poi-popup-inner--stationery{--poi-accent:#6366f1}.poi-marker--gift,.poi-marker--souvenir,.poi-popup-inner--gift,.poi-popup-inner--souvenir{--poi-accent:#ec4899}.poi-marker--jewelry,.poi-popup-inner--jewelry{--poi-accent:#b45309}.poi-marker--optician,.poi-popup-inner--optician{--poi-accent:#0891b2}.poi-marker--beauty,.poi-marker--hairdresser,.poi-popup-inner--beauty,.poi-popup-inner--hairdresser{--poi-accent:#db2777}.poi-marker--toys,.poi-popup-inner--toys{--poi-accent:#f59e0b}.poi-marker--florist,.poi-popup-inner--florist{--poi-accent:#15803d}.poi-marker--butcher,.poi-popup-inner--butcher{--poi-accent:#b91c1c}.poi-marker--music,.poi-popup-inner--music{--poi-accent:#7c3aed}.poi-marker--photo,.poi-popup-inner--photo{--poi-accent:#475569}.poi-marker--art,.poi-popup-inner--art{--poi-accent:#db2777}.poi-marker--antiques,.poi-popup-inner--antiques{--poi-accent:#92400e}.poi-marker--travel_agency,.poi-popup-inner--travel_agency{--poi-accent:#0284c7}.poi-marker--outdoor,.poi-popup-inner--outdoor{--poi-accent:#15803d}.poi-marker--kiosk,.poi-popup-inner--kiosk{--poi-accent:#475569}.map-search-panel{position:absolute;top:14px;left:14px;z-index:735;width:min(420px,calc(100vw - 28px));padding:10px;border-radius:22px;box-shadow:0 18px 48px rgba(15,23,42,.18)}.map-search-label{display:block;margin:0 0 6px 4px;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.map-search-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:6px;border:1px solid rgba(148,163,184,.35);background:rgba(255,255,255,.96);border-radius:16px;padding:5px}.map-search-icon{display:grid;place-items:center;width:30px;height:30px;color:#005eb8;font-size:18px;font-weight:900}#mapSearchInput{border:0;outline:0;min-width:0;background:0 0;color:#0f172a;font:inherit;font-size:15px;padding:8px 2px}#mapSearchInput::placeholder{color:#94a3b8}.line-focus-bar button,.map-search-clear,.map-search-submit{border:0;border-radius:12px;font-weight:800;cursor:pointer}.map-search-submit{background:#005eb8;color:#fff;padding:9px 12px}.map-search-clear{width:30px;height:30px;background:#eef2f7;color:#475569;font-size:18px}.map-search-hint{margin:7px 4px 0;color:#64748b;font-size:11px}.map-search-results{margin-top:8px;display:grid;gap:5px;max-height:min(44vh,320px);overflow:auto}.map-search-results button{display:grid;gap:2px;width:100%;text-align:left;border:1px solid rgba(203,213,225,.86);background:rgba(255,255,255,.98);color:#0f172a;border-radius:14px;padding:10px 12px;cursor:pointer}.map-search-results button:focus-visible,.map-search-results button:hover{border-color:#005eb8;background:#eef6ff;outline:0}.map-search-empty,.map-search-results small{color:#64748b;font-size:12px}.map-search-empty{margin:6px 4px 2px}.map-search-panel.is-loading .map-search-submit{opacity:.72;cursor:progress}.line-focus-bar{position:absolute;left:50%;transform:translateX(-50%);z-index:734;display:flex;align-items:center;gap:10px;min-width:min(390px,calc(100vw - 32px));max-width:calc(100vw - 32px);padding:9px 10px;border-radius:999px;box-shadow:0 16px 42px rgba(15,23,42,.18)}.line-focus-dot{display:grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border-radius:999px;font-weight:900;box-shadow:inset 0 0 0 2px rgba(255,255,255,.5)}.line-focus-bar div{display:grid;min-width:0;line-height:1.1}.line-focus-bar strong{font-size:14px;color:#0f172a}.line-focus-bar small{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.line-focus-bar button{margin-left:auto;flex-shrink:0;background:#eef2f7;color:#0f172a;padding:9px 11px}.line-focus-bar button:hover{background:#e0ebf8;color:#005eb8}html.line-focus-active #map .stop-div-icon{opacity:.42;filter:saturate(.65)}html.line-focus-active #map .route-line-focused{filter:drop-shadow(0 4px 12px rgba(0,94,184,.32))}.bottom-bar{gap:10px;padding:9px 12px;border-color:rgba(148,163,184,.42);box-shadow:0 18px 52px rgba(15,23,42,.2)}.bottom-bar-chips .chip{border-color:rgba(148,163,184,.46);background:rgba(255,255,255,.92);box-shadow:0 1px 0 rgba(255,255,255,.72) inset}.bottom-bar-chips .chip:not(.active):hover{background:#f1f7ff;border-color:#93c5fd;color:#005eb8}.bottom-bar-actions{border-left-color:rgba(148,163,184,.36)}.bb-btn{box-shadow:0 1px 0 rgba(255,255,255,.72) inset}.bb-updated{opacity:.78}html[data-theme=dark] .line-focus-bar,html[data-theme=dark] .map-search-panel{background:rgba(15,23,42,.88);border-color:rgba(71,85,105,.9)}html[data-theme=dark] .line-focus-bar small,html[data-theme=dark] .map-search-empty,html[data-theme=dark] .map-search-hint,html[data-theme=dark] .map-search-label,html[data-theme=dark] .map-search-results small,html[data-theme=dark] .route-choice-head span,html[data-theme=dark] .route-choice-option small{color:#94a3b8}html[data-theme=dark] .map-search-results button,html[data-theme=dark] .map-search-row{background:rgba(30,41,59,.94);border-color:rgba(71,85,105,.88);color:#e2e8f0}html[data-theme=dark] .line-focus-bar button,html[data-theme=dark] .map-search-clear{background:#1e293b;color:#e2e8f0}@media (max-width:700px){.map-search-panel{top:10px;left:10px;right:10px;width:auto;padding:8px;border-radius:20px}.map-search-hint{display:none}.bottom-bar,.line-focus-bar{left:10px;right:10px;transform:none}.line-focus-bar{top:78px;min-width:0;border-radius:18px}.line-focus-bar small{white-space:normal}.bottom-bar{width:auto;max-width:none;justify-content:space-between}.bottom-bar-chips{flex:1}.map-search-submit{padding-inline:10px}}.app-header .header-map-search{position:relative;inset:auto;z-index:2;flex:0 1 clamp(250px,24vw,390px);width:auto;min-width:220px;max-width:390px;padding:0;border:0;border-radius:0;background:0 0;box-shadow:none;backdrop-filter:none}.app-header .header-map-search .map-search-hint,.app-header .header-map-search .map-search-label{display:none}.app-header .header-map-search .map-search-row{grid-template-columns:auto minmax(0,1fr) auto auto;min-height:42px;border-color:rgba(148,163,184,.46);background:rgba(248,250,252,.92);border-radius:999px;padding:4px;box-shadow:0 1px 0 rgba(255,255,255,.72) inset,0 4px 18px rgba(15,23,42,.06)}.app-header .header-map-search #mapSearchInput{font-size:14px;padding:7px 2px}.app-header .header-map-search .map-search-icon{width:28px;height:28px;font-size:17px}.app-header .header-map-search .map-search-submit{border-radius:999px;padding:8px 12px}.app-header .header-map-search .map-search-clear{border-radius:999px;width:28px;height:28px}.app-header .header-map-search .map-search-results{position:absolute;top:calc(100% + 10px);left:0;right:0;margin-top:0;padding:7px;border:1px solid rgba(203,213,225,.88);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 18px 48px rgba(15,23,42,.18);backdrop-filter:blur(16px);max-height:min(52vh,360px)}body:not([data-view=map]) .header-map-search{display:none}html[data-theme=dark] .app-header .header-map-search .map-search-row{background:rgba(30,41,59,.9);border-color:rgba(71,85,105,.88)}html[data-theme=dark] .app-header .header-map-search .map-search-results{background:rgba(15,23,42,.96);border-color:rgba(71,85,105,.9)}@media (max-width:1180px){.app-header .header-map-search{flex-basis:clamp(210px,22vw,320px);min-width:200px}.app-header .header-map-search .map-search-submit{font-size:0;padding-inline:10px}.app-header .header-map-search .map-search-submit::before{content:"↵";font-size:14px}}@media (max-width:1040px){.app-header{height:112px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:46px 44px;gap:6px 8px;align-items:center}.app-header .brand{grid-column:1;grid-row:1;min-width:0}.app-header .header-map-search{grid-column:2;grid-row:1;max-width:none;min-width:0;width:100%}.app-header .tabs{grid-column:1/-1;grid-row:2;min-width:0;overflow-x:auto;scrollbar-width:none}.app-header .tabs::-webkit-scrollbar{display:none}.app-header .header-actions{grid-column:3;grid-row:1}#view-map{padding-top:112px}#map{height:calc(100dvh - 112px)}.line-focus-bar{top:126px}.page{padding-top:124px}}@media (max-width:700px){.app-header{height:116px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:48px 44px;padding:7px 10px 8px}#view-map{padding-top:116px}#map{height:calc(100dvh - 116px)}.app-header .header-map-search{padding:0;border-radius:0}.app-header .header-map-search .map-search-results{position:fixed;left:10px;right:10px;top:calc(116px + env(safe-area-inset-top,0) + 6px);max-height:44vh}.app-header .header-map-search .map-search-submit{display:none}.line-focus-bar{top:130px}}@media (max-width:430px){.brand strong{display:none}.app-header .header-map-search #mapSearchInput{font-size:13px}}.app-header{z-index:1300}.line-focus-bar{top:82px}@media (max-width:900px){.line-focus-bar{top:126px}}@media (max-width:700px){.line-focus-bar{top:130px}}.route-choice-sheet{position:fixed;left:50%;bottom:104px;transform:translateX(-50%);z-index:1288;width:min(620px,calc(100vw - 24px));padding:14px;border-radius:24px;border:1px solid rgba(203,213,225,.9);background:rgba(255,255,255,.96);color:#0f172a;box-shadow:0 22px 70px rgba(15,23,42,.24);backdrop-filter:blur(18px)}.route-choice-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.route-choice-head span{display:block;font-size:12px;font-weight:900;letter-spacing:.055em;text-transform:uppercase;color:#64748b;margin-bottom:3px}.route-choice-head strong{display:block;font-size:17px;line-height:1.2}.route-choice-close{width:34px;height:34px;border-radius:999px;border:1px solid #d7e0ea;background:#fff;color:#334155;font-weight:900;cursor:pointer;display:grid;place-items:center;flex:0 0 auto}.route-choice-close:hover{background:#f1f5f9;color:#005eb8}.route-choice-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.route-choice-option{min-width:0;border:1px solid #d7e0ea;border-radius:18px;background:#fff;color:#0f172a;padding:12px 9px;display:grid;gap:5px;justify-items:center;text-align:center;cursor:pointer;box-shadow:0 5px 18px rgba(15,23,42,.06)}.route-choice-option:focus-visible,.route-choice-option:hover{border-color:#005eb8;background:#eef6ff;transform:translateY(-1px);outline:0;box-shadow:0 9px 26px rgba(0,94,184,.16)}.route-choice-option b{font-size:23px;line-height:1}.route-choice-option strong{font-size:13px;line-height:1.1}.route-choice-option small{font-size:11px;line-height:1.25;color:#64748b}html[data-theme=dark] .route-choice-sheet{background:rgba(15,27,45,.96);border-color:#2a3a52;color:#e5edf7}html[data-theme=dark] .route-choice-close,html[data-theme=dark] .route-choice-option{background:#101d30;color:#e5edf7;border-color:#2a3a52}html[data-theme=dark] .route-choice-option:focus-visible,html[data-theme=dark] .route-choice-option:hover{background:#123055;border-color:#60a5fa}@media (max-width:700px){.route-choice-sheet{bottom:122px;width:calc(100vw - 18px);max-height:min(64dvh,460px);overflow:auto;border-radius:22px;padding:12px}.route-choice-options{grid-template-columns:repeat(2,minmax(0,1fr))}.route-choice-option{grid-template-columns:auto 1fr;justify-items:start;text-align:left;align-items:center;padding:11px 12px}.route-choice-option b{grid-row:1/3}.route-choice-option small{grid-column:2}}html[data-theme=dark] .bb-btn:hover{background:#17243a;border-color:#60a5fa;color:#bfdbfe}html[data-theme=dark] .bb-btn:not(.active):not([aria-pressed=true]){background:#101d30;border-color:#2a3a52;color:#d7e2f2}.disruptions-page{max-width:1020px;padding-top:128px}.disruptions-page>p:first-of-type{max-width:none;margin:0 0 22px;color:#5b6778}.disruptions-toolbar{display:grid;gap:14px;margin:8px 0 18px}.disruption-severity-row{display:flex;gap:10px;flex-wrap:wrap}.disruptions-page .pill{border-radius:999px;padding:10px 16px;font-weight:500;background:#f5f7fa;border-color:#d6dee8;color:#243142;box-shadow:none}.disruptions-page .pill.active{background:#071a32;border-color:#071a32;color:#fff}.disruption-filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.disruptions-page .filter-field{display:grid;gap:8px;min-width:0}.disruptions-page .filter-label{display:flex;align-items:center;gap:6px;font-size:14px;color:#5f6f82}.disruptions-page .filter-label span[aria-hidden=true]{display:inline-grid;place-items:center;color:#64748b;font-size:14px}.disruptions-page select{width:100%;margin-top:0;height:46px;border-radius:12px;border:1px solid #d6dee8;padding:10px 14px;background:#fff;font-size:16px;color:#111827;box-shadow:none}.disruption-count{margin:4px 0 12px!important;font-size:15px!important;color:#5f6f82!important}.disruption-list{gap:16px;margin-top:0}.disruption-card{border-radius:18px;padding:0;box-shadow:none;overflow:hidden}.disruption-card.severe{background:#fff8fa;border-color:#f0a6a7}.disruption-card.warn{background:#fffbf4;border-color:#efc36f}.disruption-card.info{background:#f8fbff;border-color:#bfd8f3}.disruption-card-grid{display:grid;grid-template-columns:28px 1fr;gap:14px;padding:22px 20px}.disruption-icon-wrap{display:flex;align-items:flex-start;justify-content:center;padding-top:3px}.severity-icon{display:inline-grid;place-items:center;width:22px;height:22px}.severity-icon svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.severity-icon.severe{color:#ef4444}.severity-icon.warning{color:#d97706}.severity-icon.info{color:#2563eb}.severity-icon .severity-dot{fill:currentColor;stroke:none}.disruption-main{min-width:0}.disruption-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.disruption-title-row h2{margin:0;font-size:18px;line-height:1.3;color:#0f172a}.deviation-line-list{display:flex;gap:8px;flex-wrap:wrap}.deviation-line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:26px;padding:0 9px;border-radius:7px;background:#e5e7eb;color:#111827;font-size:14px;font-weight:800;line-height:1}.disruption-card p{margin:0 0 12px;color:#334155;font-size:17px;line-height:1.55}.deviation-stop-list{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.deviation-stop-tag{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:7px;border:1px solid #d6dee8;background:#f8fafc;color:#5f6f82;font-size:13px;line-height:1.2}.disruption-time{color:#64748b;font-size:14px}@media (max-width:900px){.disruptions-page{padding-top:108px}.disruption-card-grid,.disruption-filter-grid{grid-template-columns:1fr}.disruption-card-grid{gap:10px;padding:18px}.disruption-icon-wrap{justify-content:flex-start;padding-top:0}}.page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.page-title-row h1{margin-bottom:8px}.page-title-row p{margin:0}.status-page{max-width:1120px}.status-summary{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.status-summary-pill{display:inline-flex;align-items:center;border:1px solid #d6e1ec;background:#f8fafc;border-radius:999px;padding:7px 11px;color:#334155;font-weight:700}.status-card{background:#fff;border:1px solid #dbe4ee;border-radius:18px;box-shadow:0 8px 26px rgba(15,23,42,.05);overflow:hidden}.status-card.ok{border-color:#bfe7d0}.status-card.warning{border-color:#f2cf84;background:#fffbf3}.status-card.severe{border-color:#f2aaa8;background:#fff7f7}.status-card.info{border-color:#bfd8f3;background:#f8fbff}.status-card-top{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:flex-start;padding:16px 16px 12px;border-bottom:1px solid #eef2f7}.status-mode-dot{width:16px;height:16px;border-radius:999px;background:var(--status-color,#005EB8);box-shadow:0 0 0 5px color-mix(in srgb,var(--status-color,#005EB8) 15%,transparent);margin-top:5px}.status-card h2{margin:0 0 8px;font-size:20px}.status-lines{display:flex;gap:6px;flex-wrap:wrap}.status-line-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;border-radius:7px;background:var(--sl-line-color,#334155);color:#fff;font-weight:900;font-size:13px;padding:2px 7px}.status-line-badge.neutral{background:#eef3f8;color:#334155;border:1px solid #d6e1ec}.status-badge{border-radius:999px;padding:7px 11px;background:#eef3f8;color:#334155;font-size:13px;white-space:nowrap}.status-card.ok .status-badge{background:#ecfdf3;color:#166534}.status-card.warning .status-badge{background:#fff7ed;color:#9a3412}.status-card.severe .status-badge{background:#fef2f2;color:#991b1b}.status-card.info .status-badge{background:#eff6ff;color:#1d4ed8}.status-card-body{padding:13px 16px 16px}.status-card-body p{color:#475569}.status-card-body ul{margin:12px 0 0;padding-left:18px;color:#334155}.status-card-body li+li{margin-top:8px}.status-card-body span{color:#64748b}.nearby-card{margin-top:18px}.nearby-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.nearby-head h2{margin:0 0 6px}.nearby-head p,.status-card-body p{font-size:15px;margin:0}.nearby-results{margin-top:14px}.nearby-list{display:grid;gap:10px}.nearby-stop-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #dbe4ee;background:#f8fafc;padding:13px 14px}.nearby-stop-card h3{margin:0 0 4px;font-size:17px}.nearby-stop-card p{font-size:14px;margin:0}.nearby-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.nearby-actions button{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff;cursor:pointer}.nearby-actions .primary{background:var(--blue);color:#fff;border-color:var(--blue)}.slim-card{box-shadow:none;margin:0;padding:12px}.admin-data-status-card{margin-top:18px}.data-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.data-status-card{display:grid;gap:7px;border:1px solid #dbe4ee;background:#fff;padding:14px}.data-status-card small{color:#64748b;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.data-status-card strong,.status-stat-grid-v51 b{font-size:24px;color:#0f172a}.data-status-card span{color:#64748b;font-size:13px}.data-status-card.ok{border-color:#86efac;background:#f0fdf4}.data-status-card.warn{border-color:#fed7aa;background:#fff7ed}.data-status-card.bad{border-color:#fca5a5;background:#fef2f2}.data-status-card.ok small{color:#166534}.data-status-card.warn small{color:#9a3412}.data-status-card.bad small{color:#991b1b}@media (max-width:900px){.nearby-head,.page-title-row{display:grid}.data-status-grid,.status-grid{grid-template-columns:1fr}.status-card-top{grid-template-columns:auto 1fr}.status-badge{grid-column:2}.nearby-stop-card{display:grid}.nearby-actions{justify-content:flex-start}.page-title-row .primary{width:100%}}.cron-led{display:inline-block;width:12px;height:12px;border-radius:999px;margin-right:8px;vertical-align:-1px;background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.16)}.cron-led.ok{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16)}.cron-led.warn{background:#d97706;box-shadow:0 0 0 4px rgba(217,119,6,.16)}.cron-led.bad{background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.16)}.station-card.station-refreshing .station-updated{color:var(--blue,#005EB8)}.delay-stats-card{margin-top:16px;padding:0;overflow:hidden}.delay-stats-toggle{width:100%;background:0 0;border:0;padding:14px 18px;text-align:left;font-size:.93rem;font-weight:600;color:var(--dark);cursor:pointer;border-radius:12px;transition:background .15s}.delay-stats-toggle:hover{background:var(--blue-light,#eef6ff);color:var(--blue)}.delay-stats-section{display:none;padding:0 16px 16px}.delay-stats-section.open{display:block}.delay-stats-desc{font-size:.85rem;margin-bottom:12px}.delay-stats-empty,.delay-stats-loading{color:var(--muted);font-size:.9rem;padding:8px 0}.delay-stat-row{display:grid;grid-template-columns:44px 1fr 52px 80px;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.about-dl>div:last-child,.delay-stat-row:last-child{border-bottom:none}.delay-stat-badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:2px 6px;border-radius:6px;font-size:.78rem;font-weight:700;text-align:center;white-space:nowrap}.delay-stat-bar-wrap{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.delay-stat-bar{height:100%;border-radius:4px;opacity:.78;transition:width .4s ease}.delay-stat-avg,.delay-stat-meta{white-space:nowrap;text-align:right}.delay-stat-avg{font-size:.88rem;font-weight:700}.delay-stat-meta{font-size:.78rem}.delay-stat-row.severe .delay-stat-avg{color:#dc2626}.delay-stat-row.warning .delay-stat-avg{color:#d97706}.delay-stat-row.ok .delay-stat-avg{color:#16a34a}#mapLocateButton.active{background:var(--blue,#005EB8)!important;color:#fff!important;border-color:var(--blue,#005EB8)!important}html[data-theme=dark] .delay-stats-toggle,html[data-theme=dark] .sl-dep-main span>b{color:#e5edf7}html[data-theme=dark] .delay-stats-toggle:hover{background:#17243a;color:#bfdbfe}html[data-theme=dark] .delay-stat-row{border-color:#26364d}html[data-theme=dark] .delay-stat-bar-wrap{background:#26364d}.about-hero{display:flex;align-items:flex-start;gap:20px;margin-bottom:28px}.about-hero-icon{font-size:48px;line-height:1;flex:0 0 auto;margin-top:4px}.about-card h2,.about-hero h1{font-size:30px;font-weight:800;letter-spacing:-.03em;margin:0 0 6px}.about-hero p{color:var(--text-muted);font-size:16px;line-height:1.6;margin:0;max-width:680px}.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:start}.about-card{padding:22px 24px}.about-card h2{font-size:16px;margin:0 0 14px;letter-spacing:-.02em}.about-card p{color:var(--text-soft);font-size:14px;line-height:1.65;margin:0 0 10px}.about-card p:last-child{margin-bottom:0}.about-feature-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.about-feature-list li{font-size:13.5px;color:var(--text-soft);display:flex;align-items:baseline;gap:8px;padding:0}.about-dl{margin:0 0 14px;display:grid;gap:10px}.about-dl>div{display:grid;grid-template-columns:120px 1fr;gap:8px;padding:9px 0;border-bottom:1px solid var(--hairline);font-size:13.5px}.about-dl dt{font-weight:700;color:var(--text-soft)}.about-dl dd{margin:0;color:var(--text-muted)}.about-dl a{color:var(--link);text-decoration:underline;text-underline-offset:3px}.about-disclaimer{font-size:12px;line-height:1.55;padding:10px 12px;background:var(--surface-soft);border:1px solid var(--hairline);border-radius:10px;margin-top:10px}.about-card-contact{background:linear-gradient(135deg,var(--surface-raised),var(--surface-soft))}.about-contact-name{font-size:16px;font-weight:700;margin:0 0 14px;color:var(--text)}.about-contact-links{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.about-contact-btn{display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:12px;border:1.5px solid var(--hairline);background:var(--surface);color:var(--text-soft);font-size:14px;font-weight:600;text-decoration:none;transition:border-color .14s,background .14s,color .14s,box-shadow .14s}.about-contact-btn:hover{border-color:color-mix(in srgb,var(--blue) 50%,var(--hairline));background:var(--surface-hover);color:var(--blue);box-shadow:0 4px 14px rgba(0,94,184,.1)}.about-contact-btn span:first-child{font-size:18px;flex:0 0 auto}.about-contact-btn span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.about-contact-placeholder{font-size:13px}.about-contact-placeholder code{background:var(--surface-soft);border:1px solid var(--hairline);border-radius:5px;padding:1px 5px;font-size:12px}.about-version-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--hairline);font-size:12.5px}.about-version-badge{background:var(--info-bg);color:var(--info-text);border:1px solid color-mix(in srgb,var(--info-text) 28%,transparent);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:800}html[data-theme=dark] .about-card-contact{background:linear-gradient(135deg,var(--surface),var(--surface-soft))}html[data-theme=dark] .about-contact-btn,html[data-theme=dark] .about-disclaimer{background:var(--surface-muted)}@media (max-width:700px){.about-hero{flex-direction:column;gap:12px}.about-hero-icon{font-size:38px}.about-hero h1{font-size:26px}.about-dl>div,.about-grid{grid-template-columns:1fr}.about-dl>div{gap:3px}.about-dl dt::after{content:":"}}.smart-page .page-title-row{align-items:flex-start;gap:18px}.smart-dashboard,.smart-grid{display:grid;gap:18px}.smart-grid{gap:14px}.smart-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.smart-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.smart-card{overflow:hidden}.smart-metric small{display:block;color:var(--text-muted);font-weight:800;margin-bottom:6px}.smart-metric strong{font-size:32px;letter-spacing:-.04em}.smart-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.smart-section-head h2{margin:0 0 4px}.smart-inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.smart-inline-form input,.smart-inline-form select{min-height:40px;border:1px solid var(--border);border-radius:12px;padding:9px 12px;background:var(--card);color:var(--dark)}.smart-inline-form input{flex:1 1 180px}.smart-list{display:grid;gap:10px}.smart-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border:1px solid var(--hairline);border-radius:16px;padding:12px;background:var(--surface-soft)}.smart-row strong{display:block}.smart-row small{display:block;color:var(--text-muted);margin-top:3px}.smart-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.journey-action-row button,.smart-actions button,.smart-inline-form button,.smart-search-row button{border-radius:999px;padding:8px 11px;font-weight:800;font-size:12.5px}.smart-search-results{display:grid;gap:8px;margin-top:10px}.smart-search-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--hairline);border-radius:14px;padding:10px;background:var(--surface-soft)}.smart-cache-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}.smart-cache-note,.smart-watch-results .disruption-card{margin-top:10px}.smart-recent-list{margin:8px 0 0 20px}.smart-recent-list li{margin:6px 0}.smart-line-profile-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.smart-profile-metrics{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.journey-action-row{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}#batterySaverToggle.active,#heatToggle.active,.bottom-bar .bb-btn.active{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important;box-shadow:0 4px 14px rgba(0,94,184,.28)!important}html[data-battery-saver="1"] .leaflet-marker-icon{transition-duration:.05s!important}html[data-theme=dark] .smart-row,html[data-theme=dark] .smart-search-row{background:var(--surface-soft);border-color:var(--hairline)}@media (max-width:900px){.smart-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.smart-two-col{grid-template-columns:1fr}.smart-row{display:block}.smart-actions{justify-content:flex-start;margin-top:10px}}@media (max-width:520px){.smart-summary-grid{grid-template-columns:1fr}.smart-inline-form{display:grid}.smart-inline-form input,.smart-inline-form select{width:100%}.journey-action-row{justify-content:flex-start}.smart-section-head{display:block}}.line-stops-list{list-style:none;margin:0;padding:0;display:grid;gap:0;max-height:360px;overflow:auto;scrollbar-width:thin}.line-stops-list li{display:grid;grid-template-columns:16px 1fr auto;gap:8px;align-items:start;padding:7px 0;border-bottom:1px solid #e8eef5;color:#334155}.line-stops-list li:last-child{border-bottom:0}.line-stops-list li b{display:flex;gap:6px;align-items:baseline;font-size:13px;line-height:1.25;min-width:0}.line-stops-list li b em{font-style:normal;color:#94a3b8;font-size:11px;min-width:20px;text-align:right}.line-stops-list li small{color:#64748b;font-size:11px;white-space:nowrap}.line-stops-list li.current b,.line-stops-list li.current small{color:#005eb8;font-weight:900}.line-stops-list li.past{opacity:.5}.line-stops-list .dot{width:9px;height:9px;border-radius:999px;background:#cbd5e1;margin-top:4px;box-shadow:0 0 0 4px rgba(148,163,184,.1)}.line-stops-list .dot.active{background:#005eb8;box-shadow:0 0 0 4px rgba(0,94,184,.14)}.line-stops-list.compact-stops{max-height:280px}.route-card-stop-list{max-height:calc(100dvh - 260px)}.line-stops-details{border:1px solid #e2e8f0;border-radius:12px;background:#fff;margin:8px 0;overflow:hidden}.line-stops-details summary{cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:9px 10px;font-size:13px;font-weight:800;color:#334155}.line-stops-details summary small{font-weight:700;color:#64748b}.line-stops-details .line-stops-list{padding:0 10px 8px;max-height:260px}.line-stops-loading{background:#fff;border:1px dashed #dbe4ee;border-radius:12px;padding:10px}.station-line-stops{max-height:none}.route-stops-card .station-block{border-bottom:0}.station-title h2 .station-line-badge{vertical-align:middle;margin-right:6px}@media (max-width:900px){.line-stops-list{max-height:260px}.route-card-stop-list{max-height:calc(100dvh - 300px)}.line-stops-details summary{grid-template-columns:auto 1fr}.line-stops-details summary small{grid-column:2}}.line-chip,.station-line-badge,.vehicle-head,.vehicle-head .close,.vehicle-marker{color:var(--sl-line-text-color,#fff)}.vehicle-live-icon{will-change:transform}.vehicle-marker.live{position:relative;transform:translateZ(0);transition:box-shadow .15s ease}.vehicle-marker.live .vehicle-label{position:relative;z-index:2}.vehicle-heading{position:absolute;left:50%;top:-8px;z-index:1;width:0;height:0;transform-origin:50% 18px;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:8px solid var(--sl-line-color,var(--blue));filter:drop-shadow(0 1px 1px rgba(15,23,42,.35))}.vehicle-marker.bus .vehicle-heading{top:-3px;border-left-width:1.5px;border-right-width:1.5px;border-bottom-width:3px;transform-origin:50% 8px}.vehicle-marker.bus{font-size:6px!important;line-height:1!important;border-width:1.5px!important;font-weight:950;letter-spacing:-.05em}.leaflet-interactive{cursor:pointer}.stop-hit-target{cursor:pointer;pointer-events:auto}.stop-visible-marker{pointer-events:none}.leaflet-marker-pane svg{overflow:visible}.stop-div-icon{background:0 0!important;border:0!important;box-shadow:none!important;display:grid;place-items:center;overflow:visible!important;pointer-events:auto!important}.stop-click-dot,.stop-click-target{position:relative;border-radius:999px}.stop-click-target{width:100%;height:100%;display:grid;place-items:center;cursor:pointer;pointer-events:auto;touch-action:manipulation;background:rgba(255,255,255,.01)}.stop-click-target::before{content:"";position:absolute;inset:1px;border-radius:999px;background:color-mix(in srgb,var(--stop-color,#005EB8) 12%,transparent);opacity:.55;transform:scale(.9);transition:transform .12s ease,opacity .12s ease}.stop-click-dot{z-index:1;width:13px;height:13px;background:#fff;border:3px solid var(--stop-color,#005EB8);box-shadow:0 3px 10px rgba(15,23,42,.26),0 0 0 1px rgba(255,255,255,.8)}.stop-div-bus .stop-click-target::before{background:rgba(227,6,19,.08)}.stop-click-target:hover::before{opacity:.9;transform:scale(1)}.stop-click-target:hover .stop-click-dot,.stop-div-icon:focus .stop-click-dot{box-shadow:0 4px 14px rgba(15,23,42,.32),0 0 0 4px color-mix(in srgb,var(--stop-color,#005EB8) 18%,transparent)}.stop-div-icon{touch-action:manipulation}.stop-div-metro_blue .stop-click-target,.stop-div-metro_green .stop-click-target,.stop-div-metro_red .stop-click-target,.stop-div-ship .stop-click-target,.stop-div-train .stop-click-target,.stop-div-tram .stop-click-target{min-width:42px;min-height:42px}.vehicle-marker.unknown{background:#64748b!important;box-shadow:0 2px 8px rgba(15,23,42,.28)!important}.vehicle-marker.compact{box-shadow:0 2px 8px rgba(15,23,42,.28);border-style:solid;letter-spacing:-.04em}.vehicle-marker.dot-only .vehicle-label{display:none}.vehicle-marker.dot-only::after{content:"";position:absolute;inset:31%;border-radius:999px;background:rgba(255,255,255,.95)}.vehicle-marker.with-label{min-width:15px}.vehicle-marker.bus.dot-only::after{inset:35%}.vehicle-marker.compact .vehicle-heading{top:-5px;border-left-width:2.5px;border-right-width:2.5px;border-bottom-width:5px;transform-origin:50% 11px}.vehicle-marker.bus.compact .vehicle-heading{top:-3px;border-left-width:1.5px;border-right-width:1.5px;border-bottom-width:3px;transform-origin:50% 7px}.vehicle-body-v39 .vehicle-live-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:10px 12px;background:#f8fbff;border-bottom:1px solid #dbe4ee}.station-quick-grid div,.vehicle-live-summary div{border:1px solid #e2e8f0;background:#fff;border-radius:11px;padding:8px 9px;display:grid;gap:2px}.station-quick-grid small,.vehicle-live-summary small{color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.025em}.vehicle-live-summary strong{font-size:14px;color:#0f172a}.route-progress small em{margin-left:auto;color:#64748b;font-style:normal;font-weight:800}.vehicle-body-v39 .line-stops-list.compact-stops{max-height:230px}.vehicle-body-v39 .vehicle-row strong{font-weight:800}.vehicle-updated{border-top:1px solid #e2e8f0}.station-card{width:min(430px,calc(100vw - 24px));max-height:calc(100dvh - 96px);border:1px solid rgba(203,213,225,.95)}.station-head-v39{border-top:5px solid var(--station-color,#005EB8);background:linear-gradient(180deg,#fff,#f8fbff)}.station-pin-v39{color:var(--station-color,#005EB8);border-color:color-mix(in srgb,var(--station-color,#005EB8) 34%,#dbeafe);background:color-mix(in srgb,var(--station-color,#005EB8) 10%,#fff);font-size:14px}.station-body-v39{padding:0;background:#fff;overflow:auto;max-height:calc(100dvh - 190px)}.station-body-v39 .station-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px;background:#f8fbff;border-bottom:1px solid #e2e8f0}.station-quick-grid div{border-radius:12px;padding:9px 10px}.station-quick-grid small{font-weight:900;letter-spacing:.03em}.station-quick-grid strong{font-size:16px;color:#0f172a}.station-body-v39 .station-block{padding:12px 14px;margin:0;border-bottom:1px solid #e6edf5}.station-body-v39 .station-lines-block{background:#fff}.station-body-v39 .station-chain{border:0;border-radius:0;background:#f8fafc}.station-body-v39 .station-tabs{margin:0;border:0;border-radius:0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.station-body-v39 .station-tab-body{padding:12px 14px}.station-body-v39 .departure-list{box-shadow:0 1px 0 rgba(15,23,42,.04)}.station-live-list{margin-bottom:12px}.station-live-list+.station-timetable{margin-top:8px;padding-top:10px;border-top:1px dashed #cbd5e1}.station-actions{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:8px;padding:12px 14px;background:#f8fafc;border-top:1px solid #e2e8f0}.station-actions button{border:1px solid var(--border);background:#fff;border-radius:11px;padding:11px 10px;font-weight:800;cursor:pointer}.station-actions .primary{background:var(--blue);border-color:var(--blue);color:#fff}.station-updated{display:block;padding:0 14px 12px;background:#f8fafc}.station-body-v39 .line-stops-loading{background:#fff}.station-body-v39 .line-stops-details{box-shadow:0 1px 0 rgba(15,23,42,.03)}.station-body-v39 .line-stops-details summary{grid-template-columns:auto 1fr auto}.station-body-v39 .station-warnings{margin:12px 14px}.station-title small{display:block;line-height:1.3}@media (max-width:900px){.station-card{left:12px!important;right:12px!important;width:auto!important;top:96px!important;max-height:calc(100dvh - 110px)}.station-body-v39{max-height:calc(100dvh - 188px)}.station-actions{grid-template-columns:1fr}.station-body-v39 .station-quick-grid,.vehicle-body-v39 .vehicle-live-summary{grid-template-columns:1fr 1fr}}.vehicle-marker.same-size{line-height:1!important;font-weight:950;letter-spacing:-.04em}.vehicle-marker.same-size.bus{letter-spacing:-.04em}.station-card,.vehicle-card{pointer-events:auto;display:flex;flex-direction:column;max-height:var(--popup-available-height,min(720px,calc(100dvh - 96px)));overflow:hidden!important}.station-card>.station-head,.vehicle-card>.vehicle-head{flex:0 0 auto}.station-card>.station-body,.station-card>.vehicle-body,.vehicle-card>.vehicle-body{flex:1 1 auto;min-height:0;overflow-y:auto!important;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.vehicle-card>.vehicle-body{max-height:var(--popup-body-max-height,calc(100dvh - 168px))}.station-card>.station-body-v39,.station-card>.vehicle-body.station-body-v39{max-height:var(--popup-body-max-height,calc(100dvh - 188px))}.station-card>.vehicle-body:not(.station-body-v39){max-height:var(--popup-body-max-height,calc(100dvh - 170px))}.line-stops-list::-webkit-scrollbar,.station-card>.station-body::-webkit-scrollbar,.station-card>.vehicle-body::-webkit-scrollbar,.vehicle-card>.vehicle-body::-webkit-scrollbar{width:9px}.line-stops-list::-webkit-scrollbar-track,.station-card>.station-body::-webkit-scrollbar-track,.station-card>.vehicle-body::-webkit-scrollbar-track,.vehicle-card>.vehicle-body::-webkit-scrollbar-track{background:#f1f5f9;border-radius:999px}.line-stops-list::-webkit-scrollbar-thumb,.station-card>.station-body::-webkit-scrollbar-thumb,.station-card>.vehicle-body::-webkit-scrollbar-thumb,.vehicle-card>.vehicle-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px;border:2px solid #f1f5f9}.line-stops-list::-webkit-scrollbar-thumb:hover,.station-card>.station-body::-webkit-scrollbar-thumb:hover,.station-card>.vehicle-body::-webkit-scrollbar-thumb:hover,.vehicle-card>.vehicle-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}.station-actions,.station-updated,.vehicle-actions,.vehicle-updated{flex-shrink:0}@media (max-width:900px){.station-card,.vehicle-card{max-height:var(--popup-available-height,calc(100dvh - 104px))!important}.station-card>.station-body,.station-card>.station-body-v39,.station-card>.vehicle-body,.station-card>.vehicle-body.station-body-v39,.vehicle-card>.vehicle-body{max-height:var(--popup-body-max-height,calc(100dvh - 188px))!important}}.stop-div-metro_blue .stop-click-dot,.stop-div-metro_green .stop-click-dot,.stop-div-metro_red .stop-click-dot,.stop-div-ship .stop-click-dot,.stop-div-train .stop-click-dot,.stop-div-tram .stop-click-dot{width:18px;height:18px;border-width:3px;box-shadow:0 4px 14px rgba(15,23,42,.34),0 0 0 2px rgba(255,255,255,.96)}.stop-div-metro_blue .stop-click-target::before,.stop-div-metro_green .stop-click-target::before,.stop-div-metro_red .stop-click-target::before,.stop-div-ship .stop-click-target::before,.stop-div-train .stop-click-target::before,.stop-div-tram .stop-click-target::before{background:color-mix(in srgb,var(--stop-color,#005EB8) 18%,#fff 82%);box-shadow:0 0 0 1px color-mix(in srgb,var(--stop-color,#005EB8) 36%,transparent);inset:3px;opacity:.62;background:color-mix(in srgb,var(--stop-color,#005EB8) 18%,transparent);box-shadow:none}.sl-stop-target{min-width:48px;min-height:48px;background:0 0}.sl-stop-symbol,.sl-stop-symbol-wrap{display:grid;place-items:center;color:#fff}.sl-stop-symbol-wrap{position:relative;z-index:2;width:33px;height:33px;border-radius:999px;background:var(--stop-color,#005EB8);border:3px solid #fff;box-shadow:0 4px 16px rgba(15,23,42,.34),0 0 0 2px color-mix(in srgb,var(--stop-color,#005EB8) 42%,transparent)}.sl-stop-symbol{width:100%;height:100%;font-weight:950;font-size:21px;line-height:1;letter-spacing:-.05em}.sl-stop-symbol-svg{width:21px;height:21px;display:block;fill:currentColor}.stop-div-bus.stop-div-merged .stop-click-dot{box-shadow:0 2px 8px rgba(15,23,42,.23),0 0 0 1px rgba(255,255,255,.9),0 0 0 4px color-mix(in srgb,var(--stop-color,#E30613) 16%,transparent)}.stop-click-target:hover .sl-stop-symbol-wrap{transform:scale(1.06)}.stop-click-target:hover .sl-stop-symbol-wrap,.stop-div-icon:focus .sl-stop-symbol-wrap{box-shadow:0 6px 20px rgba(15,23,42,.38),0 0 0 4px color-mix(in srgb,var(--stop-color,#005EB8) 24%,transparent)}.station-pin .sl-popup-mode,.station-pin-v39 .sl-popup-mode{display:grid;place-items:center;width:100%;height:100%;color:var(--station-color,#005EB8)}.station-pin .sl-popup-mode-letter,.station-pin-v39 .sl-popup-mode-letter{font-weight:950;font-size:15px;letter-spacing:-.04em}.station-pin .sl-stop-symbol-svg,.station-pin-v39 .sl-stop-symbol-svg{width:16px;height:16px;fill:currentColor}.leaflet-stop-pane{z-index:720!important;pointer-events:none}.leaflet-pane.leaflet-stop-pane path,.leaflet-pane.leaflet-stop-pane svg,.leaflet-stop-pane .leaflet-marker-icon{pointer-events:auto!important}.stop-div-metro_blue,.stop-div-metro_green,.stop-div-metro_red,.stop-div-ship,.stop-div-train,.stop-div-tram{z-index:2200!important}.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-ship .sl-stop-symbol-wrap,.stop-div-train .sl-stop-symbol-wrap,.stop-div-tram .sl-stop-symbol-wrap{box-shadow:0 6px 18px rgba(15,23,42,.42),0 0 0 3px rgba(255,255,255,.96)!important}.stop-div-bus{z-index:1600!important}.stop-div-multi.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-multi.stop-div-ship .sl-stop-symbol-wrap,.stop-div-multi.stop-div-train .sl-stop-symbol-wrap,.stop-div-multi.stop-div-tram .sl-stop-symbol-wrap{box-shadow:0 8px 22px rgba(15,23,42,.46),0 0 0 4px rgba(255,255,255,.96)!important}.status-summary{display:block;margin:8px 0 18px}.status-hero{position:relative;overflow:hidden;border:1px solid #dbe4ee;background:linear-gradient(135deg,#fff,#f8fbff);box-shadow:0 16px 42px rgba(15,23,42,.08);padding:18px;display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:16px;align-items:center}.status-hero::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--status-hero-color,#0b57b7)}.status-hero.ok{--status-hero-color:#16a34a}.status-hero.info{--status-hero-color:#0b57b7}.status-hero.warning{--status-hero-color:#f59e0b}.status-hero.severe{--status-hero-color:#dc2626}.status-hero.skeleton{--status-hero-color:#94a3b8}.status-hero-main{display:grid;gap:5px}.status-hero-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#64748b}.status-hero-main strong{font-size:clamp(22px,3vw,34px);line-height:1.08;color:#0f172a}.status-hero-main span:last-child{color:#64748b}.status-stat-grid-v51{display:grid;grid-template-columns:repeat(3,88px);gap:10px}.status-stat-grid-v51 span{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:11px 12px;display:grid;gap:2px;text-align:center}.status-stat-grid-v51 small{font-size:11px;color:#64748b;font-weight:800;text-transform:uppercase}.status-filter-row{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.status-filter-chip{border:1px solid #dbe4ee;background:#fff;border-radius:999px;padding:8px 12px;color:#334155;cursor:pointer}.status-filter-chip span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:999px;margin-left:5px;background:#eef3f8;color:#334155;font-size:12px}.status-filter-chip.active,.vehicle-actions-sl button.active{background:#0b57b7;border-color:#0b57b7}.status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.status-card-v51{--status-color:#0b57b7;display:grid;grid-template-columns:auto 1fr;gap:0;border:1px solid #dbe4ee;background:#fff;overflow:hidden}.status-card-v51.ok{border-color:#bfe7d0}.status-card-v51.warning{border-color:#f6d28b;background:#fffcf5}.status-card-v51.severe{border-color:#f2aaa8;background:#fff7f7}.status-card-v51.info{border-color:#bfd8f3;background:#f8fbff}.status-card-left{width:56px;background:linear-gradient(180deg,color-mix(in srgb,var(--status-color) 14%,#fff),#fff);display:grid;place-items:start center;padding-top:15px;position:relative}.status-line-strip{position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--status-color)}.status-mode-icon-v51{width:34px;height:34px;border-radius:999px;background:var(--status-color);color:#fff;display:grid;place-items:center;font-weight:950;box-shadow:0 5px 14px rgba(15,23,42,.22);font-size:15px}.status-card-main-v51{padding:15px 15px 14px}.status-card-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.status-card-title-row h2{margin:0 0 8px;font-size:19px}.status-badge-v51{white-space:nowrap;border-radius:999px;padding:7px 10px;background:#eef3f8;color:#334155;font-size:12px}.status-card-v51.ok .status-badge-v51{background:#ecfdf3;color:#166534}.status-card-v51.warning .status-badge-v51{background:#fff7ed;color:#9a3412}.status-card-v51.severe .status-badge-v51{background:#fef2f2;color:#991b1b}.status-card-v51.info .status-badge-v51{background:#eff6ff;color:#1d4ed8}.status-card-body-v51{margin-top:12px}.status-card-body-v51 p{margin:0;color:#475569}.status-message-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.status-message-list li{border:1px solid #e2e8f0;background:rgba(255,255,255,.74);border-radius:13px;padding:10px;display:grid;gap:4px}.sl-dep-main span>b,.status-message-list b{color:#0f172a}.status-message-list span{color:#64748b;font-size:14px}.status-empty-card,.status-loading-card{display:grid;gap:4px}.status-loading-card span{color:#64748b}.stop-circle-marker{stroke:#fff;cursor:pointer;pointer-events:auto}.stop-circle-marker:hover{stroke-width:4px;filter:drop-shadow(0 4px 10px rgba(15,23,42,.45))}.stop-circle-metro_blue,.stop-circle-metro_green,.stop-circle-metro_red,.stop-circle-ship,.stop-circle-train,.stop-circle-tram{opacity:.97}.leaflet-pane.leaflet-stop-pane svg path{pointer-events:auto}@media (max-width:900px){.status-hero{grid-template-columns:1fr}.status-stat-grid-v51{grid-template-columns:repeat(3,1fr)}.status-card-title-row{display:grid}.status-grid{grid-template-columns:1fr}}.stop-circle-marker{stroke-width:3.4px!important;filter:drop-shadow(0 3px 8px rgba(15,23,42,.42))!important;vector-effect:non-scaling-stroke}.stop-circle-bus{stroke-width:2.1px!important;filter:drop-shadow(0 1px 4px rgba(15,23,42,.3))!important}.stop-circle-multi{stroke-width:4.4px!important;filter:drop-shadow(0 5px 13px rgba(15,23,42,.5))!important}.leaflet-pane.leaflet-stop-pane{z-index:780!important;pointer-events:auto!important}.leaflet-pane.leaflet-stop-pane .stop-div-icon{background:0 0!important;border:0!important;box-shadow:none!important;overflow:visible!important;pointer-events:auto!important;display:grid!important;place-items:center!important}.stop-div-icon .stop-click-target{pointer-events:auto!important;display:grid!important;place-items:center!important;position:relative!important;border-radius:999px!important;touch-action:manipulation!important}.stop-div-icon .stop-click-target::before{content:"";position:absolute;border-radius:999px;background:color-mix(in srgb,var(--stop-color,#005EB8) 16%,transparent);transform:scale(.9);transition:transform .12s ease,opacity .12s ease,box-shadow .12s ease}.stop-div-icon .sl-stop-symbol-wrap{position:relative;z-index:2;display:grid;place-items:center;border-radius:999px;background:var(--stop-color,#005EB8);color:#fff;border:3px solid #fff;box-shadow:0 6px 18px rgba(15,23,42,.38),0 0 0 2px color-mix(in srgb,var(--stop-color,#005EB8) 38%,transparent)}.stop-div-icon .sl-stop-symbol{font-weight:950;line-height:1;letter-spacing:-.06em;color:#fff}.stop-div-icon .sl-stop-symbol-svg{display:block;fill:currentColor}.stop-div-multi .sl-stop-symbol-wrap{width:44px!important;height:44px!important;border-width:4px!important;box-shadow:0 8px 24px rgba(15,23,42,.44),0 0 0 3px color-mix(in srgb,var(--stop-color,#005EB8) 40%,transparent)!important}.stop-div-multi .sl-stop-symbol{font-size:27px!important}.stop-div-multi .sl-stop-symbol-svg{width:26px!important;height:26px!important}.stop-div-bus .stop-click-dot{position:relative;z-index:2;border-radius:999px;background:#fff;border:2px solid var(--stop-color,#E30613)}.stop-div-bus .stop-click-target::before{background:rgba(227,6,19,.1)!important}.stop-div-icon:focus .stop-click-target::before,.stop-div-icon:hover .stop-click-target::before{opacity:1;transform:scale(1);box-shadow:0 0 0 5px color-mix(in srgb,var(--stop-color,#005EB8) 16%,transparent)}.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-ship .sl-stop-symbol-wrap,.stop-div-train .sl-stop-symbol-wrap,.stop-div-tram .sl-stop-symbol-wrap{box-shadow:0 4px 13px rgba(15,23,42,.34),0 0 0 2px color-mix(in srgb,var(--stop-color,#005EB8) 30%,transparent)!important}.stop-div-multi.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-multi.stop-div-ship .sl-stop-symbol-wrap,.stop-div-multi.stop-div-train .sl-stop-symbol-wrap,.stop-div-multi.stop-div-tram .sl-stop-symbol-wrap{box-shadow:0 6px 17px rgba(15,23,42,.38),0 0 0 2.5px color-mix(in srgb,var(--stop-color,#005EB8) 34%,transparent)!important}.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-multi.stop-div-ship .sl-stop-symbol-wrap,.stop-div-multi.stop-div-train .sl-stop-symbol-wrap,.stop-div-multi.stop-div-tram .sl-stop-symbol-wrap,.stop-div-ship .sl-stop-symbol-wrap,.stop-div-train .sl-stop-symbol-wrap,.stop-div-tram .sl-stop-symbol-wrap{box-shadow:0 2px 7px rgba(15,23,42,.3),0 0 0 1px color-mix(in srgb,var(--stop-color,#005EB8) 28%,transparent)!important}.stop-div-metro_blue .sl-stop-target,.stop-div-metro_green .sl-stop-target,.stop-div-metro_red .sl-stop-target,.stop-div-multi.stop-div-metro_blue .sl-stop-target,.stop-div-multi.stop-div-metro_green .sl-stop-target,.stop-div-multi.stop-div-metro_red .sl-stop-target,.stop-div-multi.stop-div-ship .sl-stop-target,.stop-div-multi.stop-div-train .sl-stop-target,.stop-div-multi.stop-div-tram .sl-stop-target,.stop-div-ship .sl-stop-target,.stop-div-train .sl-stop-target,.stop-div-tram .sl-stop-target{min-width:28px!important;min-height:28px!important}.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-metro_red .sl-stop-symbol-wrap{box-shadow:0 1px 5px rgba(15,23,42,.28),0 0 0 1px color-mix(in srgb,var(--stop-color,#005EB8) 24%,transparent)!important}.stop-div-train .sl-stop-symbol-wrap{width:18px!important;height:18px!important;border-width:1.5px!important}.stop-div-train .sl-stop-symbol-wrap,.stop-div-tram .sl-stop-symbol-wrap{box-shadow:0 1px 5px rgba(15,23,42,.28),0 0 0 1px color-mix(in srgb,var(--stop-color,#005EB8) 24%,transparent)!important}.stop-div-multi.stop-div-train .sl-stop-symbol-wrap,.stop-div-ship .sl-stop-symbol-wrap{width:18px!important;height:18px!important;border-width:1.5px!important}.stop-div-multi.stop-div-train .sl-stop-symbol-wrap,.stop-div-multi.stop-div-tram .sl-stop-symbol-wrap,.stop-div-ship .sl-stop-symbol-wrap{box-shadow:0 1px 5px rgba(15,23,42,.28),0 0 0 1px color-mix(in srgb,var(--stop-color,#005EB8) 24%,transparent)!important}.stop-div-multi.stop-div-ship .sl-stop-symbol-wrap{width:18px!important;height:18px!important;border-width:1.5px!important}.stop-div-multi.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-multi.stop-div-ship .sl-stop-symbol-wrap{box-shadow:0 1px 5px rgba(15,23,42,.28),0 0 0 1px color-mix(in srgb,var(--stop-color,#005EB8) 24%,transparent)!important}.stop-div-multi.stop-div-ship .sl-stop-symbol-svg,.stop-div-multi.stop-div-train .sl-stop-symbol-svg,.stop-div-ship .sl-stop-symbol-svg,.stop-div-train .sl-stop-symbol-svg{width:10px!important;height:10px!important}.stop-div-icon .stop-click-target::before{inset:6px!important;opacity:.24!important}.stop-div-icon:focus .sl-stop-symbol-wrap,.stop-div-icon:hover .sl-stop-symbol-wrap{transform:scale(1.06)!important}.vehicle-marker.same-size,.vehicle-marker.same-size.bus{font-size:7px!important;border-width:1.25px!important;box-shadow:0 1px 5px rgba(15,23,42,.26)!important}.vehicle-marker.same-size.with-label{min-width:18px!important;min-height:18px!important}.vehicle-marker.same-size.bus.dot-only::after,.vehicle-marker.same-size.dot-only::after{inset:34%!important}.vehicle-marker.same-size .vehicle-heading,.vehicle-marker.same-size.bus .vehicle-heading{top:-4px!important;border-left-width:2px!important;border-right-width:2px!important;border-bottom-width:4px!important;transform-origin:50% 9px!important}.stop-div-multi.stop-div-tram .sl-stop-symbol-wrap,.stop-div-tram .sl-stop-symbol-wrap{width:15px!important;height:15px!important;border-width:1.5px!important}.stop-div-multi.stop-div-tram .sl-stop-symbol-svg,.stop-div-tram .sl-stop-symbol-svg{width:8.5px!important;height:8.5px!important}.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-metro_red .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_blue .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_green .sl-stop-symbol-wrap,.stop-div-multi.stop-div-metro_red .sl-stop-symbol-wrap{width:16px!important;height:16px!important;border-width:1.5px!important}.stop-div-metro_blue .sl-stop-symbol,.stop-div-metro_green .sl-stop-symbol,.stop-div-metro_red .sl-stop-symbol,.stop-div-multi.stop-div-metro_blue .sl-stop-symbol,.stop-div-multi.stop-div-metro_green .sl-stop-symbol,.stop-div-multi.stop-div-metro_red .sl-stop-symbol{font-size:10px!important;letter-spacing:-.06em!important}.map-notice{position:absolute;left:50%;top:88px;transform:translateX(-50%);z-index:1200;max-width:min(720px,calc(100vw - 36px));display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid #dbe4ee;background:rgba(255,255,255,.96);box-shadow:0 12px 34px rgba(15,23,42,.18);font-size:14px;color:#0f172a;backdrop-filter:blur(12px)}.map-notice.hidden{display:none}.map-notice.warn{border-color:#facc15;background:#fffbeb}.map-notice.error{border-color:#fca5a5;background:#fff1f2}.map-notice button{border:0;background:rgba(15,23,42,.08);width:24px;height:24px;border-radius:999px;cursor:pointer;font-size:17px;line-height:1}.station-card,.vehicle-card{z-index:1250}.leaflet-tooltip-pane{z-index:900}.leaflet-popup-pane{z-index:1100}.vehicle-live-icon{background:0 0!important;border:0!important;overflow:visible!important}.stop-div-icon,.vehicle-marker.live{will-change:transform}.station-card .close,.vehicle-card .close{min-width:30px;min-height:30px;display:grid;place-items:center}.station-info-note{margin:12px 14px;padding:10px 12px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:12px;display:grid;gap:3px;font-size:13px}.station-info-note strong{font-size:13px}.station-info-note span{color:#475569}.station-timetable{display:grid;gap:10px}.station-timetable-title{display:grid;gap:2px;margin-bottom:2px}.station-timetable-note,.station-timetable-title small{color:#64748b}.station-timetable-row{border:1px solid #e2e8f0;background:#fff;border-radius:13px;padding:10px;display:grid;gap:9px;box-shadow:0 1px 0 rgba(15,23,42,.03)}.station-timetable-route{display:flex;align-items:center;gap:10px;min-width:0}.station-timetable-route strong{display:block;color:#0f172a;line-height:1.2}.station-timetable-route small{display:block;color:#64748b;margin-top:2px}.station-time-pills{display:flex;gap:6px;flex-wrap:wrap}.station-time-pills span{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:5px 8px;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;color:#0f172a;font-weight:800;font-variant-numeric:tabular-nums}.station-timetable-note{font-size:12px;margin:2px 0 0}.station-tabs{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))!important}.station-next-list .departure-row strong{display:grid;justify-items:end;gap:2px;min-width:62px}.station-event-row .planned-time{display:block;color:#64748b;font-size:11px;font-weight:700}.station-event-row .time-source{display:inline-block;margin-left:6px;color:#64748b}.station-event-row .delay-badge{display:inline-block;margin-left:8px;color:#b45309;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:2px 7px;font-style:normal;font-weight:900}.station-event-row.late .event-time{color:#dc2626}.station-event-row.cancelled .event-time{text-decoration:line-through}.station-event-row.cancelled .delay-badge{color:#991b1b;background:#fef2f2;border-color:#fecaca}.sl-live-pill{display:inline-flex;align-items:center;gap:4px;border-radius:999px;border:1px solid #dbe4ee;background:#f8fafc;color:#475569;padding:4px 8px;font-size:12px;font-weight:900;line-height:1}.sl-live-pill.ok{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.sl-live-pill.warn-text{background:#fff7ed;border-color:#fed7aa;color:#b45309}.sl-live-pill.bad{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.sl-live-pill.muted{background:#f1f5f9;border-color:#e2e8f0;color:#64748b}.station-live-strip,.vehicle-status-strip{display:flex;flex-wrap:wrap;margin-bottom:10px}.station-quick-grid-sl{grid-template-columns:repeat(3,1fr)!important}.station-event-row{min-height:54px}.station-event-row .live-source{background:#eef6ff;border-color:#bfdbfe;color:#0b57b7}.station-event-row small:empty{display:none}.station-head-v39{border-top:5px solid var(--station-color,var(--blue))}.station-body-v39{background:linear-gradient(180deg,#fff,#f8fbff)}.station-lines-block{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:10px 12px}.station-line-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.station-line-badge{border-radius:8px;padding:5px 9px;font-weight:900;box-shadow:0 1px 3px rgba(15,23,42,.12)}.vehicle-head-sl{border-top-left-radius:18px;border-top-right-radius:18px}.vehicle-body-v75{background:linear-gradient(180deg,#fff,#f8fbff)}.vehicle-live-summary-sl{grid-template-columns:1.3fr .8fr .9fr!important}.vehicle-mini-grid .vehicle-row{border-top:1px solid #e2e8f0}.vehicle-mini-grid .vehicle-row:first-child{border-top:1px solid #e2e8f0}.vehicle-actions-sl{grid-template-columns:1fr!important}.compact-route-progress{max-height:260px;overflow:auto}.vehicle-follow-bar{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:1260;display:flex;align-items:center;gap:10px;max-width:min(760px,calc(100vw - 28px));padding:10px 12px;border-radius:999px;background:rgba(15,23,42,.92);color:#fff;box-shadow:0 18px 40px rgba(15,23,42,.26);font-weight:800}.vehicle-follow-bar.hidden{display:none}.vehicle-follow-bar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-follow-bar button{border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:7px 10px;cursor:pointer;white-space:nowrap}.doctor-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.doctor-card{border:1px solid #e2e8f0;background:#fff;padding:13px;box-shadow:0 4px 18px rgba(15,23,42,.05);display:grid;gap:5px}.doctor-card span{justify-self:start;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900}.doctor-card.ok span{background:#dcfce7;color:#166534}.doctor-card.warn span{background:#fef3c7;color:#92400e}.doctor-card.bad span{background:#fee2e2;color:#991b1b}.doctor-card strong{font-size:15px}.doctor-card p{margin:0;color:#334155;font-size:13px}.doctor-card small{color:#64748b}.status-filter-row{max-height:94px;overflow:auto}.status-card-v51.severe,.status-card-v51.warning{box-shadow:0 12px 34px rgba(185,28,28,.1)}.status-message-list li span{line-height:1.35}.map-control-panel{max-height:calc(100vh - 120px);overflow:auto}.station-card,.vehicle-card{max-width:calc(100vw - 24px)}@media (max-width:700px){.app-header{height:72px}.map-wrap{height:calc(100vh - 72px)}.map-control-panel.compact{top:86px;right:12px}.leaflet-control-zoom{margin-top:12px!important}.station-card,.vehicle-card{position:absolute!important;left:8px!important;right:8px!important;top:auto!important;bottom:8px!important;width:auto!important;max-height:72vh!important;border-radius:20px 20px 16px 16px}.station-head,.vehicle-head{position:sticky;top:0;z-index:2}.station-body,.vehicle-body{max-height:calc(72vh - 68px)!important;overflow:auto!important;-webkit-overflow-scrolling:touch}.station-quick-grid-sl,.vehicle-live-summary-sl{grid-template-columns:1fr!important}.doctor-grid{grid-template-columns:1fr}.vehicle-follow-bar{bottom:12px;border-radius:18px;align-items:flex-start}.vehicle-follow-bar span{white-space:normal}.status-filter-row{max-height:138px}.status-card-left{display:none}.admin-grid,.admin-two-col{grid-template-columns:1fr!important}.station-card:not(.hidden)+.vehicle-follow-bar,.vehicle-card:not(.hidden)+.vehicle-follow-bar{bottom:calc(72vh + 14px)}}.map-extra-actions button,.theme-toggle{border:1px solid var(--border);cursor:pointer}.theme-toggle{margin-left:10px;background:var(--card);border-radius:999px;width:42px;height:42px;display:grid;place-items:center;font-weight:900;box-shadow:0 8px 22px rgba(15,23,42,.08)}.theme-toggle:hover{background:#eef6ff;color:var(--blue)}.map-extra-actions{display:flex;gap:8px;margin-top:10px}.map-extra-actions button{background:#fff;color:#0f172a;border-radius:10px;padding:10px 12px;font-weight:800}.map-extra-actions button:disabled{opacity:.65;cursor:progress}.map-control-panel.compact .map-extra-actions{display:none}.sl-departure-row{display:grid!important;gap:10px;align-items:center;padding:11px 12px;background:#fff}.sl-departure-row:nth-child(even){background:#fbfdff}.sl-dep-line{display:grid;gap:3px;justify-items:start}.sl-dep-line .line-chip{margin:0;font-size:15px;border-radius:8px;min-width:38px;text-align:center}.sl-dep-line small,.status-history-item time{font-size:11px;color:#64748b;font-weight:800}.sl-dep-main{min-width:0;display:grid;gap:4px}.sl-dep-main strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sl-dep-main span{display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:#64748b;font-size:12px}.sl-dep-status span{display:inline-flex;justify-content:center;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:900;background:#f1f5f9}.sl-dep-status .ok{background:#dcfce7;color:#166534}.sl-dep-status .warn{background:#fef3c7;color:#92400e}.sl-dep-status .bad,.station-alert-lines span{background:#fee2e2;color:#991b1b}.sl-dep-time{display:grid;justify-items:end;gap:2px}.sl-dep-time strong{font-size:19px;font-variant-numeric:tabular-nums}.sl-dep-time .planned-time{font-size:11px;color:#64748b}.station-alert,.station-alert-panel{border:1px solid #fed7aa;display:grid}.station-alert-panel{background:#fff7ed;border-radius:14px;padding:10px 12px;margin:12px 0;gap:8px}.station-alert{background:#fff;border-radius:12px;padding:9px 10px;gap:5px}.station-alert strong{color:#7c2d12}.station-alert p{margin:0;color:#334155;font-size:13px;line-height:1.35}.station-alert-lines,.status-history-item div{display:flex;gap:5px;flex-wrap:wrap}.station-alert-lines span{border-radius:7px;padding:2px 6px;font-weight:900;font-size:11px}.station-alert.severe{border-color:#fecaca;background:#fff1f2}.station-alert.info{border-color:#bfdbfe;background:#eff6ff}.station-alert.info strong{color:#1e3a8a}.status-history-card{margin-top:20px}.status-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.status-history-item{border:1px solid #e2e8f0;background:#fff;padding:12px;display:grid;gap:5px}.status-history-item.has-issues{border-color:#fed7aa;background:#fffaf0}.status-history-item time{font-size:12px}.status-history-item strong{font-size:15px}.status-history-item span{color:#475569;font-size:13px}.status-history-item em{font-style:normal;border:1px solid #e2e8f0;background:#f8fafc;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:800}.cache-summary{display:flex;flex-wrap:wrap;margin:0 0 10px}.cache-source,.cache-state,.cache-summary span{border:1px solid #dbe4ee;background:#f8fafc;font-size:12px}.cache-summary span{font-weight:900}.cache-source,.cache-state{border-radius:999px;padding:5px 8px}.cache-state.active{background:#dcfce7;border-color:#bbf7d0;color:#166534}.cache-state.expired{background:#f1f5f9;color:#64748b}.smart-cache-table code{white-space:nowrap}.smart-cache-table small{color:#64748b}.cache-expired{opacity:.72}html[data-theme=dark]{--muted:#94a3b8;--border:#26364d;--shadow:0 18px 60px rgba(0,0,0,.42);color-scheme:dark;--surface-raised:rgba(15,27,45,.94);--hairline:rgba(71,85,105,.58);--focus-ring:0 0 0 4px rgba(96,165,250,.22);--bg:#07111f;--card:#0f1b2d;--dark:#e5edf7;--muted:#9fb0c6;--border:#2a3a52;--text:#e5edf7;--text-soft:#cbd5e1;--text-muted:#9fb0c6;--text-subtle:#8293aa;--text-inverse:#06101f;--link:#93c5fd;--surface:#0f1b2d;--surface-soft:#111f33;--surface-raised:rgba(15,27,45,.96);--surface-muted:#101d30;--surface-hover:#17243a;--field-bg:#0b1626;--table-head:#152238;--hairline:#2a3a52;--good-bg:#10251a;--good-text:#86efac;--warn-bg:#2a1b0d;--warn-text:#fdba74;--bad-bg:#2b1014;--bad-text:#fca5a5;--info-bg:#0d1f36;--info-text:#bfdbfe}html[data-theme=dark] body{background:var(--bg);color:var(--dark)}html[data-theme=dark] .app-header{background:rgba(7,17,31,.92);border-color:#1f2d42}html[data-theme=dark] .brand small,html[data-theme=dark] .chip.neutral.active,html[data-theme=dark] .tag{background:#16233a;color:#cbd5e1;border-color:#2d3c55}html[data-theme=dark] .tab{color:#cbd5e1}html[data-theme=dark] .tab.active,html[data-theme=dark] .tab:hover{background:#17243a}html[data-theme=dark] .card,html[data-theme=dark] .glass,html[data-theme=dark] .result-card{background:rgba(15,27,45,.94);border-color:#2a3a52;color:#e5edf7}html[data-theme=dark] .sl-departure-row,html[data-theme=dark] .station-lines-block{background:rgba(15,27,45,.94);color:#e5edf7}html[data-theme=dark] .admin-metric,html[data-theme=dark] .doctor-card,html[data-theme=dark] .station-alert,html[data-theme=dark] .status-history-item{background:rgba(15,27,45,.94);border-color:#2a3a52;color:#e5edf7}html[data-theme=dark] .sl-departure-row:nth-child(even){background:#101d30}html[data-theme=dark] .muted,html[data-theme=dark] .page p,html[data-theme=dark] .sl-dep-line small,html[data-theme=dark] .sl-dep-main span,html[data-theme=dark] .status-history-item span{color:#94a3b8}html[data-theme=dark] .map-extra-actions button,html[data-theme=dark] button:not(.primary):not(.chip):not(.panel-toggle-btn),html[data-theme=dark] input,html[data-theme=dark] select{background:#101d30;color:#e5edf7;border-color:#2a3a52}html[data-theme=dark] .departure-list,html[data-theme=dark] .next-stops{background:#0f1b2d}html[data-theme=dark] .leaflet-tile{filter:brightness(.72) contrast(1.08) saturate(.82)}html[data-theme=dark] .leaflet-bar a,html[data-theme=dark] .leaflet-control-attribution{background:#101d30;color:#e5edf7;border-color:#2a3a52}html[data-theme=dark] .app-footer{color:#cbd5e1}html[data-theme=dark] .station-alert-panel{background:#2a1b0d;border-color:#78350f}html[data-theme=dark] .station-alert strong{color:#fdba74}html[data-theme=dark] .admin-table th,html[data-theme=dark] .station-alert p,html[data-theme=dark] .status-list dt{color:#cbd5e1}@media (max-width:700px){.theme-toggle{width:38px;height:38px;margin-left:4px}.app-header{gap:8px}.brand strong{max-width:108px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.station-card,.vehicle-card{bottom:0!important;left:0!important;right:0!important;max-width:none!important;max-height:75vh!important;border-radius:22px 22px 0 0!important;transform:translateY(var(--sheet-y,0));touch-action:pan-y;box-shadow:0-18px 48px rgba(15,23,42,.28)!important}.station-card::before,.vehicle-card::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);width:44px;height:5px;border-radius:999px;background:rgba(100,116,139,.55);z-index:4}.station-head,.vehicle-head{padding-top:22px!important;cursor:grab}.station-card.sheet-dragging,.vehicle-card.sheet-dragging{transition:none!important}.station-body,.vehicle-body{max-height:calc(75vh - 76px)!important}.sl-departure-row{grid-template-columns:52px minmax(0,1fr) auto;gap:8px}.sl-dep-status{display:none}.sl-dep-main strong{white-space:normal}.sl-dep-time strong{font-size:17px}.status-history-list{grid-template-columns:1fr}.map-extra-actions{display:flex}.map-control-panel.compact .map-extra-actions{display:none!important}}:root{--surface-raised:rgba(255,255,255,.94);--focus-ring:0 0 0 4px rgba(0,94,184,.18);--hairline:rgba(148,163,184,.28);--safe-bottom:env(safe-area-inset-bottom,0px)}body,html{background:var(--bg);color:var(--text)}.meta,.muted,.sl-dep-line small,.sl-dep-main span,.status-message-list span,.vehicle-row small{color:var(--text-muted)}.app-header{box-shadow:0 10px 30px rgba(15,23,42,.06);gap:18px}.brand,.tabs{min-width:0}.brand strong{letter-spacing:-.02em}.brand small{font-weight:900;letter-spacing:.05em}.tabs{background:rgba(241,245,249,.74);border:1px solid rgba(226,232,240,.9);border-radius:999px;padding:4px;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,#000 88%,transparent 100%);mask-image:linear-gradient(to right,#000 88%,transparent 100%)}.tabs.at-end{-webkit-mask-image:none;mask-image:none}.tabs::-webkit-scrollbar{display:none}.tab{border-radius:999px;font-weight:850;white-space:nowrap;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.tab.active{color:var(--blue)}.tab.active,.tab:hover{background:#fff}.theme-toggle{flex:0 0 auto;font-size:18px;transition:transform .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.theme-toggle:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,94,184,.18)}.admin-metric,.card,.result-card{box-shadow:0 10px 30px rgba(15,23,42,.055)}button,input,select{font:inherit}button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;box-shadow:var(--focus-ring)!important;border-color:var(--blue)!important}.primary{min-height:44px;border-radius:12px;box-shadow:0 10px 22px rgba(0,94,184,.16)}.chip:active,.panel-toggle-btn:active,.pill:active,.primary:active,.theme-toggle:active{transform:translateY(1px)}.admin-login input[type=password],.filters input,.filters select,.grid-form input,.grid-form select,.planner-options input,.planner-options select,.planner-time-grid input,.planner-time-grid select,.suggest-wrap input{background:var(--surface);min-height:46px}.chips{gap:9px}.chip,.pill,.status-filter-chip{min-height:40px;font-weight:850}.chip:not(.active):hover,.pill:not(.active):hover,.status-filter-chip:not(.active):hover{background:#f8fafc;border-color:#bfdbfe;color:#0b57b7}.chip span{font-size:12px;font-weight:950}.chip.metro-green.active{color:#061a0d}.chip.tram.active{color:#111827}.chip.ship.active{color:#082f49}.chip.active span{background:rgba(255,255,255,.32);color:inherit}.chip.metro-green.active span,.chip.ship.active span,.chip.tram.active span{background:rgba(15,23,42,.13)}.map-control-panel{right:20px;top:92px;width:min(760px,48vw);padding:14px;border-radius:22px}.map-control-panel:not(.compact){box-shadow:0 18px 58px rgba(15,23,42,.16)}.map-control-panel.compact{right:20px}.map-control-panel.compact .panel-toggle-btn{box-shadow:0 14px 36px rgba(0,94,184,.34)}.map-extra-actions button{min-height:42px;box-shadow:0 4px 12px rgba(15,23,42,.05)}#map{background:linear-gradient(180deg,#e8f0f8,#dce8f4)}.leaflet-bar a,.leaflet-control-zoom a{font-weight:900}.station-card,.vehicle-card{border-radius:22px;box-shadow:0 22px 60px rgba(15,23,42,.22);border-color:rgba(203,213,225,.9)}.station-head,.vehicle-head{min-height:58px}.station-title h2,.vehicle-title-row strong{letter-spacing:-.015em}.close{min-width:34px!important;min-height:34px!important;border-radius:999px;background:rgba(255,255,255,.22);font-weight:950;transition:background .14s ease,transform .14s ease}.close:hover{background:rgba(255,255,255,.34);transform:scale(1.04)}.station-body,.vehicle-body{color:var(--text)}.station-body-v39,.vehicle-body-v75{background:linear-gradient(180deg,#fff,#f7fbff)}.station-live-strip,.vehicle-status-strip{gap:7px}.sl-live-pill{min-height:25px}.station-tab-body{min-width:0}.depart-tabs{background:rgba(241,245,249,.76);border:1px solid var(--hairline);border-radius:14px;padding:3px!important;margin-bottom:10px}.depart-tabs button{border-radius:11px!important;font-weight:850}.depart-tabs button.active{background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.07)}.sl-departure-row{border-top:1px solid rgba(226,232,240,.82);grid-template-columns:minmax(62px,.48fr) minmax(0,1.8fr) minmax(78px,.55fr) minmax(70px,.42fr)}.sl-departure-row:first-child{border-top:0}.sl-dep-main strong{letter-spacing:-.01em}.sl-dep-time strong{letter-spacing:-.03em}.sl-dep-status span{white-space:nowrap}.station-alert-panel{box-shadow:inset 4px 0 0#f59e0b}.station-alert.severe{box-shadow:inset 4px 0 0#ef4444}.station-alert.info{box-shadow:inset 4px 0 0#2563eb}.data-status-card,.doctor-card,.journey-card,.nearby-stop-card,.status-card-v51,.status-hero,.status-history-item{border-radius:20px}.status-grid{align-items:start}.status-card-v51{box-shadow:0 12px 34px rgba(15,23,42,.06)}.status-card-title-row h2{letter-spacing:-.02em}.cache-source,.cache-state,.status-badge-v51,.tag{font-weight:900}.table-wrap{border:1px solid var(--hairline);border-radius:16px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.table-wrap:empty{border:0}#clearPlanner,.admin-actions button,.admin-section-head button,.planner-actions button,.vehicle-actions button{min-height:42px;border-radius:12px}.app-footer{backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.8)}html[data-theme=dark] .tabs{background:rgba(15,27,45,.75);border-color:#26364d}html[data-theme=dark] .tab.active,html[data-theme=dark] .tab:hover{background:#1a2941;box-shadow:none}html[data-theme=dark] .tab:hover{color:#bfdbfe}html[data-theme=dark] .brand-icon{border-color:#102033}html[data-theme=dark] .theme-toggle:hover{background:#17243a;color:#bfdbfe}html[data-theme=dark] .chip:not(.active),html[data-theme=dark] .pill:not(.active),html[data-theme=dark] .status-filter-chip:not(.active){background:#101d30;color:#d7e2f2;border-color:#2a3a52}html[data-theme=dark] .chip:not(.active):hover,html[data-theme=dark] .pill:not(.active):hover,html[data-theme=dark] .status-filter-chip:not(.active):hover{background:#17243a;color:#bfdbfe;border-color:#3b82f6}html[data-theme=dark] #map{background:#081522}html[data-theme=dark] .panel-toggle-btn{background:#101d30;color:#dbeafe;border-color:#2a3a52}html[data-theme=dark] .map-control-panel.compact{background:0 0}html[data-theme=dark] .map-control-panel.compact .panel-toggle-btn{background:#005eb8;color:#fff;border-color:#005eb8}html[data-theme=dark] .station-body-v39,html[data-theme=dark] .vehicle-body-v75{background:linear-gradient(180deg,#0f1b2d,#0b1626)}html[data-theme=dark] .depart-tabs,html[data-theme=dark] .departure-list,html[data-theme=dark] .next-stops,html[data-theme=dark] .station-lines-block,html[data-theme=dark] .table-wrap{background:#101d30;border-color:#2a3a52}html[data-theme=dark] .depart-tabs button.active{background:#1a2941}html[data-theme=dark] .status-message-list li{background:#111f33;border-color:#2a3a52}html[data-theme=dark] .admin-table td,html[data-theme=dark] .status-card-title-row h2,html[data-theme=dark] .status-list dd,html[data-theme=dark] .status-message-list b,html[data-theme=dark] .status-stat-grid-v51 b{color:#e5edf7}html[data-theme=dark] .admin-table th{background:#152238;border-color:#26364d}html[data-theme=dark] .admin-table td,html[data-theme=dark] .sl-departure-row,html[data-theme=dark] .status-list dl div{border-color:#26364d}html[data-theme=dark] .result-card.warn,html[data-theme=dark] .status-card-v51.warning,html[data-theme=dark] .status-history-item.has-issues{background:#2a1b0d;border-color:#78350f}html[data-theme=dark] .result-card.severe,html[data-theme=dark] .status-card-v51.severe{background:#2b1014;border-color:#7f1d1d}html[data-theme=dark] .status-card-v51.info{background:#0d1f36;border-color:#1d4ed8}html[data-theme=dark] .status-card-v51.ok{background:#10251a;border-color:#166534}html[data-theme=dark] .code-card{background:#050b14;border-color:#1e293b}html[data-theme=dark] .app-footer{border-color:#26364d;background:rgba(15,27,45,.82)}@media (max-width:900px){.app-header{padding:0 12px;gap:10px}.tabs{flex:1 1 auto}.tab{padding:10px 13px}.map-control-panel{left:12px;right:12px;width:auto}.map-control-panel.compact{left:auto;right:14px;width:50px}.page{padding-left:16px;padding-right:16px}.status-grid{grid-template-columns:1fr}.admin-section-head{align-items:flex-start}.admin-section-head button{align-self:center}.station-card,.vehicle-card{max-width:calc(100vw - 16px)}}@media (max-width:700px){.app-header{display:grid;grid-template-columns:1fr auto;grid-template-rows:52px 42px;align-content:center;padding:6px 10px 8px}.brand{grid-column:1;gap:9px}.brand-icon{width:38px;height:38px;font-size:15px}.brand strong{max-width:none;font-size:18px}.theme-toggle{grid-column:2;grid-row:1;width:40px;height:40px}.tabs{grid-column:1/3;grid-row:2;width:100%;padding:3px;overflow-x:auto}.tab{padding:9px 12px;font-size:14px}.chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.chip{justify-content:space-between;display:flex;align-items:center;padding:9px 10px}.station-card,.vehicle-card{max-height:min(75dvh,650px)!important;bottom:0!important;border-radius:24px 24px 0 0!important;padding-bottom:var(--safe-bottom);transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease}.station-card::before,.vehicle-card::before{top:9px;width:48px;height:5px;background:rgba(100,116,139,.72)}.station-head,.vehicle-head{padding-top:24px!important}.station-body,.vehicle-body{max-height:calc(75dvh - 80px)!important;padding-bottom:calc(14px + var(--safe-bottom))}.station-quick-grid,.station-quick-grid-sl,.vehicle-live-summary,.vehicle-live-summary-sl{grid-template-columns:1fr!important}.sl-departure-row{grid-template-columns:50px minmax(0,1fr) 60px!important;padding:10px 9px}.sl-dep-line .line-chip{min-width:34px;font-size:14px}.sl-dep-time strong{font-size:16px}.sl-dep-main span{font-size:11px}.status-stat-grid-v51{grid-template-columns:repeat(2,1fr)}.admin-actions,.nearby-actions,.planner-actions{display:grid;grid-template-columns:1fr;gap:8px}.admin-section-head{display:grid;gap:10px}.admin-section-head button{width:100%}.table-wrap{border-radius:14px}.app-footer{left:8px;right:8px;text-align:center;bottom:calc(4px + var(--safe-bottom))}.vehicle-follow-bar{left:8px;right:8px;transform:none;max-width:none;bottom:calc(10px + var(--safe-bottom))}.station-card:not(.hidden)+.vehicle-follow-bar,.vehicle-card:not(.hidden)+.vehicle-follow-bar{bottom:calc(75dvh + 10px + var(--safe-bottom))}}@media (max-width:390px){.brand strong{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab{padding:8px 10px;font-size:13px}.chips{grid-template-columns:1fr}.sl-departure-row{grid-template-columns:46px minmax(0,1fr) 54px!important}.sl-dep-line small{display:none}.station-card,.vehicle-card{max-height:72dvh!important}.station-body,.vehicle-body{max-height:calc(72dvh - 80px)!important}}.stop-div-bus .stop-click-target{min-width:18px!important;min-height:18px!important}.stop-div-bus .stop-click-dot{width:6.5px!important;height:6.5px!important;border-width:1.5px!important;box-shadow:0 2px 7px rgba(15,23,42,.3),0 0 0 1px rgba(255,255,255,.96)!important}.stop-div-bus .stop-click-target::before{inset:3px!important;background:rgba(227,6,19,.09)!important;opacity:.55!important}.stop-div-icon.stop-div-bus:focus .stop-click-dot,.stop-div-icon.stop-div-bus:hover .stop-click-dot{box-shadow:0 3px 10px rgba(15,23,42,.36),0 0 0 3px rgba(227,6,19,.14)!important}@media (max-width:700px){.stop-div-bus .stop-click-target{min-width:20px!important;min-height:20px!important}.stop-div-bus .stop-click-dot{width:7.5px!important;height:7.5px!important}}:root{--text:#0f172a;--text-soft:#334155;--text-muted:#64748b;--text-subtle:#72839a;--text-inverse:#ffffff;--link:#005EB8;--surface:#ffffff;--surface-soft:#f8fbff;--surface-raised:rgba(255,255,255,.96);--surface-muted:#f1f5f9;--surface-hover:#eef6ff;--field-bg:#ffffff;--table-head:#f8fafc;--hairline:#dbe4ee;--good-bg:#ecfdf3;--good-text:#166534;--warn-bg:#fff7ed;--warn-text:#9a3412;--bad-bg:#fef2f2;--bad-text:#991b1b;--info-bg:#eff6ff;--info-text:#1d4ed8}.leaflet-container a{color:var(--link)}.admin-metric strong,.admin-section-head h2,.card h1,.card h2,.card h3,.page h1,.page h2,.page h3,.result-card h2,.result-card h3,.sl-dep-main span>b,.station-quick-grid strong,.station-timetable-route strong,.status-card-title-row h2,.status-hero-main strong,.status-list dd,.status-message-list b,.status-stat-grid-v51 b,code{color:var(--text)}.admin-login label,.app-footer,.brand small,.data-status-card small,.data-status-card span,.doctor-card small,.filters label,.line-stops-details summary small,.line-stops-list li small,.meta,.muted,.page p,.planner-choice,.planner-options label,.planner-time-grid label,.sl-dep-line small,.sl-dep-main span,.sl-dep-time .planned-time,.smart-cache-table small,.station-event-row .planned-time,.station-event-row .time-source,.station-label,.station-quick-grid small,.station-timetable-note,.station-timetable-route small,.station-timetable-title small,.station-title small,.status-card-body-v51 p,.status-hero-kicker,.status-hero-main span:last-child,.status-history-item span,.status-history-item time,.status-loading-card span,.status-message-list span,.status-stat-grid-v51 small,.suggest-wrap,.vehicle-extra summary,.vehicle-live-summary small,.vehicle-row small,.vehicle-row-label i{color:var(--text-muted)}.check-row,.disruption-card p,.disruption-time,.doctor-card p,.leg-main p,.line-stops-details summary,.station-alert p,.status-card-body ul,.status-list dt,.status-summary-pill{color:var(--text-soft)}.admin-metric,.app-header,.card,.glass,.journey-card,.nearby-stop-card,.result-card,.status-card-v51,.status-hero,.vehicle-card{background:var(--surface-raised);border-color:var(--hairline);color:var(--text)}.doctor-card{background:var(--surface-raised)}.data-status-card,.status-history-item{background:var(--surface-raised);border-color:var(--hairline);color:var(--text)}.table-wrap{border-color:var(--hairline)}.station-timetable-row,.table-wrap{background:var(--surface-raised)}.departure-list,.next-stops,.station-lines-block{border-color:var(--hairline)}.depart-tabs,.departure-list,.next-stops,.station-alert,.station-alert-panel,.station-lines-block{background:var(--surface-raised);color:var(--text)}.station-alert,.station-alert-panel{border-color:var(--hairline)}.cache-source,.doctor-card,.station-time-pills span,.station-timetable-row,.status-history-item em,.status-message-list li,.status-stat-grid-v51 span{background:var(--surface);border-color:var(--hairline);color:var(--text)}.admin-login input[type=password],.filters input,.filters select,.grid-form input,.grid-form select,.planner-options input,.planner-options select,.planner-time-grid input,.planner-time-grid select,.suggest-wrap input,textarea{background:var(--field-bg);color:var(--text);border-color:var(--border)}input::placeholder,textarea::placeholder{color:var(--text-subtle);opacity:1}#clearPlanner,.admin-actions button,.admin-section-head button,.icon-btn,.map-extra-actions button,.pill,.planner-actions button,.small-chips button,.status-filter-chip,.theme-toggle,.vehicle-actions button,button:not(.primary):not(.chip):not(.line-chip):not(.panel-toggle-btn){background:var(--surface);color:var(--text-soft);border-color:var(--border)}.icon-btn:hover,.map-extra-actions button:hover,.pill:not(.active):hover,.small-chips button:hover,.status-filter-chip:not(.active):hover,.theme-toggle:hover,button:not(.primary):not(.chip):not(.line-chip):not(.panel-toggle-btn):hover{background:var(--surface-hover);color:var(--link);border-color:color-mix(in srgb,var(--link) 45%,var(--border))}.tabs{background:rgba(241,245,249,.86);background:color-mix(in srgb,var(--surface-raised) 86%,transparent);border-color:var(--hairline)}.tab{color:var(--text-soft)}.depart-tabs button.active,.tab:hover,.theme-toggle{background:var(--surface);color:var(--link)}.tab.active{background:var(--blue)!important;color:#fff!important;box-shadow:0 3px 12px rgba(0,94,184,.26)}.theme-toggle{color:var(--text-soft)}.chip:not(.active),.pill:not(.active),.status-filter-chip:not(.active){background:var(--surface);color:var(--text-soft);border-color:var(--border)}.chip.neutral.active,.depart-tabs{background:var(--surface-muted)}.depart-tabs{border-color:var(--hairline)}.depart-tabs button{color:var(--text-muted)}.chip.neutral.active,.sl-departure-row{border-color:var(--hairline);color:var(--text)}.sl-departure-row{background:var(--surface)}.sl-departure-row:nth-child(even){background:var(--surface-soft)}.cache-state.expired,.sl-dep-status span,.sl-live-pill.muted{background:var(--surface-muted);color:var(--text-muted);border-color:var(--hairline)}.ok,.status-success{color:var(--good-text)}.error,.status-error{color:var(--bad-text)}.departure-row em,.journey-warning,.station-alert strong,.station-event-row .delay-badge,.status-card-v51.warning .status-badge-v51,.status-running,.warn-text{color:var(--warn-text)}.admin-notice.ok,.cache-state.active,.data-status-card.ok small,.sl-dep-status .ok,.sl-live-pill.ok{background:var(--good-bg);color:var(--good-text);border-color:color-mix(in srgb,var(--good-text) 35%,transparent)}.data-status-card.warn small,.doctor-card.warn span,.sl-dep-status .warn,.sl-live-pill.warn-text{background:var(--warn-bg);color:var(--warn-text);border-color:color-mix(in srgb,var(--warn-text) 35%,transparent)}.data-status-card.bad small,.doctor-card.bad span,.sl-dep-status .bad,.sl-live-pill.bad,.station-alert-lines span,.status-card-v51.severe .status-badge-v51{background:var(--bad-bg);color:var(--bad-text);border-color:color-mix(in srgb,var(--bad-text) 35%,transparent)}.result-card.warn,.station-alert-panel,.status-card-v51.warning,.status-history-item.has-issues{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn-text) 45%,var(--hairline))}.result-card.severe,.station-alert.severe,.status-card-v51.severe{background:var(--bad-bg);border-color:color-mix(in srgb,var(--bad-text) 45%,var(--hairline))}.station-alert.info,.station-info-note,.status-card-v51.info{background:var(--info-bg);border-color:color-mix(in srgb,var(--info-text) 45%,var(--hairline));color:var(--info-text)}.station-alert.info strong,.status-card-v51.info .status-badge-v51{color:var(--info-text)}.status-card-v51.ok{background:var(--good-bg);border-color:color-mix(in srgb,var(--good-text) 45%,var(--hairline))}.doctor-card.ok span,.status-card-v51.ok .status-badge-v51{background:var(--good-bg);color:var(--good-text);border-color:color-mix(in srgb,var(--good-text) 35%,transparent)}.deviation-stop-tag,.status-badge,.status-badge-v51,.status-line-badge.neutral,.tag{background:var(--surface-muted);color:var(--text-soft);border-color:var(--hairline)}.admin-table th{background:var(--table-head)}.admin-table td,.admin-table th{border-color:var(--hairline);color:var(--text)}.table-wrap{background:var(--surface);color:var(--text)}.code-card{background:#0b1220;color:#e2e8f0;border-color:#1e293b}.map-notice{background:var(--surface-raised);border-color:var(--hairline);color:var(--text)}.map-notice.warn{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn-text) 45%,var(--hairline))}.map-notice.error{background:var(--bad-bg);border-color:color-mix(in srgb,var(--bad-text) 45%,var(--hairline))}.leaflet-bar a,.leaflet-control-attribution,.leaflet-control-zoom a{background:var(--surface);color:var(--text);border-color:var(--hairline)}html[data-theme=dark] .app-header{background:rgba(7,17,31,.94);border-color:var(--hairline)}html[data-theme=dark] .station-body-v39,html[data-theme=dark] .vehicle-body-v75{background:linear-gradient(180deg,var(--surface),#0b1626)}html[data-theme=dark] .status-card-left{background:linear-gradient(180deg,color-mix(in srgb,var(--status-color) 18%,#0f1b2d),#0f1b2d)}html[data-theme=dark] .leg-badge,html[data-theme=dark] .line-chip,html[data-theme=dark] .station-line-badge,html[data-theme=dark] .status-line-badge:not(.neutral),html[data-theme=dark] .status-mode-icon-v51,html[data-theme=dark] .vehicle-head,html[data-theme=dark] .vehicle-head .close{color:var(--sl-line-text-color,#fff)}html[data-theme=dark] .station-card::before,html[data-theme=dark] .vehicle-card::before{background:rgba(203,213,225,.62)}html[data-theme=dark] .app-footer{background:rgba(15,27,45,.86);border-color:var(--hairline);color:var(--text-muted)}.close{border:1px solid transparent}.vehicle-head .close{background:color-mix(in srgb,var(--sl-line-text-color,#fff) 18%,transparent);color:var(--sl-line-text-color,#fff)!important;border-color:color-mix(in srgb,var(--sl-line-text-color,#fff) 26%,transparent)}.station-head .close{background:rgba(255,255,255,.34);color:inherit;border-color:rgba(255,255,255,.34)}.vehicle-follow-bar button{background:rgba(255,255,255,.12)!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important}.pill.active,.small-chips button.active,.station-tabs button.active,.status-filter-chip.active,.vehicle-actions button.active,.vehicle-actions-sl button.active{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}.status-filter-chip.active span{background:rgba(255,255,255,.22)!important;color:#fff!important}.pill.active:hover,.small-chips button.active:hover,.station-tabs button.active:hover,.status-filter-chip.active:hover,.vehicle-actions button.active:hover{color:#fff!important}html[data-theme=dark] .close{border-color:rgba(255,255,255,.18)}.planner-card{color:var(--text)}.planner-advanced,.planner-modes label,.vehicle-live-summary div,.vehicle-live-summary-sl div{background:var(--surface)!important;border-color:var(--hairline)!important;color:var(--text)!important}.journey-details summary,.planner-advanced summary{color:var(--text)!important}.planner-modes label{color:var(--text-soft)!important;border-color:var(--border)!important;box-shadow:0 1px 0 rgba(15,23,42,.03)}.planner-modes label:hover{background:var(--surface-hover)!important;color:var(--link)!important;border-color:color-mix(in srgb,var(--link) 42%,var(--border))!important}.planner-modes label:has(input:checked){background:color-mix(in srgb,var(--blue) 10%,var(--surface))!important;color:var(--text)!important;border-color:color-mix(in srgb,var(--blue) 34%,var(--border))!important}.planner-modes label:has(input:not(:checked)){color:var(--text-muted)!important}.check-row input[type=checkbox],.planner-modes input[type=checkbox]{accent-color:var(--blue)}.journey-copy{background:var(--surface)!important;color:var(--text-soft)!important;border-color:var(--border)!important}.leg-item{border-color:var(--hairline)!important}html[data-theme=dark] .planner-modes label{background:#101d30!important;color:#e5edf7!important;border-color:#2a3a52!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}html[data-theme=dark] .planner-modes label:hover{background:#17243a!important;color:#bfdbfe!important;border-color:#3b82f6!important}html[data-theme=dark] .planner-modes label:has(input:checked){background:#123055!important;color:#f8fbff!important;border-color:#2563eb!important}html[data-theme=dark] .planner-modes label:has(input:not(:checked)){background:#0b1626!important;color:#a9b7cc!important;border-color:#26364d!important}html[data-theme=dark] .line-stops-list li b,html[data-theme=dark] .planner-advanced summary,html[data-theme=dark] .station-head-image .station-title h2,html[data-theme=dark] .vehicle-live-summary strong,html[data-theme=dark] .vehicle-popup-body .next-stops li b,html[data-theme=dark] .vehicle-popup-body .vehicle-row strong{color:#f8fbff!important}html[data-theme=dark] .journey-copy,html[data-theme=dark] .planner-advanced{background:#101d30!important;color:#e5edf7!important;border-color:#2a3a52!important}.line-stops-list li b,.station-head-image .station-title h2,.vehicle-body-v75,.vehicle-live-summary strong,.vehicle-live-summary-sl strong,.vehicle-popup-body,.vehicle-popup-body .next-stops li b,.vehicle-popup-body .vehicle-row strong{color:var(--text)!important}.vehicle-live-summary,.vehicle-live-summary-sl{background:var(--surface-soft)!important;border-color:var(--hairline)!important}.route-progress small em,.station-card .station-title small,.station-head-image .station-title small,.vehicle-live-summary small,.vehicle-live-summary-sl small,.vehicle-popup-body .next-stops li small,.vehicle-popup-body .next-stops small,.vehicle-row-label i,.vehicle-row-label small{color:var(--text-muted)!important}.vehicle-actions,.vehicle-extra,.vehicle-extra .vehicle-row,.vehicle-popup-body .next-stops,.vehicle-popup-body .vehicle-row,.vehicle-updated{background:var(--surface)!important;border-color:var(--hairline)!important;color:var(--text)!important}.vehicle-popup-body .next-stops{background:var(--surface-muted)!important}.vehicle-popup-body .vehicle-row:nth-child(even){background:var(--surface-soft)!important}.compact-stops li,.line-stops-list li,.station-card .line-stops-details summary,.station-card .line-stops-list li{color:var(--text-soft)!important;border-color:var(--hairline)!important}.line-stops-list li.current b,.vehicle-popup-body .next-stops li.current b{color:var(--link)!important}.line-stops-list .dot,.vehicle-popup-body .dot{background:var(--text-subtle)!important}.line-stops-list .dot.active,.vehicle-popup-body .dot.active{background:var(--link)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--link) 16%,transparent)!important}html[data-theme=dark] .vehicle-live-summary,html[data-theme=dark] .vehicle-live-summary-sl,html[data-theme=dark] .vehicle-popup-body .next-stops{background:#0b1626!important}html[data-theme=dark] .vehicle-actions,html[data-theme=dark] .vehicle-extra,html[data-theme=dark] .vehicle-extra .vehicle-row,html[data-theme=dark] .vehicle-live-summary div,html[data-theme=dark] .vehicle-live-summary-sl div,html[data-theme=dark] .vehicle-popup-body .vehicle-row{background:#101d30!important;border-color:#2a3a52!important;color:#e5edf7!important}html[data-theme=dark] .vehicle-updated{background:#101d30!important;border-color:#2a3a52!important}html[data-theme=dark] .vehicle-popup-body .vehicle-row:nth-child(even){background:#111f33!important}html[data-theme=dark] .route-progress small em,html[data-theme=dark] .station-head-image .station-title small,html[data-theme=dark] .vehicle-live-summary small,html[data-theme=dark] .vehicle-popup-body .next-stops li small,html[data-theme=dark] .vehicle-popup-body .next-stops small,html[data-theme=dark] .vehicle-row-label i,html[data-theme=dark] .vehicle-row-label small,html[data-theme=dark] .vehicle-updated{color:#a9b7cc!important}.station-head-image.station-head-v39{background:linear-gradient(180deg,var(--surface-raised),var(--surface-soft))!important;border-bottom-color:var(--hairline)!important;color:var(--text)!important}.station-head-image .station-pin-v39{background:color-mix(in srgb,var(--station-color,var(--blue)) 12%,var(--surface))!important;border-color:color-mix(in srgb,var(--station-color,var(--blue)) 36%,var(--hairline))!important;color:var(--station-color,var(--blue))!important}.station-head-image .station-close.close{background:var(--surface-muted)!important;color:var(--text-soft)!important;border-color:var(--hairline)!important}.station-head-image .station-close.close:focus-visible,.station-head-image .station-close.close:hover{background:var(--surface-hover)!important;color:var(--link)!important;border-color:color-mix(in srgb,var(--link) 44%,var(--hairline))!important}.station-event-row .time-source{background:var(--surface-muted)!important;color:var(--text-muted)!important;border:1px solid var(--hairline)!important;border-radius:7px;padding:2px 7px;line-height:1.2}html[data-theme=dark] .station-head-image.station-head-v39{background:linear-gradient(180deg,#101d30,#0f1b2d)!important;border-bottom-color:#2a3a52!important;color:#f8fbff!important}html[data-theme=dark] .station-head-image .station-pin-v39{background:color-mix(in srgb,var(--station-color,var(--blue)) 18%,#0b1626)!important;border-color:color-mix(in srgb,var(--station-color,var(--blue)) 48%,#2a3a52)!important;color:var(--station-color,var(--blue))!important}html[data-theme=dark] .station-head-image .station-close.close{background:#17243a!important;color:#dbeafe!important;border-color:#2a3a52!important}html[data-theme=dark] .station-head-image .station-close.close:focus-visible,html[data-theme=dark] .station-head-image .station-close.close:hover{background:#1e3354!important;color:#fff!important;border-color:#3b82f6!important}html[data-theme=dark] .station-event-row .time-source{background:#17243a!important;color:#cbd5e1!important;border-color:#2a3a52!important}.station-card{background:var(--surface-raised)!important;border-color:var(--hairline)!important}.station-card .station-head,.station-card .station-head-image,.station-card .station-head-v39{background:linear-gradient(180deg,var(--surface-raised),var(--surface-soft))!important;border-bottom-color:var(--hairline)!important;color:var(--text)!important}.station-card,.station-card .station-title,.station-card .station-title div,.station-card .station-title h2{color:var(--text)!important}.station-card .station-pin,.station-card .station-pin-v39{background:color-mix(in srgb,var(--station-color,var(--blue)) 12%,var(--surface))!important;border-color:color-mix(in srgb,var(--station-color,var(--blue)) 40%,var(--hairline))!important;color:var(--station-color,var(--blue))!important}.station-card .station-close,.station-card .station-close.close{background:var(--surface-muted)!important;color:var(--text-soft)!important;border-color:var(--hairline)!important}.station-card .station-close:focus-visible,.station-card .station-close:hover{background:var(--surface-hover)!important;color:var(--link)!important;border-color:color-mix(in srgb,var(--link) 44%,var(--hairline))!important}.station-card .station-body,.station-card .station-body-v39{background:linear-gradient(180deg,var(--surface),var(--surface-soft))!important;color:var(--text)!important}.station-card .station-live-strip{background:0 0!important;color:var(--text)!important}.station-card .station-quick-grid,.station-card .station-quick-grid-sl{background:var(--surface-muted)!important;border-bottom-color:var(--hairline)!important}.station-card .station-quick-grid-sl>div,.station-card .station-quick-grid>div{background:var(--surface)!important;border-color:var(--hairline)!important;color:var(--text)!important}.station-card .sl-dep-line small,.station-card .sl-dep-main span,.station-card .sl-dep-time .planned-time,.station-card .station-event-row .planned-time,.station-card .station-label,.station-card .station-quick-grid small,.station-card .station-quick-grid-sl small{color:var(--text-muted)!important}.station-card .event-time,.station-card .line-stops-details summary b,.station-card .line-stops-list li b,.station-card .sl-dep-main span>b,.station-card .sl-dep-main strong,.station-card .sl-dep-time strong,.station-card .station-quick-grid strong,.station-card .station-quick-grid-sl strong{color:var(--text)!important}.station-card .line-stops-details,.station-card .line-stops-loading,.station-card .station-block,.station-card .station-chain,.station-card .station-empty,.station-card .station-lines-block{background:var(--surface)!important;border-color:var(--hairline)!important;color:var(--text)!important}.station-card .station-lines-block{box-shadow:none!important}.station-card .depart-tabs,.station-card .station-tabs{background:var(--surface-muted)!important;border-color:var(--hairline)!important}.station-card .depart-tabs button,.station-card .station-tabs button{background:0 0!important;color:var(--text-soft)!important;border-color:transparent!important}.station-card .depart-tabs button.active,.station-card .station-tabs button.active{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}.station-card .departure-list,.station-card .sl-departure-row,.station-card .station-event-row,.station-card .station-next-list,.station-card .station-tab-body{background:var(--surface)!important;border-color:var(--hairline)!important;color:var(--text)!important}.station-card .sl-departure-row:nth-child(even),.station-card .station-event-row:nth-child(even){background:var(--surface-soft)!important}.station-card .sl-dep-status span,.station-card .station-event-row .live-source,.station-card .station-event-row .time-source{background:var(--surface-muted)!important;color:var(--text-soft)!important;border-color:var(--hairline)!important}.station-card .station-event-row .live-source{background:var(--info-bg)!important;color:var(--info-text)!important;border-color:color-mix(in srgb,var(--info-text) 38%,var(--hairline))!important}.station-card .sl-dep-status .ok{background:var(--good-bg)!important;color:var(--good-text)!important;border-color:color-mix(in srgb,var(--good-text) 34%,var(--hairline))!important}.station-card .sl-dep-status .warn,.station-card .station-event-row .delay-badge{background:var(--warn-bg)!important;color:var(--warn-text)!important;border-color:color-mix(in srgb,var(--warn-text) 34%,var(--hairline))!important}.station-card .sl-dep-status .bad{background:var(--bad-bg)!important;color:var(--bad-text)!important;border-color:color-mix(in srgb,var(--bad-text) 34%,var(--hairline))!important}.station-card .station-actions,.station-card .station-footer,.station-card .station-updated{background:var(--surface-muted)!important;border-color:var(--hairline)!important;color:var(--text-muted)!important}.station-card .station-actions button:not(.primary){background:var(--surface)!important;color:var(--text-soft)!important;border-color:var(--hairline)!important}.station-card .station-actions button:not(.primary):focus-visible,.station-card .station-actions button:not(.primary):hover{background:var(--surface-hover)!important;color:var(--link)!important;border-color:color-mix(in srgb,var(--link) 44%,var(--hairline))!important}.station-card .station-alert,.station-card .station-alert-panel,.station-card .station-warnings,.station-card .station-warnings-soft{background:var(--warn-bg)!important;border-color:color-mix(in srgb,var(--warn-text) 42%,var(--hairline))!important;color:var(--warn-text)!important}.station-card .station-alert p,.station-card .station-warnings div{color:var(--text-soft)!important}.station-card .line-stops-details summary small,.station-card .line-stops-list li small,.station-card .muted{color:var(--text-muted)!important}.station-card .line-stops-list li.current b,.station-card .line-stops-list li.current small,.vehicle-stop-state-v89 .vehicle-stop-state-next strong{color:var(--link)!important}html[data-theme=dark] .station-card{background:#0f1b2d!important;border-color:#2a3a52!important;box-shadow:0 24px 70px rgba(0,0,0,.48)!important;color-scheme:dark}html[data-theme=dark] .station-card .station-head,html[data-theme=dark] .station-card .station-head-image,html[data-theme=dark] .station-card .station-head-v39{background:linear-gradient(180deg,#111f33,#0f1b2d)!important;border-bottom-color:#2a3a52!important;color:#f8fbff!important}html[data-theme=dark] .station-card .station-body,html[data-theme=dark] .station-card .station-body-v39{background:linear-gradient(180deg,#0f1b2d,#0b1626)!important;color:#e5edf7!important}html[data-theme=dark] .station-card .event-time,html[data-theme=dark] .station-card .line-stops-list li b,html[data-theme=dark] .station-card .sl-dep-main span>b,html[data-theme=dark] .station-card .sl-dep-main strong,html[data-theme=dark] .station-card .sl-dep-time strong,html[data-theme=dark] .station-card .station-quick-grid strong,html[data-theme=dark] .station-card .station-title h2,html[data-theme=dark] .vehicle-next-verified strong{color:#f8fbff!important}html[data-theme=dark] .station-card .muted,html[data-theme=dark] .station-card .sl-dep-line small,html[data-theme=dark] .station-card .sl-dep-main span,html[data-theme=dark] .station-card .sl-dep-time .planned-time,html[data-theme=dark] .station-card .station-label,html[data-theme=dark] .station-card .station-quick-grid small,html[data-theme=dark] .station-card .station-title small,html[data-theme=dark] .station-card .station-updated{color:#a9b7cc!important}html[data-theme=dark] .station-card .station-actions,html[data-theme=dark] .station-card .station-footer,html[data-theme=dark] .station-card .station-quick-grid,html[data-theme=dark] .station-card .station-updated{background:#0b1626!important;border-color:#2a3a52!important}html[data-theme=dark] .station-card .departure-list,html[data-theme=dark] .station-card .line-stops-details,html[data-theme=dark] .station-card .line-stops-loading,html[data-theme=dark] .station-card .station-block,html[data-theme=dark] .station-card .station-chain,html[data-theme=dark] .station-card .station-empty,html[data-theme=dark] .station-card .station-lines-block,html[data-theme=dark] .station-card .station-next-list,html[data-theme=dark] .station-card .station-quick-grid>div,html[data-theme=dark] .station-card .station-tab-body{background:#101d30!important;border-color:#2a3a52!important;color:#e5edf7!important}html[data-theme=dark] .station-card .sl-departure-row,html[data-theme=dark] .station-card .station-event-row{background:#0f1b2d!important;border-color:#26364d!important;color:#e5edf7!important}html[data-theme=dark] .station-card .sl-departure-row:nth-child(even),html[data-theme=dark] .station-card .station-event-row:nth-child(even){background:#111f33!important}html[data-theme=dark] .station-card .depart-tabs,html[data-theme=dark] .station-card .station-actions button:not(.primary),html[data-theme=dark] .station-card .station-close,html[data-theme=dark] .station-card .station-close.close,html[data-theme=dark] .station-card .station-event-row .time-source,html[data-theme=dark] .station-card .station-tabs{background:#17243a!important;border-color:#2a3a52!important;color:#dbeafe!important}html[data-theme=dark] .station-card .depart-tabs button,html[data-theme=dark] .station-card .station-tabs button{background:0 0!important;color:#cbd5e1!important}html[data-theme=dark] .station-card .depart-tabs button.active,html[data-theme=dark] .station-card .station-tabs button.active{background:#005eb8!important;color:#fff!important}html[data-theme=dark] .station-card .station-event-row .live-source{background:#0d1f36!important;color:#bfdbfe!important;border-color:#1d4ed8!important}html[data-theme=dark] .station-card .station-pin,html[data-theme=dark] .station-card .station-pin-v39{background:color-mix(in srgb,var(--station-color,var(--blue)) 20%,#0b1626)!important;border-color:color-mix(in srgb,var(--station-color,var(--blue)) 54%,#2a3a52)!important;color:var(--station-color,var(--blue))!important}.vehicle-next-verified{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin:10px 12px 0;padding:9px 10px;border:1px solid color-mix(in srgb,var(--green,#16a34a) 32%,var(--hairline));border-radius:12px;background:color-mix(in srgb,var(--green,#16a34a) 10%,var(--surface));color:var(--text)}.vehicle-next-verified span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--ok,#15803d)}.vehicle-next-verified strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)!important}.vehicle-next-verified em{justify-self:end;font-style:normal;font-weight:900;color:var(--link);white-space:nowrap}.line-stops-list li.next b,.line-stops-list li.next small,.vehicle-popup-body .next-stops li.next b,.vehicle-popup-body .next-stops li.next small{color:var(--link)!important;font-weight:900}.line-stops-list li.here small,.vehicle-popup-body .next-stops li.here small{color:var(--ok,#15803d)!important;font-weight:900}html[data-theme=dark] .vehicle-next-verified{background:color-mix(in srgb,#22c55e 14%,#101d30)!important;border-color:color-mix(in srgb,#22c55e 36%,#2a3a52)!important;color:#f8fbff!important}html[data-theme=dark] .vehicle-next-verified span{color:#86efac!important}html[data-theme=dark] .vehicle-next-verified em{color:#bfdbfe!important}.night-mode-banner{display:flex;align-items:flex-start;gap:12px;padding:16px 14px;margin:8px 0;background:linear-gradient(135deg,#0f172a,#1e293b);color:#e2e8f0;border-radius:12px}.night-mode-icon{font-size:22px;flex:0 0 auto;margin-top:1px}.night-mode-banner strong{display:block;font-size:14px;font-weight:800;margin-bottom:4px}.night-mode-banner span{display:block;font-size:13px;color:#94a3b8}.night-mode-banner span b{color:#e2e8f0;font-weight:800}html[data-theme=dark] .night-mode-banner{background:linear-gradient(135deg,#07111f,#0f1b2d);border:1px solid #26364d}.station-card .station-head-clean{border-bottom:0!important;box-shadow:inset 0-1px 0 rgba(255,255,255,.18)}.station-card .station-head-clean .station-title h2{letter-spacing:-.02em;line-height:1.08}.station-card .station-head-clean .station-title small{display:block;margin-top:3px;max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.station-card .station-board-hero-v89{border-radius:18px!important;padding:14px!important;border:1px solid color-mix(in srgb,var(--station-color,#005EB8) 22%,var(--hairline))!important}.station-card .station-board-hero-v89>div:first-child strong{font-size:28px!important;line-height:1!important}.station-card .station-board-lines-v89{align-content:start}.station-card .station-line-badge{appearance:none;border:0;cursor:pointer;min-height:26px;line-height:1}.station-card .station-line-badge:focus-visible,.station-card .station-line-badge:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(15,23,42,.16);outline:2px solid color-mix(in srgb,var(--sl-line-color,#005EB8) 36%,transparent);outline-offset:2px}.station-card .station-tabs{position:sticky;top:0;z-index:2;border-radius:14px!important;padding:4px!important;margin:10px 0!important}.station-card .station-tabs button{border-radius:11px!important;padding:9px 10px!important}.station-card .station-quick-grid,.station-card .station-quick-grid-sl{border-radius:16px!important;padding:6px!important;gap:6px!important}.station-card .station-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;border-radius:16px!important;padding:8px!important;margin-top:10px!important}.station-card .station-actions .primary{grid-column:1/-1}@media (max-width:700px){.station-card .station-head-clean .station-title small{max-width:calc(100vw - 120px)}.station-card .station-board-hero-v89>div:first-child strong{font-size:25px!important}.station-card .station-actions{grid-template-columns:1fr!important}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.station-card,.vehicle-card{transition:none!important}.chip:active,.close:hover,.primary:hover,.theme-toggle:hover{transform:none!important}.user-location-icon--pulse{animation:none!important}@keyframes userPulse{0%,to{filter:none}}}.vehicle-stop-state-v89{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin:10px 12px 0;padding:10px;border-radius:14px;border:1px solid color-mix(in srgb,var(--link) 28%,var(--hairline));background:linear-gradient(135deg,color-mix(in srgb,var(--link) 10%,var(--surface)),var(--surface));color:var(--text)}.vehicle-stop-state-v89 span{display:block;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.045em;color:var(--text-muted);margin-bottom:3px}.vehicle-route-progress-labels small,.vehicle-stop-state-v89 strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vehicle-stop-state-v89 strong{display:block;color:var(--text)!important}.vehicle-stop-state-v89.at-stop{border-color:color-mix(in srgb,var(--green,#16a34a) 42%,var(--hairline));background:linear-gradient(135deg,color-mix(in srgb,var(--green,#16a34a) 12%,var(--surface)),var(--surface))}.vehicle-stop-state-v89.at-stop .vehicle-stop-state-main span{color:var(--good-text,#15803d)}.vehicle-route-progress-v89{margin:8px 12px 2px;padding:0 2px}.vehicle-route-progress-track{height:7px;border-radius:999px;background:var(--surface-muted);border:1px solid var(--hairline);overflow:hidden}.vehicle-route-progress-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),color-mix(in srgb,var(--blue) 60%,var(--green,#16a34a)))}.vehicle-route-progress-labels{display:flex;justify-content:space-between;gap:8px;margin-top:5px}.vehicle-route-progress-labels small{max-width:48%;color:var(--text-muted);font-size:11px}.vehicle-live-summary-v89{margin-top:10px}.vehicle-live-summary-v89 strong{font-size:16px}.station-body-v89 .station-live-strip{padding:10px 14px 8px}.station-board-hero-v89{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:0;padding:10px 12px!important;background:linear-gradient(135deg,color-mix(in srgb,var(--station-color,var(--blue)) 14%,var(--surface)),var(--surface-soft));border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline)}.station-board-hero-v89 span{display:block;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.station-board-hero-v89 strong{display:block;font-size:32px;line-height:1;letter-spacing:-.04em;color:var(--text)!important}.station-board-hero-v89 small{display:block;margin-top:4px;color:var(--text-soft)}.station-board-lines-v89{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:190px}.station-quick-grid-v89{grid-template-columns:repeat(3,1fr)!important}.station-tabs-v89{display:grid;grid-template-columns:repeat(4,1fr);position:sticky;top:0;z-index:2}.station-tabs-v89 button{position:relative}.station-tabs-v89 button span{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:999px;background:var(--warn-bg);color:var(--warn-text);font-size:11px}.station-info-panel-v89{display:grid;gap:8px}.station-info-row-v89{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--hairline);border-radius:12px;background:var(--surface)}.station-info-row-v89 span{color:var(--text-muted);font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.station-info-row-v89 strong{color:var(--text);text-align:right;overflow-wrap:anywhere}.station-info-row-v89.wide{display:grid}.journey-card-v89{border-left:0;border-top:5px solid var(--blue);overflow:hidden}.journey-kicker-v89{display:block;margin-bottom:4px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.045em;color:var(--text-muted)}.journey-line-chip{font-weight:850;color:var(--text-soft);background:var(--surface-muted);border-color:var(--hairline)}.action-secondary,.journey-copy{font-weight:850;min-height:40px}.doctor-card{position:relative;overflow:hidden}.doctor-card::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--hairline)}.doctor-card.ok::after{background:var(--good-text,#15803d)}.doctor-card.warn::after{background:var(--warn-text,#b45309)}.doctor-card.bad::after{background:var(--bad-text,#b91c1c)}.cache-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.cache-summary span{border:1px solid var(--hairline);border-radius:12px;padding:10px 12px;background:var(--surface);color:var(--text-soft)}.smart-cache-table .cache-active .cache-state{background:var(--good-bg);color:var(--good-text);border-color:color-mix(in srgb,var(--good-text) 34%,var(--hairline))}.smart-cache-table .cache-expired .cache-state{background:var(--warn-bg);color:var(--warn-text);border-color:color-mix(in srgb,var(--warn-text) 34%,var(--hairline))}.admin-actions button,.admin-section-head button,.chip,.icon-action,.journey-copy,.pill,.primary,.station-actions button,.status-filter-chip,button{transition:background .14s ease,color .14s ease,border-color .14s ease,transform .14s ease,box-shadow .14s ease}.chip:focus-visible,.icon-action:focus-visible,.journey-copy:focus-visible,.pill:focus-visible,.primary:focus-visible,.status-filter-chip:focus-visible,button:focus-visible{outline:3px solid color-mix(in srgb,var(--link) 38%,transparent);outline-offset:2px}.icon-action:hover,.journey-copy:hover,.primary:hover,button:hover{transform:translateY(-1px)}.primary{box-shadow:0 8px 22px color-mix(in srgb,var(--blue) 18%,transparent)}html[data-theme=dark] .vehicle-stop-state-v89{background:linear-gradient(135deg,#10223a,#0f1b2d);border-color:#2a4a72}html[data-theme=dark] .vehicle-stop-state-v89.at-stop{background:linear-gradient(135deg,#102c28,#0f1b2d);border-color:#1d6b43}html[data-theme=dark] .journey-kicker-v89,html[data-theme=dark] .station-board-hero-v89 span,html[data-theme=dark] .vehicle-route-progress-labels small,html[data-theme=dark] .vehicle-stop-state-v89 span{color:#a9b7cc}html[data-theme=dark] .station-board-hero-v89{background:linear-gradient(135deg,color-mix(in srgb,var(--station-color,var(--blue)) 16%,#101d30),#0f1b2d);border-color:#2a3a52}html[data-theme=dark] .station-info-row-v89,html[data-theme=dark] .v91-strip{background:#101d30;border-color:#2a3a52}.planner-options input[type=date],.planner-options input[type=time]{color-scheme:light dark}.planner-options input[type=date]::-webkit-calendar-picker-indicator,.planner-options input[type=time]::-webkit-calendar-picker-indicator{opacity:.72}@media (max-width:700px){.station-card,.vehicle-card{top:auto!important;bottom:0!important;left:0!important;right:0!important;width:auto!important;max-width:none!important;height:var(--sheet-height,68vh)!important;max-height:min(76vh,calc(100dvh - 86px))!important;border-radius:24px 24px 0 0!important;transform:translateY(var(--sheet-y,0));transition:height .18s ease,transform .18s ease;touch-action:pan-y;padding-bottom:env(safe-area-inset-bottom)}.station-card.sheet-compact,.vehicle-card.sheet-compact{--sheet-height:44vh}.station-card.sheet-mid,.vehicle-card.sheet-mid{--sheet-height:68vh}.station-card.sheet-tall,.vehicle-card.sheet-tall{--sheet-height:76vh}.station-card::before,.vehicle-card::before{width:54px!important;height:5px!important;top:8px!important;background:color-mix(in srgb,var(--text-muted) 64%,transparent)!important}.station-head,.vehicle-head{position:sticky!important;top:0!important;z-index:5;cursor:grab}.station-body,.vehicle-body{height:calc(var(--sheet-height,68vh) - 70px)!important;max-height:none!important;overflow:auto!important;-webkit-overflow-scrolling:touch}.station-tabs-v89{top:0}.station-board-hero-v89{grid-template-columns:1fr}.station-board-lines-v89{justify-content:flex-start;max-width:none}.station-board-hero-v89 strong{font-size:28px}.vehicle-stop-state-v89{grid-template-columns:1fr}.station-quick-grid-v89{grid-template-columns:repeat(3,1fr)!important}.planner-main,.planner-options{grid-template-columns:1fr!important}.cache-summary{grid-template-columns:1fr}.journey-top{display:grid}.leg-item{grid-template-columns:1fr}.station-tabs-v89{font-size:13px}.station-tabs-v89 button{padding:10px 6px!important}}.vehicle-head-v91{padding:12px 14px 14px;border-bottom:0}.vehicle-head-v91 .vehicle-title-row{gap:10px;align-items:flex-start}.v91-badge{font-size:15px!important;font-weight:950!important;padding:5px 10px!important;border-radius:10px!important;min-width:34px;text-align:center;flex-shrink:0;letter-spacing:-.02em}.v91-head-text{display:flex;flex-direction:column;gap:2px;min-width:0}.v91-head-text .vehicle-title{font-size:15px;font-weight:800;letter-spacing:-.01em;max-width:100%}.v91-head-sub{font-size:12px;font-weight:600;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vehicle-body-v91{padding:0}.v91-stops-section small,.v91-strip{display:flex;gap:6px;align-items:center}.v91-next-hero,.v91-strip{border-bottom:1px solid var(--hairline, #e2e8f0)}.v91-strip{padding:8px 14px;background:var(--surface-soft, #f8fafc);flex-wrap:wrap}.v91-next-hero{padding:14px 16px 12px;flex-direction:column;background:var(--surface, #fff)}.v91-info-cell span,.v91-next-hero-label{font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.055em;color:var(--text-muted, #64748b)}.v91-info-cell strong,.v91-next-hero-stop{color:var(--text, #0f172a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v91-next-hero-stop{font-size:21px;font-weight:900;letter-spacing:-.025em;line-height:1.15}.v91-next-hero-speed,.v91-stops-section small em{border:1px solid var(--hairline, #e2e8f0);border-radius:999px;color:var(--text-muted, #64748b)}.v91-next-hero-speed{margin-top:4px;display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:850;background:var(--surface-soft, #f1f5f9);padding:3px 9px;width:fit-content}.v91-next-hero-speed::before{content:"↗";opacity:.7}.vehicle-body-v91 .vehicle-route-progress-v89{margin:10px 14px 6px}.v91-stops-section{margin:0!important;border:0!important;border-radius:0!important;border-bottom:1px solid var(--hairline, #e2e8f0)!important;background:var(--surface-soft, #f8fbff)!important;padding:10px 14px 12px!important}.v91-stops-section small{color:var(--text-muted, #475569);font-weight:800;font-size:12px;margin-bottom:8px}.v91-stops-icon{color:var(--link, #005EB8);font-weight:900}.v91-stops-section small em{margin-left:auto;font-style:normal;background:var(--surface, #fff);padding:1px 7px;font-size:11px}.v91-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px;background:var(--surface, #fff);border-bottom:1px solid var(--hairline, #e2e8f0)}.v91-actions,.v91-info-cell{background:var(--surface-soft, #f8fafc)}.v91-info-cell{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:12px;border:1px solid var(--hairline, #e2e8f0);min-width:0}.v91-info-cell span{font-size:10px;letter-spacing:.05em}.v91-info-cell strong{font-size:13px;font-weight:700}.v91-actions{padding:10px 14px;margin:0!important;border-top:0;grid-template-columns:1fr!important}.v91-actions button{font-weight:800;font-size:14px;padding:11px;border-radius:12px;letter-spacing:-.01em}.v91-error{margin:10px 14px 0}html[data-theme=dark] .v91-next-hero{background:#0f1b2d;border-color:#2a3a52}html[data-theme=dark] .v91-info-cell span,html[data-theme=dark] .v91-next-hero-eta small,html[data-theme=dark] .v91-next-hero-label{color:#a9b7cc}html[data-theme=dark] .v91-next-hero-stop{color:#f0f6ff}html[data-theme=dark] .v91-next-hero-speed{background:#1a2d44;border-color:#2a3a52;color:#a9b7cc}html[data-theme=dark] .v91-stops-section{background:#101d30!important;border-color:#2a3a52!important}html[data-theme=dark] .v91-info-grid{background:#0f1b2d;border-color:#2a3a52}html[data-theme=dark] .v91-info-cell{background:#101d30;border-color:#2a3a52}html[data-theme=dark] .v91-info-cell strong{color:#e8f0fa}html[data-theme=dark] .v91-actions{background:#101d30}@media (max-width:360px){.v91-info-grid{grid-template-columns:1fr}}.v91-next-hero{display:flex;align-items:center;gap:10px;justify-content:space-between}.v91-next-hero-main{min-width:0;flex:1 1 0}.v91-next-hero-eta small,.v91-plan{font-size:11px;font-weight:700;color:var(--text-muted, #64748b)}.v91-plan{display:inline-block;margin-top:3px;text-decoration:line-through;opacity:.8}.v91-next-hero-eta{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:1px;padding:7px 11px;border-radius:12px;background:var(--surface-soft, #f1f5f9);border:1px solid var(--hairline, #e2e8f0);text-align:right;min-width:54px;font-size:18px;font-weight:950;letter-spacing:-.03em;color:var(--text, #0f172a);line-height:1}.v91-next-hero-eta.warn-text{background:#fff7ed;border-color:#fed7aa;color:#b45309}.v91-next-hero-eta.ok{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.v91-next-hero-eta small{letter-spacing:0}.v91-passed-stop{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--surface-soft, #f8fafc);border-top:1px solid var(--hairline, #e2e8f0);border-bottom:1px solid var(--hairline, #e2e8f0)}.v91-passed-label{font-size:10px;font-weight:950;text-transform:uppercase;letter-spacing:.055em;color:var(--text-muted, #94a3b8);flex-shrink:0}.v91-passed-name{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;color:var(--text-soft, #475569)}.v91-passed-ago,.v91-passed-time{font-size:12px;font-weight:800;color:var(--text-muted, #64748b);background:var(--surface, #fff);border:1px solid var(--hairline, #e2e8f0);border-radius:8px;padding:2px 7px;flex-shrink:0}html[data-theme=dark] .v91-next-hero-eta{background:#1a2d44;border-color:#2a3a52;color:#e8f0fa}html[data-theme=dark] .v91-next-hero-eta.warn-text{background:#2a1b0d;border-color:#78350f;color:#fdba74}html[data-theme=dark] .v91-next-hero-eta.ok{background:#102c28;border-color:#1d6b43;color:#86efac}html[data-theme=dark] .v91-passed-stop{background:#101d30;border-color:#2a3a52}html[data-theme=dark] .v91-passed-name{color:#a9b7cc}html[data-theme=dark] .v91-passed-ago,html[data-theme=dark] .v91-passed-time{background:#0f1b2d;border-color:#2a3a52;color:#7a90a8}.v91-passed-ago{font-style:normal}.v94-verify-row{display:flex;align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap}.v94-vbadge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:900;letter-spacing:.02em;padding:3px 8px;border-radius:999px;border:1px solid transparent;line-height:1}.v94-vbadge-ok{background:#f0fdf4;border-color:#bbf7d0;color:#15803d}.v94-vbadge-neutral{background:var(--surface-soft, #f1f5f9);border-color:var(--hairline, #e2e8f0);color:var(--text-muted, #64748b)}.v94-vbadge-warn{background:#fff7ed;border-color:#fed7aa;color:#b45309}.v94-vdist{font-size:11px;font-weight:800;color:var(--text-muted, #64748b);white-space:nowrap}.v91-passed-stop .v94-passed-dist{font-size:11px;font-weight:700;color:var(--text-muted, #94a3b8)}html[data-theme=dark] .v94-vbadge-ok{background:#102c28;border-color:#1d6b43;color:#86efac}html[data-theme=dark] .v94-vbadge-neutral{background:#1a2d44;border-color:#2a3a52;color:#a9b7cc}html[data-theme=dark] .v94-vbadge-warn{background:#2a1b0d;border-color:#78350f;color:#fdba74}html[data-theme=dark] .v94-vdist{color:#7a90a8}.station-quick-grid-v89{grid-template-columns:repeat(3,minmax(0,1fr))!important}.station-tabs-v89{grid-template-columns:repeat(3,minmax(0,1fr))}.stop-accessibility-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;margin-left:6px;padding:2px 6px;border-radius:999px;border:1px solid var(--hairline,#dbe4ee);background:var(--surface-muted,#f1f5f9);color:var(--text-muted,#64748b);font-size:11px;font-weight:950;line-height:1;vertical-align:middle;white-space:nowrap}.stop-accessibility-badge.accessible{background:var(--good-bg,#f0fdf4);border-color:color-mix(in srgb,var(--good-text,#15803d) 35%,var(--hairline,#dbe4ee));color:var(--good-text,#15803d)}.stop-accessibility-badge.inaccessible{background:var(--bad-bg,#fef2f2);border-color:color-mix(in srgb,var(--bad-text,#b91c1c) 35%,var(--hairline,#dbe4ee));color:var(--bad-text,#b91c1c)}.stop-accessibility-badge.limited,.stop-accessibility-badge.partial{background:var(--warn-bg,#fff7ed);border-color:color-mix(in srgb,var(--warn-text,#b45309) 35%,var(--hairline,#dbe4ee));color:var(--warn-text,#b45309)}@media (max-width:900px){.station-tabs-v89{grid-template-columns:repeat(3,minmax(92px,1fr));overflow-x:auto;scrollbar-width:thin}.station-tabs-v89 button{white-space:nowrap}.station-quick-grid-v89{grid-template-columns:repeat(3,minmax(0,1fr))!important}}:root{--sl-text-on-green:#111827;--sl-text-on-yellow:#111827;--sl-text-on-cyan:#111827}.chip.metro-green.active{background:#009639!important;color:var(--sl-text-on-green)!important;border-color:#009639!important}.chip.tram.active{background:#f6a800!important;color:var(--sl-text-on-yellow)!important;border-color:#f6a800!important}.chip.ship.active{background:#00a3e0!important;color:var(--sl-text-on-cyan)!important;border-color:#00a3e0!important}.chip.metro-red.active{background:#d52b1e!important;color:#fff!important;border-color:#d52b1e!important}.chip.metro-blue.active{background:#0072ce!important;color:#fff!important;border-color:#0072ce!important}.chip.train.active{background:#d0007e!important;color:#fff!important;border-color:#d0007e!important}.chip.bus.active{background:#e30613!important;color:#fff!important;border-color:#e30613!important}.chip.metro-green.active span,.chip.ship.active span,.chip.tram.active span{background:rgba(17,24,39,.16)!important;color:inherit!important}.line-chip.tram,.station-line-badge.tram{color:var(--sl-line-text-color,var(--sl-text-on-yellow))!important}.line-chip.ship,.station-line-badge.ship{color:var(--sl-line-text-color,var(--sl-text-on-cyan))!important}.line-chip.metro-green,.station-line-badge.metro-green{color:var(--sl-line-text-color,var(--sl-text-on-green))!important}.vehicle-head.metro-green,.vehicle-head.ship,.vehicle-head.tram,.vehicle-marker.metro-green,.vehicle-marker.ship,.vehicle-marker.tram{color:var(--sl-line-text-color,#111827)!important}html[data-theme=dark] .chip.metro-green.active,html[data-theme=dark] .chip.ship.active,html[data-theme=dark] .chip.tram.active{color:#111827!important}.occ-badge{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:999px;background:rgba(15,23,42,.06);color:#0f172a;line-height:1}.occ-bars{display:inline-flex;gap:2px;align-items:flex-end;height:12px}.occ-bar{width:3px;height:5px;border-radius:1px;background:#cbd5e1;display:inline-block}.occ-bar:nth-child(2){height:7px}.occ-bar:nth-child(3){height:9px}.occ-bar:nth-child(4){height:10px}.occ-bar:nth-child(5){height:11px}.occ-bar:nth-child(6){height:12px}.occ-badge.occ-0 .occ-bar.on,.occ-badge.occ-1 .occ-bar.on{background:#16a34a}.occ-badge.occ-2 .occ-bar.on,.occ-badge.occ-3 .occ-bar.on{background:#d97706}.occ-badge.occ-4 .occ-bar.on,.occ-badge.occ-5 .occ-bar.on,.occ-badge.occ-6 .occ-bar.on{background:#dc2626}.reliability-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin:8px 0}#pushToggleBtn,.rl-cell{font-weight:700;color:#0f172a}.rl-cell{aspect-ratio:1;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.62rem;background:#e2e8f0}.rl-cell.rl-good{background:#bbf7d0}.rl-cell.rl-ok{background:#fde68a}.rl-cell.rl-bad{background:#fecaca}.rl-cell.rl-na{background:#f1f5f9;color:#94a3b8}.rl-h{opacity:.7}.reliability-empty,.reliability-legend,.reliability-loading{font-size:.78rem;color:#64748b;margin-top:6px}#pushToggleBtn{appearance:none;border:1px solid #cbd5e1;border-radius:999px;padding:8px 16px;cursor:pointer;background:#fff}#pushToggleBtn.active{background:#005eb8;border-color:#005eb8;color:#fff}#pushToggleBtn:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}@media (prefers-color-scheme:dark){.occ-badge{background:rgba(255,255,255,.08)}.occ-badge,.rl-cell{color:#e2e8f0}}.reliability-note{color:#b45309;font-weight:600}.smart-digest-card{border-left:4px solid #d97706}.a11y-card h2,.anomaly-card h2,.nearby-card h2,.smart-digest-card h2{font-size:1rem;margin:0 0 6px}.smart-digest-card ul{margin:0;padding-left:18px}.smart-digest-card li{margin:2px 0}@media (prefers-color-scheme:dark){.reliability-note{color:#fbbf24}}:root{--sl-font-scale:1}body{font-size:calc(1rem*var(--sl-font-scale, 1))}.sl-high-contrast{filter:contrast(1.25)}.sl-high-contrast .card{border:2px solid currentColor}.sl-high-contrast a,.sl-high-contrast button{text-decoration:underline}.a11y-btn{appearance:none;border:1px solid #cbd5e1;border-radius:8px;padding:6px 12px;font-weight:700;cursor:pointer;background:#fff;color:#0f172a}.a11y-btn.active{background:#005eb8;border-color:#005eb8;color:#fff}.a11y-font,.nearby-list li{display:flex;align-items:center;gap:8px}.a11y-font{margin-top:8px}.a11y-font button{min-width:40px}.anomaly-card{border-left:4px solid #dc2626}.anomaly-card ul{margin:0;padding-left:18px}.nearby-list{margin:0;list-style:none;padding:0}.nearby-list li{padding:6px 0;border-bottom:1px solid rgba(148,163,184,.25);flex-wrap:wrap}.nearby-line{font-weight:800;min-width:32px}.nearby-dest{flex:1}.nearby-time{font-variant-numeric:tabular-nums;font-weight:700}.nearby-speak{padding:2px 8px}@media (prefers-reduced-motion:reduce){.sl-high-contrast{filter:contrast(1.25)}}.sl-skeleton{display:block;border-radius:8px;background:linear-gradient(90deg,rgba(148,163,184,.18) 25%,rgba(148,163,184,.32) 37%,rgba(148,163,184,.18) 63%);background-size:400% 100%;animation:sl-shimmer 1.4s ease infinite;height:14px;margin:8px 0}.sl-skeleton.lg{height:22px;width:60%}.sl-skeleton.sm{width:40%}@media (prefers-reduced-motion:reduce){.sl-skeleton{animation:none}}.sl-empty{text-align:center;padding:20px;color:var(--muted,#64748b)}.sl-empty .sl-empty-icon{font-size:1.8rem;display:block;margin-bottom:6px}.sl-empty button{margin-top:10px}.vehicle-eta-slot{color:#005eb8;font-weight:700}@media (prefers-color-scheme:dark){.vehicle-eta-slot{color:#7cc0ff}}.stats-card .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px;margin:8px 0}.stats-grid .stat{text-align:center;background:rgba(148,163,184,.12);border-radius:10px;padding:10px 6px}.stats-grid .stat strong{display:block;font-size:1.3rem}.stats-grid .stat span{font-size:.72rem;color:var(--muted,#64748b)}.stats-note{font-size:.72rem}.trip-history{list-style:none;margin:0;padding:0}.trip-history-item{padding:8px 0;border-bottom:1px solid rgba(148,163,184,.22)}.th-route{font-weight:700}.th-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}button.danger{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.data-freshness{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:500;background:rgba(15,23,42,.82);color:#fff;font-size:.78rem;font-weight:600;padding:4px 12px;border-radius:999px;pointer-events:none;backdrop-filter:blur(6px)}.data-freshness.stale{background:rgba(180,83,9,.92)}@media (prefers-reduced-motion:reduce){.data-freshness{transition:none}}