/* Legacy operations view; the booking interface is scoped below. */
.operations{max-width:1180px;margin:36px auto;padding:0 32px}.operations h1{font-size:2rem;margin:0}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px}.operations-intro{color:var(--muted)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:white;margin:24px 0}table{width:100%;border-collapse:collapse;min-width:850px;font-size:.9rem}th,td{padding:16px;text-align:right;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f0eada;font-weight:bold}td small{display:block;color:var(--muted);font-size:.875rem}td .primary{font-size:.875rem;min-width:130px}.status{display:inline-block;padding:3px 9px;border-radius:6px;background:#f0ecf6;font-size:.875rem;white-space:nowrap}.status.confirmed{background:#dfefde;color:#205635}.empty{padding:48px;text-align:center;color:var(--muted)}.demo-note{border-right:3px solid var(--orange);padding:12px 18px;background:white;font-size:.9rem}.sms-preview{white-space:pre-wrap;color:#4f4a58}

/* Public booking: mobile first, isolated from the administration interface. */
body.booking-page { margin:0; color:var(--ink,#34234c); background:var(--paper,#f7f5f0); font:400 16px/1.7 'Ability Sans',Tahoma,Arial,sans-serif; font-synthesis:none; }
body.booking-page * { box-sizing:border-box; }
body.booking-page [hidden] { display:none!important; }
body.booking-page button,body.booking-page input,body.booking-page select { font:inherit; }
body.booking-page button,body.booking-page a { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
body.booking-page button { cursor:pointer; }
body.booking-page button:disabled { cursor:default; }
body.booking-page a { color:inherit; text-underline-offset:4px; }
body.booking-page svg { width:22px; height:22px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
body.booking-page :focus-visible { outline:3px solid #839976; outline-offset:4px; }
body.booking-page .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
body.booking-page .skip-link { position:fixed; inset-block-start:-100px; inset-inline-start:16px; z-index:20; padding:12px 18px; border-radius:10px; background:var(--ink); color:white; }
body.booking-page .skip-link:focus { inset-block-start:12px; }
body.booking-page .preview-strip { padding:9px 20px; background:var(--ink); color:white; font-size:.8rem; text-align:center; }
body.booking-page .booking-header { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:1192px; margin:auto; padding:19px 22px; min-height:86px; }
body.booking-page .wordmark { display:flex; align-items:center; min-height:44px; line-height:0; text-decoration:none; }
body.booking-page .wordmark img { display:block; width:135px; height:48px; object-fit:contain; object-position:right center; }
body.booking-page .header-context { color:var(--muted); font-size:.8rem; border-inline-start:1px solid #d8d0d8; padding-inline-start:18px; }
body.booking-page .scheduler-layout { width:min(100%,1152px); padding:0 16px; margin:20px auto 28px; }
body.booking-page .booking-intro { margin:0 5px 24px; }
body.booking-page .eyebrow { display:block; color:var(--muted); font-size:.8rem; font-weight:500; margin-bottom:6px; }
body.booking-page h1 { font-size:clamp(1.7rem,6.8vw,2.8rem); line-height:1.4; font-weight:600; letter-spacing:-.04em; margin:0 0 10px; }
body.booking-page .booking-intro p { margin:0; color:var(--muted); font-size:.9rem; }
body.booking-page .booking-steps { display:flex; list-style:none; padding:0; margin:24px 0 0; align-items:center; justify-content:space-between; gap:10px; font-size:.75rem; }
body.booking-page .booking-steps li { display:flex; align-items:center; gap:7px; color:var(--muted); white-space:nowrap; }
body.booking-page .step-number { display:grid; place-items:center; width:26px; height:26px; border:1px solid #d8d0d8; border-radius:50%; font-size:.7rem; line-height:1; font-variant-numeric:tabular-nums; }
body.booking-page .booking-steps .is-current { color:var(--ink); font-weight:600; }
body.booking-page .is-current .step-number { background:var(--ink); border-color:var(--ink); color:white; }
body.booking-page .is-complete .step-number { background:var(--sage); border-color:var(--sage); color:var(--ink); }
body.booking-page .scheduler-card { background:var(--surface,white); border:1px solid var(--line); border-radius:22px; box-shadow:0 9px 30px #34234c04; overflow:hidden; }
body.booking-page .calendar-panel,body.booking-page .times-panel { padding:23px 18px; min-width:0; }
body.booking-page .calendar-panel { border-bottom:1px solid var(--line); }
body.booking-page .panel-heading { display:flex; align-items:center; gap:10px; margin-bottom:17px; }
body.booking-page .panel-heading h2 { font-size:1.05rem; font-weight:600; margin:0; }
body.booking-page .section-marker { color:#8d8194; font-size:.7rem; border:1px solid var(--line); border-radius:7px; padding:1px 6px; font-variant-numeric:tabular-nums; }
body.booking-page .compact-calendar-toolbar { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:-2px 0 13px; }
body.booking-page .icon-button { display:inline-grid; place-items:center; width:44px; height:44px; min-height:44px; padding:0; background:transparent; color:var(--ink); border:1px solid var(--line); border-radius:12px; flex-shrink:0; }
body.booking-page .icon-button:hover:not(:disabled) { background:var(--paper); border-color:#cfc4d5; }
body.booking-page .icon-button:disabled { color:#b7b0ba; border-color:#eee9ed; opacity:.6; }
body.booking-page .icon-button svg { width:19px; height:19px; }
body.booking-page .calendar-toggle { display:flex; align-items:center; justify-content:center; gap:6px; min-height:44px; color:var(--ink); border:0; padding:4px; background:transparent; font-size:.9rem; font-weight:500; }
body.booking-page .calendar-toggle svg { width:16px; height:16px; }
body.booking-page .calendar-toggle[aria-expanded=true] svg { transform:rotate(180deg); }
body.booking-page .date-options { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
body.booking-page .date-option { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; min-height:82px; padding:9px 2px; border-radius:14px; border:1px solid var(--line); background:white; color:var(--ink); }
body.booking-page .date-option span { font-size:.68rem; color:var(--muted); }
body.booking-page .date-option strong { font-size:1.2rem; line-height:1.4; font-weight:500; font-variant-numeric:tabular-nums; }
body.booking-page .date-option[aria-pressed=true] { border-color:var(--ink); background:var(--ink); color:white; box-shadow:0 4px 10px #34234c14; }
body.booking-page .date-option[aria-pressed=true] span { color:#e9e2ec; }
body.booking-page .date-option:disabled { background:#f7f5f7; border-color:transparent; color:#bbb3be; }
body.booking-page .date-option:disabled span { color:#aaa1af; }
body.booking-page .month-calendar { margin:22px -12px 0; padding:16px 0 0; border-top:1px solid var(--line); }
body.booking-page .calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 9px 18px; }
body.booking-page .calendar-toolbar h3 { font-size:.95rem; font-weight:600; margin:0; }
body.booking-page .calendar-navigation { display:flex; gap:6px; }
body.booking-page .calendar-weekdays,body.booking-page .calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:1px; }
body.booking-page .calendar-weekdays { text-align:center; font-size:.64rem; color:var(--muted); margin-bottom:10px; }
body.booking-page .calendar-days { row-gap:5px; }
body.booking-page .calendar-day { display:grid; place-items:center; min-height:44px; width:100%; border:0; border-radius:12px; padding:0; background:transparent; color:var(--ink); font-size:.9rem; font-weight:500; font-variant-numeric:tabular-nums; }
body.booking-page .calendar-day:hover:not(:disabled) { background:var(--paper); }
body.booking-page .calendar-day[aria-pressed=true] { background:var(--ink)!important; color:white; }
body.booking-page .calendar-day.today:not([aria-pressed=true]) { box-shadow:inset 0 0 0 1px #a59aaf; }
body.booking-page .calendar-day:disabled { color:#c8c1cb; }
body.booking-page .calendar-legend { display:flex; align-items:center; gap:7px; margin:21px 10px 0; font-size:.7rem; color:var(--muted); }
body.booking-page .calendar-legend>span[aria-hidden=true] { width:7px; height:7px; flex-shrink:0; border-radius:50%; background:var(--ink); }
body.booking-page .calendar-legend small { margin-inline-start:auto; font-size:inherit; }
body.booking-page .working-hours { display:flex; align-items:center; gap:10px; margin-top:23px; padding-top:18px; border-top:1px solid var(--line); }
body.booking-page .working-hours>svg { color:#92839b; width:20px; height:20px; }
body.booking-page .working-hours div { display:flex; flex-direction:column; gap:1px; }
body.booking-page .working-hours div>span { color:var(--muted); font-size:.7rem; }
body.booking-page .working-hours strong { font-size:.77rem; font-weight:500; }
body.booking-page .timezone { margin-inline-start:auto; font-size:.65rem; color:var(--muted); white-space:nowrap; }
body.booking-page .times-heading { margin-bottom:23px; }
body.booking-page .times-heading h3 { font-size:1rem; line-height:1.6; font-weight:500; margin:0 0 5px; }
body.booking-page .times-heading p { color:var(--muted); font-size:.75rem; line-height:1.9; margin:0; }
body.booking-page .time-options { display:flex; flex-direction:column; gap:22px; }
body.booking-page .time-group h4 { margin:0 0 9px; font-weight:400; font-size:.7rem; color:var(--muted); }
body.booking-page .time-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
body.booking-page .time-option { min-height:49px; border:1px solid #ddd4e2; border-radius:11px; color:var(--ink); background:white; font-size:.9rem; font-weight:500; padding:9px 2px; font-variant-numeric:tabular-nums; }
body.booking-page .time-option:hover { background:#f5f1f7; border-color:#9d8ba9; }
body.booking-page .time-option[aria-pressed=true] { background:var(--ink); color:white; border-color:var(--ink); }
body.booking-page .time-skeleton { height:49px; border-radius:11px; background:#f0edf1; }
body.booking-page .availability-message p { margin:17px 0 0; font-size:.85rem; color:var(--muted); line-height:1.9; }
body.booking-page .availability-message .secondary { margin-top:13px; }
body.booking-page .scheduler-footer { display:flex; gap:10px; align-items:flex-start; padding:17px 20px; background:#f1f4ee; border-top:1px solid #e4e9df; }
body.booking-page .scheduler-footer svg { width:18px; height:18px; margin-top:2px; color:#73856b; }
body.booking-page .scheduler-footer p { font-size:.72rem; line-height:1.9; color:#5c6656; margin:0; }
body.booking-page .scheduler-card>#schedule-error { margin:16px 20px; }
body.booking-page .booking-privacy { margin:18px 12px 0; color:var(--muted); font-size:.7rem; line-height:1.9; text-align:center; }
body.booking-page .booking-footer { display:flex; justify-content:space-between; gap:12px; max-width:1120px; margin:0 22px; padding:19px 0 24px; border-top:1px solid #e3dce3; color:var(--muted); font-size:.7rem; }
body.booking-page .booking-footer nav { display:flex; align-items:center; gap:18px; }
body.booking-page .booking-footer a { display:flex; align-items:center; min-height:44px; text-decoration:none; }
body.booking-page .booking-footer>span { display:flex; align-items:center; }
body.booking-page .booking-footer a:hover { text-decoration:underline; }
body.booking-page .details-dialog { width:100%; max-width:none; max-height:calc(100dvh - 20px); position:fixed; inset:auto 0 0; margin:0; border:0; border-radius:26px 26px 0 0; padding:0; background:white; color:var(--ink); box-shadow:0 -20px 70px #20112c26; overscroll-behavior:contain; overflow:auto; }
body.booking-page .details-dialog::backdrop { background:#251b36a6; backdrop-filter:blur(4px); }
body.booking-page .dialog-shell { position:relative; padding:36px 22px max(24px,env(safe-area-inset-bottom)); }
body.booking-page .sheet-handle { position:absolute; top:10px; left:calc(50% - 18px); width:36px; height:4px; border-radius:8px; background:#d9d1df; }
body.booking-page .dialog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
body.booking-page .close-dialog { position:static; border:0; background:var(--paper); width:44px; }
body.booking-page .card-heading { margin-bottom:21px; }
body.booking-page .card-heading .eyebrow { font-size:.7rem; margin-bottom:5px; }
body.booking-page .card-heading h2 { margin:0 0 8px; font-weight:600; font-size:1.55rem; line-height:1.5; }
body.booking-page .card-heading p { margin:0; font-size:.8rem; color:var(--muted); }
body.booking-page .chosen-time { display:flex; align-items:center; gap:10px; padding:14px 12px; border:1px solid #e1e9dd; border-radius:14px; background:#f0f4ed; margin-bottom:24px; }
body.booking-page .chosen-time>svg { color:#738369; width:20px; height:20px; }
body.booking-page .chosen-time div { min-width:0; }
body.booking-page .chosen-time small { display:block; color:#74816c; font-size:.65rem; }
body.booking-page .chosen-time strong { display:block; font-size:.8rem; font-weight:500; line-height:1.9; }
body.booking-page .chosen-time .text-button { min-width:44px; margin-inline-start:auto; }
body.booking-page fieldset { border:0; padding:0; margin:0; min-width:0; }
body.booking-page .field { min-width:0; margin-bottom:18px; }
body.booking-page .field label { display:block; font-size:.8rem; font-weight:500; margin-bottom:7px; }
body.booking-page .field label>span[aria-hidden=true] { color:#93859b; }
body.booking-page .field input,body.booking-page .field select { width:100%; min-height:52px; border:1px solid #dcd4e1; background:white; border-radius:11px; padding:12px 14px; color:var(--ink); outline:none; font-size:1rem; }
body.booking-page .field input::placeholder { color:#a096a6; font-size:.88rem; }
body.booking-page .field input:focus,body.booking-page .field select:focus { border-color:#887095; box-shadow:0 0 0 3px #34234c0c; }
body.booking-page .field [aria-invalid=true] { border-color:#b65a55; }
body.booking-page .field small { display:block; font-size:.7rem; color:var(--muted); margin-top:6px; }
body.booking-page .field small:empty,body.booking-page .field-error:empty { display:none; }
body.booking-page .field .field-error,body.booking-page .field-error { color:#a44441; font-size:.75rem; }
body.booking-page .phone-control input { direction:ltr; text-align:left; font-variant-numeric:tabular-nums; }
html[dir=rtl] body.booking-page .phone-control input:placeholder-shown { direction:rtl; text-align:right; }
body.booking-page .primary { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:54px; border:1px solid var(--ink); padding:12px 17px; border-radius:12px; background:var(--ink); color:white; font-weight:500; font-size:.9rem; }
body.booking-page .primary:hover:not(:disabled) { background:var(--purple-dark,#281939); }
body.booking-page .primary:disabled { opacity:.5; }
body.booking-page .primary span[aria-hidden=true] { font-size:1.25rem; }
body.booking-page .secondary { min-height:44px; padding:9px 17px; border:1px solid var(--line); background:white; border-radius:10px; color:var(--ink); font-size:.85rem; }
body.booking-page .secondary:hover { background:var(--paper); }
body.booking-page .text-button { display:inline-block; background:transparent; border:0; color:var(--ink); min-height:44px; padding:9px; text-decoration:underline; text-underline-offset:5px; font-size:.75rem; white-space:nowrap; }
body.booking-page .text-button:disabled { opacity:.5; }
body.booking-page .form-footnote { text-align:center; margin:13px 0 0; font-size:.7rem; color:var(--muted); }
body.booking-page .notice { padding:13px 15px; border-radius:11px; background:var(--paper); font-size:.8rem; margin:16px 0; line-height:1.9; }
body.booking-page .notice.error { color:#9c3f3b; background:#fcf0ed; border:1px solid #f1dcd7; }
body.booking-page .honeypot { position:absolute; left:0; top:0; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
body.booking-page.dialog-open { overflow:hidden; }
body.booking-page .success { text-align:center; padding-top:19px; outline:none; }
body.booking-page .booking-otp-panel { text-align:center; padding-top:8px; }
body.booking-page .otp-emblem { display:grid; place-items:center; width:64px; height:64px; border:1px solid #e0e8db; border-radius:20px; background:#f0f4ed; color:#687c5d; margin:0 auto 21px; }
body.booking-page .otp-emblem svg { width:30px; height:30px; stroke-width:1.6; }
body.booking-page .otp-phone { display:block; margin:9px 0 0; font-size:1.03rem; font-weight:500; letter-spacing:.06em; font-variant-numeric:tabular-nums; unicode-bidi:isolate; }
body.booking-page .otp-code-field { margin:25px auto 8px; max-width:260px; }
body.booking-page .otp-code-field label { font-size:.76rem; color:var(--muted); margin-bottom:12px; }
body.booking-page .otp-code-field input { min-height:70px; padding:12px 10px 12px 30px; text-align:center; font-size:1.8rem; font-weight:500; letter-spacing:20px; font-variant-numeric:tabular-nums; caret-color:var(--ink); }
body.booking-page .otp-code-field input:disabled { background:#f7f5f7; color:var(--muted); }
body.booking-page .otp-status { font-size:.76rem; color:#66775e; line-height:1.8; margin:9px 0; }
body.booking-page .otp-status:empty { display:none; }
body.booking-page .otp-expiry { min-height:25px; margin:8px 0 20px; color:var(--muted); font-size:.73rem; font-variant-numeric:tabular-nums; }
body.booking-page .booking-otp-panel .notice { text-align:start; }
body.booking-page .booking-otp-panel .primary { justify-content:center; }
body.booking-page .otp-secondary-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:4px 15px; margin-top:12px; }
body.booking-page #booking-otp-resend-countdown { display:inline-block; min-width:0; margin-inline-start:5px; font-variant-numeric:tabular-nums; }
body.booking-page .success-icon { display:grid; place-items:center; width:66px; height:66px; margin:0 auto 21px; border-radius:50%; color:#526b48; background:var(--sage); }
body.booking-page .success-icon svg { width:30px; height:30px; stroke-width:1.8; }
body.booking-page .success h2 { font-size:1.6rem; line-height:1.5; font-weight:600; margin:7px 0 10px; }
body.booking-page .success>p { font-size:.8rem; color:var(--muted); margin:0; }
body.booking-page .receipt-card { margin:25px 0 18px; text-align:start; border:1px solid var(--line); border-radius:17px; padding:18px; background:#fdfcfd; }
body.booking-page .receipt-status { display:flex; align-items:center; gap:7px; font-size:.72rem; color:#687a5f; }
body.booking-page .receipt-status>span[aria-hidden=true] { width:6px; height:6px; flex-shrink:0; border-radius:50%; background:#809273; }
body.booking-page .receipt-details { display:grid; grid-template-columns:1.2fr 1fr; gap:17px; margin:22px 0 0; }
body.booking-page .receipt-details dt { font-size:.66rem; color:var(--muted); margin:0 0 4px; }
body.booking-page .receipt-details dd { margin:0; font-size:.82rem; font-weight:500; }
body.booking-page .receipt-department { grid-column:1/-1; }
body.booking-page .success-whatsapp { display:flex; align-items:center; justify-content:center; gap:11px; width:100%; min-height:56px; padding:13px 16px; margin:0 0 11px; border:1px solid #237a57; border-radius:12px; background:#237a57; color:#fff; text-decoration:none; font-size:.92rem; font-weight:500; box-shadow:0 4px 13px #237a5712; }
body.booking-page .success-whatsapp:hover { background:#196647; border-color:#196647; }
body.booking-page .success-whatsapp svg { width:25px; height:25px; stroke-width:1.5; }
body.booking-page .success #start-again { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:48px; }
body.booking-page .language-header-actions { display:flex; align-items:center; gap:18px; }
body.booking-page .language-toggle { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; min-width:76px; min-height:44px; padding:8px 13px; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:var(--surface,white); font-size:.78rem; font-weight:500; line-height:1.5; white-space:nowrap; }
body.booking-page .language-toggle:hover { background:var(--sage); border-color:#bccbb8; }
html[dir=ltr] body.booking-page .wordmark img { object-position:left center; }
html[dir=ltr] body.booking-page :is(#previous-dates,#next-dates,#previous-month,#next-month)>svg,
html[dir=ltr] body.booking-page :is(#submit,#start-again)>span[aria-hidden=true] { transform:scaleX(-1); }
@media(max-width:599px) {
  body.booking-page .header-context { display:none; }
  body.booking-page .language-header-actions { gap:10px; }
}
@media(min-width:600px) {
  body.booking-page .booking-header { padding:24px 32px; }
  body.booking-page .wordmark img { width:154px; height:56px; }
  body.booking-page .scheduler-layout { padding:0 32px; margin-top:34px; }
  body.booking-page .booking-intro { margin-inline:0; margin-bottom:30px; }
  body.booking-page .booking-steps { justify-content:flex-start; gap:30px; font-size:.8rem; }
  body.booking-page .calendar-panel,body.booking-page .times-panel { padding:28px; }
  body.booking-page .date-options { gap:10px; }
  body.booking-page .date-option { min-height:90px; }
  body.booking-page .date-option span { font-size:.8rem; }
  body.booking-page .month-calendar { margin-inline:0; }
  body.booking-page .calendar-weekdays { font-size:.78rem; }
  body.booking-page .calendar-days { gap:7px; }
  body.booking-page .calendar-day { min-height:48px; }
  body.booking-page .time-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  body.booking-page .time-option { min-height:50px; }
  body.booking-page .details-dialog { width:540px; max-width:calc(100% - 48px); max-height:calc(100dvh - 64px); inset:0; margin:auto; border-radius:25px; box-shadow:0 24px 90px #20112c30; }
  body.booking-page .dialog-shell { padding:34px; }
  body.booking-page .sheet-handle { display:none; }
  body.booking-page .close-dialog { top:23px; inset-inline-end:23px; }
  body.booking-page .booking-footer { margin-inline:32px; }
}
@media(min-width:900px) {
  body.booking-page .booking-header { padding-block:27px; }
  body.booking-page .header-context { font-size:.85rem; }
  body.booking-page .scheduler-layout { margin-top:44px; margin-bottom:39px; }
  body.booking-page .booking-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:33px; }
  body.booking-page .booking-intro p { font-size:1rem; }
  body.booking-page .eyebrow { margin-bottom:8px; font-size:.85rem; }
  body.booking-page .booking-steps { margin-bottom:6px; gap:19px; font-size:.73rem; }
  body.booking-page .step-number { width:28px; height:28px; }
  body.booking-page .scheduler-card { border-radius:25px; }
  body.booking-page .scheduler-body { display:grid; grid-template-columns:43% 57%; min-height:560px; }
  body.booking-page .calendar-panel { padding:30px; border-bottom:0; border-inline-end:1px solid var(--line); background:#fefdfb; }
  body.booking-page .times-panel { padding:30px 36px 35px; }
  body.booking-page .panel-heading { margin-bottom:25px; }
  body.booking-page .panel-heading h2 { font-size:1.1rem; }
  body.booking-page .compact-calendar { display:none; }
  body.booking-page .month-calendar { margin:0; padding:0; border:0; }
  body.booking-page .calendar-toolbar { margin:0 0 21px; }
  body.booking-page .calendar-days { gap:3px; row-gap:8px; }
  body.booking-page .calendar-day { min-height:44px; }
  body.booking-page .calendar-legend { margin:23px 0 0; }
  body.booking-page .working-hours { margin-top:28px; padding-top:24px; }
  body.booking-page .working-hours div>span { font-size:.72rem; }
  body.booking-page .working-hours strong { font-size:.8rem; }
  body.booking-page .times-heading h3 { font-size:1.15rem; }
  body.booking-page .times-heading p { font-size:.78rem; }
  body.booking-page .time-options { gap:20px; }
  body.booking-page .time-grid { gap:9px; }
  body.booking-page .time-group h4 { font-size:.75rem; }
  body.booking-page .scheduler-footer { padding:17px 30px; align-items:center; }
  body.booking-page .scheduler-footer p { font-size:.77rem; }
  body.booking-page .booking-privacy { font-size:.73rem; margin-top:21px; }
  body.booking-page .booking-footer { width:calc(100% - 64px); margin-inline:auto; }
}
@media(max-width:370px) {
  body.booking-page .scheduler-layout { padding-inline:12px; }
  body.booking-page .booking-steps { gap:5px; font-size:.7rem; }
  body.booking-page .booking-steps li { gap:5px; }
  body.booking-page .dialog-shell { padding-inline:18px; }
  body.booking-page .receipt-card { padding:15px; }
}
@media(min-width:900px) and (max-width:1023px) {
  body.booking-page .calendar-panel { padding-inline:20px; }
  body.booking-page .calendar-days { column-gap:1px; }
}
@media(prefers-reduced-motion:no-preference) {
  body.booking-page button { transition:background .15s,border-color .15s,color .15s; }
  body.booking-page .details-dialog[open] { animation:booking-sheet-in .2s ease-out; }
  body.booking-page .time-skeleton { animation:booking-loading 1.2s ease-in-out infinite alternate; }
  @keyframes booking-sheet-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
  @keyframes booking-loading { to { opacity:.45; } }
}
