.calendar-toolbar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.5rem 0}.calendar-toolbar h3{font:2rem var(--serif);margin-right:auto;color:var(--wine)}.calendar-toolbar button{border:1px solid #c9b6a8;background:white;color:var(--wine);padding:.65rem 1rem;font:inherit;cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #ddcfc0;border-top:1px solid #ddcfc0;background:white}.calendar-weekday{padding:.75rem;text-align:center;background:var(--wine);color:white;font-size:.9rem}.calendar-day{min-height:125px;padding:.6rem;border-right:1px solid #ddcfc0;border-bottom:1px solid #ddcfc0}.calendar-day.empty{background:#f0eae1}.calendar-date{display:block;font-size:.9rem;margin-bottom:.5rem}.calendar-day.calendar-current-day .calendar-date{background:var(--wine);color:white;border-radius:50%;width:1.7rem;height:1.7rem;text-align:center;line-height:1.7rem}.calendar-event{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--wine);background:#f6e7eb;color:#64152a;padding:.45rem;margin:.35rem 0;font:inherit;font-size:.85rem;cursor:pointer}.calendar-event.rosary{background:#f8f0d8;border-color:#b18a30;color:#62501e}.calendar-row{display:flex;gap:1.25rem;padding:1rem;background:white;border-bottom:1px solid #ddcfc0}.calendar-row time{min-width:6rem;color:var(--wine)}.calendar-row button{border:0;background:none;text-align:left;font:inherit;color:var(--wine);cursor:pointer}.calendar-add{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.5rem 0}.calendar-add a{color:var(--wine);border:1px solid #c9b6a8;padding:.6rem;font-size:1rem}[hidden]{display:none!important}@media(max-width:700px){.calendar-grid{display:none}#calendar-toggle{display:none}.calendar-toolbar{gap:.5rem}.calendar-toolbar h3{width:100%;font-size:1.8rem}.calendar-row{gap:.65rem}.calendar-row time{min-width:5rem}}

/* Keep long titles inside their date tiles and list rows. */
.calendar-day{min-width:0}.calendar-event{white-space:normal;overflow-wrap:anywhere;line-height:1.4}.calendar-row{min-width:0}.calendar-row button{min-width:0;overflow-wrap:anywhere}.calendar-row time{flex-shrink:0}
/* Keep the phone calendar controls together above the event list. */
@media(max-width:700px){.calendar-toolbar h3{order:-1;flex-basis:100%;margin:0 0 .4rem}.calendar-toolbar{align-items:center;gap:.5rem}}
