.booking-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.booking-workspace.panel-open{grid-template-columns:minmax(0,1fr) 330px}
.booking-panel{position:sticky;top:18px;padding:20px;max-height:calc(100vh - 36px);overflow:auto}
.booking-panel[hidden]{display:none}
.booking-panel h2{margin:0;font-size:20px}
.booking-panel .between{gap:6px}
.booking-panel button:disabled{opacity:.6;cursor:wait}
#selection-summary{font-weight:600;color:var(--navy);margin-top:16px}
#inline-message{white-space:pre-line}
.timeline td.selected-slot{background:#e9f6ed;box-shadow:inset 0 3px #33865b,inset 0 -3px #33865b}
.slot[aria-pressed=true]{outline:3px solid #33865b;outline-offset:-3px;border-radius:6px;color:#21663f}
.timeline .slot{width:100%;border:0;padding:0;background:transparent;min-height:78px}
.timeline .slot:hover{background:#e9f3fb}
.timeline .slot:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
@media(max-width:1000px){.booking-workspace.panel-open{grid-template-columns:minmax(0,1fr)}.booking-workspace.panel-open{padding-bottom:190px}.booking-panel{position:fixed;bottom:0;left:0;right:0;top:auto;z-index:10;border-radius:18px 18px 0 0;max-height:55vh;box-shadow:0 -6px 30px #16355225;padding:16px 5%}.booking-panel #selection-summary{margin:8px 0}.booking-panel label{margin-bottom:12px}}
.customer-groups{display:grid;grid-template-columns:minmax(0,1fr)}
.group-bookings{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.customer-group h2{margin:0 0 16px}.customer-group>.between{margin-bottom:14px}
