.calendar-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s8);padding-top:var(--s12);padding-bottom:var(--s12)}.calendar-intro h1{font-size:clamp(2.7rem,5vw,4.5rem);line-height:1.02}.calendar-intro h1 span{color:var(--blue)}.calendar-intro p{max-width:48ch;font-size:1.1rem;margin-bottom:0}.calendar-intro>.text-link{font-size:.9rem;flex-shrink:0;margin-bottom:var(--s2)}.calendar-section{padding-bottom:var(--s12)}.calendar-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding:var(--s6) 0;border-top:2px solid var(--ink)}.calendar-month-nav{display:flex;align-items:center;gap:var(--s4)}.calendar-month-nav h2{font-size:clamp(1.4rem,2.3vw,2rem);min-width:10ch;text-align:center;scroll-margin-top:var(--s6)}.calendar-arrow{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:7px;text-decoration:none;font-size:1.5rem}.calendar-arrow:hover{background:var(--yellow)}.calendar-arrow.disabled{opacity:.35}.calendar-jump{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.calendar-jump select{padding:var(--s2);min-height:44px}.calendar-jump .button{min-height:44px;padding:var(--s2) var(--s4)}.calendar-today{font-weight:600;font-size:.9rem;padding:var(--s3)}.calendar-caption{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);font-size:.9rem;padding-bottom:var(--s4)}.calendar-caption p{margin:0}.calendar-key{display:flex;align-items:center;gap:var(--s2);white-space:nowrap;font-size:.8rem}.calendar-key i,.calendar-key b{display:block;width:12px;height:12px;border-radius:50%;background:var(--blue)}.calendar-key b{background:var(--yellow);border:1px solid var(--ink);margin-left:var(--s2)}.calendar-board{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.calendar-weekdays,.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:var(--ink);color:var(--paper)}.calendar-weekdays>div{padding:var(--s3);font-size:.8rem;font-weight:700;text-align:center}.calendar-cell{min-height:136px;padding:var(--s2);border-right:1px solid var(--line);border-top:1px solid var(--line);min-width:0}.calendar-cell:last-child{border-right:0}.calendar-cell.has-events{background:var(--surface)}.calendar-cell.outside-month{color:var(--muted);background:var(--paper)}.calendar-cell.outside-month .calendar-day{opacity:.4}.calendar-day{display:grid;place-items:center;width:32px;height:32px;font-weight:700;text-decoration:none;border-radius:50%;font-size:.9rem}.has-events .calendar-day{color:var(--blue)}a.calendar-day:hover{background:var(--blue);color:var(--paper)}.is-today .calendar-day{background:var(--yellow);color:var(--ink)}.calendar-cell.is-selected{box-shadow:inset 0 0 0 2px var(--blue)}.calendar-cell-events{display:flex;flex-direction:column;gap:var(--s1);margin-top:var(--s1)}.calendar-event-link{display:block;padding:6px;background:var(--blue);color:var(--paper);border-radius:4px;font-size:.76rem;line-height:1.35;text-decoration:none;overflow-wrap:anywhere}.calendar-event-link:hover{text-decoration:underline}.calendar-more{font-size:.78rem;font-weight:700;color:var(--blue);padding:var(--s2) var(--s1)}.calendar-mobile-count{display:none}.calendar-note{font-size:.82rem;color:var(--muted);max-width:none}.calendar-agenda{padding-top:var(--s8);scroll-margin-top:var(--s6)}.calendar-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s6)}.calendar-agenda-head h2{font-size:clamp(1.6rem,2.4vw,2.2rem)}.calendar-clear{background:var(--yellow);border:0;border-radius:7px;min-height:44px;padding:var(--s2) var(--s4);font-weight:700}.calendar-clear[hidden],.calendar-agenda-event[hidden]{display:none}.calendar-agenda-event{display:flex;align-items:center;gap:var(--s6);padding:var(--s6) 0;border-bottom:1px solid var(--line)}.calendar-agenda-date{min-width:90px;display:flex;flex-direction:column;align-items:flex-start;line-height:1.4}.calendar-agenda-date strong{font-size:1.2rem}.calendar-agenda-date span{font-size:.85rem;color:var(--muted)}.calendar-agenda-copy{min-width:0}.calendar-agenda-copy h3{font-size:1.4rem;line-height:1.15;margin:var(--s2) 0}.calendar-agenda-copy h3 a{text-decoration:none}.calendar-agenda-copy h3 a:hover{text-decoration:underline}.calendar-agenda-copy p{font-size:.85rem;color:var(--muted);margin:0}.calendar-event-status{font-size:.82rem;color:var(--muted)}.calendar-empty{background:var(--surface);padding:var(--s8);border-radius:var(--radius)}.calendar-empty h3{font-size:1.7rem}.calendar-empty p:last-child{margin-bottom:0}.calendar-undated{padding-top:var(--s12)}.calendar-undated h2{font-size:1.8rem}.calendar-undated li{padding:var(--s2) 0}
@media(max-width:1100px){.calendar-intro{align-items:flex-start;flex-direction:column;gap:var(--s6)}.calendar-controls{flex-wrap:wrap}.calendar-caption{align-items:flex-start}.calendar-cell{min-height:112px}.calendar-event-link{font-size:.72rem}.calendar-jump{margin-left:auto}}
@media(max-width:850px){.calendar-controls{gap:var(--s4)}.calendar-month-nav{width:100%;justify-content:space-between;gap:var(--s2)}.calendar-jump{margin-left:0;gap:var(--s2)}.calendar-caption{flex-direction:column;gap:var(--s3)}.calendar-caption p{font-size:.87rem}.calendar-cell{min-height:85px;padding:var(--s1)}.calendar-cell-events{display:none}.calendar-day{width:100%;height:36px;border-radius:5px;font-size:.85rem}.calendar-day[href]{min-height:40px}.calendar-weekdays>div{padding:var(--s3) 0;font-size:.74rem}.calendar-mobile-count{display:flex;align-items:center;justify-content:center;min-height:36px;color:var(--blue);font-size:.7rem;font-weight:700;text-decoration:none}.calendar-agenda-head{align-items:flex-start;flex-direction:column}.calendar-agenda-event{align-items:flex-start;gap:var(--s4)}.calendar-agenda-date{min-width:65px}.calendar-agenda-date strong{font-size:1rem}.calendar-agenda-copy h3{font-size:1.2rem}.calendar-intro{padding-top:var(--s8);padding-bottom:var(--s8)}.calendar-intro p{font-size:1rem}.calendar-today{padding:var(--s2);font-size:.8rem}.calendar-jump select{font-size:.85rem}.calendar-note{font-size:.78rem}.calendar-empty{padding:var(--s6)}}
@media(max-width:360px){.calendar-jump{gap:var(--s1)}.calendar-jump select{padding:6px}.calendar-jump .button{padding:var(--s2) var(--s3)}.calendar-today{padding:6px}.calendar-cell{padding:2px}.calendar-agenda-date{min-width:57px}}
