#booking-app{--slot-free-bg:#133929;--slot-free-line:#429e70;--slot-free-text:#b8f2ce;--slot-pending-bg:#493c18;--slot-pending-line:#bd9634;--slot-pending-text:#ffe39a;--slot-booked-bg:#452329;--slot-booked-line:#b45a67;--slot-booked-text:#ffc3cc;--slot-muted-bg:#282321;--slot-muted-line:#62534c;--slot-muted-text:#b7a89d}
.booking-calendar{min-width:0;padding:14px 10px;border:1px solid rgba(201,149,107,.3);border-radius:16px;background:rgba(201,149,107,.035)}
.booking-calendar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.booking-calendar-header h2{font:500 16px/1.4 'Jost',sans-serif;margin:0;text-align:center;color:inherit}
.booking-calendar-header button{width:40px;min-height:44px;border:1px solid rgba(201,149,107,.35);border-radius:10px;background:none;color:inherit;font-size:26px;cursor:pointer}
.booking-calendar-header button:disabled{opacity:.35}
.booking-availability-legend{display:flex;gap:8px 12px;flex-wrap:wrap;margin:14px 0;font-size:10px;line-height:1.5}
.booking-availability-legend>span{display:inline-flex;align-items:center;gap:5px}
.booking-availability-legend i,.booking-calendar-dots i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#aaa;flex-shrink:0}
.booking-availability-legend [data-status=available],.booking-calendar-dots [data-status=available]{background:#2fa268}
.booking-availability-legend [data-status=pending],.booking-calendar-dots [data-status=pending]{background:#d3a51d}
.booking-availability-legend [data-status=booked],.booking-calendar-dots [data-status=booked]{background:#d15464}
.booking-calendar-week,.booking-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.booking-calendar-week{margin-bottom:7px;text-align:center;font-size:10px;color:var(--slot-muted-text)}
.booking-calendar-week>sc-for,.booking-calendar-days>sc-for{display:contents}
#booking-app .booking-calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:44px;padding:5px 1px;border:1px solid var(--slot-muted-line);border-radius:8px;background:var(--slot-muted-bg);color:var(--slot-muted-text);cursor:pointer;position:relative}
.booking-calendar-day strong{font-size:13px;font-weight:500;line-height:16px}
.booking-calendar-day[data-blank=true]{visibility:hidden}
.booking-calendar-dots{display:flex;gap:3px;min-height:5px}
.booking-calendar-dots i{width:4px;height:4px}
#booking-app .booking-calendar-day[data-status=available],#booking-app .booking-time[data-status=available]{background:var(--slot-free-bg)!important;color:var(--slot-free-text)!important;border-color:var(--slot-free-line)!important}
#booking-app .booking-calendar-day[data-status=pending],#booking-app .booking-time[data-status=pending]{background:var(--slot-pending-bg)!important;color:var(--slot-pending-text)!important;border-color:var(--slot-pending-line)!important}
#booking-app .booking-calendar-day[data-status=booked],#booking-app .booking-time[data-status=booked]{background:var(--slot-booked-bg)!important;color:var(--slot-booked-text)!important;border-color:var(--slot-booked-line)!important}
#booking-app .booking-calendar-day[aria-pressed=true],#booking-app .booking-time[aria-pressed=true]{outline:2px solid currentColor;outline-offset:2px;box-shadow:inset 0 0 0 1px currentColor}
.booking-calendar-day[data-today=true] strong{text-decoration:underline;text-underline-offset:3px}
#booking-app .booking-calendar-note,#booking-app .booking-availability-update{font-size:11px;line-height:1.6;color:var(--slot-muted-text);margin:12px 0 0}
.booking-calendar-error{margin-top:10px;font-size:12px;line-height:1.5;color:var(--slot-booked-text)}
.booking-calendar-error p{margin:0 0 6px}
.booking-calendar-error button{min-height:44px;padding:8px 12px;color:inherit;background:transparent;border:1px solid currentColor;border-radius:8px}
.booking-time-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
#booking-app .booking-time{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:62px;min-width:0;padding:10px 3px!important;border:1px solid var(--slot-muted-line)!important;border-radius:12px;opacity:1!important;background:var(--slot-muted-bg)!important;color:var(--slot-muted-text)!important;text-decoration:none!important;cursor:pointer}
.booking-time strong{font-size:12px;font-weight:500;line-height:1.3}
.booking-time span{font-size:10px;line-height:1.3}
@media(max-width:759px){
 #booking-app{--slot-free-bg:#e4f4e9;--slot-free-line:#83bb95;--slot-free-text:#185c35;--slot-pending-bg:#fff1bb;--slot-pending-line:#ceb15c;--slot-pending-text:#775600;--slot-booked-bg:#fde4e7;--slot-booked-line:#d99aa2;--slot-booked-text:#982f3e;--slot-muted-bg:#f0e8d9;--slot-muted-line:#d7c9af;--slot-muted-text:#786651}
 .booking-calendar{padding:12px 8px;background:#fffdf5;border-color:#e2c995}
 .booking-calendar-header h2{font-size:16px!important;color:#633a2c}
 .booking-calendar-header button{border-color:#dfc99c;color:#7e4336}
 .booking-availability-legend{font-size:11px;color:#6e453d}
}
