/* OVspot: compact navigation and the existing V81.6.7 map. */
:root{--radius:18px;--shadow:0 5px 24px #102f4520;--ink:#163447;--accent:#087e83;--accent-soft:#e6f3f2}
.app-bar{top:20px;left:20px;right:auto;width:auto;min-height:56px;padding:9px 13px;gap:0;border-radius:17px}
#ovspotStatus{gap:16px}.brand{font-size:18px;letter-spacing:-.7px}.brand-mark{width:35px;height:35px;border-radius:11px;background:#087e83;color:#fff}.brand>span:last-child{display:block}.connection{display:grid!important;gap:3px;font-size:10px;border-left:1px solid var(--border);padding-left:14px}.visible-count{white-space:nowrap}
#mapActions{position:absolute;z-index:12;top:20px;right:20px;display:flex;gap:8px}#mapActions button{position:relative;display:grid;place-items:center;width:46px;height:46px;padding:0;border-radius:15px;background:var(--surface);box-shadow:var(--shadow)}#mapActions svg{width:21px;height:21px}#mapActions span{position:absolute;right:-3px;top:-4px;background:var(--accent);color:var(--surface);border-radius:20px;padding:1px 5px;font-size:9px}#mapActions span:empty,#mapActions span[data-empty]{display:none}
#exploreDock{position:absolute;z-index:14;bottom:24px;left:20px;width:296px;border:1px solid var(--border);border-radius:19px;background:var(--surface);box-shadow:var(--shadow)}
#mobileQuickBar{position:static;inset:auto;transform:none;display:flex;width:100%;border:0;box-shadow:none;background:none;border-radius:18px;padding:0;visibility:visible;pointer-events:auto}
#mobileQuickBar #mobileFiltersToggle{display:flex;align-items:center;gap:10px;position:relative;flex:1;text-align:left;font-size:14px;font-weight:700;padding:17px 17px;min-height:55px;background:none;border:0;border-radius:18px;color:var(--ink)}
#mobileFiltersToggle:before{content:'';width:17px;height:17px;display:block;background:linear-gradient(var(--accent),var(--accent)) 0 3px/17px 2px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 8px/12px 2px no-repeat,linear-gradient(var(--accent),var(--accent)) 0 13px/7px 2px no-repeat}
#mobileFiltersToggle:after{content:'⌃';margin-left:auto;color:var(--accent);font-size:19px;font-weight:500}#mobileFiltersToggle[aria-expanded=false]:after{content:'⌄'}
#mapTools{display:block;position:static;inset:auto;transform:none;width:auto;max-height:none;overflow:visible;border:0;border-radius:0 0 18px 18px;padding:0 14px 14px;box-shadow:none;background:transparent}
#exploreDock.collapsed #mapTools{display:none}.filter-caption{margin:0 3px 13px;color:var(--muted);font-size:11px;letter-spacing:.01em}
#mapTools .tools-heading{display:none}
.mode-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.mode-buttons button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;height:59px;padding:7px 0;border-radius:12px;border:1px solid var(--border);background:var(--surface);font-size:10px;font-weight:650;color:var(--muted)}.mode-buttons svg{width:21px;height:21px}.mode-buttons button.active{background:var(--mode-bg);border-color:var(--mode-border);color:var(--mode-ink)}
[data-mode=train]{--mode-bg:#eeecfb;--mode-border:#dbd6f4;--mode-ink:#4a409e}[data-mode=bus]{--mode-bg:#e9f3fb;--mode-border:#cedfec;--mode-ink:#276995}[data-mode=tram]{--mode-bg:#e6f5ed;--mode-border:#c8e4d5;--mode-ink:#247f59}[data-mode=metro]{--mode-bg:#fbecef;--mode-border:#efd0d7;--mode-ink:#a3425a}[data-mode=ferry]{--mode-bg:#e4f4f4;--mode-border:#c6e4e5;--mode-ink:#227f83}
.mode-buttons button:not(.active){opacity:.65}.map-options-row{display:flex;gap:7px;margin:12px 0 9px}.map-options-row button{font-size:10px;font-weight:550;padding:8px;min-height:34px;flex:1;background:transparent}.map-options-row #stopsToggle.active{border-color:var(--border);background:var(--soft);color:var(--ink)}#stopsToggle:before{content:'○';margin-right:5px;color:var(--accent);font-weight:700}#stopsToggle.active:before{content:'●';font-size:8px}
.extra-options{margin:0 2px 12px;font-size:11px;color:var(--muted)}.extra-options summary{padding:7px 0;cursor:pointer}.secondary-tools{margin:3px 0 10px;padding:9px 0 0;gap:5px}.secondary-tools button{font-size:10px;padding:7px;min-height:34px}.secondary-tools #locateBtn,.secondary-tools #favoritesBtn{display:none}
#searchBox{flex:initial;width:100%;max-width:none;margin:0}#searchInput{background:var(--soft);border:1px solid var(--border);padding:11px 30px 11px 34px;min-height:43px;font-size:12px;border-radius:11px}.search-icon{top:7px;left:11px;font-size:21px}#searchClear{top:5px;right:3px}#searchResults{top:auto;bottom:calc(100% + 12px);max-height:min(400px,60dvh);left:0;right:0;width:100%;z-index:30;box-shadow:var(--shadow)}
.detail-panel{top:82px;right:20px;max-height:calc(100dvh - 106px);border-radius:19px}.detail-panel>header{padding:13px 16px}.panel-body{padding:15px 17px}.line-badge{background:var(--carrier-color,var(--accent));min-width:43px;min-height:39px;border-radius:10px;font-size:18px}.carrier-pill{display:inline-block;padding:3px 7px;border-radius:6px;background:var(--soft);color:var(--carrier-color,var(--accent));font-size:11px;line-height:1.2}.eyebrow{margin-top:13px;font-size:9px;letter-spacing:.09em}.destination{font-size:23px;line-height:1.2;margin:0 0 13px;letter-spacing:-.6px}.next-stop{margin:0 0 10px;padding:10px 11px;background:var(--soft);border-radius:0 10px 10px 0}.next-stop b{font-size:13px}.next-stop .eyebrow{font-size:8px}.next-stop time{font-size:12px}.vehicle-stats{margin:0 0 12px;font-size:10px}.timeline{padding-top:12px}.timeline h3{font-size:12px;margin-bottom:11px}.depRow{padding:9px 0}#stopPanel>header h1{font-size:23px}#stopPanel>header{padding:14px 16px}
#routeBar{left:336px;bottom:24px;max-width:calc(100vw - 730px);border-radius:12px}
body.theme-night .mode-buttons button.active{background:var(--accent-soft);color:var(--ink);border-color:var(--border)}body.theme-night .carrier-pill{color:var(--ink)}
@media(max-width:760px){
 .app-bar{top:12px;left:12px;right:auto;width:auto;min-height:51px;padding:8px 10px;border-radius:15px}.brand{font-size:15px;gap:7px}.brand-mark{width:31px;height:31px;font-size:18px}.connection{font-size:9px;padding-left:10px}#ovspotStatus{gap:10px}
 #mapActions{top:12px;right:12px;flex-direction:column;gap:7px}#mapActions button{width:42px;height:42px;border-radius:14px}#mapActions svg{width:20px;height:20px}
 #exploreDock{left:12px;right:12px;bottom:calc(18px + env(safe-area-inset-bottom));width:auto;border-radius:19px}#exploreDock #mapTools{display:none;padding:0 15px 15px;max-height:calc(100dvh - 170px);overflow:visible}#exploreDock #mapTools.mobile-open{display:block}#mobileQuickBar #mobileFiltersToggle{font-size:14px;padding:16px 18px;min-height:55px}
 .mode-buttons{gap:7px}.mode-buttons button{height:60px;font-size:11px}.map-options-row button{font-size:11px;min-height:36px}#mapTools .mode-buttons button{min-height:60px}#searchInput{font-size:16px;min-height:44px}.extra-options{font-size:12px}.filter-caption{font-size:12px}#searchResults{position:absolute;top:auto;bottom:calc(100% + 12px);left:0;right:0;max-height:calc(100dvh - 390px)}
 .detail-panel{top:auto;left:0;right:0;bottom:0;width:100%;height:51dvh;max-height:calc(100dvh - 76px);border-radius:24px 24px 0 0}.detail-panel.expanded{height:calc(100dvh - 76px)}.detail-panel>header{padding:0 16px 8px}.detail-panel>header h1{font-size:14px}.detail-panel>header button{min-height:32px;min-width:32px;width:32px}.sheet-handle{min-height:20px}.panel-body{padding:13px 17px}.destination{font-size:23px}.timeline li[data-stop-name]{min-height:44px}
 #stopPanel>header{padding:0 16px 12px}#stopPanel>header h1{font-size:23px}.depRow{padding:9px 0}.depMain b{font-size:12px}.depMain small{font-size:10px}
 .panel-open #exploreDock{display:none}
 #routeBar{left:12px;right:12px;bottom:85px;max-width:none}.panel-open #routeBar{bottom:calc(51dvh + 8px)}
}
@media(max-height:620px) and (max-width:760px){#exploreDock #mapTools.mobile-open{max-height:calc(100dvh - 145px);overflow-y:auto}#searchResults{position:fixed;left:12px;right:12px;top:75px;bottom:auto;max-height:45dvh;width:auto}}

/* Keep production ad/consent integrations clear of the new controls. */
@media(min-width:761px){#ovspotAdDock{left:336px;right:80px;bottom:24px;width:auto;max-width:720px;transform:none}}
body.panel-open #ovspotAdDock{display:none!important}
@media(max-width:760px){body:has(#mapTools.mobile-open) #ovspotAdDock{display:none!important}}

/* V81.6.15 — vehicle panel timeline + compact polish */
#vehiclePanelBody{scrollbar-width:none;-ms-overflow-style:none}
#vehiclePanelBody::-webkit-scrollbar{width:0;height:0;display:none}
#vehiclePanel.vehicle-has-more:not(.vehicle-scroll-end)::after{content:'⌄';position:absolute;z-index:4;left:0;right:0;bottom:0;height:48px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:5px;box-sizing:border-box;pointer-events:none;color:var(--accent);font-size:18px;font-weight:700;background:linear-gradient(to bottom,rgba(255,255,255,0),var(--surface) 78%)}
#vehiclePanel .line-badge{background:var(--carrier-color,var(--accent));color:#fff}
#vehiclePanel .carrier-pill{background:var(--carrier-color,var(--accent));color:#fff;border:0;padding:3px 7px}
#vehiclePanel .vehicle-stats{gap:6px;margin:0 0 11px}
#vehiclePanel .vehicle-stats span{display:inline-flex;align-items:center;min-height:25px;padding:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--soft);color:var(--ink);font-size:10.5px;font-weight:600;line-height:1}
#vehiclePanel .timeline{padding-top:11px}
#vehiclePanel .timeline h3{margin-bottom:8px}
#vehiclePanel .timeline li{grid-template-columns:34px 12px minmax(0,1fr);gap:6px;min-height:38px;font-size:11px}
#vehiclePanel .timeline li[data-stop-name]{min-height:38px;padding:2px 4px}
#vehiclePanel .timeline-dot:before{top:2px}
#vehiclePanel .timeline-dot:after{top:11px;bottom:-3px}
#vehiclePanel .timeline li.next[data-stop-name]{margin:0 -5px 4px;padding:6px 9px;border-radius:10px;background:var(--accent-soft)}
#vehiclePanel .timeline li.next .timeline-dot:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 2px var(--surface)}
#vehiclePanel .timeline li.next .timeline-dot:after{top:13px}
#vehiclePanel .timeline li.next>div{color:var(--ink)}
body.theme-night #vehiclePanel.vehicle-has-more:not(.vehicle-scroll-end)::after{background:linear-gradient(to bottom,rgba(15,35,45,0),var(--surface) 78%)}
@media(max-width:760px){
 #vehiclePanel>.sheet-handle{min-height:14px}
 #vehiclePanel>.sheet-handle:before{top:5px;height:3px;width:34px;left:calc(50% - 17px)}
 #vehiclePanel>header{padding:0 14px 4px}
 #vehiclePanel>header small{display:none}
 #vehiclePanel>header h1{font-size:14px;line-height:1.1}
 #vehiclePanel .panel-body{padding-top:9px}
 #vehiclePanel .destination{margin-bottom:10px}
 #vehiclePanel .eyebrow{margin-top:9px}
 #vehiclePanel .timeline li,#vehiclePanel .timeline li[data-stop-name]{min-height:40px}
}

/* V81.6.21 — clickable line filters in stop departure board */
#stopPanel .stopModes{display:flex;flex-wrap:wrap;gap:6px;padding:10px 0 11px;line-height:1;border-bottom:1px solid var(--border)}
#stopPanel .stopLineChip{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:999px;min-height:29px;padding:5px 10px;font:600 10.5px/1 system-ui,-apple-system,Segoe UI,sans-serif;cursor:pointer;box-shadow:none}
#stopPanel .stopLineChip:hover,#stopPanel .stopLineChip:focus-visible{border-color:var(--accent);background:var(--accent-soft);outline:none}
#stopPanel .stopLineChip.active{border-color:var(--accent);background:var(--accent);color:#fff}
@media(max-width:760px){#stopPanel .stopModes{position:sticky;top:0;z-index:2;background:var(--surface);margin:0 -2px;padding-top:8px}.stopLineChip{touch-action:manipulation}}
@media(max-width:760px){#stopPanel .stopModes{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none}#stopPanel .stopModes::-webkit-scrollbar{display:none;width:0;height:0}#stopPanel .stopLineChip{flex:0 0 auto}}

/* V81.6.23 — live vertrekregels + duidelijke vervallenstatus */
#stopPanel .depRow.depClickable{cursor:pointer;border-radius:9px;margin:0 -5px;padding-left:5px;padding-right:5px;transition:background .12s ease,border-color .12s ease}
#stopPanel .depRow.depClickable:hover,#stopPanel .depRow.depClickable:focus-visible{background:var(--accent-soft);outline:none}
#stopPanel .depLiveAction{color:var(--accent);font-weight:650;white-space:nowrap}
#stopPanel .depRow.cancelled{background:color-mix(in srgb,var(--danger) 7%,transparent);border-radius:8px;margin:2px -4px;padding-left:4px;padding-right:4px}
#stopPanel .depRow.cancelled .depMain b,#stopPanel .depRow.cancelled .departure-line{opacity:.62;text-decoration:line-through}
#stopPanel .depRow.cancelled .depMeta{font-weight:750;color:var(--danger);white-space:nowrap}


/* V81.6.32.12 — real panel UX upgrade: ritverloop, voertuigpopup, haltepopup */
#vehiclePanel .vpHero{margin:-3px -2px 12px;padding:13px;border:1px solid color-mix(in srgb,var(--carrier-color,var(--accent)) 18%,var(--border));border-radius:16px;background:linear-gradient(135deg,color-mix(in srgb,var(--carrier-color,var(--accent)) 8%,var(--surface)),var(--surface))}.vpTitle{display:flex;flex-direction:column;gap:1px;min-width:0}.vpTitle b{font-size:14px;color:var(--ink)}.vpTitle span{font-size:11px;color:var(--muted)}
#vehiclePanel .punctuality{border-radius:999px;padding:5px 9px;font-size:10.5px;font-weight:800;background:#edf7ef;color:#087334;white-space:nowrap}.punctuality.warn{background:#fff3d7;color:#a05b00}
#vehiclePanel .vpCards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 11px}.vpCard{display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px;border:1px solid var(--border);border-radius:14px;background:var(--soft);text-align:left;color:var(--ink)}button.vpCard{cursor:pointer}.vpCard small{font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.vpCard b{font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpCard time{font-size:12px;color:var(--accent);font-weight:800}
#vehiclePanel .vpPrimaryRoute{margin:2px 0 9px}.vpPrimaryRoute button{width:100%;min-height:45px;border-radius:13px;font-weight:850;font-size:13px;background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 22%,transparent)}
#vehiclePanel .timeline.pro{border-top:1px solid var(--border);padding-top:12px}.timeline-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.timeline-head h3{margin:0}.timeline-head span{font-size:10px;color:var(--muted);font-weight:700}.timeline.pro li>div b{display:block;font-size:12px}.timeline.pro li>div small{display:inline-block;margin-top:2px;padding:2px 6px;border-radius:999px;background:#e9f4ff;color:#0b5da8;font-size:9px;font-weight:800}.timeline.pro li.next{box-shadow:inset 3px 0 0 var(--accent)}
#stopPanel .stopTabs{display:flex;gap:7px;margin:0 0 10px;overflow:auto;scrollbar-width:none}#stopPanel .stopTabs::-webkit-scrollbar{display:none}#stopPanel .stopTabs button{flex:0 0 auto;border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;min-height:31px;padding:6px 12px;font-size:11px;font-weight:750}#stopPanel .stopTabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}
#stopPanel .depRow.pro{grid-template-columns:45px 48px minmax(0,1fr) auto;gap:8px;border-bottom:1px solid var(--border)}#stopPanel .depRow.pro .depMeta{border-radius:999px;padding:4px 7px;font-size:10px;font-weight:850;background:#eef2f6;color:var(--muted)}#stopPanel .depRow.pro .depMeta.ok{background:#eaf8ec;color:#087334}#stopPanel .depRow.pro .depMeta.warn{background:#fff3d7;color:#a05b00}#stopPanel .depRow.pro .depMeta.bad{background:#ffe7e7;color:#b32626}.modeMini{font-weight:800;color:var(--accent)}
@media(max-width:760px){#vehiclePanel .vpCards{grid-template-columns:1fr}.vpCard b{white-space:normal}#stopPanel .depRow.pro{grid-template-columns:42px 43px minmax(0,1fr);align-items:start}#stopPanel .depRow.pro .depMeta{grid-column:3;justify-self:start;margin-top:2px}}
body.theme-night #vehiclePanel .vpHero{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,var(--surface)),var(--surface))}

/* V81.6.32.13 — desktop panel calm polish */
@media(min-width:761px){
 .detail-panel{width:410px;right:18px;top:76px;max-height:calc(100dvh - 96px);border-radius:22px;box-shadow:0 18px 55px rgba(16,47,69,.18)}
 .detail-panel>header{padding:15px 17px 10px;border-bottom:1px solid var(--border)}
 .detail-panel>header h1{font-size:22px;letter-spacing:-.55px;line-height:1.12}
 .detail-panel>header small{font-size:10px;letter-spacing:.13em;color:#63788a}
 .panel-body{padding:14px 16px 16px}
 #routeBar{left:336px;right:450px;max-width:none}
}
#vehiclePanel .vpHero{padding:13px 14px 14px;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:18px;background:linear-gradient(180deg,#fff,#f7fbfb)}
#vehiclePanel .vpTitle{min-width:0;display:grid;gap:2px}
#vehiclePanel .vpTitle b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#vehiclePanel .vpTitle span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#vehiclePanel .punctuality{white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:11px;background:#e8f8ef;color:#087a35}
#vehiclePanel .destination{font-size:23px;margin:3px 0 0;line-height:1.15}
#vehiclePanel .platform-row{margin-top:9px}
#vehiclePanel .vpCards{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:8px;margin:11px 0 10px}
#vehiclePanel .vpCard{min-width:0;min-height:76px;border-radius:13px;padding:10px 11px;background:#f7fafc;border:1px solid #dbe7ef;box-shadow:none;text-align:left;color:var(--ink)}
#vehiclePanel .vpCard:nth-child(3){grid-column:1 / -1;min-height:48px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
#vehiclePanel .vpCard small{display:block;font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:#63788a;font-weight:800;white-space:nowrap}
#vehiclePanel .vpCard b{display:block;margin-top:4px;font-size:12px;line-height:1.2;max-height:2.4em;overflow:hidden}
#vehiclePanel .vpCard time{display:block;margin-top:4px;font-size:12px;color:var(--accent);font-weight:850}
#vehiclePanel .vpPrimaryRoute button{width:100%;min-height:46px;border-radius:13px;font-size:14px;font-weight:850;background:var(--accent)}
#vehiclePanel .timeline.pro{border-top:1px solid var(--border);padding-top:12px;margin-top:10px}
#vehiclePanel .timeline-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
#vehiclePanel .timeline-head h3{margin:0;font-size:13px}
#vehiclePanel .timeline-head span{font-size:10px;color:#63788a;font-weight:800}
#vehiclePanel .timeline li{grid-template-columns:42px 13px minmax(0,1fr);gap:8px;min-height:35px}
#vehiclePanel .timeline li time{font-size:11px;color:#5f7384}
#vehiclePanel .timeline li div b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
#vehiclePanel .timeline li.next[data-stop-name]{margin:0 -4px 5px;padding:7px 9px;border-radius:12px;background:#e8f5f4}
#stopPanel .stopTabs{display:flex;gap:7px;margin:0 0 9px}
#stopPanel .stopTabs button{min-height:34px;padding:7px 12px;border-radius:999px;font-size:11px;background:#fff;border:1px solid #d9e5ec;color:#445b6d}
#stopPanel .stopTabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}
#stopPanel .stopModes{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:8px 0 10px;margin-bottom:4px;scrollbar-width:none}
#stopPanel .stopModes::-webkit-scrollbar{display:none}
#stopPanel .stopLineChip{flex:0 0 auto;min-height:30px;padding:6px 10px;font-size:10.5px;background:#fff}
#stopPanel .depRow.pro{display:grid;grid-template-columns:50px 42px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #dde8ef;margin:0;border-radius:0;background:transparent}
#stopPanel .depRow.pro .depTime{font-size:15px;font-weight:850;color:#18384c}
#stopPanel .depRow.pro .departure-line{font-size:10px;min-width:36px;text-align:center;border-radius:7px;padding:4px 5px;background:#dff3f1;color:#087e83;font-weight:850}
#stopPanel .depRow.pro .depMain b{font-size:12.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
#stopPanel .depRow.pro .depMain small{font-size:10px;color:#5f7384}
#stopPanel .depMeta{font-size:10px;font-weight:850;border-radius:999px;padding:5px 8px;white-space:nowrap;background:#eef3f7;color:#526779}
#stopPanel .depMeta.ok{background:#e8f8ef;color:#087a35}
#stopPanel .depMeta.warn{background:#fff4df;color:#9a5a00}
#stopPanel .depMeta.bad{background:#ffe8e8;color:#b4232b}
#stopPanel .depMeta.plan{background:#eef3f7;color:#526779}
#stopPanelBody,#vehiclePanelBody{scrollbar-width:thin;scrollbar-color:#9aabb8 transparent}
#stopPanelBody::-webkit-scrollbar,#vehiclePanelBody::-webkit-scrollbar{width:7px;display:block}
#stopPanelBody::-webkit-scrollbar-thumb,#vehiclePanelBody::-webkit-scrollbar-thumb{background:#9aabb8;border-radius:999px;border:2px solid transparent;background-clip:content-box}

/* V81.6.32.14 — mobile panel polish only */
@media(max-width:760px){
 .detail-panel{height:58dvh;max-height:calc(100dvh - 70px);border-radius:22px 22px 0 0;box-shadow:0 -10px 34px rgba(15,35,65,.18)}
 .detail-panel.expanded{height:calc(100dvh - 58px)}
 .detail-panel>header{padding:0 16px 6px;min-height:42px;border-bottom:1px solid var(--border)}
 .detail-panel>header h1{font-size:20px;line-height:1.08;letter-spacing:-.45px;max-width:270px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .detail-panel>header small{font-size:9px;letter-spacing:.12em;color:var(--muted)}
 .detail-panel>header button{background:var(--soft);border:0;border-radius:11px;min-width:35px;width:35px;height:35px}
 .panel-body{padding:10px 15px 16px;scrollbar-width:none;-ms-overflow-style:none}
 .panel-body::-webkit-scrollbar{display:none;width:0;height:0}
}
@media(max-width:760px){
 #vehiclePanel .vpHero{padding:10px 12px 12px;border-radius:15px;margin-bottom:8px}
 #vehiclePanel .line-badge{min-width:42px;min-height:38px;border-radius:11px;font-size:16px}
 #vehiclePanel .vpTitle b{font-size:13px}.vpTitle span{font-size:10px}
 #vehiclePanel .punctuality{font-size:10px;padding:5px 8px;border-radius:999px}
 #vehiclePanel .eyebrow{margin:6px 0 3px;font-size:8px}
 #vehiclePanel .destination{font-size:22px;margin:0;letter-spacing:-.45px}
 #vehiclePanel .platform-row{margin-top:7px;gap:5px}
}
@media(max-width:760px){
 #vehiclePanel .vpCards{grid-template-columns:1fr 1fr;gap:7px;margin:7px 0 8px}
 #vehiclePanel .vpCard{min-height:58px;padding:9px 10px;border-radius:13px;overflow:hidden}
 #vehiclePanel .vpCard small{font-size:8px;margin-bottom:3px;letter-spacing:.08em}
 #vehiclePanel .vpCard b{font-size:12px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 #vehiclePanel .vpCard time{font-size:12px;margin-top:3px}
 #vehiclePanel .vpCard:nth-child(3){grid-column:1 / -1;min-height:42px;display:grid;grid-template-columns:1fr auto;align-items:center}
 #vehiclePanel .vpCard:nth-child(3) small{grid-column:1 / -1;margin:0}
 #vehiclePanel .vpCard:nth-child(3) b,#vehiclePanel .vpCard:nth-child(3) time{margin:0}
}
@media(max-width:760px){
 #vehiclePanel .vpPrimaryRoute{margin:7px 0 8px}
 #vehiclePanel .vpPrimaryRoute .primary{min-height:45px;border-radius:13px;font-size:14px;font-weight:800;box-shadow:none}
 #vehiclePanel .timeline.pro{padding-top:8px;border-top:1px solid var(--border)}
 #vehiclePanel .timeline-head{margin-bottom:6px}
 #vehiclePanel .timeline-head h3{font-size:13px}.timeline-head span{font-size:10px}
 #vehiclePanel .timeline li{grid-template-columns:38px 12px minmax(0,1fr);min-height:37px;font-size:11px}
}
@media(max-width:760px){
 #stopPanel .stopTabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:0 0 9px;padding:0 0 1px}
 #stopPanel .stopTabs::-webkit-scrollbar{display:none}
 #stopPanel .stopTabs button{flex:0 0 auto;min-height:38px;padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:12px;font-weight:750;color:var(--ink)}
 #stopPanel .stopTabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}
}
@media(max-width:760px){
 #stopPanel .stopModes{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:0 0 9px;margin:0;scrollbar-width:none;border-bottom:1px solid var(--border)}
 #stopPanel .stopModes::-webkit-scrollbar{display:none}
 #stopPanel .stopLineChip{flex:0 0 auto;min-height:34px;padding:7px 11px;border-radius:999px;font-size:11px}
 #stopPanel .depRow.pro{grid-template-columns:42px 44px minmax(0,1fr) auto;gap:7px;padding:9px 0;margin:0;border-radius:0;border-bottom:1px solid var(--border)}
 #stopPanel .depTime{font-size:15px}.depRow.pro .departure-line{font-size:10px;padding:5px 7px}
 #stopPanel .depMain b{font-size:12px}.depMain small{font-size:9px}
 #stopPanel .depMeta{font-size:9px;padding:5px 7px;border-radius:999px}
}

/* V81.6.32.18 emergency: never show floating T/B station split pills */
.ovl-station-split,
.leaflet-marker-icon.ovl-station{
  display:none!important;
  pointer-events:none!important;
}

/* V81.6.32.19 — compact brand counts + bottom-right Leaflet zoom */
.brand-mode-counts{display:flex;gap:4px;align-items:center;margin-left:-6px;padding-left:8px;border-left:1px solid var(--border)}
.brand-mode-counts span{display:inline-flex;align-items:center;gap:2px;min-width:26px;height:18px;padding:0 5px;border-radius:999px;background:rgba(8,126,131,.08);color:#557084;font-size:9px;font-weight:800;line-height:1;letter-spacing:.01em}
.brand-mode-counts b{color:var(--ink);font-size:10px;font-weight:900;min-width:8px;text-align:right}
.leaflet-top.leaflet-left .leaflet-control-zoom{display:none!important}
.leaflet-bottom.leaflet-right{right:12px;bottom:24px;z-index:13}
.leaflet-bottom.leaflet-right .leaflet-control-zoom{margin:0!important;border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:var(--surface)}
.leaflet-bottom.leaflet-right .leaflet-control-zoom a{width:38px;height:38px;line-height:38px;color:var(--ink);border-color:var(--border)}
#exploreDock.collapsed #mapTools{display:none!important}
@media(max-width:760px){
 .app-bar{max-width:calc(100vw - 84px)}
 #ovspotStatus{gap:7px}
 .brand-mode-counts{gap:3px;margin-left:-3px;padding-left:6px;max-width:122px;overflow:hidden}
 .brand-mode-counts span{min-width:20px;height:16px;padding:0 4px;font-size:8px}
 .brand-mode-counts b{font-size:9px;min-width:6px}
 .connection{display:none!important}
 .leaflet-bottom.leaflet-right{right:10px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:13}
 .panel-open .leaflet-bottom.leaflet-right{bottom:calc(51dvh + 10px)}
 #exploreDock.collapsed #mapTools,#exploreDock #mapTools:not(.mobile-open){display:none!important}
}

/* V81.6.32.20 — Header Option B */
.app-bar{border-radius:28px;padding:7px 11px 7px 9px}
#ovspotStatus{display:flex;align-items:center;gap:0}
#ovspotStatus .brand{gap:9px;padding-right:12px;min-height:44px}
#ovspotStatus .brand-mark{width:40px;height:40px;border-radius:50%;font-size:21px}
.brand-mode-counts-b{display:grid!important;grid-template-columns:repeat(5,38px);gap:0!important;margin:0!important;padding:0 8px!important;max-width:none!important;overflow:visible!important;border-left:1px solid var(--border);border-right:1px solid var(--border)}
.brand-mode-counts-b .brand-mode-stat{display:grid!important;grid-template-rows:14px 13px 9px;place-items:center;align-content:center;gap:0;min-width:0!important;width:38px;height:44px!important;padding:0!important;border-radius:0!important;background:transparent!important;color:#587083!important}
.brand-mode-counts-b .brand-mode-stat+ .brand-mode-stat{border-left:1px solid rgba(22,52,71,.07)}
.brand-mode-counts-b svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.brand-mode-counts-b b{font-size:11px!important;line-height:1;color:var(--ink)!important;font-weight:900!important;min-width:0!important;text-align:center!important}
.brand-mode-counts-b small{font-size:7px;line-height:1;color:var(--muted);font-weight:650}
#ovspotStatus .connection{min-width:58px;padding-left:10px;margin-left:9px}

@media(max-width:760px){
 .app-bar{top:10px;left:8px;padding:6px 8px 6px 7px;border-radius:24px}
 #ovspotStatus .brand{gap:6px;padding-right:7px;min-height:40px;font-size:14px}
 #ovspotStatus .brand-mark{width:32px;height:32px;border-radius:50%;font-size:17px}
 .brand-mode-counts-b{grid-template-columns:repeat(5,30px);padding:0 4px!important}
 .brand-mode-counts-b .brand-mode-stat{width:30px;height:40px!important;grid-template-rows:12px 12px 8px}
 .brand-mode-counts-b svg{width:11px;height:11px}
 .brand-mode-counts-b b{font-size:9px!important}
 .brand-mode-counts-b small{font-size:6px}
 #ovspotStatus .connection{display:grid!important;min-width:47px;margin-left:6px;padding-left:7px;font-size:8px}
 .visible-count{font-size:8px}
}

/* V81.6.32.21 — desktop readability polish for Header B */
@media(min-width:761px){
 .app-bar{top:18px;left:18px;padding:8px 13px 8px 10px;border-radius:30px}
 #ovspotStatus .brand{gap:10px;padding-right:14px;min-height:50px;font-size:20px;font-weight:800}
 #ovspotStatus .brand-mark{width:44px;height:44px;font-size:23px}
 .brand-mode-counts-b{grid-template-columns:repeat(5,44px);padding:0 10px!important}
 .brand-mode-counts-b .brand-mode-stat{width:44px;height:50px!important;grid-template-rows:16px 15px 10px}
 .brand-mode-counts-b svg{width:15px;height:15px}
 .brand-mode-counts-b b{font-size:13px!important}
 .brand-mode-counts-b small{font-size:8px;font-weight:700}
 #ovspotStatus .connection{min-width:66px;margin-left:10px;padding-left:11px;font-size:10px}
 #connectionText{font-size:11px;font-weight:800}
 .visible-count{font-size:9px}
}

/* V81.6.32.22 — clickable header mode counters */
.brand-mode-counts-b .brand-mode-stat{cursor:pointer;user-select:none;transition:background .14s ease,color .14s ease,transform .14s ease}
.brand-mode-counts-b .brand-mode-stat:hover{background:rgba(8,126,131,.07)!important}
.brand-mode-counts-b .brand-mode-stat:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.brand-mode-counts-b .brand-mode-stat.solo-active{background:var(--accent-soft)!important;color:var(--accent)!important}
.brand-mode-counts-b .brand-mode-stat.solo-active b,.brand-mode-counts-b .brand-mode-stat.solo-active small{color:var(--accent)!important}

/* V81.6.32.23 — all stop line filters remain visible */
#stopPanel .stopModes{
  flex-wrap:wrap!important;
  overflow-x:visible!important;
  overflow-y:visible!important;
  white-space:normal;
  row-gap:6px;
  max-width:100%;
}
#stopPanel .stopLineChip{flex:0 0 auto}

/* V81.6.32.25 — compact mobile vehicle sheet; timeline earlier in view */
#vehiclePanel .vpMobileMeta{display:none}
@media(max-width:760px){
 .detail-panel{height:64dvh}
 #vehiclePanel .panel-body{padding:7px 12px 12px}
 #vehiclePanel .vpHero{padding:8px 10px 9px;margin:-2px 0 6px;border-radius:13px}
 #vehiclePanel .line-badge{min-width:38px;min-height:34px;border-radius:9px;font-size:15px}
 #vehiclePanel .vpTitle b{font-size:12px}
 #vehiclePanel .vpTitle span{font-size:9.5px}
 #vehiclePanel .punctuality{font-size:9px;padding:4px 7px}
 #vehiclePanel .eyebrow{display:none}
 #vehiclePanel .destination{font-size:18px;line-height:1.08;margin:4px 0 0;letter-spacing:-.3px}
 #vehiclePanel .platform-row{margin-top:5px}
 #vehiclePanel .vpMobileMeta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding-top:5px;border-top:1px solid var(--border);font-size:9.5px;color:var(--muted)}
 #vehiclePanel .vpMobileMeta strong{color:var(--accent);font-size:10px;white-space:nowrap}
 #vehiclePanel .vpCards{grid-template-columns:1fr 1fr;gap:6px;margin:5px 0 6px}
 #vehiclePanel .vpCard{min-height:48px;padding:7px 8px;border-radius:11px}
 #vehiclePanel .vpCard small{font-size:7.5px;margin-bottom:1px}
 #vehiclePanel .vpCard b{font-size:11px;line-height:1.12;-webkit-line-clamp:1}
 #vehiclePanel .vpCard time{font-size:11px;margin-top:2px}
 #vehiclePanel .vpCard:nth-child(3){display:none!important}
 #vehiclePanel .vpPrimaryRoute{margin:4px 0 5px}
 #vehiclePanel .vpPrimaryRoute .primary{min-height:36px;border-radius:11px;font-size:12px}
 #vehiclePanel .timeline.pro{padding-top:6px;margin-top:0}
 #vehiclePanel .timeline-head{margin-bottom:4px}
 #vehiclePanel .timeline-head h3{font-size:12px}
 #vehiclePanel .timeline li{grid-template-columns:36px 11px minmax(0,1fr);min-height:34px;gap:6px}
 #vehiclePanel .timeline li[data-stop-name]{min-height:34px}
}

/* V81.6.32.27 Live Journey Polish */
.vpCompactMeta{display:none}.vpJourneyActions{display:flex;gap:8px;margin:6px 0 10px;position:relative}.vpJourneyActions>.primary{flex:1;min-height:40px}
#vpMore{position:relative}#vpMore summary{list-style:none;cursor:pointer;min-width:44px;min-height:40px;display:grid;place-items:center;border:1px solid var(--border,#ccd5df);border-radius:10px;background:var(--surface,#fff)}
#vpMore summary::-webkit-details-marker{display:none}#vpMore summary:focus-visible{outline:2px solid #087f8c}
.vpMoreMenu{position:absolute;right:0;top:calc(100% + 4px);width:170px;z-index:5;padding:6px;background:var(--surface,#fff);border:1px solid var(--border,#ccd5df);border-radius:12px;box-shadow:0 8px 22px #0002}.vpMoreMenu button{display:block;width:100%;min-height:44px;text-align:left}
.timeline li.passed{opacity:.55}.timeline li.current{background:#0f94881a;border-radius:8px}.timeline li.current .timeline-dot{background:#087f8c}.stopDelay{display:block;font-size:10px;color:#b34d1d}.ovStationName{font-size:11px;font-weight:650;background:#fffffff0;color:#253957;border:0;box-shadow:0 1px 5px #0002;padding:2px 5px}
@media(max-width:760px){#vehiclePanel{height:67dvh}#vehiclePanel>header{padding:2px 12px 6px}#vehiclePanelTitle{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#vehiclePanelBody{padding:4px 12px 10px}#vehiclePanel .vpHero,#vehiclePanel .vpCards{display:none}.vpCompactMeta{display:flex;justify-content:space-between;gap:8px;font-size:10px;margin:0 0 5px}.vpCompactMeta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vpJourneyActions{margin:6px 0}.timeline.pro{padding:4px}.timeline.pro li{min-height:44px;padding:3px 6px;grid-template-columns:53px 12px 1fr}.timeline.pro li b{font-size:12px}}

@media(max-width:760px){#vehiclePanel .timeline li[data-stop-name]{min-height:44px;grid-template-columns:53px 12px minmax(0,1fr)}#vehiclePanel.expanded{height:88dvh}}


/* V81.6.32.29 Journey & Motion — compact mobile journey */
.vpRouteMore{display:none!important}
@media(max-width:760px){
 #vehiclePanel{height:65dvh}
 #vehiclePanel>header{padding:1px 11px 4px}
 #vehiclePanelBody{padding:2px 11px 8px}
 .vpCompactMeta{font-size:9.5px;margin:0 0 2px}
 .vpJourneyActions{justify-content:flex-end;margin:2px 0 3px;min-height:30px}
 .vpJourneyActions>#vpRoute{display:none}
 #vpMore summary{min-width:38px;min-height:30px;border-radius:9px;font-size:13px}
 .vpMoreMenu{top:calc(100% + 3px)}
 .vpMoreMenu .vpRouteMore{display:block!important}
 #vehiclePanel .timeline.pro{padding:2px 4px 4px}
 #vehiclePanel .timeline-head{margin-bottom:2px}
 #vehiclePanel .timeline-head h3{font-size:11.5px}
 #vehiclePanel .timeline li,#vehiclePanel .timeline li[data-stop-name]{min-height:38px;padding:2px 5px;grid-template-columns:48px 11px minmax(0,1fr);gap:5px}
 #vehiclePanel .timeline li div b{font-size:11.5px}
 #vehiclePanel .timeline li.passed{min-height:30px;opacity:.38;font-size:10px}
 #vehiclePanel .timeline li.passed div b{font-size:10.5px;font-weight:550}
 #vehiclePanel .timeline li.current{background:#0f948824;box-shadow:inset 3px 0 0 #087f8c;font-weight:750}
 #vehiclePanel .timeline li.current div b{font-size:12px;font-weight:800}
 #vehiclePanel .timeline li.current small{font-weight:800;color:#087f8c}
}

/* V81.6.32.33 — compact rail badges never wrap */
#vehiclePanel .line-badge{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important;min-width:44px!important;width:auto!important;padding:0 7px!important;font-size:14px!important;line-height:1!important}
@media(max-width:760px){#vehiclePanel .line-badge{min-width:42px!important;padding:0 6px!important;font-size:13px!important}}

/* V81.6.32.34 Rail UX & Coverage */
.rail-filter{margin-top:9px;padding-top:9px;border-top:1px solid var(--border)}.rail-filter-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.rail-filter-head b{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.rail-filter-head button{border:0;background:transparent;color:var(--accent);font:800 10px system-ui;cursor:pointer}.rail-filter-grid{display:flex;flex-wrap:wrap;gap:5px}.rail-filter-grid button{display:flex;align-items:center;gap:6px;min-height:30px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);padding:5px 9px;font:750 10px system-ui;cursor:pointer}.rail-filter-grid button b{font-size:9px;min-width:16px;padding:2px 4px;border-radius:999px;background:var(--soft);color:var(--muted)}.rail-filter-grid button.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--ink)}.rail-filter-grid button.active b{color:var(--accent)}.rail-summary{margin-top:8px;padding:8px 9px;border-radius:11px;background:var(--soft);display:flex;flex-wrap:wrap;gap:5px 10px;align-items:center;font-size:9px;color:var(--muted)}.rail-summary b{width:100%;font-size:10px;color:var(--ink)}.rail-summary span:before{content:'✓ ';color:var(--accent);font-weight:900}.vpPositionSource{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:8px 10px;border:1px solid var(--border);border-radius:11px;background:var(--soft)}.vpPositionSource .vpPositionDot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}.vpPositionSource.estimated .vpPositionDot{background:transparent;border:2px dashed var(--accent);box-shadow:none}.vpPositionSource div{min-width:0}.vpPositionSource b{display:block;font-size:10.5px;color:var(--ink)}.vpPositionSource small{display:block;margin-top:1px;font-size:8.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:760px){.rail-filter-grid button{min-height:32px;font-size:10px}.rail-summary{font-size:8.5px}.vpPositionSource{margin:1px 0 5px;padding:6px 8px}.vpPositionSource b{font-size:9.5px}.vpPositionSource small{font-size:8px}}

/* V81.6.32.34 — mobile filter open state wins over collapsed dock */
@media(max-width:760px){#exploreDock.collapsed #mapTools.mobile-open,#exploreDock #mapTools.mobile-open{display:block!important;max-height:calc(100dvh - 170px);overflow-y:auto}}

/* V81.6.32.35 — mobile panels fit content, no dead white space */
@media(max-width:760px){
 .detail-panel.open:not(.expanded){height:auto!important;max-height:72dvh!important}
 .detail-panel.open:not(.expanded) .panel-body{overflow-y:auto;max-height:calc(72dvh - 68px)}
 .detail-panel.expanded{height:calc(100dvh - 76px)!important;max-height:calc(100dvh - 76px)!important}
 #vehiclePanel .vpJourneyActions{display:grid!important;grid-template-columns:minmax(0,1fr) 48px;gap:7px;align-items:center;margin:4px 0 5px!important;min-height:34px}
 #vehiclePanel .vpJourneyActions>#vpRoute{display:block!important;min-height:36px;border-radius:10px;font-size:11.5px;font-weight:850}
 #vehiclePanel #vpMore{min-width:48px}
 #vehiclePanel #vpRouteMore{display:none!important}
 #vehiclePanel .vpPositionSource{margin:2px 0 5px}
 #stopPanel.open:not(.expanded) .panel-body{padding-bottom:10px}
}

/* V81.6.32.37 — international route views + compact mobile station board */
#routeBar .route-view-modes{display:flex;align-items:center;gap:5px;margin-left:auto}
#routeBar .route-view-modes[hidden]{display:none!important}
#routeBar .route-view-modes button{min-height:30px;padding:5px 9px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:9.5px;font-weight:800;white-space:nowrap}
#routeBar .route-view-modes button.active{background:var(--accent);border-color:var(--accent);color:#fff}
.journey-time-shift{display:flex;align-items:center;gap:3px;white-space:nowrap}.journey-time-shift del{color:var(--muted);font-size:9px;text-decoration-thickness:1px}.journey-time-shift i{font-style:normal;color:var(--muted);font-size:8px}.journey-time-shift strong{color:var(--accent);font-size:10px}
@media(max-width:760px){
 #stopPanel>header{padding:0 12px 8px!important;min-height:50px}
 #stopPanel>header h1{font-size:20px!important;line-height:1.05}
 #stopPanel .panel-body{padding:8px 12px 9px!important}
 #stopPanel .stopTabs{gap:5px!important;margin:0 0 6px!important}
 #stopPanel .stopTabs button{min-height:31px!important;padding:5px 10px!important;font-size:10.5px!important}
 #stopPanel .stopModes{gap:5px!important;padding:0 0 6px!important;margin:0 0 2px!important}
 #stopPanel .stopLineChip{min-height:29px!important;padding:5px 9px!important;font-size:10px!important}
 #stopPanel .depRow.pro{grid-template-columns:39px 40px minmax(0,1fr) auto!important;gap:6px!important;padding:7px 0!important}
 #stopPanel .depTime{font-size:14px!important}
 #stopPanel .depRow.pro .departure-line{font-size:9.5px!important;padding:4px 5px!important}
 #stopPanel .depMain b{font-size:11.5px!important}.depMain small{font-size:8.5px!important}
 #stopPanel .depMeta{font-size:8.5px!important;padding:4px 6px!important}
 #routeBar{display:flex;flex-wrap:wrap;gap:5px;padding:7px 8px!important}
 #routeBar>span{width:100%;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #routeBar .route-view-modes{order:2;width:calc(100% - 38px);display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin:0}
 #routeBar .route-view-modes button{min-height:31px;padding:5px 4px;font-size:9px}
 #routeBar #routeClear{order:3}
 .timeline li>time{min-width:48px}
}
/* V81.6.33.0 — Realtime Information Upgrade */
.scheduled-summary{margin-top:8px;padding:8px 9px;border-radius:11px;background:var(--soft);display:grid;grid-template-columns:1fr 1fr;gap:4px 9px;font-size:9px;color:var(--muted)}
.scheduled-summary>b,.scheduled-summary>small{grid-column:1/-1}.scheduled-summary>b{font-size:10px;color:var(--ink)}.scheduled-summary strong{color:var(--accent);font-size:10px}.scheduled-summary small{font-size:8.5px}
.vpDataGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 8px}.vpDataGrid>div{min-width:0;padding:8px 9px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.vpDataGrid small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.05em}.vpDataGrid b{display:block;margin-top:2px;color:var(--ink);font-size:10px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.journey-sub{display:block;margin-top:2px;color:var(--muted);font-size:8.5px;font-weight:700}.timeline li.current .journey-sub,.timeline li.next .journey-sub{color:var(--accent)}
.depNotice{display:block;margin-top:4px;color:var(--bad);font-size:8.5px;font-style:normal;font-weight:750;line-height:1.3}.depRow:not(.cancelled) .depNotice{color:#a66300}.dep-time-change{display:flex;flex-direction:column;line-height:1.05}.dep-time-change del{color:var(--muted);font-size:9px}.dep-time-change strong{color:var(--accent);font-size:13px}.depRow.cancelled .dep-time-change strong{color:var(--bad)}
@media(max-width:760px){.scheduled-summary{padding:7px 8px;font-size:8.5px}.vpDataGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-bottom:6px}.vpDataGrid>div{padding:6px 7px}.vpDataGrid b{font-size:9.5px}.depNotice{font-size:8px}.journey-sub{font-size:8px}}

.vpInformation{margin:6px 0}.vpInformation summary{cursor:pointer;padding:10px 4px;font-size:12px;font-weight:650}
.journeyAlerts{padding:8px 12px;border-left:3px solid #cc5936;background:#cc593614;font-size:12px}.journeyAlerts p{margin:4px 0}
.timeline li.cancelled b,.stopMutation{color:#bc4428}.timeline li.cancelled .timeline-dot{background:#bc4428}
.planningButtons{display:grid;gap:6px;margin-bottom:8px}.planningButtons button{min-height:40px}
.planningIntro{font-size:12px;color:var(--muted);line-height:1.5}
.planningRouteRow,.planningStopRow{width:100%;display:flex;align-items:center;text-align:left;gap:10px;min-height:52px;margin:5px 0;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:10px}
.planningRouteRow>strong{min-width:34px}.planningRouteRow>span{flex:1;min-width:0}.planningRouteRow b,.planningRouteRow small{display:block}.planningRouteRow small{margin-top:3px;font-size:11px}.planningRouteRow:disabled{opacity:.55}.planningStopRow time{font-variant-numeric:tabular-nums}.planningStopRow b{flex:1;font-size:12px}.planningStopRow span{font-size:10px;color:var(--muted)}
@media(max-width:760px){.vpInformation summary{padding:6px 3px}.journeyAlerts{font-size:11px;padding:5px 8px}}

#routeBar:not(.open){display:none!important}

#vehiclePanel .timeline li[data-stop-name]{grid-template-columns:84px 11px minmax(0,1fr)}
#vehiclePanel .timeline li>time{min-width:0;font-variant-numeric:tabular-nums}

/* V81.6.33.1 hybrid metro */
.scheduled-summary .hybrid-status{grid-column:1/-1;margin-top:2px}.scheduled-summary .hybrid-status strong{font-size:9px}.vpPositionSource.estimated-metro b:before{content:"≈ ";font-weight:900}.theme-night .vpPositionSource.estimated-metro b:before{opacity:.9}
/* V81.6.33.4 metro/veer trip detail */
.planningTripHero{border-left:4px solid var(--route-color,var(--accent));padding:10px 11px;margin:0 0 8px;border-radius:11px;background:var(--soft)}.planningTripHero>div>b{display:block;margin-top:4px;font-size:13px}.planningTripHero>div>small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.planningModeBadge{display:inline-flex;padding:3px 7px;border-radius:999px;background:var(--surface);font-size:8.5px;font-weight:900}.planningTripHero dl{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:9px 0 0}.planningTripHero dl div{padding:6px 7px;border-radius:8px;background:var(--surface)}.planningTripHero dt{font-size:7.5px;color:var(--muted);text-transform:uppercase}.planningTripHero dd{margin:2px 0 0;font-size:9.5px;font-weight:850}.planningTripHero>a{display:inline-block;margin-top:7px;font-size:8.5px;font-weight:800;color:var(--accent)}
@media(max-width:760px){.planningTripHero{padding:8px 9px}.planningTripHero dl{gap:4px}.planningTripHero dl div{padding:5px 6px}}


/* V81.6.34.1 — vehicle popup redesign */
#vehiclePanel{--vpr-orange:#a85c00;--vpr-orange-bg:#fff0d2;--vpr-blue:#12539a;--vpr-blue-bg:#dbeeff}
#vehiclePanel>header{position:absolute;z-index:8;top:7px;right:8px;padding:0!important;background:transparent;border:0;pointer-events:none}
#vehiclePanel>header>div{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#vehiclePanel>header #vehiclePanelClose{pointer-events:auto;width:30px;height:30px;min-width:30px;min-height:30px;border:1px solid var(--border);border-radius:10px;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(5px)}
#vehiclePanelBody{padding:9px 10px 11px!important}
.vprHeader{overflow:hidden;border:1px solid var(--border);border-radius:15px 15px 0 0;background:var(--surface)}
.vprHeadline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 42px 10px 10px}
.vprBadge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:27px;padding:0 8px;border-radius:8px;background:var(--vehicle-color);color:var(--vehicle-text,#fff);font-size:12px;font-weight:900;line-height:1;white-space:nowrap;box-shadow:inset 0 0 0 1px #0001}
.vprHeadline>div{min-width:0}.vprHeadline h2{margin:0;color:var(--ink);font-size:14px;line-height:1.18;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vprHeadline small{display:block;margin-top:2px;color:var(--muted);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vprDelay{align-self:start;margin-right:-32px;padding:5px 8px;border-radius:8px;background:var(--vpr-orange-bg);color:var(--vpr-orange);font-size:10px;font-weight:900;white-space:nowrap}
.vprLive{display:flex;align-items:center;gap:7px;min-height:29px;padding:6px 10px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--soft) 45%,var(--surface));color:var(--muted)}.vprLive>span{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#14913e}.vprLive p{margin:0;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vprHeader:has(.vprLive p:first-child){border-radius:15px}
.vprEta{display:grid;grid-template-columns:22px minmax(0,1fr) auto auto;align-items:center;gap:8px;margin:0;border:1px solid #b7d7f7;border-top:0;padding:9px 10px;background:var(--vpr-blue-bg);color:var(--vpr-blue)}.vprEtaIcon{display:grid;place-items:center}.vprEtaIcon svg{width:18px;height:18px}.vprEta div{min-width:0}.vprEta b{display:block;font-size:9.5px}.vprEta small{display:block;margin-top:1px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vprEta time{font-size:17px;font-weight:900;font-variant-numeric:tabular-nums}.vprEta em{font-size:9px;font-style:normal;font-weight:800;white-space:nowrap}
.vprSummary{display:grid;grid-template-columns:1fr 1fr;margin:0 0 8px;border:1px solid var(--border);border-top:0;border-radius:0 0 12px 12px;overflow:hidden;background:var(--surface)}.vprSummaryCard{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:9px 10px;border:0;background:transparent;color:var(--ink);text-align:left}.vprSummaryCard+ .vprSummaryCard{border-left:1px solid var(--border)}button.vprSummaryCard{cursor:pointer}.vprSummaryCard>small{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.045em;color:var(--muted)}.vprSummaryCard>b{max-width:100%;font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vprSummaryCard>span{display:flex;align-items:baseline;gap:4px}.vprSummaryCard time{font-size:11px;font-variant-numeric:tabular-nums}.vprSummaryCard .stopDelay{display:inline-block;margin:0}
.vprInfo{margin:6px 0 8px}.vprInfo summary{font-size:9px!important}
#vehiclePanel .vprTimeline{--vpr-time:55px;--vpr-gap:7px;margin:0;padding:4px 2px 2px!important;border-top:0!important}#vehiclePanel .vprTimeline .timeline-head{margin:0 4px 6px}#vehiclePanel .vprTimeline .timeline-head h3{font-size:10px;text-transform:uppercase;letter-spacing:.045em;color:var(--muted)}.vprTimelineStatus{display:flex!important;align-items:center;gap:5px;font-size:9px!important}.vprTimelineStatus.live{color:#16813d!important}.vprTimelineStatus.live i{display:block;width:6px;height:6px;border-radius:50%;background:#16813d}
#vehiclePanel .vprTimeline ol{position:relative;margin:0;padding:0;list-style:none}#vehiclePanel .vprTimeline ol::before{content:"";position:absolute;z-index:0;top:13px;bottom:13px;left:calc(var(--vpr-time) + var(--vpr-gap) + 5px);width:2px;background:#d1d7dc}
#vehiclePanel .vprTimeline li,#vehiclePanel .vprTimeline li[data-stop-name]{position:relative;z-index:1;display:grid;grid-template-columns:var(--vpr-time) 11px minmax(0,1fr);gap:var(--vpr-gap);align-items:start;min-height:38px;margin:0;padding:4px 3px;background:transparent;box-shadow:none;border-radius:7px}
#vehiclePanel .vprTimeline li>time{padding-top:1px;color:#4e5962;font-size:10.5px;line-height:1.1;text-align:right;font-variant-numeric:tabular-nums}.vprTimeline .journey-time-shift{display:flex;flex-direction:column;align-items:flex-end;gap:0}.vprTimeline .journey-time-shift i{display:none}.vprTimeline .journey-time-shift del{font-size:8px;color:#a3a9ae}.vprTimeline .journey-time-shift strong{font-size:10.5px;color:var(--ink)}
#vehiclePanel .vprTimeline .timeline-dot{position:relative;display:block;width:11px;height:18px;background:transparent!important}.vprTimeline .timeline-dot:after{display:none!important}.vprTimeline .timeline-dot:before{content:""!important;position:absolute!important;z-index:2;top:3px!important;left:1px!important;width:8px!important;height:8px!important;border:2px solid #c7ccd1!important;border-radius:50%!important;background:var(--surface)!important;box-shadow:none!important;transform:none!important}
.vprTimeline[data-vehicle-type="trein"] li.current .timeline-dot:before,.vprTimeline[data-vehicle-type="trein"] li.next .timeline-dot:before{border-radius:2px!important;transform:rotate(45deg)!important}
.vprTimeline[data-vehicle-type="metro"] li.current .timeline-dot:before,.vprTimeline[data-vehicle-type="metro"] li.next .timeline-dot:before{box-shadow:inset 0 0 0 2px var(--surface)!important}
#vehiclePanel .vprTimeline li.current,#vehiclePanel .vprTimeline li.next{background:color-mix(in srgb,var(--vehicle-color) 7%,var(--surface));box-shadow:none!important}.vprTimeline li.current .timeline-dot:before,.vprTimeline li.next .timeline-dot:before{border-color:var(--vehicle-color)!important;background:var(--vehicle-color)!important}.vprTimeline li.passed{opacity:.42}.vprTimeline li.passed .timeline-dot:before{background:#e2e5e7!important}.vprTimeline li>div{min-width:0}.vprTimeline li>div>b{display:block;font-size:11px!important;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vprTimeline li.current>div>b,.vprTimeline li.next>div>b{font-weight:850;color:var(--ink)}.vprTimeline .journey-sub{margin-top:1px;font-size:8px}.vprTimeline .stop-chevron{display:none}
.stopDelay{display:block!important;width:max-content;margin:2px 0 0 auto;padding:1px 4px;border-radius:5px;background:var(--vpr-orange-bg);color:var(--vpr-orange)!important;font-size:8px!important;font-weight:900!important;line-height:1.3}.stopDelay.estimated{border:1px dashed #e6b55b}.stopDelay.hard{border:1px solid transparent}
#vehiclePanel .vprActions{display:grid!important;grid-template-columns:minmax(0,1fr) 36px 36px!important;gap:7px;align-items:center;margin:8px 2px 1px!important;padding-top:8px;border-top:1px solid var(--border);min-height:38px}#vehiclePanel .vprActions>#vpRoute{display:flex!important;align-items:center;justify-content:center;gap:7px;min-height:36px!important;border-radius:10px;font-size:10.5px;font-weight:850}.vprActions button svg{width:16px;height:16px}.vprActions #vpMore{position:relative}.vprActions #vpMore>summary,.vprShare{display:grid!important;place-items:center;width:36px;height:36px;min-width:36px!important;min-height:36px!important;padding:0!important;border:1px solid var(--border)!important;border-radius:10px!important;background:var(--surface)!important;color:var(--ink)!important;cursor:pointer}.vprActions #vpMore>summary{font-size:13px;letter-spacing:1px;list-style:none}.vprActions #vpMore>summary::-webkit-details-marker{display:none}.vprShare svg{width:16px;height:16px}
body.theme-night #vehiclePanel{--vpr-orange-bg:#4a3219;--vpr-orange:#ffbf68;--vpr-blue-bg:#173a5d;--vpr-blue:#9dcbff}.theme-night .vprTimeline ol::before{background:#46525d}.theme-night .vprTimeline .timeline-dot:before{background:var(--surface)!important;border-color:#65717c!important}
@media(max-width:760px){#vehiclePanel{height:72dvh}#vehiclePanelBody{padding:7px 8px 10px!important}.vprHeadline{padding:9px 39px 8px 9px;gap:7px}.vprBadge{min-width:40px;height:25px;font-size:11px}.vprHeadline h2{font-size:12.5px}.vprHeadline small{font-size:8.5px}.vprDelay{margin-right:-29px;font-size:9px;padding:4px 6px}.vprLive{min-height:25px;padding:5px 9px}.vprLive p{font-size:8.5px}.vprEta{grid-template-columns:19px minmax(0,1fr) auto auto;padding:8px 9px;gap:6px}.vprEta time{font-size:15px}.vprSummaryCard{padding:8px}.vprSummaryCard>b{font-size:10.5px}#vehiclePanel .vprTimeline{--vpr-time:50px;--vpr-gap:6px;padding:2px!important}#vehiclePanel .vprTimeline li,#vehiclePanel .vprTimeline li[data-stop-name]{grid-template-columns:var(--vpr-time) 11px minmax(0,1fr);min-height:36px;padding:3px 2px}#vehiclePanel .vprTimeline li>time{font-size:10px}.vprTimeline li>div>b{font-size:10.8px!important}#vehiclePanel .vprActions{margin-top:5px!important;padding-top:6px}.vpCompactMeta{display:none!important}}

/* V81.6.34.2 — timeline polish */
#vehiclePanel .vprTimeline ol::before{
  top:9px!important;
  bottom:9px!important;
  left:calc(var(--vpr-time) + var(--vpr-gap) + 5px)!important;
  width:2px!important;
  background:#cfd5da!important;
  z-index:0!important;
}
#vehiclePanel .vprTimeline li,
#vehiclePanel .vprTimeline li[data-stop-name]{
  background:transparent!important;
  box-shadow:none!important;
}
#vehiclePanel .vprTimeline li.passed{opacity:.45!important}
#vehiclePanel .vprTimeline li.current,
#vehiclePanel .vprTimeline li.next,
#vehiclePanel .vprTimeline li.future{opacity:1!important}
#vehiclePanel .vprTimeline .timeline-dot{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  width:11px!important;
  height:18px!important;
  background:transparent!important;
}
#vehiclePanel .vprTimeline .timeline-dot::after{display:none!important}
#vehiclePanel .vprTimeline .timeline-dot::before{
  content:""!important;
  position:absolute!important;
  z-index:3!important;
  box-sizing:border-box!important;
  border-radius:50%!important;
  box-shadow:none!important;
  transform:none!important;
}
/* Gepasseerd: kleine grijze gevulde stip */
#vehiclePanel .vprTimeline li.passed .timeline-dot::before{
  width:6px!important;
  height:6px!important;
  left:3px!important;
  top:5px!important;
  border:0!important;
  background:#aab2b8!important;
}
/* Nu: enige grote gevulde positie-stip, bewust donker/neutraal */
#vehiclePanel .vprTimeline li.current .timeline-dot::before{
  width:10px!important;
  height:10px!important;
  left:1px!important;
  top:3px!important;
  border:2px solid #fff!important;
  background:#214b66!important;
  box-shadow:0 0 0 1px #214b66!important;
}
/* Volgende: kleinere gevulde accent-stip, visueel anders dan Nu */
#vehiclePanel .vprTimeline li.next .timeline-dot::before{
  width:8px!important;
  height:8px!important;
  left:2px!important;
  top:4px!important;
  border:0!important;
  background:var(--vehicle-color)!important;
}
/* Toekomst: lege cirkel */
#vehiclePanel .vprTimeline li.future .timeline-dot::before{
  width:8px!important;
  height:8px!important;
  left:2px!important;
  top:4px!important;
  border:2px solid #c5cbd0!important;
  background:var(--surface)!important;
}
/* Geen diamant/speciale tweede gevulde toestand per modaliteit */
#vehiclePanel .vprTimeline[data-vehicle-type="trein"] li.current .timeline-dot::before,
#vehiclePanel .vprTimeline[data-vehicle-type="trein"] li.next .timeline-dot::before,
#vehiclePanel .vprTimeline[data-vehicle-type="metro"] li.current .timeline-dot::before,
#vehiclePanel .vprTimeline[data-vehicle-type="metro"] li.next .timeline-dot::before{
  border-radius:50%!important;
  transform:none!important;
}
/* Exact één verwachte tijd + klein oranje suffix */
#vehiclePanel .vprTimeline li>time{
  display:flex!important;
  align-items:baseline!important;
  justify-content:flex-end!important;
  gap:3px!important;
  white-space:nowrap!important;
}
#vehiclePanel .vprStopTime{
  display:inline!important;
  color:inherit!important;
  font:inherit!important;
  font-variant-numeric:tabular-nums!important;
}
#vehiclePanel .vprDelaySuffix{
  display:inline!important;
  width:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#b76400!important;
  font-size:8px!important;
  font-weight:850!important;
  line-height:1!important;
  vertical-align:baseline!important;
}
#vehiclePanel .vprDelaySuffix.estimated{color:#b97822!important}
#vehiclePanel .vprSummaryCard .vprDelaySuffix{
  font-size:8px!important;
  margin-left:1px!important;
}
/* Oude dubbele tijdweergave en badge-styling definitief uit */
#vehiclePanel .vprTimeline .journey-time-shift,
#vehiclePanel .vprTimeline .stopDelay{display:none!important}
body.theme-night #vehiclePanel .vprTimeline ol::before{background:#4c5964!important}
body.theme-night #vehiclePanel .vprTimeline li.future .timeline-dot::before{border-color:#69757f!important;background:var(--surface)!important}
body.theme-night #vehiclePanel .vprTimeline li.passed .timeline-dot::before{background:#74808a!important}
body.theme-night #vehiclePanel .vprTimeline li.current .timeline-dot::before{border-color:#dce7ee!important;background:#8dbbd7!important;box-shadow:0 0 0 1px #8dbbd7!important}

/* V81.6.34.3 — explicit timeline state colors */
#vehiclePanel .vprTimeline li.current .timeline-dot::before{
  width:10px!important;
  height:10px!important;
  left:1px!important;
  top:3px!important;
  border:2px solid #fff!important;
  background:#16813d!important;
  box-shadow:0 0 0 1px #16813d!important;
}
#vehiclePanel .vprTimeline li.next .timeline-dot::before{
  width:8px!important;
  height:8px!important;
  left:2px!important;
  top:4px!important;
  border:0!important;
  background:#1677d2!important;
  box-shadow:none!important;
}
#vehiclePanel .vprTimeline li.passed{opacity:.45!important}
#vehiclePanel .vprTimeline li.passed .timeline-dot::before{
  width:6px!important;height:6px!important;left:3px!important;top:5px!important;
  border:0!important;background:#aab2b8!important;box-shadow:none!important;
}
#vehiclePanel .vprTimeline li.future .timeline-dot::before{
  width:8px!important;height:8px!important;left:2px!important;top:4px!important;
  border:2px solid #c5cbd0!important;background:var(--surface)!important;box-shadow:none!important;
}
#vehiclePanel .vprTimeline ol::before{
  content:""!important;display:block!important;top:9px!important;bottom:9px!important;
  left:calc(var(--vpr-time) + var(--vpr-gap) + 5px)!important;width:2px!important;
  background:#cfd5da!important;z-index:0!important;
}
#vehiclePanel .vprDelaySuffix{
  display:inline!important;margin-left:2px!important;padding:0!important;border:0!important;background:none!important;
  color:#b76400!important;font-size:8px!important;font-weight:850!important;line-height:1!important;
}
body.theme-night #vehiclePanel .vprTimeline li.current .timeline-dot::before{background:#54b86f!important;box-shadow:0 0 0 1px #54b86f!important;border-color:#e9f4ec!important}
body.theme-night #vehiclePanel .vprTimeline li.next .timeline-dot::before{background:#5aa7ee!important}

/* V81.6.34.4 — timeline connector centered on dot column */
#vehiclePanel .vprTimeline ol::before{
  left:calc(var(--vpr-time) + var(--vpr-gap) + 8.5px)!important;
  width:2px!important;
  background:#aeb7bd!important;
  opacity:1!important;
  z-index:0!important;
}
@media(max-width:760px){
  #vehiclePanel .vprTimeline ol::before{
    left:calc(var(--vpr-time) + var(--vpr-gap) + 7.5px)!important;
  }
}
body.theme-night #vehiclePanel .vprTimeline ol::before{background:#66747e!important}
/* V81.6.34.4 — final 1px connector alignment */
#vehiclePanel .vprTimeline ol::before{left:calc(var(--vpr-time) + var(--vpr-gap) + 7.5px)!important}
@media(max-width:760px){#vehiclePanel .vprTimeline ol::before{left:calc(var(--vpr-time) + var(--vpr-gap) + 6.5px)!important}}

/* V81.6.34.5 — header status + connector starts at first visible dot */
#vehiclePanel .vprDelay.ontime{background:#e8f5ec!important;color:#19743b!important}
#vehiclePanel .vprTimeline ol::before{top:12px!important}
@media(max-width:760px){#vehiclePanel .vprTimeline ol::before{top:11px!important}}
body.theme-night #vehiclePanel .vprDelay.ontime{background:#193e29!important;color:#8fdda8!important}

/* V81.6.34.6 — halte departure board redesign */
#stopPanel{
  --text-primary:#171b1f;
  --text-secondary:#5f666d;
  --text-muted:#989da2;
  --text-warning:#b86b00;
  --text-success:#1d7a49;
  --text-danger:#b4232b;
  --bg-success:#e7f5ed;
  --bg-warning:#fff4df;
  --bg-danger:#fde9e8;
  --surface-1:#f7f9f8;
  --surface-2:#ffffff;
  --border:#e5e7e8;
  --border-strong:#cfd4d7;
  --radius:999px;
  color:var(--text-primary);
}
#stopPanel>header{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 40px 40px!important;
  gap:8px!important;
  align-items:start!important;
  padding:15px 16px 14px!important;
  border-bottom:1px solid var(--border)!important;
  background:var(--surface-2)!important;
}
#stopPanel>header .stopHeaderCopy{min-width:0}
#stopPanel>header .stopHeaderCopy>small{
  display:block!important;
  margin:0 0 3px!important;
  color:var(--text-muted)!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.09em!important;
  text-transform:uppercase!important;
}
#stopPanel>header h1{
  margin:0!important;
  color:var(--text-primary)!important;
  font-size:22px!important;
  font-weight:650!important;
  line-height:1.15!important;
  letter-spacing:-.35px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#stopPanel>header>button{
  display:grid!important;
  place-items:center!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  border:1px solid var(--border-strong)!important;
  border-radius:11px!important;
  background:var(--surface-2)!important;
  color:var(--text-secondary)!important;
  font-size:22px!important;
  font-weight:400!important;
}
#stopPanel>header>button:hover{background:var(--surface-1)!important;color:var(--text-primary)!important}
#stopPanel .stopHeaderMeta{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  min-height:23px!important;
  margin-top:8px!important;
}
#stopPanel .stopLiveChip{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  min-height:24px!important;
  padding:4px 8px!important;
  border-radius:7px!important;
  background:var(--bg-success)!important;
  color:var(--text-success)!important;
  font-size:11px!important;
  font-weight:750!important;
}
#stopPanel .stopLiveChip i{width:7px;height:7px;border-radius:50%;background:var(--text-success);display:block}
#stopPanel .stopHeaderText{color:var(--text-secondary);font-size:11px;line-height:1.25}
#stopPanelBody{padding:0!important;background:var(--surface-2)!important}
#stopPanel .stopFilterBar{
  padding:12px 16px 10px!important;
  border-bottom:1px solid var(--border)!important;
  background:var(--surface-2)!important;
}
#stopPanel .stopTabs,
#stopPanel .stopModes{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible!important;
}
#stopPanel .stopModes{margin-top:8px!important}
#stopPanel .stopTabs button,
#stopPanel .stopLineChip{
  flex:0 0 auto!important;
  appearance:none!important;
  min-height:34px!important;
  padding:7px 12px!important;
  border:1px solid var(--border-strong)!important;
  border-radius:var(--radius)!important;
  background:var(--surface-2)!important;
  color:var(--text-secondary)!important;
  font:500 12px/1 system-ui,-apple-system,Segoe UI,sans-serif!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
