.booking-feature{--tt-color-brand:var(--th-primary,#0a6a5e);--tt-color-brand-hover:color-mix(in srgb, var(--th-primary,#05564c) 80%, var(--th-accent,#05564c));--tt-color-brand-soft:color-mix(in srgb, var(--th-accent,#0a6a5e) 12%, var(--tt-color-surface));--tt-color-focus:var(--th-primary,#087f8c);--booking-accent:var(--tt-color-brand);--booking-accent-soft:color-mix(in srgb, var(--th-accent,var(--booking-accent)) 12%, var(--tt-color-surface));--booking-accent-ink:color-mix(in srgb, var(--booking-accent) 82%, #000);--booking-line:color-mix(in srgb, var(--booking-accent) 18%, var(--tt-color-border));--booking-tint:var(--th-surface,var(--tt-color-page));--booking-edge:color-mix(in srgb, var(--tt-color-border) 90%, var(--tt-color-surface));--booking-rest:color-mix(in srgb, var(--tt-color-surface-muted) 45%, var(--tt-color-surface));min-block-size:100dvh;color:var(--tt-color-ink);background:color-mix(in srgb, var(--booking-tint) 60%, var(--tt-color-page))}.booking-feature .learner-main{position:relative;overflow:clip}.booking-flow,.booking-confirmation,.booking-management{gap:var(--tt-space-8);display:grid}.booking-flow__intro{gap:var(--tt-space-2);max-inline-size:42rem;display:grid}.booking-flow__aside{align-content:start;gap:var(--tt-space-4);display:grid}.booking-flow__intro p,.booking-note p,.booking-privacy p,.booking-help p,.booking-handoff p{color:var(--tt-color-ink-muted);line-height:var(--tt-leading-body);margin:0}.booking-kicker{color:var(--booking-accent);font-size:var(--tt-type-caption);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:700}[dir=rtl] .booking-kicker{letter-spacing:0}.booking-steps:focus-visible{outline:3px solid var(--tt-color-focus);outline-offset:3px}.booking-steps__progress{block-size:.25rem;inline-size:100%;background:color-mix(in srgb, var(--booking-accent) 12%, var(--tt-color-surface));accent-color:var(--booking-accent);border:0;margin-block-end:var(--tt-space-3)}.booking-steps ol{gap:var(--tt-space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.booking-steps li{min-block-size:var(--tt-control-md);align-items:center;gap:var(--tt-space-2);border-radius:var(--tt-radius-round);padding-inline:.375rem var(--tt-space-4);color:var(--tt-color-ink-muted);background:color-mix(in srgb, var(--tt-color-ink) 5%, transparent);font-size:var(--tt-type-label);font-weight:700;display:flex}.booking-steps__number{border-radius:var(--tt-radius-round);block-size:2rem;inline-size:2rem;color:var(--tt-color-ink-muted);background:var(--tt-color-surface);font-size:var(--tt-type-caption);font-variant-numeric:tabular-nums;flex:none;place-items:center;display:grid}.booking-steps__number svg{block-size:1rem;inline-size:1rem}.booking-steps li[data-state=complete]{color:var(--booking-accent-ink);background:var(--booking-accent-soft)}.booking-steps li[data-state=complete] .booking-steps__number,.booking-steps li[data-state=current]{color:var(--tt-color-on-strong);background:var(--booking-accent)}.booking-steps li[data-state=current] .booking-steps__number{color:var(--booking-accent);background:var(--tt-color-surface)}@media (width<=30rem){.booking-steps li{gap:var(--tt-space-1);font-size:var(--tt-type-caption);padding-inline:.25rem .625rem}.booking-steps__number{block-size:1.375rem;inline-size:1.375rem}.booking-steps__number svg{block-size:.8rem;inline-size:.8rem}}.booking-section{scroll-margin-block-start:var(--tt-space-4)}.booking-step-enter-active,.booking-step-leave-active{transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s}.booking-step-enter-from,.booking-step-leave-to{opacity:0;transform:translateY(.35rem)}.booking-timeline{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid}.booking-timeline li{align-items:start;gap:var(--tt-space-2);padding-block:var(--tt-space-3);border-block-start:1px solid var(--booking-line);color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption);grid-template-columns:1.25rem minmax(0,1fr);padding-inline-end:var(--tt-space-3);line-height:1.55;display:grid;position:relative}.booking-timeline__marker{border:1px solid var(--booking-edge);background:var(--tt-color-surface);border-radius:50%;place-items:center;block-size:1rem;inline-size:1rem;margin-block-start:.1rem;display:grid}.booking-timeline__marker svg{block-size:.75rem;inline-size:.75rem}.booking-timeline li[data-state=complete]{color:var(--booking-accent-ink)}.booking-timeline li[data-state=complete] .booking-timeline__marker{color:var(--tt-color-on-strong);border-color:var(--booking-accent);background:var(--booking-accent)}.booking-timeline li[data-state=current]{color:var(--tt-color-ink);border-block-start-color:var(--booking-accent);font-weight:700}.booking-timeline li[data-state=current] .booking-timeline__marker{border:.3rem solid var(--booking-accent)}.booking-timeline li[data-state=stopped]{text-decoration:line-through}@media (width<=36rem){.booking-timeline{grid-template-columns:minmax(0,1fr)}}.booking-section__heading{align-items:center;gap:var(--tt-space-3);grid-template-columns:auto minmax(0,1fr);margin-block-end:var(--tt-space-4);display:grid}.booking-section__number{border-radius:var(--tt-radius-round);block-size:2rem;inline-size:2rem;color:var(--booking-accent-ink);background:var(--booking-accent-soft);font-family:var(--tt-font-display);font-size:var(--tt-type-caption);place-items:center;font-weight:900;display:grid}.booking-section__number svg,.booking-history a svg{flex:none;block-size:1rem;inline-size:1rem}[dir=rtl] .booking-history a svg{transform:scaleX(-1)}.booking-section h2,.booking-status-card h2,.booking-privacy h2,.booking-help h2,.booking-handoff h2,.booking-cancel h2{color:var(--tt-color-ink);font-family:var(--tt-font-display);font-size:var(--tt-type-title-sm);font-weight:850;line-height:var(--tt-leading-tight);margin:0}.booking-section h2{font-size:clamp(1.15rem,1rem + .5vw,1.5rem);font-weight:800}.booking-section__heading p{margin:var(--tt-space-1) 0 0;color:var(--tt-color-ink-muted);font-size:var(--tt-type-label);line-height:1.6}.booking-session-grid{gap:var(--tt-space-3);display:grid}.booking-session{gap:var(--tt-space-1);border-radius:var(--tt-radius-lg);padding:var(--tt-space-5);color:var(--tt-color-ink);background:var(--booking-rest);box-shadow:inset 0 0 0 1px var(--booking-edge);font:inherit;text-align:start;cursor:pointer;transition:box-shadow var(--tt-duration-base) var(--tt-ease-standard), background-color var(--tt-duration-base) var(--tt-ease-standard), translate var(--tt-duration-fast) var(--tt-ease-standard);border:0;flex-direction:column;display:flex;position:relative}.booking-session:hover{background:var(--tt-color-surface);box-shadow:inset 0 0 0 1px var(--booking-accent), var(--tt-elevation-2);translate:0 -1px}.booking-session[data-selected]{background:var(--booking-accent-soft);box-shadow:inset 0 0 0 2px var(--booking-accent), var(--tt-elevation-2)}.booking-session__check{border:1px solid var(--booking-edge);border-radius:var(--tt-radius-round);color:#0000;background:var(--tt-color-surface);place-items:center;block-size:1.5rem;inline-size:1.5rem;display:grid;position:absolute;inset-block-start:var(--tt-space-3);inset-inline-end:var(--tt-space-3)}.booking-session[data-selected] .booking-session__check{border-color:var(--booking-accent);color:var(--tt-color-on-strong);background:var(--booking-accent)}.booking-session__check svg{block-size:.9rem;inline-size:.9rem}.booking-session__name{font-family:var(--tt-font-display);font-size:var(--tt-type-label);font-weight:850;line-height:var(--tt-leading-tight);padding-inline-end:var(--tt-space-6)}.booking-session__meta{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption)}.booking-session__footer{align-items:baseline;gap:var(--tt-space-1) var(--tt-space-3);flex-wrap:wrap;margin-block-start:auto;padding-block-start:var(--tt-space-4);display:flex}.booking-session__price{color:var(--booking-accent-ink);font-family:var(--tt-font-display);font-size:var(--tt-type-title-sm);font-weight:900;line-height:1}.booking-session__deposit{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption)}.booking-slot-picker{gap:var(--tt-space-3);display:grid}.booking-day-rail{gap:var(--tt-space-2);scroll-snap-type:x proximity;scrollbar-width:none;padding-block-end:var(--tt-space-1);display:flex;overflow-x:auto}.booking-day-rail::-webkit-scrollbar{display:none}.booking-day{border-radius:var(--tt-radius-md);inline-size:6.25rem;padding:var(--tt-space-4) var(--tt-space-3);color:var(--tt-color-ink);background:var(--booking-rest);box-shadow:inset 0 0 0 1px var(--booking-edge);font:inherit;scroll-snap-align:start;cursor:pointer;transition:box-shadow var(--tt-duration-base) var(--tt-ease-standard), background-color var(--tt-duration-base) var(--tt-ease-standard), color var(--tt-duration-base) var(--tt-ease-standard);border:0;flex:none;justify-items:center;gap:.1875rem;display:grid}@media (width>=48rem){.booking-day-rail{grid-template-columns:repeat(auto-fill,minmax(6.25rem,1fr));display:grid;overflow-x:visible}.booking-day{inline-size:auto}}.booking-day:hover{background:var(--booking-accent-soft);box-shadow:inset 0 0 0 1px var(--booking-accent), var(--tt-elevation-1)}.booking-day__weekday{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption);font-weight:700}.booking-day__date{font-family:var(--tt-font-display);font-size:var(--tt-type-title-sm);font-variant-numeric:tabular-nums;font-weight:800;line-height:var(--tt-leading-tight);white-space:nowrap}.booking-day__count{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption);font-variant-numeric:tabular-nums;white-space:nowrap;margin-block-start:.125rem}.booking-day[data-booked]{box-shadow:inset 0 0 0 2px var(--booking-accent)}.booking-day[aria-selected=true],.booking-day[aria-selected=true]:hover{color:var(--tt-color-on-strong);background:var(--booking-accent);box-shadow:inset 0 0 0 1px var(--booking-accent), var(--tt-elevation-2)}.booking-day[aria-selected=true] :is(.booking-day__weekday,.booking-day__count){color:inherit}.booking-slot-day{gap:var(--tt-space-3);padding-block-start:var(--tt-space-1);display:grid}.booking-slot-day__header{align-items:baseline;gap:var(--tt-space-1) var(--tt-space-3);flex-wrap:wrap;display:flex}.booking-slot-day__date{font-family:var(--tt-font-display);font-size:var(--tt-type-label);margin:0;font-weight:850}.booking-slot-day__count{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption);margin:0}.booking-slot-day__times{gap:var(--tt-space-2);grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr));display:grid}.booking-slot{min-block-size:var(--tt-control-lg);border-radius:var(--tt-radius-md);padding:var(--tt-space-2) var(--tt-space-3);color:var(--tt-color-ink);background:var(--booking-rest);box-shadow:inset 0 0 0 1px var(--booking-edge);font:700 var(--tt-type-label) / 1.3 var(--tt-font-body);font-variant-numeric:tabular-nums;cursor:pointer;transition:box-shadow var(--tt-duration-base) var(--tt-ease-standard), background-color var(--tt-duration-base) var(--tt-ease-standard);border:0;place-items:center;display:grid}.booking-slot:hover{background:var(--booking-accent-soft);box-shadow:inset 0 0 0 1px var(--booking-accent), var(--tt-elevation-1)}.booking-slot[data-selected]{color:var(--tt-color-on-strong);background:var(--booking-accent);box-shadow:var(--tt-elevation-2)}.booking-slot__selected{font-size:.65rem;font-weight:700}.booking-details{gap:var(--tt-space-4);display:grid}@media (width>=48rem){.booking-details{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-details>:not(.tt-field),.booking-details>.tt-field:first-child{grid-column:1/-1}}.booking-details .tt-field__error,.booking-error{color:var(--tt-color-danger)}.booking-error{margin:var(--tt-space-3) 0 0;font-size:var(--tt-type-label);font-weight:700}.booking-empty{border:1px dashed var(--booking-edge);border-radius:var(--tt-radius-lg);padding:var(--tt-space-5);color:var(--tt-color-ink-muted);background:var(--booking-rest);line-height:var(--tt-leading-body);margin:0}.booking-note,.booking-privacy,.booking-help,.booking-handoff{--booking-note-tint:var(--booking-accent);--booking-note-fill:var(--booking-accent-soft);border-radius:var(--tt-radius-lg);padding:var(--tt-space-5);background:var(--booking-note-fill);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--booking-note-tint) 24%, var(--tt-color-hairline));border:0}.booking-note[data-tone=warning]{--booking-note-tint:var(--tt-color-warning);--booking-note-fill:var(--tt-color-warning-soft)}.booking-note[data-tone=success]{--booking-note-tint:var(--tt-color-success);--booking-note-fill:var(--tt-color-success-soft)}.booking-note strong{margin-block-end:var(--tt-space-1);display:block}.booking-summary{border-radius:var(--tt-radius-lg);padding:var(--tt-space-5);background:var(--tt-color-surface);box-shadow:inset 0 0 0 1px var(--tt-color-hairline), var(--tt-elevation-2);border:0}.booking-summary dl,.booking-receipt{margin:var(--tt-space-3) 0 0;gap:0;display:grid}.booking-summary dl>div,.booking-receipt>div{gap:var(--tt-space-3);border-block-start:1px solid var(--tt-color-hairline);padding-block:var(--tt-space-3);grid-template-columns:minmax(4.5rem,.7fr) minmax(0,1.3fr);display:grid}.booking-summary dd[data-pending],.booking-summary dd [data-pending]{color:var(--tt-color-ink-faint);font-weight:400}.booking-summary dl>div:first-child,.booking-receipt>div:first-child{border-block-start:0;padding-block-start:0}.booking-summary dt,.booking-receipt dt{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption)}.booking-summary dd,.booking-receipt dd{font-size:var(--tt-type-label);text-align:end;margin:0;font-weight:700}.booking-summary dl>div[data-emphasis]{border-radius:var(--tt-radius-md);padding:var(--tt-space-3) var(--tt-space-4);background:var(--booking-accent-soft);border-block-start:0;align-items:center;margin-block-start:var(--tt-space-2)}.booking-summary dl>div[data-emphasis]+div{border-block-start:0}.booking-summary dl>div[data-emphasis] dt{color:var(--booking-accent-ink);font-weight:700}.booking-summary dl>div[data-emphasis] dd{color:var(--booking-accent-ink);font-family:var(--tt-font-display);font-size:var(--tt-type-title-sm);font-weight:900;line-height:var(--tt-leading-tight)}.booking-status-card{align-items:center;gap:var(--tt-space-4);border:1px solid var(--tt-color-hairline);border-radius:var(--tt-radius-md);padding:var(--tt-space-5);background:var(--tt-color-surface);grid-template-columns:auto minmax(0,1fr);display:grid}.booking-status-card[data-tone=success]{border-color:var(--tt-color-success);background:var(--tt-color-success-soft)}.booking-status-card[data-tone=warning]{border-color:var(--tt-color-warning);background:var(--tt-color-warning-soft)}.booking-status-card__mark{border-radius:var(--tt-radius-round);block-size:3rem;inline-size:3rem;color:var(--booking-accent);border:1px solid;place-items:center;display:grid}.booking-status-card[data-tone=success] .booking-status-card__mark{color:var(--tt-color-success)}.booking-status-card[data-tone=warning] .booking-status-card__mark{color:var(--tt-color-warning)}.booking-status-card__mark svg{block-size:1.6rem;inline-size:1.6rem}.booking-status-card p{margin:var(--tt-space-1) 0 0;color:var(--tt-color-ink-muted);font-size:var(--tt-type-label);line-height:1.6}.booking-payment{justify-items:center;gap:var(--tt-space-4);border:1px solid var(--booking-line);border-radius:var(--tt-radius-md);padding:var(--tt-space-5);text-align:center;display:grid}.booking-payment__qr{border:1px solid var(--tt-color-hairline);border-radius:var(--tt-radius-sm);max-inline-size:100%;padding:var(--tt-space-3);background:#fff}.booking-payment h2,.booking-payment p{margin:0}.booking-payment p{max-inline-size:34rem;color:var(--tt-color-ink-muted);font-size:var(--tt-type-label);line-height:1.7}.booking-payment__poll{align-items:center;gap:var(--tt-space-2);color:var(--booking-accent);font-weight:700;display:inline-flex}.booking-payment__poll:before{border-radius:var(--tt-radius-round);content:"";background:currentColor;block-size:.55rem;inline-size:.55rem}.booking-expiry{align-items:center;gap:var(--tt-space-3);border-block:1px solid var(--tt-color-hairline);inline-size:100%;padding-block:var(--tt-space-3);text-align:start;grid-template-columns:minmax(0,1fr) auto;display:grid}.booking-expiry__label,.booking-expiry__hint{margin:0}.booking-expiry__label{font-size:var(--tt-type-label);font-weight:700}.booking-expiry__hint{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption);margin-block-start:var(--tt-space-1)}.booking-expiry__time{color:var(--booking-accent);font-family:var(--tt-font-mono);font-size:var(--tt-type-title-sm);font-variant-numeric:tabular-nums;direction:ltr;font-weight:700}.booking-expiry[data-expired] .booking-expiry__time{color:var(--tt-color-danger)}.booking-actions{gap:var(--tt-space-2);display:grid}.booking-link,.booking-button{min-block-size:var(--tt-control-lg);justify-content:center;align-items:center;gap:var(--tt-space-2);border:1px solid var(--booking-accent);border-radius:var(--tt-radius-md);padding:var(--tt-space-3) var(--tt-space-5);color:var(--tt-color-on-strong);background:var(--booking-accent);font:700 var(--tt-type-label) / 1.3 var(--tt-font-body);text-align:center;cursor:pointer;text-decoration:none;display:inline-flex}.booking-link[data-variant=secondary],.booking-button[data-variant=secondary]{color:var(--booking-accent);background:var(--tt-color-surface)}.booking-button[data-variant=danger]{border-color:var(--tt-color-danger);color:var(--tt-color-on-strong);background:var(--tt-color-danger)}.booking-link:hover,.booking-button:hover:not(:disabled){border-color:var(--tt-color-brand-hover);background:var(--tt-color-brand-hover)}.booking-link[data-variant=secondary]:hover,.booking-button[data-variant=secondary]:hover:not(:disabled){color:var(--tt-color-brand-hover);background:var(--tt-color-brand-soft)}.booking-button:disabled,.booking-link[aria-disabled=true]{border-color:var(--tt-color-border);color:var(--tt-color-ink-faint);background:var(--tt-color-surface-muted);cursor:not-allowed;opacity:1}.booking-safe-action{align-items:center;gap:var(--tt-space-3);grid-template-columns:minmax(0,1fr) auto;inline-size:100%;display:grid}.booking-safe-action__summary{min-inline-size:0}.booking-safe-action__summary strong,.booking-safe-action__summary span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.booking-safe-action__summary strong{color:var(--tt-color-ink);font-size:var(--tt-type-label)}.booking-safe-action__summary span{color:var(--tt-color-ink-muted);font-size:var(--tt-type-caption);margin-block-start:var(--tt-space-1)}.booking-safe-action__hint{color:var(--tt-color-ink);font-weight:600}.booking-safe-action .booking-button{min-inline-size:8rem}@media (width>=64rem){.booking-feature .learner-safe-actions{justify-items:center}.booking-safe-action{justify-content:center;gap:var(--tt-space-5);grid-template-columns:minmax(0,auto) auto;max-inline-size:38rem}}.booking-history{border:1px solid var(--tt-color-hairline);border-radius:var(--tt-radius-md)}.booking-history>summary{min-block-size:var(--tt-control-lg);padding:var(--tt-space-3) var(--tt-space-4);color:var(--booking-accent);cursor:pointer;font-weight:700}.booking-history ul{gap:var(--tt-space-1);padding:0 var(--tt-space-3) var(--tt-space-3);margin:0;list-style:none;display:grid}.booking-history a{min-block-size:var(--tt-control-md);justify-content:space-between;align-items:center;gap:var(--tt-space-3);border-block-start:1px solid var(--tt-color-hairline);padding:var(--tt-space-2);color:var(--tt-color-ink);text-decoration:none;display:flex}.booking-history__clear{padding:var(--tt-space-2);color:var(--booking-accent);font:700 var(--tt-type-caption) / 1.4 var(--tt-font-body);cursor:pointer;background:0 0;border:0;text-decoration:underline}.booking-management__grid{gap:var(--tt-space-5);display:grid}.booking-management__main,.booking-management__aside{align-content:start;gap:var(--tt-space-5);display:grid}.booking-cancel{border-block-start:1px solid var(--tt-color-hairline);padding-block-start:var(--tt-space-5)}.booking-cancel__form{gap:var(--tt-space-4);border:1px solid var(--tt-color-danger);border-radius:var(--tt-radius-md);padding:var(--tt-space-4);background:var(--tt-color-danger-soft);display:grid}.booking-cancel__actions{gap:var(--tt-space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.booking-feature :is(.booking-session,.booking-slot,.booking-day,.booking-button,.booking-link,.booking-history>summary,.booking-history a,.booking-history__clear):focus-visible,.booking-slot-day__times:focus-visible,.booking-empty:focus-visible{outline:var(--tt-focus-width) solid var(--tt-color-focus);outline-offset:var(--tt-focus-offset)}@media (width>=40rem){.booking-session-grid{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.booking-session{min-block-size:8.5rem}.booking-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.booking-flow{grid-template-columns:minmax(0,1fr) 19rem;align-items:start}.booking-flow>:not(.booking-flow__aside){grid-column:1}.booking-flow>.booking-flow__aside{grid-area:1/2/span 8;position:sticky;inset-block-start:var(--tt-space-5)}.booking-management__grid{grid-template-columns:minmax(0,1fr) 18rem}.booking-management__aside{align-self:start;position:sticky;inset-block-start:var(--tt-space-5)}}@media (width<=35rem){.booking-safe-action{grid-template-columns:minmax(0,1fr) minmax(7.25rem,auto)}.booking-safe-action .booking-button{min-inline-size:0;padding-inline:var(--tt-space-3)}}@media (prefers-reduced-motion:reduce){.booking-step-enter-active,.booking-step-leave-active,.booking-session,.booking-slot,.booking-day,.booking-button,.booking-link{transition:none}.booking-session:hover{translate:none}}@media (forced-colors:active){.booking-session,.booking-slot,.booking-day,.booking-slot-day,.booking-note,.booking-privacy,.booking-help,.booking-handoff,.booking-summary{border:1px solid canvastext}.booking-session[data-selected],.booking-slot[data-selected],.booking-day[aria-selected=true],.booking-day[data-booked]{border:2px solid highlight}}@media print{.booking-feature .learner-context__controls,.booking-feature .learner-navigation,.booking-feature .learner-history,.booking-feature .learner-footer,.booking-feature .learner-safe-actions,.booking-actions,.booking-payment__poll,.booking-expiry{display:none!important}.booking-feature,.booking-feature .learner-shell{background:#fff}.booking-feature .learner-main{box-shadow:none;border:0}}
