/* LK24H_DRIVER_BOOKING_BOTTOM_NAV_FULL_SYSTEM_SYNC_R21_R23
 * Driver module bottom-nav synchronization + guaranteed bottom content reserve.
 * Scope is limited by html.lk-driver-bottom-nav-r21 to avoid affecting non-driver pages.
 */
html.lk-driver-bottom-nav-r21 {
  --lk-driver-bottom-nav-gap: 26px;
  --lk-driver-bottom-nav-fallback: 96px;
  --lk-driver-bottom-content-reserve: calc(var(--lk-bottom-nav-measured-height, var(--lk-driver-bottom-nav-fallback)) + var(--lk-driver-bottom-nav-gap));
  scroll-padding-bottom: var(--lk-driver-bottom-content-reserve) !important;
}

html.lk-driver-bottom-nav-r21 body {
  scroll-padding-bottom: var(--lk-driver-bottom-content-reserve) !important;
}

html.lk-driver-bottom-nav-r21.has-bottom-nav.has-bottom-nav-spacer body {
  padding-bottom: 0 !important;
}

html.lk-driver-bottom-nav-r21 .lk-bottom-nav-content-spacer {
  display: block !important;
  width: 100% !important;
  height: var(--lk-driver-bottom-content-reserve) !important;
  min-height: var(--lk-driver-bottom-content-reserve) !important;
  flex: 0 0 var(--lk-driver-bottom-content-reserve) !important;
  clear: both !important;
  pointer-events: none !important;
  user-select: none !important;
  visibility: hidden !important;
}

html.lk-driver-bottom-nav-r21 .bottom-nav {
  z-index: 9000;
}

html.lk-driver-bottom-nav-r21 .bottom-nav[data-lk-driver-bottom-nav-sync-r20="1"] {
  contain: layout paint style;
}

html.lk-driver-bottom-nav-r21 .bottom-nav .nav-inner {
  touch-action: manipulation;
}

html.lk-driver-bottom-nav-r21 .bottom-nav a.active,
html.lk-driver-bottom-nav-r21 .bottom-nav a.is-current {
  font-weight: 800;
}

/* Driver pages commonly use fixed/floating action zones; keep them above bottom nav. */
html.lk-driver-bottom-nav-r21 [data-lk-floating-action],
html.lk-driver-bottom-nav-r21 .fab,
html.lk-driver-bottom-nav-r21 .driver-fab,
html.lk-driver-bottom-nav-r21 .trip-status-fab,
html.lk-driver-bottom-nav-r21 .lk24h-trip-status-fab {
  bottom: calc(var(--lk-bottom-nav-measured-height, var(--lk-driver-bottom-nav-fallback)) + 14px + env(safe-area-inset-bottom, 0px)) !important;
}

/* Defensive reserve for layouts that accidentally put content after the spacer. */
html.lk-driver-bottom-nav-r21 body > main:last-of-type,
html.lk-driver-bottom-nav-r21 .drv-wrap > main:last-of-type,
html.lk-driver-bottom-nav-r21 .store-wrap:last-of-type,
html.lk-driver-bottom-nav-r21 .veh-main:last-of-type,
html.lk-driver-bottom-nav-r21 .drreg-main:last-of-type,
html.lk-driver-bottom-nav-r21 .dp-main:last-of-type {
  margin-bottom: 0;
}

@media print {
  html.lk-driver-bottom-nav-r21 .lk-bottom-nav-content-spacer,
  html.lk-driver-bottom-nav-r21 .bottom-nav {
    display: none !important;
  }
  html.lk-driver-bottom-nav-r21 body {
    padding-bottom: 0 !important;
    scroll-padding-bottom: 0 !important;
  }
}