#stopPanel .stopTabs button.active,
#stopPanel .stopLineChip.active{
  border-color:#1d6f42!important;
  background:#1d6f42!important;
  color:#fff!important;
  font-weight:650!important;
}
#stopPanel .stopTabs button:hover:not(.active),
#stopPanel .stopLineChip:hover:not(.active){background:var(--surface-1)!important;border-color:var(--border-strong)!important}
#stopPanel .departureList{background:var(--surface-2)}
#stopPanel .depRow.boardRow{
  display:grid!important;
  grid-template-columns:45px auto minmax(0,1fr) minmax(48px,auto)!important;
  gap:9px!important;
  align-items:center!important;
  min-height:63px!important;
  margin:0!important;
  padding:9px 16px!important;
  border:0!important;
  border-bottom:1px solid var(--border)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--text-primary)!important;
  transition:background .12s ease!important;
}
#stopPanel .depRow.boardRow:hover,
#stopPanel .depRow.boardRow:focus-visible{background:var(--surface-1)!important;outline:none!important}
#stopPanel .depRow.boardRow .depTime{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:1px!important;
  min-width:0!important;
  color:var(--text-primary)!important;
  font-size:15px!important;
  font-weight:500!important;
  line-height:1.05!important;
  text-align:right!important;
  font-variant-numeric:tabular-nums!important;
}
#stopPanel .depTimeMain{font:inherit;color:inherit}
#stopPanel .depDelayInline{
  display:block!important;
  margin:0!important;
  padding:0!important;
  background:none!important;
  color:var(--text-warning)!important;
  font-size:11px!important;
  font-weight:650!important;
  line-height:1.1!important;
}
#stopPanel .departure-line{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:39px!important;
  max-width:70px!important;
  min-height:28px!important;
  padding:5px 8px!important;
  border:0!important;
  border-radius:7px!important;
  color:#fff!important;
  background:#1d6f42!important;
  font-size:12px!important;
  font-weight:750!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#stopPanel .departure-line.mode-bus{background:#1d6f42!important}
