.booking-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; margin:18px 0; }
.booking-weekday { text-align:center; font-size:.8rem; color:var(--muted); }
.booking-day { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:3px; min-height:70px; border:1px solid var(--line); border-radius:8px; text-decoration:none; color:var(--ink); background:#f0f5eb; }
.booking-day strong { font-size:1.15rem; }
.booking-day small { font-size:.73rem; }
.booking-day[aria-disabled="true"] { background:#f4f4f1; color:#69736d; }
.booking-day[aria-current="date"] { border:2px solid var(--ink); background:#e1ebd6; }
.booking-month { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.booking-month h2 { margin:0; font-size:1.25rem; }
.booking-month a { min-width:44px; min-height:44px; display:grid; place-items:center; }
.booking-times { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin:18px 0; }
.booking-times button { min-height:54px; width:100%; border:1px solid var(--line); border-radius:6px; background:#edf3e5; color:var(--ink); font:inherit; font-weight:700; cursor:pointer; }
.booking-times button:hover,.booking-times button:focus-visible { background:var(--lime); outline:2px solid var(--ink); outline-offset:2px; }
.booking-vehicles { border:0; padding:0; margin:16px 0; }
.booking-choice { display:flex; align-items:center; gap:12px; min-height:48px; padding:12px; margin:8px 0; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.booking-choice input { width:20px; height:20px; flex:0 0 20px; }
.booking-benefit { padding:18px 0; border-top:1px solid var(--line); }
.booking-benefit summary { cursor:pointer; min-height:44px; padding:10px 0; }
.booking-progress { color:var(--muted); font-size:.9rem; }
.transaction-main { overflow-wrap:anywhere; }
@media(max-width:480px) { .booking-calendar { gap:3px; }.booking-day { min-height:60px; border-radius:5px; }.booking-day small { font-size:.62rem; }.booking-month h2 { font-size:1.05rem; }.transaction-main .admin-card { padding:18px 12px; }.booking-choice { padding:10px 8px; } }
/* Keep all seven calendar columns at least 44px wide even on a 320px phone. */
@media(max-width:360px) { .booking-calendar { position:relative; left:50%; transform:translateX(-50%); width:calc(100vw - 6px); gap:1px; } }

.booking-calendar a.booking-day { width:100%; min-width:0; box-sizing:border-box; cursor:pointer; touch-action:manipulation; }
.booking-calendar a.booking-day:hover,.booking-calendar a.booking-day:focus-visible { background:var(--lime); outline:2px solid var(--ink); outline-offset:2px; }
.booking-calendar a.booking-day > * { pointer-events:none; }
.booking-calendar .booking-day[aria-disabled="true"] { cursor:not-allowed; }
