.calendar-hero { padding-bottom: 1.5rem; }
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.calendar-heading { margin:1rem 0; }
.calendar-heading h2 { text-align:center; font-size:clamp(1.5rem,5vw,2.4rem); }
.calendar-notice { margin:1rem 0; padding:.85rem 1rem; border:1px solid var(--gold); border-radius:14px; color:var(--gold); background:rgba(240,189,85,.08); }
.month-weekdays,.month-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.month-weekdays span { text-align:center; color:var(--muted); font-size:.78rem; font-weight:800; padding:.55rem; }
.month-grid { border-top:1px solid var(--line); border-left:1px solid var(--line); border-radius:18px; overflow:hidden; }
.month-day { min-height:125px; padding:.45rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(13,52,68,.64); }
.month-day.outside { opacity:.45; }
.month-day.is-today { box-shadow:inset 0 0 0 2px var(--gold); }
.date-number,.calendar-date { background:transparent; color:var(--cream); padding:.25rem; border-radius:8px; }
.is-today .date-number { background:var(--gold); color:var(--ink); }
.date-events { display:grid; gap:.3rem; margin-top:.3rem; }
.calendar-event { width:100%; display:grid; grid-template-columns:auto 1fr; text-align:left; justify-content:start; gap:.35rem; padding:.38rem .45rem; border-radius:9px; font-size:.72rem; line-height:1.2; overflow:hidden; background:#49657a; color:#fff; }
.calendar-event span { opacity:.78; white-space:nowrap; }
.calendar-event b { font-family:inherit; overflow:hidden; text-overflow:ellipsis; }
.calendar-event.real-estate { background:#dca632; color:#061925; }
.calendar-event.wedding { background:#477dc4; }
.calendar-event.family { background:#3b936d; }
.calendar-event.appointment { background:#9b6ac0; }
.calendar-event.smx { background:#f07832; color:#061925; }
.calendar-week { display:grid; grid-template-columns:repeat(7,1fr); gap:.6rem; }
.calendar-day { min-width:0; }
.calendar-date { font-weight:900; color:var(--gold); margin-bottom:.65rem; }
.agenda { display:grid; gap:.75rem; }
.agenda-day { display:grid; grid-template-columns:105px 1fr; gap:1rem; }
.agenda-date { display:grid; align-content:start; }
.agenda-date span { color:var(--gold); font-weight:900; text-transform:uppercase; font-size:.78rem; }
.agenda-date b { font-family:Georgia,serif; font-size:1.4rem; }
.agenda-events { display:grid; gap:.45rem; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.checkbox input { width:auto; }
.event-detail dl { display:grid; grid-template-columns:100px 1fr; gap:.5rem 1rem; }
.event-detail dt { color:var(--muted); font-weight:800; }
.event-detail dd { margin:0; }
.event-detail .button { margin-top:1rem; }
.pill.real-estate { border-color:#dca632; color:var(--gold); }
.pill.wedding { border-color:#477dc4; color:#8fc5ff; }
@media(max-width:780px) {
  .month-day { min-height:88px; padding:.22rem; }
  .month-weekdays span { font-size:.65rem; }
  .calendar-event { grid-template-columns:1fr; padding:.28rem; font-size:.62rem; }
  .calendar-event span { display:none; }
  .calendar-week { grid-template-columns:1fr; }
  .agenda-day { grid-template-columns:76px 1fr; }
  .two-col { grid-template-columns:1fr; }
}