#stopPanel .departure-line.mode-tram{background:#c0392b!important}
#stopPanel .departure-line.mode-metro{background:#2980b9!important}
#stopPanel .departure-line.mode-trein{background:#003082!important}
#stopPanel .departure-line.mode-veer,#stopPanel .departure-line.mode-ferry{background:#087f8c!important}
#stopPanel .depMain{min-width:0!important}
#stopPanel .depMain>b{
  display:block!important;
  min-width:0!important;
  margin:0!important;
  color:var(--text-primary)!important;
  font-size:13px!important;
  font-weight:500!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#stopPanel .depMain>small{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:3px!important;
  margin-top:3px!important;
  color:var(--text-muted)!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.25!important;
}
#stopPanel .depFollowAction{
  display:inline-flex!important;
  align-items:center!important;
  gap:2px!important;
  color:#1677d2!important;
  font-weight:650!important;
  white-space:nowrap!important;
}
#stopPanel .depFollowAction svg{width:11px;height:11px;display:block}
#stopPanel .depStatusCol{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  justify-content:center!important;
  gap:4px!important;
  min-width:48px!important;
}
#stopPanel .depStatus{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  min-height:24px!important;
  padding:4px 8px!important;
  border-radius:7px!important;
  font-size:10.5px!important;
  font-weight:700!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#stopPanel .depStatus.success{background:var(--bg-success)!important;color:var(--text-success)!important}
