.member-main { padding-bottom: 65px; }
.member-main > h1 { font-size: clamp(2rem,5vw,3.4rem); margin-block: 22px 30px; }
.member-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-block: 25px 35px; }
.member-heading h1 { font-size: clamp(2.2rem,5vw,3.4rem); margin-bottom: 15px; }
.member-grid { display: grid; gap: 25px; }
.membership-tools { overflow-wrap: anywhere; }
.membership-tools > p, .membership-tools section > p { margin-bottom: 22px; }
.membership-tools section > h2 { margin-bottom: 22px; }
.membership-tools details > summary { cursor: pointer; padding-block: 12px; min-height: 44px; }
.member-card { background: var(--sand); border: 1px solid var(--line); border-radius: 7px; padding: 24px; min-width: 0; }
.member-card h2 { font-size: 1.5rem; margin-bottom: 20px; }
.member-card h3 { font-size: 1.1rem; margin-bottom: 10px; }
.member-card p { font-size: .95rem; }
.member-muted { color: var(--muted); font-size: .85rem !important; }
.upcoming-item { padding-block: 18px; border-top: 1px solid var(--line); }
.upcoming-item p { margin-bottom: 8px; }
.upcoming-item h3 a { text-decoration: none; }
.upcoming-item h3 a:hover { text-decoration: underline; }
.item-label { font-size: .78rem !important; font-weight: 700; color: var(--orange); }
.member-actions { display: flex; flex-wrap: wrap; gap: 15px; align-items: center; margin-top: 24px; }
.programming-through { font-size: 1.2rem !important; font-weight: 700; }
.login-main { max-width: 560px; padding-top: 35px; }
.member-form label { display: block; font-weight: 700; font-size: .9rem; margin-block: 18px 8px; }
.member-form input:not([type=checkbox]):not([type=hidden]),.member-form select,.member-form textarea,.calendar-toolbar select { width: 100%; min-width: 0; min-height: 46px; padding: 11px; background: white; color: var(--ink); border: 1px solid #9ba9ad; border-radius: 5px; font: inherit; font-size: 1rem; }
.member-form textarea { resize: vertical; }
.member-form .button { margin-top: 18px; }
.member-form fieldset { min-width: 0; border: 1px solid var(--line); border-radius: 6px; padding: 15px; margin-block: 25px; }
.member-form legend { font-weight: 800; padding-inline: 7px; }
.form-columns { display: grid; gap: 0 20px; }
.member-check { display: flex !important; align-items: center; gap: 10px; min-height: 44px; }
.member-check input { width: 22px; height: 22px; flex: none; }
.calendar-toolbar { display: flex; gap: 15px; flex-wrap: wrap; align-items: center; margin-bottom: 20px; }
.calendar-toolbar label { font-weight: 700; }
.calendar-toolbar select { width: auto; max-width: 100%; flex: 1 1 210px; }
#calendar { margin-block: 25px 35px; --fc-border-color: #d4d8d4; --fc-button-bg-color: var(--navy); --fc-button-border-color: var(--navy); --fc-button-hover-bg-color: var(--ink); --fc-button-hover-border-color: var(--ink); --fc-button-active-bg-color: var(--orange); --fc-button-active-border-color: var(--orange); --fc-today-bg-color: #f0ede3; --fc-event-bg-color: #f0ede3; --fc-event-text-color: var(--ink); --fc-event-border-color: #c4cbc7; }
.fc .fc-toolbar-title { font-size: 1.35rem; }
.fc .fc-button { min-height: 44px; font-size: .85rem; }
.fc .fc-daygrid-event { padding: 5px; margin-bottom: 4px; white-space: normal; }
.fc-event .calendar-item { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.calendar-item-label { display: block; white-space: normal; overflow-wrap: anywhere; font-size: .68rem; font-weight: 750; color: var(--muted); line-height: 1.5; }
.calendar-item-title { display: block; font-size: .9rem; line-height: 1.4; font-weight: 700; overflow-wrap: anywhere; }
.calendar-item-meta { font-size: .75rem; }
.fc .fc-list-event td { padding-block: 16px; }
.fc .fc-list-event:hover td { background: var(--sand); }
.fc .fc-list-event-title { cursor: pointer; }
.fc .fc-list-event-graphic { display: none; }
.fc .fc-daygrid-event.prescribed-plan { border-left: 4px solid var(--orange); }
.fc .fc-daygrid-event.added-plan { border-left: 4px solid var(--ink); }
.fc .fc-daygrid-event.club-activity { background: var(--navy); color: white; }
.fc .fc-daygrid-event.club-activity .calendar-item-label { color: #d7ddeb; }
.fc .fc-daygrid-event.completed-plan { border-left: 4px solid var(--ink); background: #e9efeb; }
.fc .fc-daygrid-event.canceled-plan { opacity: .7; }
.member-dialog { width: min(720px,calc(100% - 24px)); max-height: 92dvh; overflow: auto; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); color: var(--ink); }
.member-dialog::backdrop { background: #142e39b3; }
.dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.dialog-heading h2 { font-size: 1.6rem; }
.dialog-close { min-width: 65px; min-height: 44px; border: 1px solid var(--line); border-radius: 5px; background: white; color: var(--ink); font: inherit; font-size: .85rem; cursor: pointer; }
.prescription-info { background: var(--sand); padding: 15px; border-radius: 5px; white-space: pre-line; font-size: .9rem; }
.danger-link { color: var(--orange); }
.coach-convenience { margin-top: 35px; }
.coach-convenience summary { cursor: pointer; font-weight: 700; min-height: 44px; padding-block: 12px; }
#activity-response { margin-top: 30px; }
#rsvp-list article { border-bottom: 1px solid var(--line); padding-block: 15px; }
@media (min-width: 768px) { .member-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .form-columns { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 599px) {
 .member-card,.member-dialog { padding: 18px; }
 .fc .fc-toolbar.fc-header-toolbar { display: grid; gap: 12px; }
 .fc .fc-toolbar-chunk { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
 .fc .fc-list-day-text,.fc .fc-list-day-side-text { font-size: .82rem; }
 .fc .fc-list-event-time { font-size: .75rem; white-space: normal; max-width: 78px; }
 .calendar-toolbar .button { flex: 1 1 auto; }
 .fc .fc-daygrid-event .calendar-item-title { font-size: .7rem; }
 .fc .fc-daygrid-day-number { padding: 2px; }
}

.fc .fc-list-event.club-activity .calendar-item-label { color: var(--orange); }
.fc .fc-list-event.completed-plan td { background: #e9efeb; }

.calendar-scroll-hint { display: none; }
@media (max-width: 599px) {
 .calendar-scroll-hint { display: block; }
 .fc .fc-view-harness { overflow-x: auto; }
 .fc .fc-dayGridMonth-view, .fc .fc-timeGridWeek-view { min-width: 700px; }
}