/* R21: /driver/booking.php uses system-cloned bottom-nav markup while keeping the no-global-boot isolation. */
html.lk-driver-booking-nav-system-r21 {
  --lk-driver-bottom-nav-gap: 28px;
}
html.lk-driver-booking-nav-system-r21 .bottom-nav[data-lk-driver-nav-mode="booking-isolated-system-cloned-r21"] {
  z-index: 9100 !important;
}
html.lk-driver-booking-nav-system-r21 .bottom-nav[data-lk-driver-nav-mode="booking-isolated-system-cloned-r21"] .nav-inner a {
  min-width: 0;
}
html.lk-driver-booking-nav-system-r21 .bottom-nav[data-lk-driver-nav-mode="booking-isolated-system-cloned-r21"] .nav-inner i.fa-solid {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  line-height: 1;
}
html.lk-driver-booking-nav-system-r21 body.booking-safe-page main {
  scroll-margin-bottom: var(--lk-driver-bottom-content-reserve) !important;
}
html.lk-driver-booking-nav-system-r21 .sheet,
html.lk-driver-booking-nav-system-r21 .lk-modal-panel,
html.lk-driver-booking-nav-system-r21 .map-panel {
  max-height: calc(var(--lk-vvh, 100vh) - var(--lk-driver-bottom-content-reserve) - 20px);
}