#stopPanel .depStatus.success i{display:block;width:6px;height:6px;border-radius:50%;background:var(--text-success)}
#stopPanel .depStatus.warning{background:var(--bg-warning)!important;color:var(--text-warning)!important}
#stopPanel .depStatus.danger{background:var(--bg-danger)!important;color:var(--text-danger)!important}
#stopPanel .depNotice{display:block!important;margin-top:3px!important;color:var(--text-warning)!important;font-size:9.5px!important;font-style:normal!important;font-weight:600!important}
#stopPanel .depRow.cancelled .depMain>b,#stopPanel .depRow.cancelled .departure-line{opacity:.55!important;text-decoration:none!important}
#stopPanel .stopEmpty{padding:24px 16px!important;color:var(--text-muted)!important;text-align:center!important}
body.theme-night #stopPanel{
  --text-primary:#edf2f5;--text-secondary:#bdc6cc;--text-muted:#849099;
  --text-warning:#ffc36d;--text-success:#7bd69d;--text-danger:#ff9296;
  --bg-success:#183c2a;--bg-warning:#493419;--bg-danger:#4c2426;
  --surface-1:#182229;--surface-2:#11191e;--border:#26343d;--border-strong:#3b4b55;
}
@media(max-width:760px){
  #stopPanel{height:78dvh!important}
  #stopPanel>header{grid-template-columns:minmax(0,1fr) 38px 38px!important;padding:12px 12px 11px!important;gap:7px!important}
  #stopPanel>header>button{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}
  #stopPanel>header h1{font-size:20px!important}
  #stopPanel .stopHeaderMeta{margin-top:7px!important}
  #stopPanel .stopFilterBar{padding:10px 12px 9px!important}
  #stopPanel .stopTabs,#stopPanel .stopModes{flex-wrap:nowrap!important;overflow-x:auto!important;overscroll-behavior-x:contain!important;scrollbar-width:none!important}
  #stopPanel .stopTabs::-webkit-scrollbar,#stopPanel .stopModes::-webkit-scrollbar{display:none!important}
  #stopPanel .stopTabs button,#stopPanel .stopLineChip{min-height:33px!important;padding:7px 11px!important;font-size:11px!important}
  #stopPanel .depRow.boardRow{grid-template-columns:43px auto minmax(0,1fr) minmax(46px,auto)!important;gap:7px!important;min-height:61px!important;padding:8px 12px!important}
  #stopPanel .departure-line{min-width:37px!important;padding:5px 7px!important;font-size:11px!important}
  #stopPanel .depMain>b{font-size:12.5px!important}
  #stopPanel .depMain>small{font-size:10px!important}
  #stopPanel .depStatus{padding:4px 6px!important;font-size:9.5px!important}
}
/* V81.6.34.6 — departure board card radius */
#stopPanel{border-radius:12px!important;overflow:hidden!important}
@media(max-width:760px){#stopPanel{border-radius:12px 12px 0 0!important}}

/* V81.6.34.8 — statusbar + filter panel cleanup */
.brand-mode-counts-b .brand-mode-stat.is-zero{
  opacity:.4!important;
}
.brand-mode-counts-b .brand-mode-stat:not(.is-zero){
  opacity:1!important;
}
.visible-count{
  max-width:92px;
  line-height:1.15!important;
  white-space:normal!important;
  text-align:right;
}

#mapTools{
  --filter-green:#1D6F42;
  --filter-green-soft:#e8f4ed;
  background:var(--surface)!important;
  overflow:auto!important;
}
#mapTools .tools-heading{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  min-height:48px!important;
  padding:0 16px!important;
  border-bottom:1px solid var(--border)!important;
}
#mapTools .tools-heading>b{
  font-size:14px!important;
  font-weight:750!important;
  color:var(--ink)!important;
}
#mapTools .tools-heading>b:before{
  content:'☷';
  display:inline-block;
  margin-right:8px;
  color:var(--muted);
  font-size:14px;
}
#mapTools #toolsClose{
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
  min-height:26px!important;
  padding:0!important;
  border:1px solid var(--border)!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--muted)!important;
  font-size:14px!important;
}
#mapTools .filter-section{
  padding:13px 16px!important;
  border-bottom:1px solid var(--border)!important;
}
#mapTools .filter-section>small,
#mapTools .rail-filter-head>small{
  display:block!important;
  margin:0 0 9px!important;
  color:var(--muted)!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.055em!important;
}
#mapTools .mode-buttons{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
}
#mapTools .mode-buttons button{
  min-width:52px!important;
  min-height:54px!important;
  padding:7px 9px!important;
  border:1px solid var(--border-strong,var(--border))!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
  font-size:11px!important;
  font-weight:650!important;
  box-shadow:none!important;
}
#mapTools .mode-buttons button.active{
  border-color:var(--filter-green)!important;
  background:var(--filter-green)!important;
  color:#fff!important;
}
#mapTools .mode-buttons button:hover:not(.active){
  background:var(--soft)!important;
}
#mapTools .rail-filter{
  margin:0!important;
  border:0!important;
}
#mapTools .rail-filter-head{
  display:block!important;
  margin:0!important;
}
#mapTools .rail-filter-grid{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:7px!important;
}
#mapTools .rail-filter-grid button{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:28px!important;
  padding:5px 10px!important;
  border:1px solid var(--border)!important;
  border-radius:999px!important;
  background:var(--surface)!important;
  color:var(--muted)!important;
  font-size:10px!important;
  font-weight:650!important;
  box-shadow:none!important;
}
#mapTools .rail-filter-grid button.active{
  border-color:color-mix(in srgb,var(--filter-green) 35%,var(--border))!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
}
#mapTools .rail-filter-grid button b{
  color:var(--muted)!important;
  font-size:9px!important;
  font-weight:650!important;
}
#mapTools .rail-filter-grid button:not(.active){opacity:.48}
#mapTools .map-options{
  padding-bottom:5px!important;
}
#mapTools .map-option-row{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  width:100%!important;
  min-height:39px!important;
  padding:8px 0!important;
  border:0!important;
  border-bottom:1px solid var(--border)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  font-size:11.5px!important;
  font-weight:500!important;
  text-align:left!important;
  box-shadow:none!important;
}
#mapTools .map-option-row:last-child{border-bottom:0!important}
#mapTools .map-option-row:hover{background:transparent!important;color:var(--filter-green)!important}
#mapTools .toggle-switch{
  position:relative;
  display:block;
  width:36px;
  height:20px;
  flex:0 0 auto;
  border-radius:999px;
  background:#d4d7d9;
  transition:background .15s ease;
}
#mapTools .toggle-switch:after{
  content:'';
  position:absolute;
  top:2px;
  left:2px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 1px 2px #0002;
  transition:transform .15s ease;
}
#mapTools #stopsToggle.active .toggle-switch{background:var(--filter-green)!important}
#mapTools #stopsToggle.active .toggle-switch:after{transform:translateX(16px)}
#mapTools .option-action{
  color:var(--muted);
  font-size:10px;
  font-weight:650;
}
#mapTools .more-map-options{
  border-bottom:1px solid var(--border)!important;
}
#mapTools .more-map-options>summary{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  min-height:42px!important;
  padding:10px 16px!important;
  cursor:pointer!important;
  list-style:none!important;
  color:var(--ink)!important;
  font-size:11.5px!important;
  font-weight:650!important;
}
#mapTools .more-map-options>summary::-webkit-details-marker{display:none}
#mapTools .more-map-options>summary:after{content:'⌄';color:var(--muted);font-size:12px}
#mapTools .more-map-options[open]>summary:after{content:'⌃'}
#mapTools .more-map-options-body{
  padding:0 16px 13px!important;
}
#mapTools .scheduled-summary{
  display:grid!important;
  grid-template-columns:1fr auto!important;
  gap:5px 10px!important;
  margin:0 0 10px!important;
  padding:10px 11px!important;
  border:1px solid var(--border)!important;
  border-radius:9px!important;
  background:var(--soft)!important;
}
#mapTools .scheduled-summary>b{grid-column:1/-1;font-size:10.5px!important}
#mapTools .scheduled-summary>span{font-size:9.5px!important;color:var(--muted)!important}
#mapTools .scheduled-summary>small{grid-column:1/-1;font-size:8.5px!important;color:var(--muted)!important}
#mapTools .secondary-tools{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
}
#mapTools .secondary-tools button{
  min-height:34px!important;
  border:1px solid var(--border)!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
  font-size:10px!important;
  box-shadow:none!important;
}
#mapTools .tools-footer{
  position:sticky!important;
  z-index:5!important;
  bottom:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;
  align-items:center!important;
  padding:11px 16px!important;
  border-top:.5px solid var(--border)!important;
  background:color-mix(in srgb,var(--soft) 65%,var(--surface))!important;
}
#mapTools #searchBox{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  transform:none!important;
}
#mapTools #searchBox #searchInput{
  width:100%!important;
  min-height:34px!important;
  padding:7px 30px 7px 31px!important;
  border:1px solid var(--border-strong,var(--border))!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
  font-size:10.5px!important;
  box-sizing:border-box!important;
}
#mapTools #searchBox .search-icon{
  position:absolute!important;
  z-index:2!important;
  left:10px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  color:var(--muted)!important;
}
#mapTools #searchClear{
  position:absolute!important;
  z-index:2!important;
  right:6px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
}
#mapTools #searchResults{
  left:0!important;
  right:0!important;
  bottom:calc(100% + 6px)!important;
  top:auto!important;
  width:auto!important;
  max-height:44dvh!important;
}
#mapTools #filterReset{
  min-height:34px!important;
  padding:7px 12px!important;
  border:1px solid var(--border-strong,var(--border))!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
  font-size:10.5px!important;
  font-weight:650!important;
  white-space:nowrap!important;
}
#mapTools #filterReset:hover{background:var(--soft)!important}
#mapTools .rail-summary,
#mapTools .planningButtons{display:none!important}

