/*
 * TaxiFlow shared booking-frame host presentation.
 * Tenant sites own surrounding brand/layout; this package owns the embedded
 * booking frame's containment, responsive sizing and mobile bottom sheet.
 */
[data-taxiflow-booking-shell].tf-booking-shell {
  overflow: hidden;
  isolation: isolate;
}

[data-taxiflow-booking-shell].tf-booking-shell > .tf-booking-frame {
  display: block;
  width: 100%;
  height: var(--taxiflow-booking-desktop-height, 600px);
  max-width: 100%;
  border: 0;
  background: transparent;
}

@media (max-width: 799px) {
  [data-taxiflow-booking-shell][data-taxiflow-mobile="sheet"].tf-booking-shell {
    position: fixed !important;
    z-index: var(--taxiflow-booking-z-index, 2000) !important;
    left: 50% !important;
    right: auto !important;
    bottom: var(--taxiflow-booking-bottom, max(8px, env(safe-area-inset-bottom))) !important;
    width: min(calc(100% - 16px), var(--taxiflow-booking-sheet-width, 560px)) !important;
    max-width: none !important;
    max-height: var(--taxiflow-booking-visible-height, calc(100dvh - 16px)) !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translateX(-50%) !important;
    border: 0 !important;
    border-radius: 26px !important;
    background: transparent !important;
    box-shadow: 0 18px 54px rgba(7, 17, 31, .26) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    overflow-anchor: none !important;
    scroll-padding-top: 18px !important;
    scroll-padding-bottom: 28px !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch;
  }

  [data-taxiflow-booking-shell][data-taxiflow-mobile="sheet"].tf-booking-shell::-webkit-scrollbar {
    display: none;
  }

  [data-taxiflow-booking-shell][data-taxiflow-mobile="sheet"].tf-booking-shell > .tf-booking-frame {
    display: block !important;
    width: 100% !important;
    height: 420px;
    max-height: none !important;
    border: 0 !important;
    border-radius: 26px !important;
    background: transparent !important;
  }

  [data-taxiflow-booking-shell][data-taxiflow-mobile="sheet"].tf-booking-shell.is-taxiflow-booking-minimized {
    box-shadow: none !important;
  }

  /* Address entry is a dedicated full-surface mode. The iframe, not the
     outer host, owns this viewport so autocomplete is never hidden behind
     the map or displaced by a second scroll container. */
  [data-taxiflow-booking-shell][data-taxiflow-mobile="sheet"].tf-booking-shell.is-taxiflow-address-editing {
    border-radius: 24px !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
  }

  [data-taxiflow-booking-shell][data-taxiflow-mobile="sheet"].tf-booking-shell.is-taxiflow-address-editing > .tf-booking-frame {
    min-height: 100% !important;
    border-radius: 24px !important;
  }
}
