.calendar{grid-template-columns:8.5rem 1fr;align-items:start;gap:1.5rem;margin-top:1.5rem;display:grid}.calendar__rail{flex-direction:column;gap:.5rem;display:flex;position:sticky;top:5rem}.calendar__day{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);font:inherit;color:var(--ink-soft);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .18s var(--ease-out), border-color .18s var(--ease-out), box-shadow .18s var(--ease-out), color .18s var(--ease-out);grid-template-rows:auto auto auto auto;justify-items:center;gap:.125rem;padding:1.125rem .5rem .75rem;display:grid;position:relative}.calendar__day:before,.calendar__day:after{content:"";background:var(--line);width:.3rem;height:.3rem;transition:background-color .18s var(--ease-out);border-radius:50%;position:absolute;top:.45rem}.calendar__day:before{left:1.6rem}.calendar__day:after{right:1.6rem}.calendar__day:active{transform:scale(.97)}.calendar__day:focus-visible{outline:2px solid var(--ink);outline-offset:3px}@media (hover:hover) and (pointer:fine){.calendar__day:hover{border-color:var(--ink-faint);color:var(--ink)}}.calendar__day[data-active]{color:var(--ink);border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.calendar__day[data-active]:before,.calendar__day[data-active]:after{background:var(--accent)}.calendar__day[data-today] .calendar__weekday{color:var(--accent)}.calendar__weekday{text-transform:lowercase;letter-spacing:.02em;font-size:.8125rem}.calendar__number{letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.875rem;font-weight:640;line-height:1.1}.calendar__month{text-transform:lowercase;font-size:.75rem}.calendar__dots{align-items:center;gap:.2rem;height:.55rem;display:flex}.calendar__dot{background:var(--accent);opacity:.55;border-radius:50%;width:.3rem;height:.3rem}.calendar__dots--empty{height:.55rem}.calendar__sheet{min-height:18rem}.calendar__sessions{flex-direction:column;gap:.75rem;display:flex}.calendar__session{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out);grid-template-columns:5.5rem 1fr auto;align-items:center;gap:1rem;padding:1.125rem 1.25rem;display:grid}@media (hover:hover) and (pointer:fine){.calendar__session:hover{box-shadow:var(--shadow);transform:translateY(-2px)}}.calendar__time{flex-direction:column;font-size:.875rem;display:flex}.calendar__hour{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink);font-size:1.25rem;font-weight:620}.calendar__name{letter-spacing:-.015em;font-size:1.0625rem;font-weight:580}.calendar__action{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.calendar__seats{color:var(--ink-soft);font-size:.8125rem}.calendar__seats[data-low]{color:var(--accent);font-weight:560}.calendar__session .button[disabled]{opacity:.45;cursor:not-allowed}.calendar__session .button[disabled]:active{transform:none}.calendar__empty{border:1px dashed var(--line);border-radius:var(--radius);color:var(--ink-soft);text-align:center;padding:2.5rem 1.5rem}@media (max-width:52rem){.calendar{grid-template-columns:1fr}.calendar__rail{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;flex-direction:row;padding-bottom:.5rem;position:static;overflow-x:auto}.calendar__day{scroll-snap-align:start;flex:0 0 5.25rem}.calendar__session{grid-template-columns:4.5rem 1fr}.calendar__action{flex-direction:row;grid-column:1/-1;justify-content:space-between;align-items:center}}