body.theme-night #mapTools .mode-buttons button.active{background:#276f4b!important;border-color:#276f4b!important}
body.theme-night #mapTools .tools-footer{background:color-mix(in srgb,var(--soft) 75%,var(--surface))!important}
@media(max-width:760px){
  #mapTools .tools-heading{padding:0 13px!important}
  #mapTools .filter-section{padding:11px 13px!important}
  #mapTools .mode-buttons{gap:7px!important}
  #mapTools .mode-buttons button{min-width:49px!important;min-height:50px!important;padding:6px 8px!important;font-size:10px!important}
  #mapTools .rail-filter-grid{flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none!important}
  #mapTools .rail-filter-grid::-webkit-scrollbar{display:none!important}
  #mapTools .more-map-options>summary{padding-left:13px!important;padding-right:13px!important}
  #mapTools .more-map-options-body{padding-left:13px!important;padding-right:13px!important}
  #mapTools .tools-footer{padding:9px 13px calc(9px + env(safe-area-inset-bottom))!important}
  .visible-count{max-width:78px!important;font-size:7.5px!important}
}

/* V81.6.34.9 — filter/statusbar polish */
#mapTools .tools-heading{display:none!important}
#mapTools .mode-buttons{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:6px!important;
  width:100%!important;
}
#mapTools .mode-buttons button{
  min-width:0!important;
  width:100%!important;
  min-height:48px!important;
  padding:6px 4px!important;
  font-size:9.5px!important;
}
#mapTools .mode-buttons button svg{width:17px!important;height:17px!important;margin:0 auto 3px!important}
#mapTools #fitAll.active .toggle-switch{background:var(--filter-green)!important}
#mapTools #fitAll.active .toggle-switch:after{transform:translateX(16px)}

