/* ============================================================
   VIENNA V186 — BLACK MODE UI POLISH AUTHORITY
   Final map/application layer. Loaded after every legacy stylesheet.
   Focus: consistent dark surfaces, readable hierarchy, clean controls,
   rebuilt speedometer, and stable route customization UI.
   ============================================================ */

html[data-rairo-theme="black"] .ws-app{
  --vb-bg:#11110f;
  --vb-surface:#181715;
  --vb-surface-2:#201e1b;
  --vb-surface-3:#292520;
  --vb-surface-glass:rgba(24,23,21,.96);
  --vb-surface-glass-2:rgba(32,30,27,.94);
  --vb-text:#fffaf6;
  --vb-text-2:#e8dfd8;
  --vb-muted:#b8ada5;
  --vb-faint:#8e847d;
  --vb-line:rgba(255,250,246,.10);
  --vb-line-strong:rgba(255,250,246,.17);
  --vb-accent:#F59A62;
  --vb-accent-light:#FFC39B;
  --vb-accent-deep:#D9703F;
  --vb-accent-soft:rgba(245,154,98,.14);
  --vb-shadow:0 18px 46px rgba(0,0,0,.34);
  --vb-shadow-soft:0 9px 24px rgba(0,0,0,.24);
  color:var(--vb-text)!important;
}

/* ---------- generic readable hierarchy inside map ---------- */
html[data-rairo-theme="black"] .ws-app :is(
  h1,h2,h3,h4,strong,b,
  .planner-heading-copy b,.planner-section-head b,.planner-preset b,.nearby-service b,
  .route-head h2,.route-time span,.parking-head b,.parking-item b,
  .destination-confirm h3,.resume-trip-head h3,.resume-trip-destination b,.resume-trip-metric b,
  .nav-maneuver-copy b,.nav-summary-item strong,.traffic-suggestion-main b,
  .prefs-head h3,.safety-head h3,.account-drawer b,.quick-alert-head h3,
  .immersive-choice-head h3,.immersive-option b,.permission-copy b
){color:var(--vb-text)!important}

html[data-rairo-theme="black"] .ws-app :is(
  p,small,.disclaimer,.planner-tip,.planner-section-head span,.planner-preset small,.nearby-service small,
  .route-head p,.route-card p,.route-card-meta,.route-ai,.parking-head span,.parking-item span,
  .destination-confirm p,.resume-trip-destination span,.resume-trip-metric small,.resume-trip-age,
  .nav-maneuver-copy small,.nav-summary-item small,.traffic-suggestion-main span,.traffic-suggestion-main small,
  .traffic-radar-copy span,.prefs-foot,.safety-foot,.pref-row>span>span,.safety-tool>span>span,
  .immersive-choice-head p,.immersive-option-copy>span,.permission-copy span,.search-message,.result-meta
){color:var(--vb-muted)!important}

/* ---------- planner / search ---------- */
html[data-rairo-theme="black"] body:not(.body-nav) #planSheet.sheet{
  background:linear-gradient(180deg,rgba(27,25,23,.985),rgba(17,16,15,.99))!important;
  border-color:var(--vb-line)!important;
  box-shadow:0 -14px 48px rgba(0,0,0,.38)!important;
}
html[data-rairo-theme="black"] #planSheet .grab,
html[data-rairo-theme="black"] #planSheet .planner-grab{
  background:rgba(255,250,246,.22)!important;
}
html[data-rairo-theme="black"] .planner-weather,
html[data-rairo-theme="black"] .planner-search-card.search-card,
html[data-rairo-theme="black"] .planner-preset,
html[data-rairo-theme="black"] .nearby-service,
html[data-rairo-theme="black"] .search-results{
  background:var(--vb-surface-2)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
  box-shadow:none!important;
}
html[data-rairo-theme="black"] .planner-search-card.search-card{
  border-radius:18px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
}
html[data-rairo-theme="black"] .planner-search-card .location-input{
  background:transparent!important;
  color:var(--vb-text)!important;
  caret-color:var(--vb-accent)!important;
}
html[data-rairo-theme="black"] .planner-search-card .location-input::placeholder{color:var(--vb-faint)!important}
html[data-rairo-theme="black"] .planner-search-icon{color:var(--vb-accent-light)!important}
html[data-rairo-theme="black"] :is(.planner-adjust-btn,.planner-search-card .row-btn,.planner-preset-icon,.nearby-service-icon){
  background:var(--vb-surface-3)!important;
  color:var(--vb-text-2)!important;
  border-color:var(--vb-line)!important;
  box-shadow:none!important;
}
html[data-rairo-theme="black"] :is(.planner-adjust-btn,.planner-preset,.nearby-service,.search-item):active{
  background:#302a25!important;
  border-color:rgba(245,154,98,.20)!important;
}
html[data-rairo-theme="black"] .search-item{color:var(--vb-text)!important;border-color:rgba(255,250,246,.06)!important}
html[data-rairo-theme="black"] .search-item:hover{background:rgba(255,255,255,.035)!important}
html[data-rairo-theme="black"] .result-icon{background:var(--vb-surface-3)!important;border-color:var(--vb-line)!important;color:var(--vb-accent-light)!important}

