.event-calendar { margin-block: .7rem 0; padding: 1rem; border: 1px solid #a7b4a8; border-radius: 4px; background: #fffdf8; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.calendar-toolbar h3 { font-size: 1.15rem; text-align: center; margin: 0; }
.calendar-toolbar button, .calendar-refresh { min-height: 44px; padding: .5rem .75rem; color: #173e30; background: #f1f4ec; border: 1px solid #728877; border-radius: 3px; cursor: pointer; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .25rem; }
.calendar-weekdays { text-align: center; margin-top: 1rem; font-size: .72rem; color: #4b5e50; }
.calendar-day { min-width: 0; min-height: 44px; padding: .4rem 0; border: 1px solid #718777; border-radius: 3px; background: #fffdf8; color: #143a2b; cursor: pointer; font: inherit; }
.calendar-day:disabled { background: #e0e2df; color: #666d68; border-color: #d2d5d0; cursor: not-allowed; text-decoration: line-through; }
.calendar-day[aria-pressed="true"] { background: #214e3c; color: white; outline: 2px solid #214e3c; outline-offset: 1px; }
.calendar-day:focus-visible, .event-calendar button:focus-visible { outline: 3px solid #a75e1a; outline-offset: 2px; }
.calendar-status { font-size: .8rem; line-height: 1.5; margin-block: .8rem; min-height: 2.5em; }
.calendar-caption { font-size: .8rem; color: #4b5e50; }
.event-calendar-field { grid-column: 1 / -1; min-width: 0; }
@media(max-width:400px) { .event-calendar { padding: .65rem; } .calendar-days, .calendar-weekdays { gap: .15rem; } .calendar-day { min-height: 40px; } .calendar-toolbar button { padding-inline: .5rem; } }