.brand-mode-counts-b .brand-mode-stat.is-zero{opacity:.35!important}

.app-bar{
  background:#fff!important;
  border:1px solid rgba(25,45,58,.12)!important;
  box-shadow:0 4px 16px rgba(18,42,58,.08)!important;
  backdrop-filter:none!important;
}
#ovspotStatus{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}
.brand-status-group{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-width:max-content!important;
}
.brand-status-group .brand{
  padding-right:0!important;
}
#ovspotStatus .connection{
  display:inline-flex!important;
  align-items:center!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  font-size:0!important;
}
#ovspotStatus #connectionText{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  min-height:21px!important;
  padding:3px 7px!important;
  border-radius:999px!important;
  background:#e7f5ed!important;
  color:#1d7a49!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#ovspotStatus #connectionText:before{
  content:'';
  display:block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:currentColor;
}
#ovspotStatus .brand-mode-counts-b{
  margin:0!important;
  padding:0 8px!important;
  border-left:1px solid var(--border)!important;
  border-right:0!important;
}
#ovspotStatus .visible-count{
  display:block!important;
  max-width:104px!important;
  padding-left:9px!important;
  border-left:1px solid var(--border)!important;
  color:var(--muted)!important;
  font-size:8px!important;
  line-height:1.15!important;
  text-align:left!important;
  white-space:normal!important;
}
#ovspotStatus .visible-count b{
  color:var(--ink)!important;
  font-weight:850!important;
}
body.theme-night .app-bar{
  background:var(--surface)!important;
  border-color:var(--border)!important;
  box-shadow:0 4px 18px rgba(0,0,0,.28)!important;
}
body.theme-night #ovspotStatus #connectionText{
  background:#193e29!important;
  color:#8fdda8!important;
}
@media(max-width:760px){
  #mapTools .mode-buttons{grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:5px!important}
  #mapTools .mode-buttons button{min-height:46px!important;padding:5px 3px!important;font-size:9px!important}
  #ovspotStatus{gap:5px!important}
  .brand-status-group{gap:4px!important}
  #ovspotStatus .brand>span:last-child{display:none!important}
  #ovspotStatus #connectionText{padding:3px 5px!important;font-size:7.5px!important}
  #ovspotStatus .brand-mode-counts-b{padding:0 3px!important}
  #ovspotStatus .visible-count{max-width:75px!important;padding-left:5px!important;font-size:6.5px!important}
}

/* V81.6.34.9.1 — dim complete zero-value status item only */
#brandModeCounts .brand-mode-stat{opacity:1!important}
#brandModeCounts .brand-mode-stat.is-zero{opacity:.35!important}

/* V81.6.34.9.2 — no More kaartopties; direct actions in Filters */
#mapTools .more-map-options{display:none!important}
#mapTools .filter-actions{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  padding:10px 16px 12px!important;
  border-bottom:1px solid var(--border)!important;
  background:var(--surface)!important;
}
#mapTools .filter-actions button{
  min-height:36px!important;
  padding:8px 10px!important;
  border:1px solid var(--border-strong,var(--border))!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--ink)!important;
  font-size:10.5px!important;
  font-weight:650!important;
  box-shadow:none!important;
}
#mapTools .filter-actions button:hover{background:var(--soft)!important}
#mapTools .filter-hidden-tools{display:none!important}
@media(max-width:760px){#mapTools .filter-actions{padding:9px 13px 10px!important;gap:7px!important}}

/* V81.6.34.9.3 — sixth In zicht stat */
#ovspotStatus .visible-stat{
  display:grid!important;
  grid-template-rows:14px 13px 9px!important;
  place-items:center!important;
  align-content:center!important;
  gap:0!important;
  min-width:44px!important;
  width:44px!important;
  height:44px!important;
  margin-left:0!important;
  padding:0 0 0 8px!important;
  border-left:.5px solid var(--border)!important;
  border-radius:0!important;
  background:transparent!important;
  color:#587083!important;
  opacity:1!important;
  box-sizing:content-box!important;
}
#ovspotStatus .visible-stat svg{
  width:13px!important;
  height:13px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
#ovspotStatus .visible-stat b{
  font-size:11px!important;
  line-height:1!important;
  color:var(--ink)!important;
  font-weight:900!important;
  min-width:0!important;
  text-align:center!important;
}
#ovspotStatus .visible-stat small{
  font-size:7px!important;
  line-height:1!important;
  color:var(--muted)!important;
  font-weight:650!important;
  white-space:nowrap!important;
}
#ovspotStatus .visible-count{max-width:none!important;border-left:0!important;padding-left:0!important}
@media(max-width:760px){
  #ovspotStatus .visible-stat{width:30px!important;min-width:30px!important;height:40px!important;grid-template-rows:12px 12px 8px!important;padding-left:5px!important}
  #ovspotStatus .visible-stat svg{width:11px!important;height:11px!important}
  #ovspotStatus .visible-stat b{font-size:9px!important}
  #ovspotStatus .visible-stat small{font-size:6px!important}
}
/* Haltebord V2 — 2026-09-22 */
#stopPanel .stopStaleBar{
  display:grid!important;
  grid-template-columns:16px minmax(0,1fr)!important;
  column-gap:7px!important;
  row-gap:1px!important;
  align-items:center!important;
  padding:8px 14px!important;
  border-bottom:1px solid #e7a51a!important;
  background:#fff0c8!important;
  color:#76500a!important;
  font-size:10.5px!important;
  line-height:1.15!important;
}
#stopPanel .stopStaleBar>span{grid-row:1/3;font-size:17px;line-height:1;color:#9a6500}
#stopPanel .stopStaleBar>b{font-size:10.5px;font-weight:700}
#stopPanel .stopStaleBar>small{font-size:9.5px;color:#76500a}
#stopPanel .depRow.boardRow{
  grid-template-columns:36px auto minmax(0,1fr) minmax(44px,auto)!important;
  gap:8px!important;
  min-height:58px!important;
  padding:8px 12px!important;
}
#stopPanel .depRow.boardRow .depTime{
  width:36px!important;
  min-width:36px!important;
  font-size:14px!important;
  font-weight:500!important;
  line-height:1.05!important;
}
#stopPanel .depDelayInline{font-size:10px!important;font-weight:700!important}
#stopPanel .depDelayInline.late{color:#b86b00!important}
#stopPanel .depDelayInline.early{color:#1d7a49!important}
#stopPanel .departure-line{
  min-width:34px!important;
  min-height:24px!important;
  padding:4px 6px!important;
  border-radius:7px!important;
  font-size:11px!important;
  font-weight:750!important;
}
#stopPanel .departure-line.mode-trein{background:#003082!important}
#stopPanel .departure-line.mode-bus{background:#1D6F42!important}
#stopPanel .departure-line.mode-tram{background:#c0392b!important}
#stopPanel .depMain>b{font-size:13px!important;font-weight:500!important}
#stopPanel .depMain>small{
  gap:3px!important;
  margin-top:2px!important;
  font-size:10px!important;
  line-height:1.2!important;
}
#stopPanel .depMetaSep{color:#a6aaae}
#stopPanel .depPlatformBadge{
  display:inline-flex!important;
  align-items:center!important;
  min-height:17px!important;
  padding:1px 5px!important;
  border:1px solid #cfd4d7!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#50565c!important;
  font-size:9px!important;
  font-weight:600!important;
  white-space:nowrap!important;
}
#stopPanel .depFollowAction{font-size:10px!important}
#stopPanel .depStatusCol{min-width:44px!important;gap:3px!important}
#stopPanel .depStatus{
  min-height:20px!important;
  padding:3px 6px!important;
  border-radius:999px!important;
  font-size:9.5px!important;
  font-weight:650!important;
}
#stopPanel .depStatus.neutral{background:#eef1f3!important;color:#616970!important}
#stopPanel .depRow.cancelled .depMain>b{opacity:.55!important;text-decoration:line-through!important}
#stopPanel .depRow.cancelled .departure-line{opacity:.55!important;text-decoration:none!important}
#stopPanel .stopFilterBar{padding:8px 12px 7px!important}
#stopPanel .stopTabs,#stopPanel .stopModes{gap:6px!important}
#stopPanel .stopModes{margin-top:6px!important}
#stopPanel .stopTabs button,#stopPanel .stopLineChip{
  min-height:28px!important;
  padding:5px 10px!important;
  font-size:10.5px!important;
}
#stopPanel>header{
  padding:11px 12px 9px!important;
  grid-template-columns:minmax(0,1fr) 34px 34px!important;
  gap:7px!important;
}
#stopPanel>header>button{
  width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;
  border-radius:9px!important;font-size:19px!important;
}
#stopPanel>header h1{font-size:18px!important}
#stopPanel .stopHeaderMeta{margin-top:6px!important;gap:6px!important}
#stopPanel .stopLiveChip{min-height:20px!important;padding:3px 7px!important;font-size:10px!important}
#stopPanel .stopHeaderText{font-size:10px!important}
body.theme-night #stopPanel .stopStaleBar{background:#4a3517!important;color:#ffd38a!important;border-bottom-color:#9f6815!important}
body.theme-night #stopPanel .stopStaleBar>small,body.theme-night #stopPanel .stopStaleBar>span{color:#ffd38a!important}
body.theme-night #stopPanel .depPlatformBadge{background:#162027!important;border-color:#3b4b55!important;color:#cbd3d8!important}
@media(max-width:760px){
 #stopPanel .depRow.boardRow{grid-template-columns:36px auto minmax(0,1fr) minmax(42px,auto)!important;gap:7px!important;min-height:57px!important;padding:8px 11px!important}
 #stopPanel .depRow.boardRow .depTime{width:36px!important;min-width:36px!important;font-size:14px!important}
 #stopPanel .departure-line{min-width:33px!important;padding:4px 6px!important;font-size:10.5px!important}
 #stopPanel .depMain>b{font-size:13px!important}
 #stopPanel .depMain>small{font-size:9.5px!important}
 #stopPanel .depStatus{font-size:9px!important;padding:3px 5px!important}
 #stopPanel .stopStaleBar{padding:7px 11px!important}
}

/* Voertuigpopup V3 — behoudt 34.1 structuur */
#vehiclePanel .vprHeadline{grid-template-columns:auto minmax(0,1fr) auto!important}
#vehiclePanel .vprHeadline h2{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
#vehiclePanel .vprHeaderBadges{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:max-content}
#vehiclePanel .vprQuality{display:inline-flex;align-items:center;min-height:23px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:850;line-height:1;white-space:nowrap}
#vehiclePanel .vprQuality.live{background:#e7f5ed;color:#1d7a49}
#vehiclePanel .vprQuality.estimated{background:#fff0d2;color:#a85c00}
#vehiclePanel .vprQuality.schedule{background:#eef1f3;color:#667078}#vehiclePanel .vprQuality.stale{background:#eef1f3;color:#667078}
#vehiclePanel .vprHeaderBadges .vprDelay{margin:0!important;align-self:auto!important}
#vehiclePanel .vprSummaryCard.vprCurrentStop{background:color-mix(in srgb,var(--vehicle-color) 8%,var(--surface))!important}
#vehiclePanel .vprSummaryCard.vprCurrentStop>small{color:color-mix(in srgb,var(--vehicle-color) 78%,var(--ink))!important}
#vehiclePanel .vprSummaryCard.vprCurrentStop>b{font-weight:850!important}
#vehiclePanel .vprSummaryCard.vprNextStop{background:var(--surface)!important}
#vehiclePanel .vprTimeline li.current{background:color-mix(in srgb,var(--vehicle-color) 10%,var(--surface))!important;box-shadow:inset 3px 0 0 color-mix(in srgb,var(--vehicle-color) 70%,transparent)!important}
#vehiclePanel .vprTimeline li.next{background:transparent!important;box-shadow:none!important}
#vehiclePanel .vprTimeline li.passed{opacity:.38!important}
#vehiclePanel .vprActions.noRoute{grid-template-columns:36px 36px!important;justify-content:end!important}
#vehiclePanel #vpRoute[hidden],#vehiclePanel #vpRouteMore[hidden]{display:none!important}
body.theme-night #vehiclePanel .vprQuality.live{background:#193e29!important;color:#8fdda8!important}
body.theme-night #vehiclePanel .vprQuality.estimated{background:#4a3219!important;color:#ffbf68!important}
body.theme-night #vehiclePanel .vprQuality.schedule{background:#273139!important;color:#b9c3ca!important}body.theme-night #vehiclePanel .vprQuality.stale{background:#273139!important;color:#b9c3ca!important}
body.theme-night #vehiclePanel .vprSummaryCard.vprCurrentStop{background:color-mix(in srgb,var(--vehicle-color) 15%,var(--surface))!important}
body.theme-night #vehiclePanel .vprSummaryCard.vprCurrentStop>small{color:#c8d7e1!important}
body.theme-night #vehiclePanel .vprTimeline li.current{background:color-mix(in srgb,var(--vehicle-color) 17%,var(--surface))!important}
body.theme-night #vehiclePanel .vprTimeline li.next{background:transparent!important}
@media(max-width:760px){#vehiclePanel .vprHeaderBadges{gap:3px}#vehiclePanel .vprQuality{min-height:20px;padding:3px 6px;font-size:8px}#vehiclePanel .vprHeadline h2{font-size:12px!important}}
/* V81.6.34.9.4.10 — dynamic modaliteit visibility */
#brandModeCounts{
  grid-template-columns:repeat(var(--brand-mode-columns,5),38px)!important;
}
#brandModeCounts .brand-mode-stat[hidden],
#mapTools .mode-buttons [data-mode][hidden]{
  display:none!important;
}
#mapTools .mode-buttons{
  grid-template-columns:repeat(var(--filter-mode-columns,5),minmax(0,1fr))!important;
}
@media(max-width:760px){
  #brandModeCounts{grid-template-columns:repeat(var(--brand-mode-columns,5),30px)!important}
}
@media(min-width:761px){
  #brandModeCounts{grid-template-columns:repeat(var(--brand-mode-columns,5),44px)!important}
}