/* ---------- destination / calculation / resume ---------- */
html[data-rairo-theme="black"] :is(.destination-confirm,.route-loading-card,.resume-trip-card){
  background:linear-gradient(160deg,var(--vb-surface-2),var(--vb-surface))!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
  box-shadow:var(--vb-shadow)!important;
}
html[data-rairo-theme="black"] .destination-edit,
html[data-rairo-theme="black"] .resume-trip-end{
  background:var(--vb-surface-3)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] :is(.destination-accept,.resume-trip-continue){
  background:linear-gradient(135deg,var(--vb-accent-light),var(--vb-accent) 48%,var(--vb-accent-deep))!important;
  color:#fff!important;
  border-color:transparent!important;
}
html[data-rairo-theme="black"] .resume-trip-preview,
html[data-rairo-theme="black"] .resume-trip-metric{
  background:var(--vb-surface-3)!important;
  border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] .route-loading-spinner{border-color:rgba(255,255,255,.10)!important;border-top-color:var(--vb-accent)!important}

/* ---------- route studio refinements ---------- */
#routeState.vienna-route-studio .route-option-icon{
  width:31px!important;height:31px!important;flex:0 0 31px!important;
  display:grid!important;place-items:center!important;border-radius:10px!important;
  background:rgba(112,104,97,.075)!important;color:currentColor!important;
}
#routeState.vienna-route-studio .route-option-icon svg{width:15px!important;height:15px!important;display:block!important;color:currentColor!important;stroke:currentColor!important}
#routeState.vienna-route-studio .route-option-copy{
  min-width:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:3px!important;text-align:left!important;
}
#routeState.vienna-route-studio .route-option-copy b{font-size:10px!important;line-height:1!important;font-weight:930!important;color:currentColor!important;white-space:nowrap!important}
#routeState.vienna-route-studio .route-option-copy small{font-size:7px!important;line-height:1!important;font-weight:700!important;color:var(--vr-faint)!important;white-space:nowrap!important}
#routeState.vienna-route-studio .segment button,
#routeState.vienna-route-studio .travel button{
  justify-content:flex-start!important;
  min-height:54px!important;height:54px!important;
  padding:0 9px!important;
}
#routeState.vienna-route-studio .segment button.active .route-option-icon,
#routeState.vienna-route-studio .travel button.active .route-option-icon{
  background:rgba(245,154,98,.18)!important;
}
#routeState.vienna-route-studio .segment button.active::after,
#routeState.vienna-route-studio .travel button.active::after{right:9px!important;top:9px!important}

