/* Constrain intrinsic grid/flex widths, including the date rail. */
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
.booking-layout>*,.manage-layout>*,.admin-grid>*,.two>*,.intro>* { min-width:0; }
input,select { min-width:0; max-width:100%; }
.date-list { max-width:100%; }
.mobile-date-label,.mobile-continue { display:none; }
.admin-row,.mine-detail,#message { overflow-wrap:anywhere; }
.booking-card { scroll-margin-top:16px; }
@media(max-width:900px) {
 .booking-layout,.manage-layout,.admin-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:760px) {
 header { height:auto; padding:18px 16px 12px; flex-direction:column; align-items:stretch; gap:18px; }
 .brand { font-size:20px; gap:10px; align-self:flex-start; }
 .brandmark { width:38px; height:38px; flex-shrink:0; }
 .brand-sub { font-size:9px; letter-spacing:1.3px; }
 nav { display:grid; grid-template-columns:1fr 1fr auto; gap:6px; width:100%; }
 nav button { min-height:46px; padding:10px 12px; font-size:13px; }
 nav .admin-nav { margin:0; }
 nav .admin-nav span { display:inline; }
 main { padding:26px 16px 0; }
 .intro { flex-direction:column; align-items:stretch; gap:16px; }
 .eyebrow { font-size:10px; line-height:1.6; letter-spacing:1px; }
 .intro h1 { font-size:34px; line-height:1.16; letter-spacing:-1px; margin:13px 0; }
 .intro p { font-size:14px; line-height:1.7; margin:0; }
 .period { width:100%; min-width:0; padding:17px 20px; border-radius:12px; }
 .period>span { font-size:10px; }
 .period>div { margin-top:8px; gap:10px; flex-wrap:nowrap; }
 .period b { font-size:30px; }
 .period small { font-size:11px; }
 .period em { font-size:22px; padding:0 10px; }
 .period p { font-size:12px; margin-top:6px; }
 .facts { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin:22px 0; padding:16px 0; }
 .facts span { font-size:12px; line-height:1.5; }
 .section-heading { align-items:center; flex-wrap:wrap; gap:10px; }
 .section-heading h2,.booking-card h2 { font-size:18px; }
 .section-heading>div { min-width:0; }
 .text-button { font-size:12px; min-height:44px; padding:8px 4px; }
 .section-sub,.muted { font-size:13px; }
 .mobile-date-label { display:flex; margin:18px 0 20px; font-size:13px; }
 #dates { display:none; }
 .slot-header { flex-direction:column; align-items:flex-start; margin:18px 0; }
 .slot-header h3 { font-size:16px; }
 .legend { font-size:11px; flex-wrap:wrap; gap:12px; }
 .slot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .slot { min-height:76px; padding:13px 6px; }
 .slot b { font-size:14px; }
 .slot small { font-size:12px; }
 .session-label { font-size:12px; margin-top:20px; }
 .break { padding:13px 10px; font-size:12px; line-height:1.6; }
 .mobile-continue { display:flex; margin-top:18px; text-align:center; }
 .footnote { font-size:12px; }
 .booking-card,.panel { padding:20px; border-radius:13px; }
 .booking-card>.muted { font-size:13px; }
 .selection { padding:16px; }
 .selection b { font-size:14px; }
 .selection small { font-size:12px; }
 label,label small { font-size:13px; line-height:1.5; }
 input,select { font-size:16px; min-height:48px; padding:12px; }
 input::placeholder { font-size:13px; }
 .primary,.secondary { min-height:48px; font-size:14px; padding:12px; }
 .card-note,.notice p { font-size:12px; }
 .notice { padding:16px; }
 .notice b { font-size:13px; }
 footer { flex-direction:column; font-size:11px; line-height:1.6; }
 .auth-panel { width:100%; }
 summary { font-size:13px; padding:8px 0; }
 .mine-actions { flex-direction:column; }
 .mine-detail h3 { font-size:21px; }
 .mine-detail p,.admin-row,.admin-row p { font-size:13px; }
 .admin-row .two { grid-template-columns:minmax(0,1fr); }
 .admin-row .actions { flex-wrap:wrap; }
 .two { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .check input { width:20px; height:20px; min-height:20px; }
 dialog { max-height:calc(100dvh - 32px); overflow-y:auto; padding:26px 20px; }
 dialog>p { font-size:14px; }
 .dialog-close { width:44px; height:44px; right:5px; top:5px; }
 code { font-size:14px; overflow-wrap:anywhere; }
 #message { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) { html {scroll-behavior:auto;} }