/* V81.6.34.9.4.11 — departure-now + data-quality */
#stopPanel .depNowBadge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:36px;min-height:24px;padding:4px 6px;border-radius:999px;
  font-size:9px;font-weight:900;line-height:1;white-space:nowrap;
}
#stopPanel .depNowBadge.now{background:#16865f;color:#fff}
#stopPanel .depNowBadge.soon{background:#e7f5ed;color:#1d7a49;border:1px solid #bfe5cf}
#stopPanel .depQuality{
  display:inline-flex;align-items:center;padding:2px 5px;border-radius:999px;
  font-size:8.5px;font-weight:800;line-height:1;white-space:nowrap;
}
#stopPanel .depQuality.live{background:#e7f5ed;color:#1d7a49}
#stopPanel .depQuality.estimated{background:#fff0d2;color:#a85c00}
#stopPanel .depQuality.stale{background:#eef1f3;color:#667078}
body.theme-night #stopPanel .depNowBadge.soon,
body.theme-night #stopPanel .depQuality.live{background:#193e29;color:#8fdda8;border-color:#28543a}
body.theme-night #stopPanel .depQuality.estimated{background:#4a3219;color:#ffbf68}
body.theme-night #stopPanel .depQuality.stale{background:#273139;color:#b9c3ca}
@media(max-width:760px){
 #stopPanel .depNowBadge{min-width:34px;min-height:22px;padding:3px 5px;font-size:8.5px}
 #stopPanel .depQuality{font-size:8px;padding:2px 4px}
}

/* V81.6.34.9.4.12 — search dropdown is not constrained by the filter dock */
#exploreDock{overflow:visible!important}
#mapTools .tools-footer{overflow:visible!important}
#mapTools #searchBox{overflow:visible!important}
#mapTools #searchResults{
  position:absolute!important;
  left:0!important;
  right:auto!important;
  top:auto!important;
  bottom:calc(100% + 7px)!important;
  min-width:280px!important;
  width:clamp(360px,42vw,520px)!important;
  max-width:calc(100vw - 32px)!important;
  z-index:10050!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
#mapTools #searchResults .sBadge{
  width:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  flex:0 0 48px!important;
  flex-shrink:0!important;
}
#mapTools #searchResults .sBody,
#mapTools #searchResults .sBody b,
#mapTools #searchResults .sBody small{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
@media(max-width:760px){
  #mapTools #searchResults{
    width:calc(100vw - 24px)!important;
    min-width:280px!important;
    max-width:calc(100vw - 24px)!important;
    left:auto!important;
    right:0!important;
  }
}
@media(max-height:620px) and (max-width:760px){
  #mapTools #searchResults{
    position:fixed!important;
    left:12px!important;
    right:12px!important;
    top:75px!important;
    bottom:auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    max-height:45dvh!important;
  }
}

/* V81.6.34.9.4.13 — bounded search dropdown, no empty space */
#mapTools #searchResults{width:min(360px,90vw)!important;min-width:min(280px,90vw)!important;max-width:90vw!important}
@media(max-width:760px){#mapTools #searchResults{position:fixed!important;left:12px!important;right:12px!important;width:auto!important;min-width:0!important;max-width:none!important;box-sizing:border-box!important}}
#mapTools #searchResults>.sSection:empty,#mapTools #searchResults>.sItem:empty{display:none!important}
/* V81.6.34.9.4.13 mobile viewport final guard */
@media(max-width:760px){
  #mapTools #searchResults{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    width:min(360px,90vw)!important;
    min-width:0!important;
    max-width:90vw!important;
    transform:translateX(-50%)!important;
    box-sizing:border-box!important;
  }
}

/* V81.6.34.9.4.14 — inline search mode */
#mapTools.search-active>.filter-section,
#mapTools.search-active>.filter-actions,
#mapTools.search-active>.filter-hidden-tools,
#mapTools.search-active>.tools-heading,
#mapTools.search-active #filterReset{display:none!important}
#mapTools.search-active{overflow-x:hidden!important}
#mapTools.search-active .tools-footer{
 position:static!important;display:block!important;width:100%!important;min-width:0!important;
 padding:12px 14px!important;border-top:0!important;background:var(--surface)!important;
 box-sizing:border-box!important;overflow:hidden!important;
}
#mapTools.search-active #searchBox{
 display:block!important;position:relative!important;width:100%!important;min-width:0!important;
 max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important;
}
#mapTools.search-active #searchResults,
#mapTools.search-active #searchResults.open{
 position:static!important;inset:auto!important;left:auto!important;right:auto!important;
 top:auto!important;bottom:auto!important;transform:none!important;z-index:auto!important;
 width:100%!important;min-width:0!important;max-width:100%!important;max-height:min(48dvh,420px)!important;
 margin:8px 0 0!important;overflow-x:hidden!important;overflow-y:auto!important;
 box-sizing:border-box!important;box-shadow:none!important;
}
#mapTools.search-active #searchBox .search-icon,
#mapTools.search-active #searchClear{top:17px!important}
#mapTools.search-active #searchResults .sItem,
#mapTools.search-active #searchResults .sSection,
#mapTools.search-active #searchResults .sBody{
 min-width:0!important;max-width:100%!important;box-sizing:border-box!important;overflow-x:hidden!important;
}
@media(max-width:760px){
 #mapTools.search-active #searchResults,#mapTools.search-active #searchResults.open{
  position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;
  width:100%!important;min-width:0!important;max-width:100%!important;transform:none!important;
  max-height:min(52dvh,420px)!important;
 }
}

/* V81.6.34.9.4.15 — Filter redesign Variant 2 */
#exploreDock{
  border-color:rgba(21,53,71,.12)!important;
  border-radius:20px!important;
  background:var(--surface)!important;
  box-shadow:0 10px 30px rgba(23,52,70,.14)!important;
  overflow:hidden!important;
}
#mapTools{
  --filter-green:#1d754b;
  padding:0!important;
  background:var(--surface)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
#mapTools .tools-heading{
  display:flex!important;
  min-height:46px!important;
  padding:0 16px!important;
  border-bottom:0!important;
  background:var(--surface)!important;
}
#mapTools .tools-heading>b{font-size:13px!important;font-weight:800!important;letter-spacing:-.01em!important}
#mapTools .tools-heading>b:before{content:'☰'!important;margin-right:9px!important;color:var(--accent)!important;font-size:13px!important}
#mapTools #toolsClose{
  border:0!important;background:transparent!important;color:var(--accent)!important;
  width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;
  font-size:14px!important;
}
#mapTools .filter-section{
  padding:13px 16px 14px!important;
  border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)!important;
}
#mapTools .filter-section>small,#mapTools .rail-filter-head>small{
  margin-bottom:9px!important;color:#688095!important;font-size:8.5px!important;
  font-weight:850!important;letter-spacing:.075em!important;
}
#mapTools .mode-buttons{
  display:grid!important;
  grid-template-columns:repeat(var(--filter-mode-columns,5),minmax(0,1fr))!important;
  gap:7px!important;
}
#mapTools .mode-buttons button{
  display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  gap:4px!important;width:100%!important;min-width:0!important;min-height:54px!important;
  padding:6px 3px!important;border:1px solid #d9e3e7!important;border-radius:10px!important;
  background:#f8fbfc!important;color:#456174!important;font-size:9.5px!important;font-weight:750!important;
  box-shadow:none!important;opacity:1!important;
}
#mapTools .mode-buttons button svg{
  width:18px!important;height:18px!important;margin:0!important;fill:none!important;stroke:currentColor!important;
  stroke-width:1.7!important;stroke-linecap:round!important;stroke-linejoin:round!important;
}
#mapTools .mode-buttons button.active{
  border-color:var(--filter-green)!important;background:var(--filter-green)!important;color:#fff!important;
}
#mapTools .mode-buttons button:not(.active){opacity:.58!important}
#mapTools .rail-filter-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;overflow:visible!important}
#mapTools .rail-filter-grid button{
  justify-content:space-between!important;width:100%!important;min-width:0!important;min-height:31px!important;
  padding:5px 8px 5px 10px!important;border:1px solid #c9d9de!important;border-radius:999px!important;
  background:var(--surface)!important;color:#315065!important;font-size:9.5px!important;font-weight:700!important;
}
#mapTools .rail-filter-grid button.active{border-color:#a9cfc0!important;background:#f8fcfa!important;color:#25465a!important}
#mapTools .rail-filter-grid button b{
  display:grid!important;place-items:center!important;min-width:20px!important;height:20px!important;padding:0 5px!important;
  border-radius:999px!important;background:#eef3f5!important;color:#6b8190!important;font-size:8.5px!important;font-weight:800!important;
}
#mapTools .rail-filter-grid button:not(.active){opacity:.45!important}
#mapTools .map-options{padding-bottom:9px!important}
#mapTools .map-option-row{
  min-height:52px!important;padding:8px 0!important;border-bottom:0!important;
  color:var(--ink)!important;
}
#mapTools .map-option-row+.map-option-row{border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent)!important}
#mapTools .map-option-copy{display:flex!important;flex-direction:column!important;min-width:0!important;gap:2px!important;text-align:left!important}
#mapTools .map-option-copy b{font-size:11px!important;font-weight:700!important;color:var(--ink)!important;line-height:1.15!important}
#mapTools .map-option-copy small{font-size:9px!important;font-weight:500!important;color:#7b8f9d!important;line-height:1.2!important;white-space:normal!important}
#mapTools .toggle-switch{width:36px!important;height:20px!important;background:#d7dde0!important}
#mapTools .filter-actions{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;
  padding:11px 16px 12px!important;border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)!important;
  background:var(--surface)!important;
}
#mapTools .filter-actions button{
  min-height:38px!important;padding:8px 10px!important;border:1px solid #d5e0e5!important;border-radius:9px!important;
  background:#fbfcfd!important;color:#29485d!important;font-size:10px!important;font-weight:700!important;
}
#mapTools #themeToggle:before{content:'◐';margin-right:6px;color:var(--accent)!important;font-size:12px!important}
#mapTools #shareBtn:before{content:'↗';margin-right:6px;color:var(--accent)!important;font-size:12px!important}
#mapTools .tools-footer{
  position:sticky!important;bottom:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  gap:8px!important;align-items:center!important;padding:11px 16px 13px!important;border-top:0!important;
  background:var(--surface)!important;
}
#mapTools #searchBox #searchInput{
  min-height:36px!important;padding:7px 30px 7px 31px!important;border:1px solid #cddbe1!important;
  border-radius:9px!important;background:#fff!important;font-size:10.5px!important;
}
#mapTools #filterReset{
  min-height:36px!important;padding:7px 11px!important;border:1px solid #d5e0e5!important;border-radius:9px!important;
  background:#fbfcfd!important;color:#29485d!important;font-size:10px!important;font-weight:700!important;
}
#mapTools.search-active .tools-heading{display:flex!important}
#mapTools.search-active .tools-footer{padding-top:8px!important}
body.theme-night #mapTools .mode-buttons button{background:var(--soft)!important;border-color:var(--border)!important;color:var(--muted)!important}
body.theme-night #mapTools .mode-buttons button.active{background:#276f4b!important;border-color:#276f4b!important;color:#fff!important}
body.theme-night #mapTools .rail-filter-grid button.active{background:color-mix(in srgb,var(--surface) 80%,#276f4b)!important;border-color:#3e7059!important}
body.theme-night #mapTools .filter-actions button,body.theme-night #mapTools #filterReset,body.theme-night #mapTools #searchBox #searchInput{background:var(--surface)!important;border-color:var(--border)!important;color:var(--ink)!important}
@media(max-width:760px){
  #exploreDock{border-radius:20px!important}
  #exploreDock #mapTools.mobile-open{padding:0!important;max-height:calc(100dvh - 150px)!important;overflow-y:auto!important}
  #mapTools .tools-heading{display:flex!important;padding:0 15px!important}
  #mapTools .filter-section{padding:12px 15px 13px!important}
  #mapTools .mode-buttons{gap:6px!important}
  #mapTools .mode-buttons button{min-height:52px!important;padding:5px 2px!important;font-size:9px!important}
  #mapTools .rail-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  #mapTools .filter-actions{padding:10px 15px 11px!important}
  #mapTools .tools-footer{padding:10px 15px calc(11px + env(safe-area-inset-bottom))!important}
}
/* V81.6.34.9.4.15 — use the existing dock header, never duplicate it */
#mapTools .tools-heading,
#mapTools.search-active .tools-heading{display:none!important}
#exploreDock #mobileQuickBar{
  border-bottom:0!important;
  background:var(--surface)!important;
}
#exploreDock.is-expanded #mobileQuickBar{
  border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)!important;
}
#mobileQuickBar #mobileFiltersToggle{
  min-height:50px!important;
  padding:14px 16px!important;
  font-size:13px!important;
  font-weight:800!important;
}

/* V81.6.34.9.4.16 — user-resizable mobile filter sheet */
#filterResizeHandle{display:none}
@media(max-width:760px){
 #exploreDock.is-expanded{
  display:flex!important;flex-direction:column!important;
  height:var(--mobile-filter-sheet-height,60dvh)!important;
  min-height:35dvh!important;max-height:88dvh!important;
  overflow:hidden!important;
  transition:height .2s cubic-bezier(.2,.8,.2,1)!important;
 }
 #exploreDock.filter-resizing{transition:none!important;user-select:none!important}
 #exploreDock.is-expanded #filterResizeHandle{
  display:flex!important;flex:0 0 20px!important;align-items:center!important;justify-content:center!important;
  width:100%!important;height:20px!important;min-height:20px!important;padding:0!important;margin:0!important;
  border:0!important;background:var(--surface)!important;cursor:ns-resize!important;touch-action:none!important;
 }
 #filterResizeHandle span{
  display:block!important;width:42px!important;height:4px!important;border-radius:999px!important;
  background:#c7d1d6!important;
 }
 #exploreDock.is-expanded #mobileQuickBar{flex:0 0 auto!important}
 #exploreDock #mapTools.mobile-open{
  display:block!important;flex:1 1 auto!important;min-height:0!important;height:auto!important;
  max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;
  overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;
 }
 #exploreDock.is-expanded #mapTools .tools-footer{position:sticky!important;bottom:0!important;z-index:2!important}
 #exploreDock[data-filter-snap='compact'] #mapTools .filter-section{padding-top:10px!important;padding-bottom:10px!important}
 #exploreDock[data-filter-snap='compact'] #mapTools .mode-buttons button{min-height:48px!important}
 #exploreDock[data-filter-snap='compact'] #mapTools .map-option-row{min-height:46px!important}
 #exploreDock.filter-resizing #mapTools{pointer-events:none!important}
}
@media(min-width:761px){#filterResizeHandle{display:none!important}}

/* V81.6.34.9.4.17 — user-resizable mobile vehicle popup */
@media(max-width:760px){
 #vehiclePanel.open,#vehiclePanel.open:not(.expanded),#vehiclePanel.open.expanded{
  height:var(--vehicle-sheet-height,60dvh)!important;
  min-height:35dvh!important;
  max-height:88dvh!important;
  transition:height .2s cubic-bezier(.2,.8,.2,1)!important;
  overflow:hidden!important;
 }
 #vehiclePanel.vehicle-resizing{transition:none!important;user-select:none!important}
 #vehiclePanel>.sheet-handle{
  min-height:22px!important;height:22px!important;touch-action:none!important;cursor:ns-resize!important;
 }
 #vehiclePanel>.sheet-handle:before{width:42px!important;height:4px!important;left:calc(50% - 21px)!important;top:7px!important}
 #vehiclePanel>.panel-body{
  min-height:0!important;max-height:none!important;height:auto!important;
  overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;
 }
 #vehiclePanel[data-vehicle-snap='compact'] .vprTimeline li.passed:nth-of-type(-n+3){display:none!important}
 body:has(#vehiclePanel.open) .leaflet-bottom.leaflet-right{bottom:calc(var(--vehicle-sheet-height,60dvh) + 10px)!important}
 body:has(#vehiclePanel.open) #routeBar{bottom:calc(var(--vehicle-sheet-height,60dvh) + 8px)!important}
}
@media(min-width:761px){#vehiclePanel>.sheet-handle{cursor:pointer}}

/* V81.6.34.9.4.18 — map options polish */
#mapTools #stopsToggle{gap:9px!important}
#mapTools #stopsToggle .ti-map-pin{
  display:inline-block!important;flex:0 0 16px!important;width:16px!important;height:16px!important;
  background:currentColor!important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='2'/%3E%3C/svg%3E") center/contain no-repeat!important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='2'/%3E%3C/svg%3E") center/contain no-repeat!important;
}
#mapTools .map-option-copy{gap:0!important}
#mapTools .map-option-copy>b{line-height:1.2!important}