html[data-rairo-theme="black"] #routeState.vienna-route-studio{
  --vr-text:var(--vb-text)!important;
  --vr-muted:var(--vb-muted)!important;
  --vr-faint:var(--vb-faint)!important;
  --vr-surface:var(--vb-surface)!important;
  --vr-surface-2:var(--vb-surface-2)!important;
  --vr-soft:#2a211c!important;
  --vr-soft-2:#211d1a!important;
  --vr-line:var(--vb-line)!important;
  --vr-line-strong:var(--vb-line-strong)!important;
}
html[data-rairo-theme="black"] #routeState.vienna-route-studio .vr-hero,
html[data-rairo-theme="black"] #routeState.vienna-route-studio .vr-customize,
html[data-rairo-theme="black"] #routeState.vienna-route-studio .route-card,
html[data-rairo-theme="black"] #routeState.vienna-route-studio .parking-nearby{
  background:linear-gradient(150deg,var(--vb-surface-2),var(--vb-surface))!important;
  border-color:var(--vb-line)!important;
  box-shadow:var(--vb-shadow-soft)!important;
}
html[data-rairo-theme="black"] #routeState.vienna-route-studio .route-choice-label span,
html[data-rairo-theme="black"] #routeState.vienna-route-studio .customize-route-kicker span,
html[data-rairo-theme="black"] #routeState.vienna-route-studio .vr-section-head span{color:var(--vb-text)!important}
html[data-rairo-theme="black"] #routeState.vienna-route-studio .route-choice-label small,
html[data-rairo-theme="black"] #routeState.vienna-route-studio .customize-route-kicker b,
html[data-rairo-theme="black"] #routeState.vienna-route-studio .vr-section-head small{color:var(--vb-muted)!important}
html[data-rairo-theme="black"] #routeState.vienna-route-studio :is(.segment button,.travel button,.route-variant,.preview-actions .sub-action,.parking-item){
  background:var(--vb-surface-2)!important;
  color:var(--vb-text-2)!important;
  border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] #routeState.vienna-route-studio :is(.segment button,.travel button) .route-option-copy b{color:var(--vb-text)!important}
html[data-rairo-theme="black"] #routeState.vienna-route-studio :is(.segment button.active,.travel button.active){
  background:linear-gradient(145deg,rgba(245,154,98,.17),rgba(245,154,98,.09))!important;
  color:var(--vb-accent-light)!important;
  border-color:rgba(245,154,98,.42)!important;
  box-shadow:inset 0 0 0 1px rgba(245,154,98,.04)!important;
}
html[data-rairo-theme="black"] #routeState.vienna-route-studio :is(.segment button.active,.travel button.active) .route-option-copy b{color:#fff6ef!important}
html[data-rairo-theme="black"] #routeState.vienna-route-studio .start-trip-cta.primary{box-shadow:0 14px 30px rgba(217,112,63,.24)!important}

/* ---------- active navigation card ---------- */
html[data-rairo-theme="black"] body.body-nav #activeNav.nav-panel.nav-minimal{
  background:linear-gradient(180deg,rgba(30,28,26,.99),rgba(20,19,17,.99))!important;
  color:var(--vb-text)!important;
  border:1px solid var(--vb-line)!important;
  box-shadow:0 -14px 42px rgba(0,0,0,.40)!important;
}
html[data-rairo-theme="black"] body.body-nav #activeNav .nav-summary-row{
  gap:7px!important;
}
html[data-rairo-theme="black"] body.body-nav #activeNav .nav-summary-item{
  background:var(--vb-surface-2)!important;
  border:1px solid var(--vb-line)!important;
  color:var(--vb-text)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.018)!important;
}
html[data-rairo-theme="black"] body.body-nav #activeNav .nav-summary-item small{
  color:var(--vb-muted)!important;
  letter-spacing:.08em!important;
}
html[data-rairo-theme="black"] body.body-nav #activeNav .nav-summary-item strong,
html[data-rairo-theme="black"] body.body-nav #activeNav .nav-summary-item:first-child strong{
  color:var(--vb-text)!important;
  font-variant-numeric:tabular-nums!important;
}
html[data-rairo-theme="black"] body.body-nav #activeNav .nav-search-btn{
  background:var(--vb-surface-3)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
  box-shadow:none!important;
}

/* ---------- maneuver / current street ---------- */
html[data-rairo-theme="black"] body.body-nav .nav-maneuver-top{
  background:linear-gradient(145deg,rgba(31,29,27,.99),rgba(19,18,17,.99))!important;
  color:var(--vb-text)!important;
  border:1px solid var(--vb-line)!important;
  box-shadow:0 14px 36px rgba(0,0,0,.34)!important;
}
html[data-rairo-theme="black"] body.body-nav .nav-maneuver-icon{
  background:linear-gradient(145deg,var(--vb-accent),var(--vb-accent-deep))!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(217,112,63,.22)!important;
}
html[data-rairo-theme="black"] body.body-nav .nav-maneuver-copy b{color:var(--vb-text)!important}
html[data-rairo-theme="black"] body.body-nav .nav-maneuver-copy span{color:var(--vb-accent-light)!important}
html[data-rairo-theme="black"] body.body-nav .nav-street-chip{
  background:rgba(25,23,21,.97)!important;
  color:var(--vb-text)!important;
  border:1px solid var(--vb-line)!important;
  box-shadow:0 8px 22px rgba(0,0,0,.24)!important;
}
html[data-rairo-theme="black"] body.body-nav .nav-street-chip span{color:var(--vb-text)!important}

