/* Only the calendar overlay is styled here; the original page is untouched. */
.booking-dialog .booking-fallback { color:#93c5fd; text-decoration:underline; text-underline-offset:4px; }
html.booking-open { overflow:hidden; }
.booking-dialog {
  width:min(820px, calc(100% - 32px)); max-width:none;
  max-height:min(620px, calc(100dvh - 48px)); margin:auto; padding:16px;
  overflow:auto; overscroll-behavior:contain; border:1px solid #344158;
  border-radius:16px; background:#111827; color:#ffffff; color-scheme:dark;
}
.booking-dialog::backdrop { background:rgb(3 7 14 / 78%); }
.booking-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:8px; position:sticky; top:-16px; z-index:1; background:#111827; }
.booking-dialog-header h2 { font-size:18px; font-weight:600; line-height:1.35; }
.booking-close { display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; border-radius:8px; background:transparent; color:#b3bfd0; cursor:pointer; }
.booking-close:hover { background:#24334c; color:#ffffff; }
.booking-close:focus-visible, .booking-fallback:focus-visible { outline:2px solid #93c5fd; outline-offset:3px; }
.booking-dialog #cal-booking:not([hidden]) { width:100%; min-height:360px; max-height:min(520px, calc(100dvh - 144px)); overflow:auto; overscroll-behavior:contain; }
.booking-dialog .booking-status { padding:24px 8px; color:#b3bfd0; font-size:16px; }
.booking-dialog [hidden] { display:none; }
.booking-dialog .booking-fallback:not([hidden]) { display:inline-block; margin:8px; }
@media (max-width:639px) {
  .booking-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 32px); padding:12px; }
  .booking-dialog-header h2 { font-size:16px; }
}
