.booking-dialog { border:0; border-radius:16px; padding:0; width:min(920px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; background:#E4EEF0; color:#383E42; box-shadow:0 24px 90px #383E4266; }
.booking-dialog::backdrop { background:#383E42bb; }
.booking-panel { padding:40px; position:relative; font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:17px; line-height:1.55; }
.booking-panel h2 { font-size:clamp(28px,5vw,42px); letter-spacing:0; margin:12px 0; color:#383E42; padding-right:30px; }
.booking-panel h3 { font-size:22px; margin:0; }
.booking-panel p { color:#383E42; }
.booking-close { position:absolute; right:16px; top:12px; border:0; background:transparent; color:#383E42; font-size:32px; cursor:pointer; min-height:44px; min-width:44px; }
.booking-kicker { font-size:15px; color:#14767F!important; font-weight:700; margin:0; }
.booking-intro { margin-bottom:24px; }
#booking-status { padding:16px; border-left:4px solid #14767F; background:#fff; border-radius:8px; margin:20px 0; }
.booking-week { display:flex; gap:16px; align-items:center; justify-content:space-between; margin-bottom:18px; font-weight:700; }
.booking-week button,.booking-slot,.booking-cancel,.connect-page button { min-height:46px; padding:10px 16px; font:inherit; border:1px solid #14767F; background:#fff; color:#14767F; border-radius:8px; cursor:pointer; }
.booking-slots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.booking-slot { text-align:left; }
.booking-slot span,.booking-slot strong { display:block; }
.booking-slot strong { white-space:nowrap; }
.booking-slot:hover,.booking-slot[aria-pressed=true] { background:#14767F; color:#fff; }
.booking-details { margin-top:26px; padding-top:26px; border-top:1px solid #383E4244; display:grid; gap:16px; }
.booking-details label,.connect-page label { display:grid; gap:6px; font-weight:700; }
.booking-panel input:not([type=checkbox]) { border:1px solid #383E4288; border-radius:8px; padding:12px; width:100%; box-sizing:border-box; font:inherit; background:#fff; color:#383E42; }
.booking-panel .booking-privacy { display:flex; align-items:flex-start; font-size:15px; font-weight:400; gap:10px; }
.booking-privacy input { margin-top:7px; width:18px; height:18px; flex-shrink:0; accent-color:#14767F; }
.booking-panel a { color:#14767F; }
.booking-honey { position:absolute!important; left:-10000px; width:1px; height:1px; overflow:hidden; }
.booking-panel .button-primary { background:#FF5804; color:#383E42; border:0; font-size:17px; padding:15px 24px; border-radius:8px; cursor:pointer; }
.booking-panel button:disabled { opacity:.5; cursor:wait; }
.booking-panel :focus-visible { outline:3px solid #FF5804; outline-offset:3px; }
.booking-cancel { margin-top:24px; border-color:#383E42; color:#383E42; }
.booking-footnote { font-size:15px; }
.connect-page { background:#E4EEF0; color:#383E42; margin:0; }
.connect-page main { max-width:760px; margin:40px auto; padding:0 20px; box-sizing:border-box; }
.connect-page form { display:grid; gap:20px; }
.booking-layout { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr); gap:28px; align-items:start; }
.booking-month { background:#fff; border:1px solid #14767F33; border-radius:12px; padding:18px; }
.booking-month .booking-week { gap:8px; }
.booking-month .booking-week h3 { font-size:20px; text-align:center; }
.booking-panel .booking-month .booking-week button { padding:8px; min-width:38px; min-height:40px; }
.booking-weekdays,.booking-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; text-align:center; }
.booking-weekdays { font-size:13px; font-weight:700; margin-bottom:8px; color:#14767F; }
.booking-panel .booking-day { border:0; background:#E4EEF0; color:#383E42; border-radius:7px; padding:0; min-height:38px; min-width:0; font:inherit; font-weight:600; cursor:pointer; }
.booking-panel .booking-day:disabled { background:transparent; opacity:.35; cursor:default; }
.booking-panel .booking-day[aria-current=date] { box-shadow:inset 0 0 0 1px #14767F; }
.booking-panel .booking-day[aria-pressed=true] { background:#14767F; color:#fff; }
.booking-calendar-note { font-size:13px; line-height:1.5; margin-bottom:0; }
.booking-times h3 { font-size:21px; margin:0 0 16px; }
.booking-time-group { margin-bottom:18px; }
.booking-time-group h4 { font-size:16px; line-height:1.5; margin:0 0 8px; }
.booking-time-range { display:block; font-size:13px; font-weight:400; color:#14767F; }
.booking-time-group .booking-slots { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.booking-time-group .booking-slot { font-size:15px; font-weight:600; padding:10px 6px; text-align:center; white-space:nowrap; }
.booking-panel .booking-more { font:inherit; font-size:15px; border:1px solid #14767F; background:transparent; color:#14767F; border-radius:8px; min-height:44px; padding:10px 14px; cursor:pointer; }
@media(max-width:780px){.booking-layout{grid-template-columns:1fr}.booking-month{max-width:360px;width:100%;box-sizing:border-box;justify-self:center}}
@media(max-width:600px){.booking-panel{padding:28px 20px}.booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-slot{font-size:15px;padding:10px}.booking-panel .button-primary{width:100%}}
@media(max-width:420px){.booking-slots{grid-template-columns:1fr}.booking-week{gap:8px;font-size:15px}.booking-week button{padding:10px 12px}.booking-panel{overflow-wrap:anywhere}.booking-kicker{padding-right:28px}}
@media(max-width:420px){.booking-month{padding:12px}.booking-month .booking-week h3{font-size:17px}.booking-panel .booking-day{min-height:34px;font-size:14px}.booking-time-group .booking-slots{grid-template-columns:1fr}}
