.month-calendar{min-width:0;width:100%;border:1px solid var(--hairline);border-radius:4px;padding:clamp(.5rem,2vw,1rem);background:var(--surface)}.month-calendar-heading{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:.5rem;margin-bottom:.75rem}.month-calendar-heading h3{text-align:center;font-family:inherit;font-size:1rem;font-weight:550}.month-calendar-heading button{min-height:44px;min-width:44px;border:1px solid var(--control-border);border-radius:3px}.month-calendar table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:2px}.month-calendar th{font-size:.7rem;font-weight:500;color:var(--ink-muted);padding-bottom:.5rem;text-align:center}.month-calendar abbr{text-decoration:none}.month-calendar td{padding:0;height:48px;vertical-align:top}.month-calendar td button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;width:100%;height:100%;min-height:44px;border:1px solid transparent;border-radius:3px;gap:2px;font-size:.85rem}.month-calendar td button:hover:not(:disabled){border-color:var(--control-border);background:var(--canvas)}.month-calendar td button[aria-current=date]{text-decoration:underline;text-underline-offset:4px}.month-calendar td[aria-selected=true] button{background:var(--ink);color:var(--canvas);border-color:var(--ink)}.month-calendar td button:disabled{opacity:.35}.month-calendar td small{font-size:.58rem;line-height:1.2;font-weight:500;white-space:nowrap}.month-calendar button[data-tone=events]{border-color:var(--hairline)}.month-calendar button[data-tone=open] small{text-decoration:underline;text-underline-offset:2px}.booking-day-summary{display:grid;gap:1rem;border-block:1px solid var(--hairline);margin-block:1.25rem;padding-block:1.25rem;min-width:0}.booking-day-summary h3{font-family:inherit;font-size:1rem;font-weight:550}.booking-time-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:.5rem}.booking-time-options label{display:flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--control-border);border-radius:3px;min-height:44px;padding:.5rem;font-size:.8rem;cursor:pointer}.booking-time-options label:has(input:checked){background:var(--ink);color:var(--canvas);border-color:var(--ink)}.booking-time-options input{accent-color:var(--brand)}.booking-unavailable-times{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.78rem}.booking-unavailable-times span{padding:.35rem .5rem;border:1px solid var(--hairline);color:var(--ink-muted)}.studio-calendar-layout{display:grid;gap:1.5rem;min-width:0}.studio-calendar-day{min-width:0}.studio-calendar-legend{display:flex;gap:.5rem 1rem;flex-wrap:wrap;font-size:.75rem;color:var(--ink-muted)}@media (min-width:960px){.studio-calendar-layout{grid-template-columns:minmax(300px,1.1fr) minmax(0,1fr);align-items:start}}@media (max-width:360px){.month-calendar{padding:.25rem}.month-calendar table{border-spacing:1px}.month-calendar td small{font-size:.5rem}}