* { box-sizing: border-box; }
body { margin: 0; background: var(--calendar-bg,#fff); color: var(--calendar-text,#1b1d23); font-family: Arial,sans-serif; }
.calendar { max-width: 920px; margin: 0 auto; padding: 24px; }
.calendar header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 28px; }
.calendar-label { color: #c6322c; font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.calendar h1 { font-size: 1.65rem; margin: 8px 0; }
.calendar a { color: inherit; }
.calendar header>a { font-size: .75rem; white-space: nowrap; }
.calendar-months { display: flex; justify-content: space-between; align-items: center; margin: 24px 0; }
.calendar-months h2 { font-size: 1.15rem; text-transform: capitalize; }
.calendar button { width: 42px; height: 42px; background: transparent; border: 1px solid #b5b5b5; border-radius: 8px; color: inherit; cursor: pointer; font-size: 1.1rem; }
.calendar button:disabled { opacity: .3; cursor: default; }
.calendar-event { display: grid; grid-template-columns: 76px 1fr; gap: 20px; border-top: 1px solid #ddd; padding: 20px 0; text-decoration: none; }
.calendar-day { font-size: 2rem; font-weight: 800; color: #c6322c; }
.calendar-day small { display: block; color: var(--calendar-text,#1b1d23); font-size: .72rem; font-weight: 500; margin-bottom: 5px; }
.calendar-event h3 { font-size: 1rem; margin: 0 0 9px; }
.calendar-event p, #calendar-status { font-size: .8rem; line-height: 1.7; margin: 0; }
.calendar [hidden] { display: none !important; }
@media(max-width:480px) { .calendar { padding: 18px; } .calendar header { align-items: flex-start; flex-direction: column; } }
