.event-calendar { margin-top:20px; min-width:0; }
.event-calendar [hidden] { display:none!important; }
.event-calendar .ec-controls { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; margin-bottom:20px; }
.event-calendar .ec-toolbar, .event-calendar .ec-navigation { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.event-calendar button { min-height:44px; border:1px solid #b5a99a; padding:9px 14px; border-radius:3px; background:#fffdfa; color:#2c2621; font:inherit; font-weight:700; cursor:pointer; }
.event-calendar button[aria-pressed="true"] { background:#a4553a; color:white; border-color:#a4553a; }
.event-calendar :is(button,a,input):focus-visible { outline:3px solid #c3902a; outline-offset:2px; }
.event-calendar .ec-navigation { padding:16px; background:#f2ebe0; }
.event-calendar .ec-navigation label { display:block; font-size:.8rem; font-weight:700; }
.event-calendar .ec-navigation input { padding:7px; min-height:44px; max-width:100%; border:1px solid #b5a99a; font:inherit; background:white; color:#2c2621; }
.event-calendar .ec-month-title { text-transform:capitalize; font-family:Georgia,serif; font-size:1.7rem; margin:22px 0 16px; }
.event-calendar .ec-week, .event-calendar .ec-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.event-calendar .ec-week { text-align:center; font-weight:700; background:#4a5540; color:white; padding:10px 0; }
.event-calendar .ec-grid { border-left:1px solid #e2d9cb; border-top:1px solid #e2d9cb; }
.event-calendar .ec-cell { min-height:124px; padding:6px; border-bottom:1px solid #e2d9cb; border-right:1px solid #e2d9cb; background:#fffdfa; min-width:0; }
.event-calendar .ec-other { background:#f2ebe0; }
.event-calendar .ec-day { display:flex; width:100%; align-items:center; justify-content:space-between; gap:3px; border:0; padding:5px 7px; }
.event-calendar .ec-day[aria-current="date"] { box-shadow:inset 0 -3px #c3902a; }
.event-calendar .ec-badge { display:inline-flex; border-radius:50%; min-width:20px; height:20px; justify-content:center; align-items:center; background:#4a5540; color:white; font-size:.72rem; }
.event-calendar .ec-event { display:block; background:#f5e7e1; color:#753720; border-left:3px solid #a4553a; margin-top:5px; padding:5px; font-size:.8rem; line-height:1.35; overflow-wrap:anywhere; text-decoration:none; }
.event-calendar .ec-event-culture { background:#fdf3d9; color:#63440a; border-color:#9c6b0b; }
.event-calendar .ec-event-association { background:#eceee6; color:#38452e; border-color:#5e6a51; }
.event-calendar .ec-event:hover { text-decoration:underline; }
.event-calendar .ec-more { display:block; font-size:.75rem; margin:5px; }
.event-calendar .ec-help { color:#6a6055; font-size:.9rem; }
.event-calendar .ec-count { font-weight:700; margin:24px 0 14px; }
.event-calendar [data-calendar-event]:focus { outline:3px solid #c3902a; outline-offset:3px; }
@media(max-width:650px) {
  .event-calendar .ec-cell { min-height:57px; padding:2px; }
  .event-calendar .ec-day { flex-direction:column; justify-content:center; padding:3px 0; min-height:52px; gap:1px; }
  .event-calendar .ec-week { font-size:.75rem; }
  .event-calendar .ec-event, .event-calendar .ec-more { display:none; }
  .event-calendar .ec-navigation { padding:10px; gap:6px; }
  .event-calendar .ec-navigation > div { flex:1; min-width:130px; }
  .event-calendar .ec-navigation input { width:100%; }
}
@media print {
  .event-calendar :is(.ec-controls,[data-calendar-panel],.ec-count) { display:none!important; }
  .event-calendar [data-calendar-event][hidden] { display:flex!important; }
}
