.booking-calendar{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);border:1px solid var(--line);border-radius:5px;overflow:hidden;margin-top:20px;background:#fcfbf5}
.calendar-month-panel{padding:28px;border-right:1px solid var(--line)}
.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.calendar-heading h3{font-size:30px;letter-spacing:0}
.calendar-heading button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:20px}.calendar-heading button:hover:not(:disabled){background:#e9eddf}.calendar-heading button:disabled{opacity:.25}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-weekdays{margin-bottom:10px;text-align:center;font-size:10px;font-weight:600;color:var(--muted)}
.calendar-day{min-width:0;min-height:47px;border-radius:4px;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:14px;border:1px solid transparent}
.calendar-day i{width:4px;height:4px;border-radius:50%;background:#768b50}.calendar-day.full i{background:#ad9c88}.calendar-day:hover:not(:disabled){background:#e9eddf;border-color:#b7c49f}.calendar-day:disabled{color:#b4b5a9}.calendar-day:disabled i{visibility:hidden}
.calendar-day[aria-pressed=true]{background:var(--green);color:var(--cream);font-weight:700}.calendar-day[aria-pressed=true] i{background:var(--lime)}
.calendar-key{display:flex;gap:17px;font-size:10px;color:var(--muted);margin-top:22px;flex-wrap:wrap}.calendar-key span{display:flex;align-items:center;gap:6px}.calendar-key i{width:6px;height:6px;border-radius:50%;background:#768b50}.calendar-key span:last-child i{background:#ad9c88}
.calendar-window{font-size:10px;color:var(--muted);margin-top:16px}
.calendar-times-panel{padding:28px;background:#f1f2e9}.calendar-times-panel h3{font-size:30px}.calendar-times-panel>.eyebrow,.calendar-month-panel>.eyebrow{font-size:9px;margin-bottom:14px}
#calendar-hours{font-size:11px;color:var(--muted);margin:10px 0 18px}.calendar-filter{display:block;font-size:11px;font-weight:600}.calendar-filter select{margin-top:6px;background:#fcfbf5}
.calendar-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:16px;max-height:300px;overflow-y:auto;padding:3px 4px 6px}.calendar-slot{padding:13px 8px;border:1px solid #cbd2bd;background:#fcfbf5;border-radius:4px;text-align:left}.calendar-slot strong{display:block;font-size:12px}.calendar-slot span{display:block;font-size:9px;margin-top:4px;color:var(--muted)}.calendar-slot:hover:not(:disabled){border-color:var(--green);background:#e6ebdb}.calendar-slot[aria-pressed=true]{background:var(--green);color:var(--cream);border-color:var(--green)}.calendar-slot[aria-pressed=true] span{color:#d3dfbf}.calendar-slot:disabled{opacity:.5;background:transparent}.calendar-slot:disabled strong{text-decoration:line-through}
.calendar-empty{padding:18px 0;color:var(--muted);font-size:12px}.calendar-announcement{font-size:11px;min-height:18px;color:var(--green);margin-top:14px}.calendar-demo-note{font-size:10px;color:var(--muted);margin-top:12px}.calendar-map-heading{margin:30px 0 0;font-size:11px;font-weight:600;letter-spacing:1px}
@media(max-width:1100px){.calendar-month-panel,.calendar-times-panel{padding:22px}.calendar-heading h3,.calendar-times-panel h3{font-size:26px}}
@media(max-width:780px){.booking-calendar{grid-template-columns:1fr}.calendar-month-panel{border-right:0;border-bottom:1px solid var(--line)}.calendar-day{min-height:44px}.calendar-slots{grid-template-columns:repeat(2,minmax(0,1fr));max-height:275px}.calendar-slot{padding:14px 11px}.calendar-heading h3,.calendar-times-panel h3{font-size:29px}.calendar-heading button{width:44px;height:44px}}