/* LK24H_DRIVER_BOOKING_R22_QUICK_CALL_POPUP_COMPACT_ABOVE_BOTTOM_NAV
 * Keep the Gọi nhanh service sheet completely above the fixed bottom nav,
 * and reduce the sheet to customer-facing content only.
 */
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode {
  bottom: calc(var(--lk-bottom-nav-measured-height, 82px) + 12px + env(safe-area-inset-bottom, 0px)) !important;
  top: auto !important;
  left: max(12px, env(safe-area-inset-left, 0px)) !important;
  right: max(12px, env(safe-area-inset-right, 0px)) !important;
  width: auto !important;
  max-width: 640px !important;
  max-height: min(620px, calc(var(--lk-vvh, 100vh) - var(--lk-bottom-nav-measured-height, 82px) - 88px - env(safe-area-inset-bottom, 0px))) !important;
  border-radius: 24px !important;
  z-index: 9300 !important;
  box-shadow: 0 18px 52px rgba(15, 23, 42, .22) !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode .sheet-head,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode .sheet-head {
  min-height: 56px !important;
  padding: 12px 14px !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode .sheet-title,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode .sheet-title {
  font-size: 17px !important;
  line-height: 1.18 !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode .sheet-body,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode .sheet-body {
  padding: 12px 14px !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #svcKindRadios,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #svcKindRadios {
  display: none !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #vehicleCards,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #vehicleCards {
  gap: 10px !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-card,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-card {
  min-height: 58px !important;
  padding: 12px !important;
  border-radius: 18px !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-top,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-top {
  gap: 10px !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-ic,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-ic {
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  border-radius: 14px !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-name,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-name {
  font-size: 15px !important;
  line-height: 1.2 !important;
  font-weight: 950 !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-sub,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #vehicleCards .veh-sub {
  margin-top: 2px !important;
  font-size: 12px !important;
  color: #64748b !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #vehicleCardsHint,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #vehicleCardsHint {
  margin-top: 10px !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  color: #64748b !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview {
  margin-top: 10px !important;
  padding: 10px 12px !important;
  border: 1px solid #dbeafe !important;
  border-radius: 16px !important;
  background: #f8fafc !important;
  color: #334155 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview.is-warn,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview.is-warn {
  border-color: #fed7aa !important;
  background: #fff7ed !important;
  color: #9a3412 !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-title,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-title {
  font-size: 13px !important;
  font-weight: 900 !important;
  color: inherit !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-line,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-line {
  margin-top: 2px !important;
  font-size: 13px !important;
  color: inherit !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-note,
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-lock,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-note,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode #quickTaxiPreview .qt-preview-lock {
  display: none !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode .sheet-actions,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode .sheet-actions {
  position: static !important;
  padding: 10px 14px 12px !important;
  grid-template-columns: 1fr 1fr !important;
  background: #fff !important;
}
html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode .sheet-actions .btn,
html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode .sheet-actions .btn {
  min-height: 48px !important;
  border-radius: 16px !important;
  font-size: 15px !important;
}
@media (max-width: 560px) {
  html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode,
  html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode {
    left: 10px !important;
    right: 10px !important;
    max-height: min(560px, calc(var(--lk-vvh, 100vh) - var(--lk-bottom-nav-measured-height, 82px) - 72px - env(safe-area-inset-bottom, 0px))) !important;
  }
  html.lk-driver-booking-nav-system-r21 #svcSheet.quick-taxi-mode .sheet-actions,
  html.lk-driver-bottom-nav-r21 #svcSheet.quick-taxi-mode .sheet-actions {
    grid-template-columns: 1fr !important;
  }
}


/* LK24H_DRIVER_BOOKING_R23_ONLINE_MAP_CLOSE_ABOVE_BOTTOM_NAV
 * Keep the online-driver map controls and empty-state close action above the fixed bottom nav.
 * Scope: /driver/booking.php system-cloned bottom-nav runtime only.
 */
html.lk-driver-booking-nav-system-r21,
html.lk-driver-bottom-nav-r21 {
  --lk-online-map-bottom-reserve: calc(var(--lk-bottom-nav-measured-height, 86px) + env(safe-area-inset-bottom, 0px));
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-mode,
html.lk-driver-bottom-nav-r21 .booking-online-map-mode {
  z-index: 8800 !important;
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-shell,
html.lk-driver-bottom-nav-r21 .booking-online-map-shell {
  padding-bottom: var(--lk-online-map-bottom-reserve) !important;
  box-sizing: border-box !important;
}
html.lk-driver-booking-nav-system-r21 #booking-online-map-canvas,
html.lk-driver-bottom-nav-r21 #booking-online-map-canvas {
  bottom: var(--lk-online-map-bottom-reserve) !important;
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-tools,
html.lk-driver-bottom-nav-r21 .booking-online-map-tools {
  bottom: calc(var(--lk-online-map-bottom-reserve) + 14px) !important;
  right: max(12px, env(safe-area-inset-right, 0px)) !important;
  z-index: 9050 !important;
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-empty,
html.lk-driver-bottom-nav-r21 .booking-online-map-empty {
  bottom: calc(var(--lk-online-map-bottom-reserve) + 12px) !important;
  left: max(12px, env(safe-area-inset-left, 0px)) !important;
  right: max(12px, env(safe-area-inset-right, 0px)) !important;
  max-height: calc(var(--lk-vvh, 100vh) - var(--lk-online-map-bottom-reserve) - 132px) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  z-index: 9040 !important;
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-empty__card,
html.lk-driver-bottom-nav-r21 .booking-online-map-empty__card {
  padding: 12px 14px !important;
  gap: 8px !important;
  border-radius: 18px !important;
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-empty__actions,
html.lk-driver-bottom-nav-r21 .booking-online-map-empty__actions {
  justify-content: stretch !important;
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-empty__actions .btn,
html.lk-driver-bottom-nav-r21 .booking-online-map-empty__actions .btn,
html.lk-driver-booking-nav-system-r21 #btnCloseDriverOnlineMapEmpty,
html.lk-driver-bottom-nav-r21 #btnCloseDriverOnlineMapEmpty {
  width: 100% !important;
  min-height: 44px !important;
  border-radius: 14px !important;
  font-weight: 900 !important;
}
@media (max-width: 640px) {
  html.lk-driver-booking-nav-system-r21 .booking-online-map-tools,
  html.lk-driver-bottom-nav-r21 .booking-online-map-tools {
    bottom: calc(var(--lk-online-map-bottom-reserve) + 12px) !important;
    right: 10px !important;
    gap: 8px !important;
  }
  html.lk-driver-booking-nav-system-r21 .booking-online-map-empty,
  html.lk-driver-bottom-nav-r21 .booking-online-map-empty {
    bottom: calc(var(--lk-online-map-bottom-reserve) + 10px) !important;
    left: 10px !important;
    right: 10px !important;
    max-height: calc(var(--lk-vvh, 100vh) - var(--lk-online-map-bottom-reserve) - 124px) !important;
  }
}

/* LK24H_DRIVER_R27_GLOBAL_BOTTOM_NAV_SAFE_OVERLAYS
 * Contract: every Driver page content, floating action, toast, modal, sheet, map and trip/rating popup
 * must stay visually above the fixed system bottom navigation.
 * This file is scoped to Driver pages through html.lk-driver-bottom-nav-r21/r27 only.
 */
html.lk-driver-bottom-nav-r21,
html.lk-driver-bottom-nav-r27,
html.lk-driver-booking-nav-system-r21 {
  --lk-driver-nav-height-r27: var(--lk-bottom-nav-measured-height, var(--lk-driver-bottom-nav-fallback, 96px));
  --lk-driver-safe-area-bottom-r27: env(safe-area-inset-bottom, 0px);
  --lk-driver-nav-gap-r27: 18px;
  --lk-driver-content-reserve-r27: calc(var(--lk-driver-nav-height-r27) + var(--lk-driver-safe-area-bottom-r27) + 32px);
  --lk-driver-overlay-bottom-r27: calc(var(--lk-driver-nav-height-r27) + var(--lk-driver-safe-area-bottom-r27) + var(--lk-driver-nav-gap-r27));
  --lk-driver-overlay-maxh-r27: calc(var(--lk-vvh, 100vh) - var(--lk-driver-overlay-bottom-r27) - 24px);
  scroll-padding-bottom: var(--lk-driver-content-reserve-r27) !important;
}

html.lk-driver-bottom-nav-r21 body,
html.lk-driver-bottom-nav-r27 body,
html.lk-driver-booking-nav-system-r21 body {
  scroll-padding-bottom: var(--lk-driver-content-reserve-r27) !important;
}

/* Page content reserve: catch Driver layouts that do not rely on the explicit spacer. */
html.lk-driver-bottom-nav-r21 main,
html.lk-driver-bottom-nav-r27 main,
html.lk-driver-booking-nav-system-r21 main,
html.lk-driver-bottom-nav-r21 .page,
html.lk-driver-bottom-nav-r27 .page,
html.lk-driver-bottom-nav-r21 .page-content,
html.lk-driver-bottom-nav-r27 .page-content,
html.lk-driver-bottom-nav-r21 .content,
html.lk-driver-bottom-nav-r27 .content,
html.lk-driver-bottom-nav-r21 .driver-page,
html.lk-driver-bottom-nav-r27 .driver-page,
html.lk-driver-bottom-nav-r21 .driver-content,
html.lk-driver-bottom-nav-r27 .driver-content,
html.lk-driver-bottom-nav-r21 .drv-wrap,
html.lk-driver-bottom-nav-r27 .drv-wrap,
html.lk-driver-bottom-nav-r21 .drv-main,
html.lk-driver-bottom-nav-r27 .drv-main,
html.lk-driver-bottom-nav-r21 .veh-main,
html.lk-driver-bottom-nav-r27 .veh-main,
html.lk-driver-bottom-nav-r21 .dp-main,
html.lk-driver-bottom-nav-r27 .dp-main,
html.lk-driver-bottom-nav-r21 .drreg-main,
html.lk-driver-bottom-nav-r27 .drreg-main,
html.lk-driver-bottom-nav-r21 body.booking-safe-page main,
html.lk-driver-bottom-nav-r27 body.booking-safe-page main {
  padding-bottom: max(var(--lk-driver-content-reserve-r27), var(--lk-driver-bottom-content-reserve, 120px)) !important;
  box-sizing: border-box !important;
}

/* Fixed bottom sheets / panels: never dock to bottom:0 behind the nav. */
html.lk-driver-bottom-nav-r21 .sheet,
html.lk-driver-bottom-nav-r27 .sheet,
html.lk-driver-booking-nav-system-r21 .sheet,
html.lk-driver-bottom-nav-r21 .bottom-sheet,
html.lk-driver-bottom-nav-r27 .bottom-sheet,
html.lk-driver-bottom-nav-r21 .lk-bottom-sheet,
html.lk-driver-bottom-nav-r27 .lk-bottom-sheet,
html.lk-driver-bottom-nav-r21 .driver-bottom-sheet,
html.lk-driver-bottom-nav-r27 .driver-bottom-sheet,
html.lk-driver-bottom-nav-r21 .action-sheet,
html.lk-driver-bottom-nav-r27 .action-sheet,
html.lk-driver-bottom-nav-r21 .sheet-panel,
html.lk-driver-bottom-nav-r27 .sheet-panel,
html.lk-driver-bottom-nav-r21 .drawer,
html.lk-driver-bottom-nav-r27 .drawer {
  bottom: var(--lk-driver-overlay-bottom-r27) !important;
  max-height: var(--lk-driver-overlay-maxh-r27) !important;
  overflow: hidden auto !important;
  -webkit-overflow-scrolling: touch;
  z-index: 9300 !important;
}

html.lk-driver-bottom-nav-r21 .sheet.show,
html.lk-driver-bottom-nav-r27 .sheet.show,
html.lk-driver-booking-nav-system-r21 .sheet.show,
html.lk-driver-bottom-nav-r21 .bottom-sheet.show,
html.lk-driver-bottom-nav-r27 .bottom-sheet.show,
html.lk-driver-bottom-nav-r21 .drawer.show,
html.lk-driver-bottom-nav-r27 .drawer.show {
  transform: none !important;
}

/* Sticky action bars inside sheets/modals: keep buttons touch-safe. */
html.lk-driver-bottom-nav-r21 .sheet-actions,
html.lk-driver-bottom-nav-r27 .sheet-actions,
html.lk-driver-booking-nav-system-r21 .sheet-actions,
html.lk-driver-bottom-nav-r21 .modal-actions,
html.lk-driver-bottom-nav-r27 .modal-actions,
html.lk-driver-bottom-nav-r21 .lk-modal-actions,
html.lk-driver-bottom-nav-r27 .lk-modal-actions,
html.lk-driver-bottom-nav-r21 .driver-modal-actions,
html.lk-driver-bottom-nav-r27 .driver-modal-actions,
html.lk-driver-bottom-nav-r21 .footer-actions,
html.lk-driver-bottom-nav-r27 .footer-actions,
html.lk-driver-bottom-nav-r21 .sticky-actions,
html.lk-driver-bottom-nav-r27 .sticky-actions {
  padding-bottom: max(14px, env(safe-area-inset-bottom, 0px)) !important;
  box-sizing: border-box !important;
}

/* Centered/fullscreen modals and popups must render above nav; their panel gets a safe max-height. */
html.lk-driver-bottom-nav-r21 .modal,
html.lk-driver-bottom-nav-r27 .modal,
html.lk-driver-bottom-nav-r21 .lk-modal,
html.lk-driver-bottom-nav-r27 .lk-modal,
html.lk-driver-booking-nav-system-r21 .lk-modal,
html.lk-driver-bottom-nav-r21 .popup,
html.lk-driver-bottom-nav-r27 .popup,
html.lk-driver-bottom-nav-r21 .driver-popup,
html.lk-driver-bottom-nav-r27 .driver-popup,
html.lk-driver-bottom-nav-r21 .modal-backdrop,
html.lk-driver-bottom-nav-r27 .modal-backdrop,
html.lk-driver-bottom-nav-r21 .sheet-backdrop,
html.lk-driver-bottom-nav-r27 .sheet-backdrop,
html.lk-driver-bottom-nav-r21 .overlay,
html.lk-driver-bottom-nav-r27 .overlay {
  z-index: 9200 !important;
}

html.lk-driver-bottom-nav-r21 .lk-modal-panel,
html.lk-driver-bottom-nav-r27 .lk-modal-panel,
html.lk-driver-booking-nav-system-r21 .lk-modal-panel,
html.lk-driver-bottom-nav-r21 .modal-panel,
html.lk-driver-bottom-nav-r27 .modal-panel,
html.lk-driver-bottom-nav-r21 .popup-panel,
html.lk-driver-bottom-nav-r27 .popup-panel,
html.lk-driver-bottom-nav-r21 .driver-popup-panel,
html.lk-driver-bottom-nav-r27 .driver-popup-panel,
html.lk-driver-bottom-nav-r21 .voice-panel,
html.lk-driver-bottom-nav-r27 .voice-panel,
html.lk-driver-bottom-nav-r21 .voice-agent-panel,
html.lk-driver-bottom-nav-r27 .voice-agent-panel {
  max-height: var(--lk-driver-overlay-maxh-r27) !important;
  overflow: hidden auto !important;
  -webkit-overflow-scrolling: touch;
}

/* Driver trip-status/rating/finding popups used by booking.js and global trip popup. */
html.lk-driver-bottom-nav-r21 #lkFlowModal .lk-modal-panel,
html.lk-driver-bottom-nav-r27 #lkFlowModal .lk-modal-panel,
html.lk-driver-booking-nav-system-r21 #lkFlowModal .lk-modal-panel,
html.lk-driver-bottom-nav-r21 #lkCompleteModal .lk-modal-panel,
html.lk-driver-bottom-nav-r27 #lkCompleteModal .lk-modal-panel,
html.lk-driver-booking-nav-system-r21 #lkCompleteModal .lk-modal-panel,
html.lk-driver-bottom-nav-r21 #lkWaveModal .lk-modal-panel,
html.lk-driver-bottom-nav-r27 #lkWaveModal .lk-modal-panel,
html.lk-driver-booking-nav-system-r21 #lkWaveModal .lk-modal-panel,
html.lk-driver-bottom-nav-r21 .lk24h-trip-status-popup,
html.lk-driver-bottom-nav-r27 .lk24h-trip-status-popup,
html.lk-driver-bottom-nav-r21 .lk24h-trip-status-panel,
html.lk-driver-bottom-nav-r27 .lk24h-trip-status-panel {
  max-height: var(--lk-driver-overlay-maxh-r27) !important;
  margin-bottom: var(--lk-driver-overlay-bottom-r27) !important;
  overflow: hidden auto !important;
  z-index: 9300 !important;
}

/* Toasts, snackbars and floating buttons sit above the nav, not on top of it. */
html.lk-driver-bottom-nav-r21 .toast,
html.lk-driver-bottom-nav-r27 .toast,
html.lk-driver-booking-nav-system-r21 .toast,
html.lk-driver-bottom-nav-r21 .lk-toast,
html.lk-driver-bottom-nav-r27 .lk-toast,
html.lk-driver-bottom-nav-r21 .snackbar,
html.lk-driver-bottom-nav-r27 .snackbar,
html.lk-driver-bottom-nav-r21 .notice-toast,
html.lk-driver-bottom-nav-r27 .notice-toast {
  bottom: var(--lk-driver-overlay-bottom-r27) !important;
  z-index: 9400 !important;
}

html.lk-driver-bottom-nav-r21 .fab,
html.lk-driver-bottom-nav-r27 .fab,
html.lk-driver-booking-nav-system-r21 .fab,
html.lk-driver-bottom-nav-r21 .driver-fab,
html.lk-driver-bottom-nav-r27 .driver-fab,
html.lk-driver-bottom-nav-r21 .floating-btn,
html.lk-driver-bottom-nav-r27 .floating-btn,
html.lk-driver-bottom-nav-r21 .floating-action,
html.lk-driver-bottom-nav-r27 .floating-action,
html.lk-driver-bottom-nav-r21 [data-lk-floating-action],
html.lk-driver-bottom-nav-r27 [data-lk-floating-action] {
  bottom: var(--lk-driver-overlay-bottom-r27) !important;
  z-index: 9100 !important;
}

/* Generic map picker and Leaflet controls. */
html.lk-driver-bottom-nav-r21 .map-modal,
html.lk-driver-bottom-nav-r27 .map-modal,
html.lk-driver-booking-nav-system-r21 .map-modal {
  z-index: 9250 !important;
}
html.lk-driver-bottom-nav-r21 .map-panel,
html.lk-driver-bottom-nav-r27 .map-panel,
html.lk-driver-booking-nav-system-r21 .map-panel {
  max-height: calc(var(--lk-vvh, 100vh) - var(--lk-driver-content-reserve-r27) - 12px) !important;
  margin-bottom: var(--lk-driver-overlay-bottom-r27) !important;
  overflow: hidden !important;
}
html.lk-driver-bottom-nav-r21 .map-panel .card-body:last-child,
html.lk-driver-bottom-nav-r27 .map-panel .card-body:last-child,
html.lk-driver-booking-nav-system-r21 .map-panel .card-body:last-child {
  padding-bottom: max(16px, env(safe-area-inset-bottom, 0px)) !important;
}
html.lk-driver-bottom-nav-r21 .leaflet-bottom,
html.lk-driver-bottom-nav-r27 .leaflet-bottom,
html.lk-driver-booking-nav-system-r21 .leaflet-bottom {
  bottom: calc(var(--lk-driver-nav-height-r27) + 10px) !important;
}

/* Booking online map keeps bottom nav visible but moves all map content above it. */
html.lk-driver-booking-nav-system-r21 .booking-online-map-shell,
html.lk-driver-bottom-nav-r27 .booking-online-map-shell {
  padding-bottom: var(--lk-driver-content-reserve-r27) !important;
}
html.lk-driver-booking-nav-system-r21 #booking-online-map-canvas,
html.lk-driver-bottom-nav-r27 #booking-online-map-canvas {
  bottom: calc(var(--lk-driver-nav-height-r27) + env(safe-area-inset-bottom, 0px)) !important;
}
html.lk-driver-booking-nav-system-r21 .booking-online-map-tools,
html.lk-driver-bottom-nav-r27 .booking-online-map-tools,
html.lk-driver-booking-nav-system-r21 .booking-online-map-empty,
html.lk-driver-bottom-nav-r27 .booking-online-map-empty {
  bottom: var(--lk-driver-overlay-bottom-r27) !important;
  z-index: 9350 !important;
}

/* When virtual keyboard shrinks viewport, keep panels scrollable rather than hidden under nav. */
@media (max-height: 620px) {
  html.lk-driver-bottom-nav-r21 .sheet,
  html.lk-driver-bottom-nav-r27 .sheet,
  html.lk-driver-booking-nav-system-r21 .sheet,
  html.lk-driver-bottom-nav-r21 .lk-modal-panel,
  html.lk-driver-bottom-nav-r27 .lk-modal-panel,
  html.lk-driver-booking-nav-system-r21 .lk-modal-panel,
  html.lk-driver-bottom-nav-r21 .map-panel,
  html.lk-driver-bottom-nav-r27 .map-panel,
  html.lk-driver-booking-nav-system-r21 .map-panel {
    max-height: calc(var(--lk-vvh, 100vh) - var(--lk-driver-overlay-bottom-r27) - 10px) !important;
  }
}

@media print {
  html.lk-driver-bottom-nav-r27 main,
  html.lk-driver-bottom-nav-r27 body,
  html.lk-driver-bottom-nav-r27 .page,
  html.lk-driver-bottom-nav-r27 .driver-page {
    padding-bottom: 0 !important;
    scroll-padding-bottom: 0 !important;
  }
}

/* LK24H_DRIVER_BOOKING_R31_ONLINE_MAP_PROFILE_LINK_ONLINE_ONLY */
.booking-online-popup__profile-link,
.booking-online-popup__profile-link:visited {
  color: inherit;
  text-decoration: none;
  touch-action: manipulation;
}
.booking-online-popup__profile-link--avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: 999px;
}
.booking-online-popup__profile-link--name {
  font-weight: 800;
  color: #0f172a;
}
.booking-online-popup__profile-link--name:active,
.booking-online-popup__profile-link--name:hover {
  text-decoration: underline;
}
