/* RSVP event calendar. Responsive and isolated from the submission form. */
.event-selection-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start;margin:19px 0}
.event-selection-layout .event-picker{margin:0;min-width:0;width:100%}
.event-calendar{min-width:0;width:100%;border:1px solid #5f8480;border-radius:14px;background:#0d2730;padding:clamp(12px,2.5vw,18px)}
.event-calendar h3{font-size:14px;line-height:1.3;margin:0 0 9px;color:var(--mint)}
.calendar-controls{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:5px;align-items:center;margin-bottom:8px}
.calendar-controls strong{font-size:13px;text-align:center;line-height:1.2;text-transform:capitalize}
.calendar-controls button{width:34px;height:34px;border:1px solid #628e84;border-radius:8px;color:var(--mint);background:#183a40;font-size:24px;line-height:1}
.calendar-controls button:hover{background:#2d514c}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.calendar-weekdays{margin-bottom:4px}
.calendar-weekdays span{text-align:center;font-size:10px;color:var(--muted);font-weight:700}
.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-width:0;min-height:61px;width:100%;padding:5px 2px;border:1px solid transparent;border-radius:8px;background:#142f37;color:var(--muted);font-size:13px;line-height:1.2}
.calendar-day.has-events{background:#1c3d41;border-color:#4a8173;color:#f5fff9;cursor:pointer}
.calendar-day.has-open{border-color:#8fcfb0}
.calendar-day.has-events:hover{background:#2e5751}
.calendar-day.is-selected,.calendar-day.is-selected:hover{background:var(--mint);color:#09332b;border-color:var(--mint)}
.calendar-day.is-today{box-shadow:inset 0 0 0 1px var(--gold)}
.calendar-day-icons{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1px;max-width:100%;font-size:16px;line-height:1.1}
.calendar-day-icons small{font-size:9px;font-weight:800}
.calendar-empty{min-height:61px}
.calendar-day-events{margin-top:10px;border-top:1px solid #416769;padding-top:9px}
.calendar-day-events strong{display:block;font-size:12px;margin-bottom:6px}
.calendar-option{display:flex;gap:7px;text-align:left;align-items:flex-start;width:100%;border:1px solid #4d8078;border-radius:8px;background:#18383d;color:var(--text);padding:8px;font-size:12px;line-height:1.3;margin-top:5px}
.calendar-option:hover{background:#2b524c}
.calendar-hint{color:var(--muted);font-size:11px;line-height:1.4;margin:10px 0 0}
@media(max-width:480px){.calendar-weekdays,.calendar-grid{gap:2px}.calendar-day,.calendar-empty{min-height:48px}.calendar-day-icons{font-size:13px}}
@media(max-width:380px){.event-calendar{padding:9px}.calendar-day,.calendar-empty{min-height:45px}}
