.medical-booking-calendar{width:100%;min-width:0}
.medical-booking-calendar .medical-calendar-layout{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:12px;align-items:start}
.medical-booking-calendar .medical-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0 0 4px}
.medical-booking-calendar .medical-calendar-heading strong{font-size:1em;text-transform:capitalize;text-align:center}
.medical-booking-calendar .medical-calendar-heading button{width:30px;min-width:30px}
.medical-booking-calendar .medical-calendar-weekdays,.medical-booking-calendar .medical-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.medical-booking-calendar .medical-calendar-weekdays{text-align:center;font-size:.85em;line-height:20px;margin-bottom:3px}
.medical-booking-calendar button{box-sizing:border-box;height:30px!important;min-height:30px!important;max-height:30px!important;margin:0;padding:0 4px!important;font-size:.94em;line-height:1.1;cursor:pointer;border:1px solid var(--brand,#145c52);border-radius:6px}
.medical-booking-calendar .medical-calendar-days button{width:100%;min-width:0;padding:0!important;background:transparent;color:inherit}
.medical-booking-calendar .medical-calendar-days button.has-program{background:color-mix(in srgb,var(--brand,#145c52) 12%,white);font-weight:700}
.medical-booking-calendar .medical-calendar-days button[aria-pressed=true]{background:var(--brand,#145c52);color:var(--brand-ink,#fff)}
.medical-booking-calendar .medical-calendar-days button:disabled{border-color:transparent;background:transparent;opacity:.42;cursor:default}
.medical-booking-calendar .medical-calendar-blank[hidden]{display:none}
.medical-booking-calendar p{margin:4px 0;font-size:.9em;line-height:1.3}
.medical-booking-calendar [data-month-status]:empty{display:none}
.medical-booking-calendar .medical-calendar-day h3{margin:0 0 4px;font-size:1em;line-height:1.3}
.medical-booking-calendar .medical-calendar-times{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:4px;margin-top:6px}
.medical-booking-calendar .medical-time{display:flex;align-items:center;justify-content:center;gap:4px;background:transparent;color:inherit;white-space:nowrap}
.medical-booking-calendar .medical-time.free{background:var(--brand,#145c52);color:var(--brand-ink,#fff)}
.medical-booking-calendar .medical-time.busy{background:#fff1ef;border-color:#c8938d;color:#833d34;opacity:1;cursor:default}
.medical-booking-calendar .medical-time.unavailable{background:#f1f2f1;border-color:#cdd2cf;color:#626a65;opacity:1;cursor:default}
.medical-booking-calendar .medical-time small{font-size:.75em}
.medical-booking-calendar button:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.medical-calendar-preferences{padding:6px;margin:4px 0;min-width:0}
.medical-calendar-preferences label{display:flex;align-items:flex-start;gap:6px;margin:3px 0;line-height:1.3}
.medical-calendar-preferences label input{flex:0 0 auto;margin-top:2px}
.medical-calendar-preferences .field-help{display:block;margin-top:4px;line-height:1.3}
.clinic-public .medical-calendar-contact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:8px}
@media(max-width:700px){.medical-booking-calendar .medical-calendar-layout{grid-template-columns:minmax(0,1fr);gap:8px}.medical-booking-calendar .medical-calendar-month{max-width:360px;width:100%;margin:0 auto}.clinic-public .medical-calendar-contact{grid-template-columns:repeat(2,minmax(0,1fr))}.medical-calendar-contact>label:first-child{grid-column:1/-1}}
