/* Self-contained calendar colours: independent of the dark booking summary. */
.booking-page .calendar-card{margin-top:26px;background:#faf8f2;color:#23352b;border:1px solid #deddd1;border-radius:18px;padding:18px;box-shadow:0 6px 18px #0000000b}
.booking-page .calendar-card h2{color:#23352b;font-size:24px;margin:0 0 18px}
.booking-page .calendar-toolbar{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:8px;margin:0 0 12px}
.booking-page .calendar-toolbar strong{color:#23352b;text-align:center;font-family:inherit;font-size:16px;font-weight:800;text-transform:capitalize}
.booking-page .calendar-toolbar button{width:42px;height:40px;margin:0;border:1px solid #c5cabc;border-radius:10px;background:#fff;color:#23352b;font-size:26px;line-height:1;cursor:pointer}
.booking-page .calendar-toolbar button:hover:not(:disabled){background:#dfe8d7}
.booking-page .calendar-toolbar button:disabled{background:#ebece6;color:#73776c;cursor:not-allowed}
.booking-page .calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:0}
.booking-page .calendar .day{display:flex;align-items:center;justify-content:center;min-height:38px;padding:6px 2px;font:800 13px/1.2 system-ui,sans-serif;border:1px solid #aac29e;border-radius:8px;background:#e4efdc;color:#203c24;opacity:1}
.booking-page .calendar .day.free{background:#e4efdc;color:#203c24;border-color:#aac29e}
.booking-page .calendar .day.partial{background:#fff0c4;color:#674605;border-color:#d6b25c;border-bottom-width:3px}
.booking-page .calendar .day.busy{background:#f4d5d2;color:#772a25;border-color:#d09b94;text-decoration:line-through;text-decoration-thickness:1px}
.booking-page .calendar .day.special{background:#e7def3;color:#4f356d;border-color:#b5a0ce;border-style:dashed}
.booking-page .calendar .day.unavailable{background:#edede7;color:#60665c;border-color:#d8dacf}
.booking-page .calendar .day.head{min-height:26px;border:0;background:transparent;color:#3f4c40;font-weight:800;font-size:12px}
.booking-page .calendar .day.today{outline:2px solid #314c36;outline-offset:-3px}
.booking-page .day-spacer{min-height:38px}
.booking-page .calendar-loading{grid-column:1/-1;padding:24px 4px;text-align:center;color:#41533f;font-size:14px}
.booking-page .calendar-legend{display:grid;grid-template-columns:1fr 1fr;gap:9px 8px;margin-top:15px;color:#374735;font-size:12px;line-height:1.4}
.booking-page .calendar-legend span{display:flex;align-items:center;gap:7px}
.booking-page .calendar-legend i{display:inline-block;width:12px;height:12px;flex:0 0 12px;border-radius:3px;border:1px solid #aac29e}
.booking-page .calendar-legend .free{background:#e4efdc;border-color:#aac29e}
.booking-page .calendar-legend .partial{background:#fff0c4;border-color:#d6b25c}
.booking-page .calendar-legend .busy{background:#f4d5d2;border-color:#d09b94}
.booking-page .calendar-legend .special{background:#e7def3;border-color:#b5a0ce}
.booking-page .calendar-legend .unavailable{background:#edede7;border-color:#c5cabc}
@media(max-width:420px){.booking-page .calendar-card{padding:12px}.booking-page .calendar{gap:4px}.booking-page .calendar .day{min-height:36px}.booking-page .calendar-legend{font-size:11px}.booking-page .calendar-toolbar strong{font-size:14px}}
