/* Shared bookings-v2 UI: full-page busy loader */
.bv2-busy-overlay{
  position:fixed;inset:0;z-index:200;
  display:none;align-items:center;justify-content:center;
  flex-direction:column;gap:14px;
  background:rgba(14,26,41,.42);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.bv2-busy-overlay.is-on{display:flex}
.bv2-busy-spinner{
  width:42px;height:42px;border-radius:50%;
  border:3px solid rgba(255,255,255,.28);
  border-top-color:#E9C25A;
  animation:bv2-spin .7s linear infinite;
}
.bv2-busy-msg{
  margin:0;color:#fff;font-family:Jost,system-ui,sans-serif;
  font-size:.95rem;font-weight:600;letter-spacing:.01em;
  text-align:center;padding:0 1.25rem;max-width:22rem;
}
@keyframes bv2-spin{to{transform:rotate(360deg)}}
body.bv2-busy{cursor:wait}
body.bv2-busy .btn,
body.bv2-busy button.btn{pointer-events:none;opacity:.75}

/* Fare re-quote in flight (extras / tip / PMG) — avoid optimistic wrong totals */
#sumPrice.is-updating,
#mPrice.is-updating,
#bdExtras.is-updating{
  opacity:.55;
  transition:opacity .15s ease;
}

/* Date/time: whole control opens the native picker (not only the icon) */
.field input[type="date"],
.field input[type="time"],
.field[data-bv2-picker]{
  cursor:pointer;
}
.field input[type="date"],
.field input[type="time"]{
  position:relative;
  padding-right:1.75rem;
}
/* Expand the native calendar/clock hit-area across the whole input (Chrome/Safari/Edge) */
.field input[type="date"]::-webkit-calendar-picker-indicator,
.field input[type="time"]::-webkit-calendar-picker-indicator{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  cursor:pointer;
  background-repeat:no-repeat;
  background-position:right center;
  background-size:1.1rem;
  color:transparent;
  opacity:1;
}
.field input[type="date"]::-webkit-calendar-picker-indicator{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235C6B7C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");
}
.field input[type="time"]::-webkit-calendar-picker-indicator{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235C6B7C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.2 2'/%3E%3C/svg%3E");
}
.field .bv2-time-hint{
  position:absolute;
  top:calc(100% + 5px);
  left:0;
  z-index:4;
  padding:3px 8px;
  border-radius:7px;
  background:rgba(23,31,42,.9);
  color:#fff;
  font-size:.75rem;
  font-weight:600;
  line-height:1.3;
  white-space:nowrap;
  pointer-events:none;
}

/* Desktop: compact Continue under the form column (hidden on mobile — mobile-bar covers it) */
.desktop-continue{
  display:flex;
  justify-content:flex-end;
  margin-top:4px;
  padding:4px 0 8px;
}
.btn-desktop-continue{
  padding:.65rem 1.25rem;
  font-size:.88rem;
  box-shadow:0 8px 20px -10px rgba(198,60,99,.5);
}
.btn-desktop-continue svg{width:16px;height:16px}
@media (max-width:1024px){
  .desktop-continue{display:none!important}
}

/* Lateral scroll fix — mobile only (do not touch desktop layout / --maxw) */
@media (max-width:760px){
  html, body{
    overflow-x:hidden;
  }
  .swap{right:8px}
  .promo a{white-space:normal}
  .footer .wrap{overflow-wrap:anywhere;word-break:break-word}
  .toast{max-width:calc(100% - 24px)}
  .mobile-bar{
    width:100%;
    left:0;
    right:0;
    box-sizing:border-box;
  }
}

/* ASAP / night driver-search panel (step 4) */
.asap-panel{
  margin: 0 0 16px;
  padding: 16px 18px;
  border-radius: 13px;
  border: 1.5px solid #EADEC4;
  background: linear-gradient(150deg, #FFFDF8, #FAF3E4);
}
.asap-panel[hidden]{display:none !important}
.asap-panel.is-error{
  border-color: #E8B4B8;
  background: linear-gradient(150deg, #FFF8F8, #FCEEEE);
}
.asap-panel.is-ok{
  border-color: #BFD9CB;
  background: linear-gradient(150deg, #F7FCF9, #EAF6EF);
}
.asap-panel__title{
  margin: 0 0 6px;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 1.2rem;
  font-weight: 600;
  color: #101D2E;
}
.asap-panel__body{
  margin: 0;
  font-size: .92rem;
  color: #5C6B7C;
  line-height: 1.45;
}
.asap-panel__meta{
  margin-top: 10px;
  font-size: .9rem;
  font-weight: 600;
  color: #101D2E;
}
.asap-panel__meta[hidden]{display:none !important}
