.calendar-page{max-width:1280px;margin:auto;padding:50px 5% 80px}.calendar-intro{margin-bottom:2.25rem}.calendar-intro h1{letter-spacing:-.045em;margin:.8rem 0 1rem;font-family:Manrope,sans-serif;font-size:clamp(2.5rem,4.7vw,4.1rem);font-weight:400;line-height:1.13}.calendar-intro h1 em{color:var(--gold-ink)}.calendar-intro>p:last-child{max-width:660px;font-size:1.0625rem}.calendar-workspace{grid-template-columns:minmax(320px,450px) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.calendar-card{border:1px solid var(--border);background:var(--background);border-radius:1.4rem;padding:1.4rem}.calendar-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.calendar-toolbar button,.calendar-history button{border:1px solid var(--border);background:var(--secondary);border-radius:99px;padding:.4rem .9rem;font-size:.9375rem}.calendar-card [data-slot=calendar]{--cell-size:clamp(2rem, 4.8vw, 3.5rem);--cell-radius:.7rem;width:100%;padding:0}.calendar-card .rdp-caption_label{font-size:1.15rem}.calendar-card .rdp-weekday{font-size:.875rem}.calendar-card .rdp-day_button{min-height:var(--cell-size);padding-bottom:.45rem;font-size:1rem}.calendar-card .rdp-today:not(.rdp-selected){outline:1px solid var(--gold-ink);outline-offset:-2px}.calendar-card .has-session:after,.calendar-card .has-special:after{content:"";background:var(--gold-ink);pointer-events:none;z-index:20;border-radius:50%;width:6px;height:6px;position:absolute;bottom:6px;left:calc(50% - 3px)}.calendar-card .has-special:after{background:#914339}.calendar-card .has-session.has-special:after{box-shadow:-9px 0 var(--gold-ink)}.calendar-legend{flex-wrap:wrap;gap:1rem;margin-top:1.5rem;font-size:.875rem;display:flex}.calendar-legend span{align-items:center;gap:.5rem;display:inline-flex}.class-dot,.special-dot{background:var(--gold-ink);border-radius:50%;width:8px;height:8px;display:inline-block}.special-dot{background:#914339}.holiday-dot{background:#e8e0d4;border:1px solid #786958;border-radius:2px;width:10px;height:10px;display:inline-block}.calendar-card .is-public-holiday{background:#e8e0d4}.calendar-holidays{margin:1rem 0 0;padding:0;list-style:none}.calendar-holidays button{text-align:left;text-underline-offset:3px;color:var(--foreground);background:0 0;border:0;padding:.3rem 0;font-size:.875rem;text-decoration:underline}.calendar-holiday-note h3{margin:1rem 0 .75rem;font-size:1.4rem}.calendar-source{color:var(--muted-foreground);margin-top:1.5rem;font-size:.875rem}.calendar-source a{text-underline-offset:3px;text-decoration:underline}.calendar-timezone{color:var(--muted-foreground);margin-top:.65rem;font-size:.875rem}.calendar-day-panel{background:var(--section-background-even);border-radius:1.4rem;padding:2rem}.calendar-day-panel h2{letter-spacing:-.03em;margin:.6rem 0 1.5rem;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.35}.event-kind{background:var(--secondary);color:var(--foreground);white-space:nowrap;border-radius:99px;padding:.2rem .7rem;font-size:.8125rem;display:inline-block}.event-kind.special{color:#6f3028;background:#f1dacf}.calendar-event-detail h3,.undated-event h3{margin:.85rem 0 1.15rem;font-size:1.4rem;font-weight:500;line-height:1.4}.calendar-event-detail>p{margin-top:1rem}.event-fact{align-items:flex-start;gap:.7rem;display:flex}.event-fact svg{flex-shrink:0;margin-top:.3rem}.calendar-event-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.calendar-event-actions .button{gap:12px;padding:16px 22px}.calendar-text-link{text-underline-offset:4px;align-items:center;gap:.5rem;font-size:.9375rem;text-decoration:underline;display:inline-flex}.calendar-empty{padding:1rem 0 2rem}.calendar-empty h3{margin:1rem 0 .5rem;font-size:1.25rem}.calendar-schedule-note{color:var(--muted-foreground);max-width:850px;margin-top:1.5rem;font-size:.9375rem}.calendar-agenda{margin-top:3.5rem}.calendar-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.calendar-section-heading h2,.calendar-specials h2,.calendar-weekly h2{letter-spacing:-.03em;font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:1.35}.calendar-section-heading>span{font-size:.9375rem}.calendar-agenda ul{margin:0;padding:0;list-style:none}.agenda-row{text-align:left;border:0;border-top:1px solid var(--border);width:100%;color:var(--foreground);background:0 0;grid-template-columns:52px minmax(0,1fr) auto auto 20px;align-items:center;gap:1.1rem;padding:1rem .5rem;display:grid}.agenda-row:hover,.agenda-row.is-selected{background:var(--section-background-even)}.agenda-date{flex-direction:column;align-items:center;display:flex}.agenda-date strong{font-size:1.65rem;font-weight:400;line-height:1.2}.agenda-date>span{font-size:.875rem}.agenda-title{flex-direction:column;gap:.15rem;display:flex}.agenda-title strong{font-weight:500}.agenda-title>span{color:var(--muted-foreground);font-size:.875rem}.agenda-time{white-space:nowrap;font-size:.9375rem}.calendar-empty-month{border-top:1px solid var(--border);padding:1.5rem 0}.calendar-specials{margin-top:3.5rem}.calendar-specials>h2{margin:.6rem 0 1.5rem}.undated-event{border:1px solid var(--border);border-radius:1.25rem;max-width:750px;padding:1.75rem}.undated-event p+p{margin-top:.8rem}.undated-event>a{margin-top:1rem}.calendar-history{margin-top:1.5rem}.calendar-history summary{cursor:pointer;font-size:.9375rem}.calendar-history ul{padding:0;list-style:none}.calendar-history li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;font-size:.9375rem;display:flex}.calendar-weekly{background:var(--section-background-even);border-radius:1.25rem;grid-template-columns:1fr 1fr;gap:1rem 2rem;margin-top:3rem;padding:2rem;display:grid}.calendar-weekly h2{grid-column:1/-1}@media (max-width:800px){.calendar-workspace{grid-template-columns:1fr}.calendar-card{width:100%;max-width:480px;margin:auto}.calendar-day-panel{padding:1.5rem}.agenda-row{grid-template-columns:40px minmax(0,1fr) 20px;gap:.6rem 1rem}.agenda-time{grid-column:2}.agenda-row>.event-kind{grid-column:2;justify-self:start}.agenda-row>svg{grid-area:1/3}.agenda-date{grid-row:1/4}}@media (max-width:480px){.calendar-page{padding:35px 5% 60px}.calendar-card{padding:1rem}.calendar-weekly{grid-template-columns:1fr;padding:1.5rem}.calendar-day-panel{padding:1.2rem}}