/* ---------- V187: simple real speedometer ---------- */
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo{
  --speed-progress:0;
  --speed-angle:0deg;
  --speed-ring:var(--vb-accent-light);
  position:absolute!important;
  left:max(12px,calc(env(safe-area-inset-left) + 10px))!important;
  right:auto!important;
  box-sizing:border-box!important;
  width:76px!important;min-width:76px!important;max-width:76px!important;
  height:76px!important;min-height:76px!important;max-height:76px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:50%!important;
  background:rgba(20,19,17,.965)!important;
  color:var(--vb-text)!important;
  box-shadow:0 9px 24px rgba(0,0,0,.30),inset 0 0 0 1px rgba(255,255,255,.055)!important;
  isolation:isolate!important;
  text-align:center!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo .speedo-label,
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo .speedo-limit{
  display:none!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo strong{
  position:absolute!important;
  z-index:3!important;
  left:50%!important;
  top:48%!important;
  transform:translate(-50%,-50%)!important;
  display:block!important;
  width:100%!important;
  margin:0!important;
  color:var(--vb-text)!important;
  font-size:29px!important;
  line-height:1!important;
  font-weight:900!important;
  letter-spacing:-1.35px!important;
  font-variant-numeric:tabular-nums!important;
  text-align:center!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo .speedo-unit{
  position:absolute!important;
  z-index:3!important;
  left:50%!important;
  bottom:15px!important;
  transform:translateX(-50%)!important;
  display:block!important;
  margin:0!important;
  color:rgba(255,250,246,.58)!important;
  font-size:6.5px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  white-space:nowrap!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo::before{
  content:""!important;
  position:absolute!important;
  z-index:1!important;
  inset:5px!important;
  border-radius:50%!important;
  pointer-events:none!important;
  background:conic-gradient(
    from 210deg,
    var(--speed-ring) 0deg var(--speed-angle),
    rgba(255,250,246,.11) var(--speed-angle) 300deg,
    transparent 300deg 360deg
  )!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo::after{
  content:""!important;
  position:absolute!important;
  z-index:2!important;
  inset:9px!important;
  border-radius:50%!important;
  pointer-events:none!important;
  background:linear-gradient(150deg,rgba(34,31,28,.99),rgba(18,17,16,.99))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035)!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo.moving{
  box-shadow:0 10px 26px rgba(0,0,0,.32),inset 0 0 0 1px rgba(255,255,255,.065)!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo.over-limit{
  --speed-ring:#ff7474;
}
html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo.over-limit strong{
  color:#fff!important;
}

/* ---------- right-side control rail ---------- */
html[data-rairo-theme="black"] body.body-nav .ws-app #navControlStack{
  width:43px!important;min-width:43px!important;max-width:43px!important;
  gap:8px!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app :is(#navDrawerRecenter,#soundBtn,#navCameraToggle,.nav-drawer-toggle,.nav-drawer-btn,.nav-stack-btn,.nav-audio-toggle){
  width:43px!important;min-width:43px!important;max-width:43px!important;
  height:43px!important;min-height:43px!important;max-height:43px!important;
  padding:0!important;
  border-radius:14px!important;
  border:1px solid var(--vb-line)!important;
  background:rgba(29,27,25,.97)!important;
  color:var(--vb-text-2)!important;
  box-shadow:0 7px 18px rgba(0,0,0,.24)!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app :is(#soundBtn.active,#navCameraToggle.active,.nav-drawer-btn.active){
  background:linear-gradient(145deg,var(--vb-accent),var(--vb-accent-deep))!important;
  color:#fff!important;
  border-color:rgba(255,195,155,.35)!important;
  box-shadow:0 8px 20px rgba(217,112,63,.22)!important;
}
html[data-rairo-theme="black"] body.body-nav .ws-app #navDrawerRecenter.active{
  background:var(--vb-surface-3)!important;
  color:var(--vb-text)!important;
}
html[data-rairo-theme="black"] body:not(.body-nav) .ws-app :is(.options-btn,.map-tools .map-btn,.floating-locate){
  background:rgba(29,27,25,.96)!important;
  color:var(--vb-text-2)!important;
  border:1px solid var(--vb-line)!important;
  box-shadow:0 7px 18px rgba(0,0,0,.24)!important;
}
html[data-rairo-theme="black"] body:not(.body-nav) .ws-app :is(.options-btn,.map-tools .map-btn,.floating-locate):active{
  background:var(--vb-surface-3)!important;
  color:var(--vb-text)!important;
}
html[data-rairo-theme="black"] body:not(.body-nav) .ws-app .map-tools #focusModeBtn.active{
  background:linear-gradient(145deg,var(--vb-accent),var(--vb-accent-deep))!important;
  color:#fff!important;
  border-color:rgba(255,195,155,.34)!important;
}

/* ---------- small status / live surfaces ---------- */
html[data-rairo-theme="black"] .ws-app :is(
  .status-chip,.gps-quality,.traffic-radar,.connectivity-pill,.nav-tracking,
  .nav-immersive-chip,.nav-voice-popover,.nav-alt-hint,.nav-feedback,.traffic-suggestion,.reroute
){
  background:rgba(27,25,23,.97)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
  box-shadow:var(--vb-shadow-soft)!important;
}
html[data-rairo-theme="black"] .ws-app :is(.status-chip,.gps-quality,.connectivity-pill,.nav-tracking,.nav-immersive-chip) span{color:var(--vb-text-2)!important}
html[data-rairo-theme="black"] .ws-app .nav-tracking-copy span{color:var(--vb-muted)!important}
html[data-rairo-theme="black"] .ws-app .nav-tracking-score{color:var(--vb-accent-light)!important}
html[data-rairo-theme="black"] .ws-app .nav-voice-popover select{
  background:var(--vb-surface-3)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] .ws-app .nav-voice-popover button{
  background:var(--vb-accent-soft)!important;color:var(--vb-accent-light)!important;border-color:rgba(245,154,98,.24)!important;
}
html[data-rairo-theme="black"] .ws-app :is(.traffic-dismiss,.nav-alt-dismiss){background:var(--vb-surface-3)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important}
html[data-rairo-theme="black"] .ws-app :is(.traffic-accept,.nav-alt-accept){background:linear-gradient(145deg,var(--vb-accent),var(--vb-accent-deep))!important;color:#fff!important;border-color:transparent!important}

/* ---------- drawers / sheets ---------- */
html[data-rairo-theme="black"] .ws-app :is(.prefs-drawer,.safety-drawer,.account-drawer,.options-drawer,.quick-alert-card,.immersive-choice-card,.guest-limit-card){
  background:linear-gradient(155deg,var(--vb-surface-2),var(--vb-surface))!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
  box-shadow:var(--vb-shadow)!important;
}
html[data-rairo-theme="black"] .ws-app :is(.prefs-close,.safety-close,.guest-drawer-close,.quick-alert-close){
  background:var(--vb-surface-3)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] .ws-app :is(.pref-row,.safety-tool,.drawer-link,.immersive-option){
  background:var(--vb-surface-2)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
  box-shadow:none!important;
}
html[data-rairo-theme="black"] .ws-app :is(.pref-row,.safety-tool,.drawer-link,.immersive-option):active{background:var(--vb-surface-3)!important}
html[data-rairo-theme="black"] .ws-app .safety-tool svg,
html[data-rairo-theme="black"] .ws-app .immersive-option svg{color:var(--vb-accent-light)!important;stroke:var(--vb-accent-light)!important}
html[data-rairo-theme="black"] .ws-app .voice-select{background:var(--vb-surface-3)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important}

/* ---------- quick alerts ---------- */
html[data-rairo-theme="black"] .quick-alert-sheet .quick-alert-backdrop{background:rgba(0,0,0,.46)!important}
html[data-rairo-theme="black"] .quick-alert-card .quick-alert-grid button{
  background:var(--vb-surface-2)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] .quick-alert-card .quick-alert-grid button:active{background:var(--vb-surface-3)!important;border-color:rgba(245,154,98,.25)!important}
html[data-rairo-theme="black"] .quick-alert-label{color:var(--vb-text-2)!important}

/* ---------- permission / guest / error ---------- */
html[data-rairo-theme="black"] .ws-app .permission{
  background:rgba(24,23,21,.985)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important;box-shadow:var(--vb-shadow)!important;
}
html[data-rairo-theme="black"] .ws-app .permission-icon{background:var(--vb-accent-soft)!important;color:var(--vb-accent-light)!important}
html[data-rairo-theme="black"] .ws-app .permission button,
html[data-rairo-theme="black"] .ws-app .guest-limit-primary{
  background:linear-gradient(145deg,var(--vb-accent),var(--vb-accent-deep))!important;color:#fff!important;border-color:transparent!important;
}
html[data-rairo-theme="black"] .ws-app :is(.guest-limit-secondary,.guest-limit-later){background:var(--vb-surface-3)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important}
html[data-rairo-theme="black"] .ws-app .map-boot-recovery{
  background:rgba(25,23,21,.985)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important;box-shadow:var(--vb-shadow)!important;
}
html[data-rairo-theme="black"] .ws-app .map-boot-recovery span{color:var(--vb-muted)!important}
html[data-rairo-theme="black"] .ws-app .map-boot-recovery button{background:var(--vb-accent)!important;color:#fff!important;border-color:transparent!important}

/* ---------- popups / toast ---------- */
html[data-rairo-theme="black"] .ws-app .toast,
html[data-rairo-theme="black"] .ws-app :is(.place-popup,.place-popup-card){
  background:rgba(24,23,21,.97)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important;box-shadow:var(--vb-shadow-soft)!important;
}
html[data-rairo-theme="black"] .mapboxgl-popup-content{
  background:rgba(24,23,21,.99)!important;color:var(--vb-text)!important;border-color:var(--vb-line)!important;box-shadow:var(--vb-shadow)!important;
}
html[data-rairo-theme="black"] .mapboxgl-popup-content *{color:inherit!important}
html[data-rairo-theme="black"] .mapboxgl-popup-tip{border-top-color:rgba(24,23,21,.99)!important}
html[data-rairo-theme="black"] .mapboxgl-ctrl-group{background:rgba(24,23,21,.94)!important;border-color:var(--vb-line)!important;box-shadow:var(--vb-shadow-soft)!important}
html[data-rairo-theme="black"] .mapboxgl-ctrl-group button{background:transparent!important;color:var(--vb-text)!important}

/* ---------- defeat old day-mode black text while Black theme is selected ---------- */
html[data-rairo-theme="black"] body[data-mood="day"] .ws-app :is(
  .planner-heading-copy b,.planner-weather span,.location-input,.route-head h2,.route-time span,
  .route-card,.route-card h3,.route-variant b,.route-variant span,.nav-maneuver-copy b,
  .nav-summary-item strong,.floating-speedo strong,.nav-street-chip
){color:var(--vb-text)!important}

/* ---------- responsive polish ---------- */
@media(max-width:430px){
  #routeState.vienna-route-studio .segment button,#routeState.vienna-route-studio .travel button{min-height:52px!important;height:52px!important;padding:0 7px!important}
  #routeState.vienna-route-studio .route-option-icon{width:29px!important;height:29px!important;flex-basis:29px!important;border-radius:9px!important}
  #routeState.vienna-route-studio .route-option-copy b{font-size:9px!important}
  #routeState.vienna-route-studio .route-option-copy small{font-size:6.5px!important}
}
@media(max-width:380px){
  html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo{
    left:max(8px,calc(env(safe-area-inset-left) + 6px))!important;
    width:68px!important;min-width:68px!important;max-width:68px!important;
    height:68px!important;min-height:68px!important;max-height:68px!important;
  }
  html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo strong{font-size:26px!important}
  html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo .speedo-unit{bottom:13px!important;font-size:6px!important}
  html[data-rairo-theme="black"] body.body-nav .ws-app #navControlStack{right:9px!important;width:40px!important;min-width:40px!important;max-width:40px!important}
  html[data-rairo-theme="black"] body.body-nav .ws-app :is(#navDrawerRecenter,#soundBtn,#navCameraToggle,.nav-drawer-toggle,.nav-drawer-btn,.nav-stack-btn,.nav-audio-toggle){width:40px!important;min-width:40px!important;max-width:40px!important;height:40px!important;min-height:40px!important;max-height:40px!important;border-radius:13px!important}
  #routeState.vienna-route-studio .route-option-copy small{display:none!important}
  #routeState.vienna-route-studio .route-option-icon{width:27px!important;height:27px!important;flex-basis:27px!important}
}
@media(max-height:680px) and (max-width:899px){
  html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo{
    width:66px!important;min-width:66px!important;max-width:66px!important;
    height:66px!important;min-height:66px!important;max-height:66px!important;
  }
  html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo strong{font-size:25px!important}
  html[data-rairo-theme="black"] body.body-nav .ws-app .floating-speedo .speedo-unit{bottom:12px!important}
}
@media(prefers-reduced-motion:reduce){
  html[data-rairo-theme="black"] .ws-app .floating-speedo{scroll-behavior:auto!important}
}

/* ---------- V186 late coverage: secondary flows ---------- */
html[data-rairo-theme="black"] .ws-app :is(.support-results,.support-item){
  border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] .ws-app .support-item{
  background:var(--vb-surface-2)!important;
  color:var(--vb-text)!important;
}
html[data-rairo-theme="black"] .ws-app .support-title,
html[data-rairo-theme="black"] .ws-app .support-item span{color:var(--vb-muted)!important}
html[data-rairo-theme="black"] .ws-app .support-item b{color:var(--vb-text)!important}
html[data-rairo-theme="black"] .ws-app .support-item strong{color:#9de1c2!important}

html[data-rairo-theme="black"] .ws-app .drawer-profile,
html[data-rairo-theme="black"] .ws-app :is(.guest-drawer-benefits span,.guest-drawer-secondary,.guest-drawer-continue){
  background:var(--vb-surface-3)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
}
html[data-rairo-theme="black"] .ws-app .guest-drawer-brand b,
html[data-rairo-theme="black"] .ws-app .guest-drawer-content h3{color:var(--vb-text)!important}
html[data-rairo-theme="black"] .ws-app .guest-drawer-content>p{color:var(--vb-muted)!important}
html[data-rairo-theme="black"] .ws-app .guest-drawer-primary{
  background:linear-gradient(145deg,var(--vb-accent),var(--vb-accent-deep))!important;
  color:#fff!important;
  border-color:transparent!important;
}
html[data-rairo-theme="black"] .ws-app .drawer-divider{background:var(--vb-line)!important}
html[data-rairo-theme="black"] .ws-app .drawer-avatar{background:var(--vb-surface-3)!important;border-color:var(--vb-line)!important}

html[data-rairo-theme="black"] .ws-app .pref-switch{background:#34302c!important;border:1px solid var(--vb-line)!important}
html[data-rairo-theme="black"] .ws-app .pref-switch::before{background:#aaa099!important}
html[data-rairo-theme="black"] .ws-app .pref-switch:checked{background:var(--vb-accent-deep)!important;border-color:rgba(245,154,98,.38)!important}
html[data-rairo-theme="black"] .ws-app .pref-switch:checked::before{background:#fff!important}

html[data-rairo-theme="black"] .ws-app :is(.place-popup-save,.place-popup-use){border-color:var(--vb-line)!important}
html[data-rairo-theme="black"] .ws-app .place-popup-save{background:var(--vb-surface-3)!important;color:var(--vb-text)!important}
html[data-rairo-theme="black"] .ws-app .place-popup-save.saved{background:rgba(245,154,98,.14)!important;color:var(--vb-accent-light)!important;border-color:rgba(245,154,98,.28)!important}
html[data-rairo-theme="black"] .ws-app .place-popup-use{background:linear-gradient(145deg,var(--vb-accent),var(--vb-accent-deep))!important;color:#fff!important}

html[data-rairo-theme="black"] .ws-app .floating-preview-cancel{
  background:rgba(29,27,25,.97)!important;
  color:var(--vb-text)!important;
  border-color:var(--vb-line)!important;
  box-shadow:0 7px 18px rgba(0,0,0,.24)!important;
}
html[data-rairo-theme="black"] .ws-app .traffic-radar.speed-camera{
  background:rgba(39,22,24,.97)!important;
  color:var(--vb-text)!important;
  border-color:rgba(255,105,115,.34)!important;
}
