/* Click Ride: accessible multi-day reservation, only shown inside explicit repeat form. */
.repeat-booking { margin-top: 1rem; border: 1px solid #cbdcf5; border-radius: 15px; overflow: hidden; background: linear-gradient(150deg, #fff, #f3f8ff); box-shadow: 0 8px 20px rgba(15, 23, 42, .055); }
.repeat-booking-toggle { display: flex; align-items: center; gap: .7rem; padding: .85rem; list-style: none; cursor: pointer; user-select: none; }
.repeat-booking-toggle::-webkit-details-marker { display: none; }
.repeat-booking-toggle:focus-visible { outline: 3px solid #0d6efd; outline-offset: -3px; }
.repeat-booking-icon { display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 11px; background: #e6f0ff; color: #0b5ed7; }
.repeat-booking-icon svg { width: 21px; height: 21px; }
.repeat-booking-toggle-copy { display: grid; gap: .18rem; min-width: 0; flex: 1; }
.repeat-booking-toggle-copy strong { color: #182943; font-size: 1rem; font-weight: 900; }
.repeat-booking-toggle-copy small { color: #62748f; font-size: .79rem; line-height: 1.35; }
.repeat-booking-chevron { width: 18px; color: #54708f; flex-shrink: 0; transition: transform .15s; }
.repeat-booking[open] .repeat-booking-chevron { transform: rotate(180deg); }
.repeat-booking-content { padding: 0 .9rem 1rem; border-top: 1px solid #e6edf8; }
.repeat-booking-lead { color: #4b6280; font-size: .85rem; line-height: 1.48; margin: .85rem 0; }
.repeat-booking-form { display: grid; gap: .75rem; }
.repeat-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.repeat-field { display: grid; align-content: start; gap: .32rem; min-width: 0; }
.repeat-field label, .repeat-form-label { margin: 0; color: #233a57; font-size: .82rem; font-weight: 850; }
.repeat-field small, .repeat-weekdays small { color: #687a8c; font-size: .75rem; }
.repeat-field-wide, .repeat-weekdays, .repeat-quick-times { grid-column: 1 / -1; }
.repeat-static-value { display: flex; align-items: center; border: 1px solid #d8e0ec; border-radius: 8px; min-height: 38px; padding: .5rem .6rem; color: #223d5c; background: #fff; overflow-wrap: anywhere; }
.repeat-weekdays { border: 0; min-width: 0; margin: 0; padding: 0; }
.repeat-weekdays legend { font-size: .83rem; color: #233a57; font-weight: 850; margin-bottom: .45rem; }
.repeat-weekday-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .3rem; }
.repeat-day-chip { position: relative; min-width: 0; cursor: pointer; }
.repeat-day-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.repeat-day-chip span { display: flex; justify-content: center; align-items: center; width: 100%; padding: .48rem .1rem; border-radius: 8px; border: 1px solid #d5e1ed; background: #fff; font-size: .76rem; color: #617087; font-weight: 850; }
.repeat-day-chip input:checked + span { color: #fff; background: #0d6efd; border-color: #0d6efd; }
.repeat-day-chip input:focus-visible + span { outline: 3px solid #fdc54d; outline-offset: 2px; }
.repeat-weekdays > small { display: block; margin-top: .4rem; }
.repeat-quick-times { display: flex; flex-wrap: wrap; gap: .4rem; }
.repeat-quick-times button { border: 1px solid #b7cbe1; border-radius: 8px; padding: .35rem .6rem; background: #fff; color: #305b89; font-size: .78rem; font-weight: 850; }
.repeat-quick-times button:hover, .repeat-quick-times button:focus-visible { background: #e8f3ff; border-color: #5d9ce2; }
.repeat-preview { display: grid; gap: .5rem; border: 1px solid #dae5f4; border-radius: 11px; background: #fff; padding: .75rem; min-width: 0; color: #52647c; font-size: .81rem; }
.repeat-preview-error { border-color: #ebbbc1; background: #fff7f7; color: #973544; }
.repeat-preview-ok { border-color: #aed9bd; background: #f6fff9; }
.repeat-preview-heading { display: flex; justify-content: space-between; gap: .5rem; align-items: center; flex-wrap: wrap; }
.repeat-preview-heading strong { font-weight: 900; color: #1f314b; }
.repeat-status-free { color: #18764a; font-weight: 900; }
.repeat-status-conflict { color: #b43648; font-weight: 900; }
.repeat-preview-dates { max-height: 245px; overflow: auto; display: grid; gap: .2rem; scrollbar-width: thin; }
.repeat-preview-date { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: .25rem; border-bottom: 1px solid #edf1f7; padding: .32rem 0; }
.repeat-preview-date span { overflow-wrap: anywhere; }
.repeat-preview-date strong { color: #18764a; font-size: .77rem; white-space: nowrap; }
.repeat-preview-date.is-busy strong { color: #b43648; }
.repeat-preview-advice { margin: .2rem 0 0; color: #a43345; font-size: .78rem; }
.repeat-submit { width: 100%; font-weight: 850; padding: .65rem; }
.repeat-footnote { color: #6b798b; font-size: .74rem; margin: 0; line-height: 1.4; }
@media (max-width: 575.98px) {
  .repeat-booking-content { padding: 0 .7rem .8rem; }
  .repeat-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .repeat-form-grid > .repeat-field:first-child, .repeat-form-grid > .repeat-field:nth-child(2) { grid-column: 1 / -1; }
  .repeat-weekday-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .2rem; }
  .repeat-day-chip span { font-size: .66rem; padding: .47rem .05rem; }
}
@media (max-width: 360px) {
  .repeat-form-grid { grid-template-columns: minmax(0,1fr); }
  .repeat-field, .repeat-field-wide { grid-column: 1 / -1; }
}
