/* One component shared by profile availability and booking entry. */
.booking-calendar,.booking-offerings { min-width:0; width:100%; display:grid; gap:16px; }
.booking-calendar-selected { display:grid; gap:6px; }
.booking-calendar-selected p { margin:0; color:var(--dim); font-size:14px; line-height:1.5; }
.booking-calendar-back { justify-self:start; min-height:44px; padding:0; border:0; background:none; color:var(--pT); font:600 14px/1.4 var(--font-sans); cursor:pointer; }
.booking-calendar-toolbar { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:8px; align-items:center; }
.booking-calendar h3 { margin:0; font-size:18px; line-height:1.3; font-weight:700; }
.booking-calendar-toolbar h3 { text-align:center; }
.booking-calendar-toolbar button { min-height:44px; border:0; background:none; color:var(--fg); font-size:28px; cursor:pointer; }
.booking-calendar-toolbar button:disabled { opacity:.25; cursor:default; }
.booking-calendar-zone,.booking-calendar-hint { margin:0; font-size:14px; line-height:1.5; color:var(--dim); overflow-wrap:anywhere; }
.booking-calendar-grid { width:100%; border-collapse:separate; border-spacing:2px; table-layout:fixed; }
.booking-calendar-grid th,.booking-calendar-grid td { border:0; padding:0; text-align:center; }
.booking-calendar-grid th { font-size:12px; font-weight:500; color:var(--dim); padding-bottom:6px; }
.booking-calendar-day { position:relative; width:100%; min-height:42px; display:grid; place-items:center; padding:8px 2px; border:0; border-radius:8px; background:none; color:var(--fg); font:600 15px/1 var(--font-sans); cursor:pointer; }
.booking-calendar-day:disabled { color:var(--dim); opacity:.4; cursor:default; }
.booking-calendar-day:not(:disabled):hover { background:var(--sur2); }
.booking-calendar-day[aria-pressed="true"],.booking-calendar-day[aria-pressed="true"]:hover { background:var(--pFill); color:var(--onP); }
.booking-calendar-day[aria-current="date"] { box-shadow:inset 0 0 0 1px var(--line); }
.booking-calendar-dot { position:absolute; bottom:4px; width:3px; height:3px; border-radius:50%; background:currentColor; }
.booking-calendar-stage { display:grid; gap:10px; min-width:0; }
.booking-offering-choices { display:grid; gap:6px; }
.booking-offering { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:60px; padding:12px 0; border:0; border-bottom:1px solid var(--line); background:none; color:var(--fg); text-align:left; font:inherit; cursor:pointer; }
.booking-offering>span:first-child { display:grid; gap:4px; min-width:0; }
.booking-offering strong { font-size:16px; line-height:1.4; overflow-wrap:anywhere; }
.booking-offering span>span { font-size:14px; line-height:1.45; color:var(--dim); overflow-wrap:anywhere; }
.booking-offering[aria-pressed="true"] { color:var(--pT); border-color:var(--pT); }
.booking-offering-owner { cursor:default; }
.booking-offering-edit,.booking-offering-add { min-height:44px; display:inline-flex; align-items:center; color:var(--pT); font-size:14px; }
.booking-offering-edit { min-width:44px; flex:none; justify-content:center; }
.booking-offering-add { justify-self:start; }
.booking-offering .booking-offering-availability { color:var(--pT); }
.booking-offering-owner .booking-offering-availability { color:var(--dim); }
.booking-time-choices { display:grid; gap:8px; }
.booking-time { display:flex; align-items:center; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:8px; background:none; color:var(--fg); text-align:left; font:600 14px/1.45 var(--font-sans); overflow-wrap:anywhere; cursor:pointer; }
.booking-time[aria-current="true"] { border-color:var(--pT); background:var(--pTint); }
.booking-calendar :is(a,button):focus-visible { outline:3px solid var(--ring); outline-offset:2px; }
.booking-calendar :is(a,button):disabled { cursor:default; }
[data-fc5-screen="booking-entry-review"]>.booking-calendar { max-width:720px; }
@media(max-width:599px) { .booking-calendar-grid { border-spacing:1px; } .booking-calendar-day { min-height:40px; } }