/* V81.6.34.9.4.19 — remove legacy halte bullet; pin only */
#mapTools #stopsToggle::before,
#mapTools #stopsToggle.active::before{
  content:none!important;
  display:none!important;
}

/* V81.6.34.9.4.20 — next trips + direction tabs */
#stopPanel .depRow.boardRow{
  grid-template-columns:36px auto minmax(0,1fr) minmax(44px,auto) 18px!important;
}
#stopPanel .depExpandChevron{
  align-self:center!important;justify-self:end!important;width:18px!important;height:28px!important;
  min-width:18px!important;min-height:28px!important;padding:0!important;border:0!important;
  background:transparent!important;color:#86949d!important;font-size:20px!important;line-height:1!important;
  transition:transform .14s ease,color .14s ease!important;
}
#stopPanel .depExpandChevron:disabled{opacity:.25!important}
#stopPanel .depRow.expanded .depExpandChevron{transform:rotate(90deg)!important;color:var(--accent)!important}
#stopPanel .depNextTrips{
  grid-column:1/-1!important;display:flex!important;align-items:center!important;gap:7px!important;
  min-height:28px!important;margin:3px 0 -1px!important;padding:6px 8px!important;border-radius:9px!important;
  background:var(--soft)!important;color:var(--muted)!important;font-size:9.5px!important;
}
#stopPanel .depNextTrips[hidden]{display:none!important}
#stopPanel .depNextTrips>span{font-weight:700!important;margin-right:auto!important}
#stopPanel .depNextTrips time{font-variant-numeric:tabular-nums!important;color:var(--ink)!important;font-size:11px!important;font-weight:800!important}
#stopPanel .depFollowAction{border:0!important;background:transparent!important;padding:0!important;color:inherit!important;cursor:pointer!important}
#searchResults .sDirectionTabs{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important;margin-top:6px!important}
#searchResults .sDirectionTabs button{
  min-width:0!important;padding:5px 7px!important;border:1px solid var(--border)!important;border-radius:8px!important;
  background:var(--surface)!important;color:var(--ink)!important;text-align:left!important;font-size:9px!important;line-height:1.1!important;
}
#searchResults .sDirectionTabs button>span{display:block!important;font-weight:800!important;color:var(--accent)!important}
#searchResults .sDirectionTabs button>small{
  display:block!important;margin-top:2px!important;overflow:hidden!important;text-overflow:ellipsis!important;
  white-space:nowrap!important;font-size:8px!important;color:var(--muted)!important;
}
@media(max-width:760px){
 #stopPanel .depRow.boardRow{grid-template-columns:36px auto minmax(0,1fr) minmax(42px,auto) 16px!important;gap:6px!important}
 #stopPanel .depExpandChevron{width:16px!important;min-width:16px!important}
}

/* V81.6.34.9.4.21 — haltebord V3 status polish */
#stopPanel .depNextTrips{
  gap:6px!important;
  flex-wrap:wrap!important;
}
#stopPanel .depNextTrip{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  min-height:22px!important;
  padding:3px 6px!important;
  border:1px solid var(--border)!important;
  border-radius:999px!important;
  background:var(--surface)!important;
}
#stopPanel .depNextTrip time{
  color:var(--ink)!important;
  font-size:10.5px!important;
  font-weight:800!important;
}
#stopPanel .depNextState,
#stopPanel .depNextDelay{
  margin:0!important;
  font-size:8.5px!important;
  font-style:normal!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
}
#stopPanel .depNextState.now{color:#fff!important;background:#16865f!important;padding:3px 5px!important;border-radius:999px!important}
#stopPanel .depNextState.soon{color:#1d7a49!important}
#stopPanel .depNextState.live{color:#1d7a49!important}
#stopPanel .depNextState.estimated{color:#a85c00!important}
#stopPanel .depNextState.cancelled{color:#b42318!important}
#stopPanel .depNextDelay.late{color:#b86b00!important}
#stopPanel .depNextDelay.early{color:#1d7a49!important}
body.theme-night #stopPanel .depNextTrip{background:#162027!important;border-color:#33434c!important}

/* V81.6.34.9.4.22 — echte bestemmingen in richtingtabs */
#searchResults .sDirectionTabs button>span{
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* V81.6.34.9.4.24 — mobile search results viewport guard */
@media(max-width:760px){
  #mapTools.search-active #searchResults,
  #mapTools.search-active #searchResults.open{
    max-height:min(52dvh,calc(var(--mobile-filter-sheet-height,60dvh) - 106px))!important;
    overflow-y:auto!important;
  }
}
/* V81.6.34.9.4.36 voertuigpopup datakwaliteit */
#vehiclePanel .vprQualityAge{display:inline-flex;align-items:center;min-height:20px;font-size:9px;font-weight:650;color:var(--muted);white-space:nowrap}
#vehiclePanel .vprQuality.live{background:#e7f5ed;color:#1d7a49}
#vehiclePanel .vprQuality.estimated{background:#fff0d2;color:#a85c00}
#vehiclePanel .vprQuality.schedule{background:#eef1f3;color:#667078}
body.theme-night #vehiclePanel .vprQuality.live{background:#193e29!important;color:#8fdda8!important}
body.theme-night #vehiclePanel .vprQuality.estimated{background:#4a3219!important;color:#ffbf68!important}
body.theme-night #vehiclePanel .vprQuality.schedule{background:#273139!important;color:#b9c3ca!important}
@media(max-width:760px){#vehiclePanel .vprQualityAge{font-size:8px;min-height:18px}}

/* V81.6.34.9.4.68 — vehicle popup mockup layout */
#vehiclePanel .vprTopline{padding:13px 42px 12px 12px;border-bottom:1px solid var(--border)}
#vehiclePanel .vprTopline h2{margin:0;color:var(--ink);font-size:15px;line-height:1.24;letter-spacing:-.2px;font-weight:850;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
#vehiclePanel .vprHero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:12px}
#vehiclePanel .vprHeroBadge{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:48px;padding:0 10px;border-radius:12px;background:var(--vehicle-color);color:var(--vehicle-text,#fff);font-size:22px;font-weight:900;line-height:1;white-space:nowrap;box-shadow:inset 0 0 0 1px #0001}
#vehiclePanel .vprHeroStop{min-width:0}
#vehiclePanel .vprHeroStop>small{display:block;margin:1px 0 2px;color:var(--muted);font-size:10px;line-height:1.15}
#vehiclePanel .vprHeroStop>b{display:block;color:var(--ink);font-size:15px;line-height:1.18;font-weight:850;white-space:normal;overflow-wrap:anywhere}
#vehiclePanel .vprHeroStatus{display:flex;align-items:center;justify-content:space-between;gap:7px;min-height:25px;margin-top:8px}
#vehiclePanel .vprHeroStatus .vprDelay{margin:0!important;align-self:auto!important}
#vehiclePanel .vprHeroStatus .vprQuality{min-height:24px;padding:4px 8px}
#vehiclePanel .vprHeroStatus .vprQuality.live::before{content:"";width:7px;height:7px;margin-right:5px;border-radius:50%;background:currentColor}
#vehiclePanel .vprTripMeta{margin:0 2px 7px;padding:7px 4px 9px;border-bottom:1px solid var(--border);color:var(--muted)}
#vehiclePanel .vprTripMeta>div{font-size:10.5px;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
#vehiclePanel .vprTripMeta>small{display:block;margin-top:3px;font-size:9.5px;line-height:1.2;color:var(--muted)}
body.theme-night #vehiclePanel .vprTopline{border-color:var(--border)}
@media(max-width:760px){
 #vehiclePanel .vprTopline{padding:11px 39px 10px 10px}
 #vehiclePanel .vprTopline h2{font-size:13px;line-height:1.22}
 #vehiclePanel .vprHero{gap:9px;padding:10px}
 #vehiclePanel .vprHeroBadge{min-width:48px;height:43px;padding:0 8px;border-radius:10px;font-size:18px}
 #vehiclePanel .vprHeroStop>small{font-size:9px}
 #vehiclePanel .vprHeroStop>b{font-size:12.5px}
 #vehiclePanel .vprHeroStatus{gap:5px;margin-top:6px}
 #vehiclePanel .vprTripMeta{margin-bottom:6px;padding:6px 3px 8px}
 #vehiclePanel .vprTripMeta>div{font-size:9.5px}
 #vehiclePanel .vprTripMeta>small{font-size:8.8px}
}

/* V81.6.34.9.4.69 — popup polish */
#vehiclePanel .vprTopline h2{max-height:2.48em!important;white-space:normal!important;overflow:hidden!important;text-overflow:clip!important;display:block!important}
#vehiclePanel .vprQuality.schedule{background:#eef1f3!important;color:#667078!important}
#vehiclePanel .vprQuality.estimated{background:#fff0d2!important;color:#a85c00!important}
#vehiclePanel .vprQuality.live{background:#e7f5ed!important;color:#1d7a49!important}
#vehiclePanel .vprEta{grid-template-columns:18px minmax(0,1fr) auto auto!important;gap:6px!important;padding:6px 9px!important}
#vehiclePanel .vprEtaIcon svg{width:15px!important;height:15px!important}
#vehiclePanel .vprEta b{font-size:9px!important}
#vehiclePanel .vprEta small{font-size:8.5px!important;margin-top:0!important}
#vehiclePanel .vprEta time{font-size:15px!important}
#vehiclePanel .vprEta em{font-size:8.5px!important}
#vehiclePanel .vprTimeline .timeline-dot::before{box-sizing:border-box!important}
#vehiclePanel .vprTimeline li.current .timeline-dot::before{left:.5px!important}
#vehiclePanel .vprTimeline li.next .timeline-dot::before,
#vehiclePanel .vprTimeline li.future .timeline-dot::before{left:1.5px!important}
#vehiclePanel .vprTimeline li.passed .timeline-dot::before{left:2.5px!important}
#vehiclePanel .vprTimeline ol::before{left:calc(var(--vpr-time) + var(--vpr-gap) + 7.5px)!important}
#vehiclePanel .vprEndLabel{display:inline-flex;align-items:center;margin-left:6px;padding:1px 4px;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:7px;font-style:normal;font-weight:750;line-height:1.25;vertical-align:1px}
body.theme-night #vehiclePanel .vprQuality.schedule{background:#273139!important;color:#b9c3ca!important}
body.theme-night #vehiclePanel .vprQuality.estimated{background:#4a3219!important;color:#ffbf68!important}
body.theme-night #vehiclePanel .vprQuality.live{background:#193e29!important;color:#8fdda8!important}
@media(max-width:760px){
 #vehiclePanel .vprTopline h2{max-height:2.44em!important}
 #vehiclePanel .vprEta{grid-template-columns:17px minmax(0,1fr) auto auto!important;padding:5px 8px!important;gap:5px!important}
 #vehiclePanel .vprEta time{font-size:14px!important}
 #vehiclePanel .vprTimeline ol::before{left:calc(var(--vpr-time) + var(--vpr-gap) + 6.5px)!important}
}


/* V81.6.34.9.4.74 — haltepopup polish */
#stopPanel .stopNumberMeta{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:9px;
  font-weight:650;
  line-height:1.2;
}
#stopPanel .depTime{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:1px!important;
}
#stopPanel .depTime.late .depTimeMain,
#stopPanel .depTime.late .depCountdown{
  color:#b86b00!important;
}
#stopPanel .depCountdown{
  display:block;
  color:var(--muted);
  font-size:8.5px;
  font-weight:750;
  line-height:1.05;
  white-space:nowrap;
}
#stopPanel .depDelayInline{
  margin-top:1px!important;
}
#stopPanel .depEndLabel{
  display:inline-flex;
  align-items:center;
  margin-left:5px;
  padding:1px 4px;
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--muted);
  font-size:7px;
  font-style:normal;
  font-weight:750;
  line-height:1.25;
  vertical-align:1px;
}
#stopPanel .depStatus.neutral{
  background:#eef1f3!important;
  color:#616970!important;
}
body.theme-night #stopPanel .depStatus.neutral{
  background:#273139!important;
  color:#b9c3ca!important;
}
body.theme-night #stopPanel .depTime.late .depTimeMain,
body.theme-night #stopPanel .depTime.late .depCountdown{
  color:#ffbf68!important;
}
@media(max-width:760px){
  #stopPanel{height:82dvh!important}
  #stopPanel>header{
    padding:8px 10px 7px!important;
    gap:6px!important;
  }
  #stopPanel>header h1{
    font-size:18px!important;
    line-height:1.05!important;
  }
  #stopPanel .stopHeaderMeta{
    margin-top:4px!important;
  }
  #stopPanel .stopNumberMeta{
    margin-top:2px!important;
    font-size:8.2px!important;
  }
  #stopPanel .stopFilterBar{
    padding:6px 10px 5px!important;
  }
  #stopPanel .stopTabs,
  #stopPanel .stopModes{
    gap:4px!important;
  }
  #stopPanel .stopModes{
    margin-top:4px!important;
    padding-bottom:4px!important;
  }
  #stopPanel .stopTabs button,
  #stopPanel .stopLineChip{
    min-height:28px!important;
    padding:5px 8px!important;
    font-size:9.5px!important;
  }
  #stopPanel .depRow.boardRow{
    grid-template-columns:44px 38px minmax(0,1fr) auto!important;
    gap:5px!important;
    min-height:50px!important;
    padding:6px 10px!important;
  }
  #stopPanel .depTime{
    font-size:12.5px!important;
  }
  #stopPanel .depCountdown{
    font-size:7.8px!important;
  }
  #stopPanel .departure-line{
    min-width:34px!important;
    padding:4px 5px!important;
    font-size:9.5px!important;
  }
  #stopPanel .depMain>b{
    font-size:11.5px!important;
  }
  #stopPanel .depMain>small{
    font-size:8.6px!important;
  }
  #stopPanel .depStatusCol{
    min-width:0!important;
    gap:2px!important;
  }
  #stopPanel .depStatus{
    padding:3px 5px!important;
    font-size:8px!important;
  }
}


/* V81.6.34.9.4.75 — early-running presentation */
#stopPanel .depTime.early .depTimeMain,
#stopPanel .depTime.early .depCountdown{
  color:#1d7a49!important;
}
#vehiclePanel .vprDelaySuffix.early{
  color:#747b80!important;
  font-weight:750!important;
}
body.theme-night #stopPanel .depTime.early .depTimeMain,
body.theme-night #stopPanel .depTime.early .depCountdown{
  color:#8fdda8!important;
}
body.theme-night #vehiclePanel .vprDelaySuffix.early{
  color:#aeb7bd!important;
}
