/* Shared customer booking design, including the popup and full page. */
form.reservation-shell { background: #fbfcf8; border: 1px solid #dce4d5; border-radius: 24px; padding: clamp(18px, 4vw, 36px); box-shadow: 0 16px 48px #283c2010; color: #293c25; }
.reservation-shell .reservation-form-intro { border-bottom: 1px solid #dce4d5; padding-bottom: 24px; margin-bottom: 24px; gap: 16px; }
.reservation-shell .reservation-form-intro strong { font-size: clamp(22px, 3vw, 30px); letter-spacing: -.03em; }
.reservation-shell .reservation-form-intro p { color: #61715a; font-size: 15px; line-height: 1.6; }
.reservation-shell .reservation-form-icon { border-radius: 16px; background: #e8efdf; color: #526f44; }
.reservation-shell .booking-progress { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0 0 24px; list-style: none; }
.reservation-shell .booking-progress li { flex: 1 1 120px; padding: 12px 16px; background: #edf0e8; color: #687462; border-radius: 12px; font-size: 13px; font-weight: 700; }
.reservation-shell[data-quizy-step="slot"] [data-booking-stage="slot"],
.reservation-shell[data-quizy-step="account"] [data-booking-stage="account"],
.reservation-shell[data-quizy-step="details"] [data-booking-stage="details"],
.reservation-shell[data-quizy-step="participants"] [data-booking-stage="details"] { background: #395530; color: white; }
.reservation-shell .quizy-booking-grid { gap: 24px; align-items: start; }
.reservation-shell .quizy-public-calendar, .reservation-shell .quizy-public-panel { background: white; border: 1px solid #dce4d5; border-radius: 18px; padding: 20px; box-shadow: 0 4px 16px #283c2005; }
.reservation-shell .quizy-public-calendar-header { margin-bottom: 20px; font-size: 16px; }
.reservation-shell .quizy-public-calendar-header :is(button,a) { border: 0; background: #f0f4eb; border-radius: 10px; color: #395530; }
.reservation-shell .quizy-public-calendar-grid { gap: 5px; }
.reservation-shell .quizy-public-day { min-height: 38px; border-radius: 10px; }
.reservation-shell .quizy-public-day.is-selected { background: #395530; border-color: #395530; box-shadow: 0 4px 10px #39553022; }
.reservation-shell .quizy-public-panel h3 { font-size: 21px; letter-spacing: -.02em; margin-bottom: 16px; }
.reservation-shell .quizy-public-slots { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.reservation-shell .quizy-public-slot { border: 1px solid #dce4d5; border-radius: 14px; padding: 18px; text-transform: none; letter-spacing: normal; transition: background .15s, border-color .15s; }
.reservation-shell .quizy-public-slot strong { font-size: 22px; color: #293c25; }
.reservation-shell .quizy-public-slot small { font-size: 13px; line-height: 1.6; color: #61715a; }
.reservation-shell .quizy-public-slot:hover { background: #f6f9f2; border-color: #829a73; }
.reservation-shell .quizy-public-slot:has(input:checked) { background: #eaf2e2; border-color: #526f44; box-shadow: inset 0 0 0 1px #526f44; }
.reservation-shell .quizy-public-slot:focus-within { outline: 2px solid #526f44; outline-offset: 3px; }
.reservation-shell .reservation-step-card { background: transparent; border: 0; padding: 0; margin-bottom: 20px; box-shadow: none; }
.reservation-shell .reservation-step-number { background: #e8efdf; color: #395530; border-radius: 12px; }
.reservation-shell .quizy-account-card, .reservation-shell .quizy-details-fields { border-radius: 16px; }
.reservation-shell :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) { border: 1px solid #cdd8c5; border-radius: 10px; background: white; padding: 12px 14px; }
.reservation-shell .btn { border-radius: 12px; padding: 14px 22px; text-transform: none; letter-spacing: 0; }
.reservation-shell .quizy-step-actions { border-top: 1px solid #dce4d5; padding-top: 20px; margin-top: 24px; }
.booking-load-status { color: #526f44; font-size: 14px; margin: 12px 0; }
.booking-load-status:empty { display: none; }
.reservation-shell [aria-busy="true"] { opacity: .65; }
@media(max-width: 600px) {
  form.reservation-shell { padding: 16px; border-radius: 18px; }
  .reservation-shell .quizy-public-calendar, .reservation-shell .quizy-public-panel { padding: 14px; }
  .reservation-shell .quizy-public-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-shell .quizy-public-slot { padding: 12px; }
  .reservation-shell .booking-progress li { flex-basis: 80px; padding: 10px; font-size: 12px; }
}
