/* Scoped booking surface from the supplied HealConnect booking reference. */
.connect-booking{--booking-accent:#1F6A8A;--booking-tint:#DCEEF5;--booking-ink:#133F52;--booking-on-accent:#fff;--text:var(--hc-text,var(--text-main));--surface:var(--hc-surface,var(--bg-card));--bg:var(--hc-bg,var(--bg-body));--border:var(--hc-line,var(--border-color));--control-border:var(--hc-control,var(--control-stroke));--text-secondary-readable:var(--hc-muted,var(--platform-muted));--text-muted-readable:var(--hc-muted,var(--platform-muted));--disabled-bg:var(--bg);--disabled-border:var(--border);--disabled-text:var(--text-muted-readable);color:var(--text);min-width:0}
.connect-booking[data-room=counseling]{--booking-accent:#6A4C9C;--booking-tint:#ECE6F5;--booking-ink:#483266}
.connect-booking[data-room=teacher]{--booking-accent:#A0521A;--booking-tint:#F8E9DC;--booking-ink:#5E2F0D}
.booking-topline{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.connect-booking .booking-back{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;padding:8px 0;color:var(--text);font:inherit;font-size:14px;font-weight:600;min-height:44px;cursor:pointer}
.booking-back svg{width:18px;height:18px}
.booking-topline a,.booking-recent a{color:var(--booking-accent);font-weight:600;font-size:14px;text-underline-offset:4px}
.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:24px;align-items:start}
.booking-steps{display:grid;gap:20px;margin:0;padding:0;list-style:none;min-width:0}
.booking-section,.booking-summary,.booking-recent{border:1px solid var(--border);border-radius:16px;background:var(--surface);min-width:0}
.booking-section{padding:22px;display:grid;gap:16px}
.connect-booking h2{font-size:17px;line-height:1.45;letter-spacing:-.015em;font-weight:700;margin:0;display:flex;align-items:center;gap:10px;color:var(--text)}
.booking-section h2>span{display:flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;background:var(--text);color:var(--surface);border-radius:50%;font-size:14px;font-weight:600;letter-spacing:0}
.booking-room-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.booking-person-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:10px}
.connect-booking .booking-choice{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:60px;padding:12px;border:1px solid var(--control-border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background-color 140ms ease,border-color 140ms ease}
.booking-choice>span{display:flex;flex-direction:column;gap:3px;min-width:0}
.booking-choice strong{font-size:14px;line-height:1.5;font-weight:650;overflow-wrap:anywhere}
.booking-choice small{font-size:12px;line-height:1.5;color:var(--text-secondary-readable)}
.connect-booking .booking-choice[aria-pressed=true]{border-color:var(--booking-accent);background:var(--booking-tint)}
.booking-choice[aria-pressed=true] strong,.booking-choice[aria-pressed=true] small{color:var(--booking-ink)}
.booking-room>i{width:10px;height:10px;border-radius:50%;background:var(--booking-accent);flex:none}
.booking-room[data-room=health]>i{background:#1F6A8A}.booking-room[data-room=counseling]>i{background:#6A4C9C}.booking-room[data-room=teacher]>i{background:#A0521A}
.booking-person .booking-avatar{display:flex;align-items:center;justify-content:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--booking-accent);color:var(--booking-on-accent);font-size:14px;font-weight:600}
.booking-calendar{max-width:480px;width:100%;margin:0 auto}
.booking-calendar-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.connect-booking .booking-calendar-head h3{font-size:16px;font-weight:650;line-height:1.5;margin:0;text-transform:capitalize}
.connect-booking .booking-month-button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer}
.booking-month-button svg{width:18px;height:18px}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center}
.booking-weekdays{font-size:12px;font-weight:600;color:var(--text-secondary-readable);margin-bottom:8px;line-height:1.6}
.connect-booking .booking-day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:46px;border:1px solid var(--control-border);border-radius:10px;padding:5px 2px;background:var(--surface);color:var(--text);font:inherit;font-size:14px;font-variant-numeric:tabular-nums;cursor:pointer}
.booking-day i{width:4px;height:4px;background:var(--booking-accent);border-radius:50%}
.connect-booking .booking-day[aria-pressed=true]{background:var(--booking-accent);color:var(--booking-on-accent);border-color:var(--booking-accent);font-weight:700}
.booking-day[aria-pressed=true] i{background:currentColor}
.booking-day[aria-current=date]>span{text-decoration:underline;text-underline-offset:3px}
.connect-booking .booking-day:disabled{background:var(--bg);border-color:var(--border);color:var(--text-muted-readable);cursor:default;opacity:1}
.booking-slots{border:0;padding:0;margin:0;min-width:0}
.booking-slots legend{font-size:14px;font-weight:600;line-height:1.6;padding:0;margin-bottom:10px;color:var(--text)}
.booking-slots>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.booking-slot{position:relative;cursor:pointer;min-width:0;margin:0}
.booking-slot input{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
.booking-slot>span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;border:1px solid var(--control-border);border-radius:10px;background:var(--surface);color:var(--text);font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;transition:background-color 140ms ease,border-color 140ms ease}
.booking-slot input:checked+span{background:var(--booking-accent);border-color:var(--booking-accent);color:var(--booking-on-accent)}
.booking-slot input:focus-visible+span{outline:2px solid var(--booking-accent);outline-offset:3px}
.booking-slot input:disabled+span{cursor:default;background:var(--bg);border-color:var(--border);color:var(--text-muted-readable)}
.connect-booking .booking-text-button{justify-self:start;background:transparent;border:0;padding:8px 0;font:inherit;font-size:13px;font-weight:600;color:var(--booking-accent);cursor:pointer;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.booking-student{display:flex;flex-wrap:wrap;gap:12px 32px;margin:0;padding:0}
.booking-student div{display:grid;gap:3px}
.booking-student dt{font-size:12px;color:var(--text-secondary-readable)}
.booking-student dd{font-size:14px;font-weight:600;margin:0;overflow-wrap:anywhere}
.connect-booking .booking-note-label{font-size:14px;font-weight:600;line-height:1.6;margin:0;color:var(--text)}
.booking-note-label span{font-weight:400}
.connect-booking textarea{width:100%;max-width:100%;box-sizing:border-box;min-height:110px;font:inherit;font-size:15px;line-height:1.6;background:var(--surface);color:var(--text);border:1px solid var(--control-border);border-radius:12px;padding:12px 14px;resize:vertical;caret-color:var(--booking-accent)}
.connect-booking textarea::placeholder{color:var(--text-muted-readable);opacity:1}
.connect-booking .booking-help,.connect-booking .booking-empty-copy{font-size:13px;line-height:1.65;color:var(--text-secondary-readable);margin:0;overflow-wrap:anywhere}
.booking-slots .booking-empty-copy{grid-column:1/-1}
.booking-sidebar{display:grid;gap:16px;min-width:0;position:sticky;top:100px}
.booking-summary{overflow:hidden}
.booking-summary>header{padding:18px 20px;background:var(--booking-tint)}
.booking-summary>header h2{font-size:14px;font-weight:600;color:var(--booking-ink)}
.booking-summary>header p{font-size:20px;line-height:1.5;letter-spacing:-.015em;font-weight:650;color:var(--booking-ink);margin:5px 0 0;overflow-wrap:anywhere}
.booking-summary dl{display:grid;gap:12px;margin:0;padding:20px;font-size:14px;line-height:1.6}
.booking-summary dl>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:12px}
.booking-summary dt{color:var(--text-secondary-readable)}
.booking-summary dd{margin:0;font-weight:600;overflow-wrap:anywhere;white-space:pre-line}
.booking-submit-area{padding:0 20px 20px;display:grid;gap:12px}
.connect-booking .booking-primary,.booking-empty .booking-primary{display:flex;align-items:center;justify-content:center;width:100%;border:1px solid transparent;border-radius:10px;background:var(--booking-accent,var(--region-connect-action));color:var(--booking-on-accent,var(--on-primary-color));font:inherit;font-size:15px;font-weight:650;line-height:1.5;min-height:48px;padding:12px 14px;cursor:pointer;transition:transform 140ms ease,background-color 140ms ease}
.connect-booking .booking-primary:active:not(:disabled){transform:translateY(1px)}
.connect-booking .booking-primary:disabled{background:var(--disabled-bg);color:var(--disabled-text);border-color:var(--disabled-border);opacity:1;cursor:default}
.connect-booking button:disabled{cursor:default}
.connect-booking .booking-feedback{font-size:13px;line-height:1.6;margin:0;color:var(--text);overflow-wrap:anywhere}
.booking-feedback:empty{display:none}.connect-booking .booking-feedback.is-error{color:var(--error-text)}
.booking-recent{padding:18px 20px;display:grid;gap:14px}
.booking-recent h2{font-size:16px}
.booking-recent ul{margin:0;padding:0;list-style:none;display:grid;gap:14px}
.booking-recent li{display:flex;justify-content:space-between;align-items:start;gap:10px;font-size:13px;line-height:1.6}
.booking-recent li>div{display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}
.booking-recent li>div>span{color:var(--text-secondary-readable)}
.booking-status{font-size:11px;line-height:1.6;background:var(--bg);border-radius:999px;padding:3px 8px;flex:none;max-width:45%;color:var(--text-secondary-readable)}
.booking-status[data-status=confirmed]{background:var(--badge-mint-bg);color:var(--badge-mint-text)}
.booking-status[data-status=requested]{background:var(--badge-sun-bg);color:var(--badge-sun-text)}
.booking-empty{padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface);display:grid;gap:12px}
.booking-empty .booking-primary{justify-self:start;width:auto}
.booking-loading{font-size:14px;line-height:1.6;color:var(--text-secondary-readable);margin:0}
.connect-booking :is(button,a,textarea):focus-visible{outline:2px solid var(--booking-accent);outline-offset:3px}
@media(hover:hover){.connect-booking .booking-choice:hover:not(:disabled):not([aria-pressed=true]){background:var(--bg);border-color:var(--booking-accent)}.connect-booking .booking-day:hover:not(:disabled):not([aria-pressed=true]),.booking-slot:hover>span{background:var(--booking-tint);border-color:var(--booking-accent);color:var(--booking-ink)}.booking-slot:hover>input:checked+span{color:var(--booking-on-accent);background:var(--booking-accent)}}
:root[data-theme=dark] .connect-booking{--booking-accent:var(--region-map-action);--booking-tint:var(--region-map-field);--booking-ink:var(--region-map-ink);--booking-on-accent:var(--on-primary-color)}
:root[data-theme=dark] .connect-booking[data-room=counseling]{--booking-accent:var(--region-ai-action);--booking-tint:var(--region-ai-field);--booking-ink:var(--region-ai-ink)}
:root[data-theme=dark] .connect-booking[data-room=teacher]{--booking-accent:var(--region-journal-action);--booking-tint:var(--region-journal-field);--booking-ink:var(--region-journal-ink)}
:root[data-theme=dark] .booking-room[data-room=health]>i{background:var(--region-map-action)}:root[data-theme=dark] .booking-room[data-room=counseling]>i{background:var(--region-ai-action)}:root[data-theme=dark] .booking-room[data-room=teacher]>i{background:var(--region-journal-action)}
@media(max-width:1080px){.booking-layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.booking-room-options{grid-template-columns:1fr}.booking-choice strong{font-size:15px}}
@media(max-width:760px){.booking-layout{grid-template-columns:1fr;gap:20px}.booking-sidebar{position:static}.booking-room-options{grid-template-columns:1fr}.connect-booking .booking-room{flex-direction:row;align-items:center;gap:10px;padding:12px}.booking-room strong{font-size:15px}.booking-room small{font-size:12px}.booking-section{padding:18px}.booking-calendar{max-width:420px}.booking-weekdays,.booking-days{gap:4px}.booking-topline{margin-bottom:16px}.booking-summary>header p{font-size:19px}}
@media(max-width:380px){.booking-room-options{grid-template-columns:1fr}.connect-booking .booking-room{flex-direction:row;align-items:center}.booking-section{padding:14px}.booking-summary dl>div{grid-template-columns:80px minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.connect-booking *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
