.success-banner {
  background: #dff1c0;
  border-left: 4px solid #547b2c;
  padding: 15px 18px;
  margin-bottom: 28px;
  font-weight: 700;
}

.form-row.two {
  grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 750px) {
  .form-row.two { grid-template-columns: 1fr; }
}

.application-record { border: 1px solid var(--line); padding: 22px; }
.application-record header { display: flex; justify-content: space-between; gap: 18px; }
.application-record h3 { margin-bottom: 5px; }
.application-record p { color: var(--muted); margin: 3px 0; font-size: .85rem; }
.application-record .application-notes { margin: 15px 0; padding: 12px; background: #f3f5f1; color: var(--ink); }
.approval-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--line); padding-top: 15px; margin-top: 15px; }
.approval-controls label { display: flex; align-items: center; gap: 7px; font-size: .78rem; font-weight: 700; }
.approval-controls button { border: 1px solid var(--line); background: #fff; padding: 8px 12px; cursor: pointer; }
.approval-controls .accept { background: var(--mint); border-color: var(--mint); }

.member-record { border: 1px solid var(--line); border-left: 5px solid #7ba15d; padding: 18px; display: grid; grid-template-columns: 1fr auto; gap: 12px; }
.member-record.membership-expiring { border-left-color: #e3a92f; background: #fffaf0; }
.member-record.membership-expired { border-left-color: #bd4a3d; background: #fff4f1; }
.member-record h3 { margin: 0 0 6px; font-size: 1rem; }
.membership-number { display: inline-block; margin-left: 6px; color: var(--river); font: 700 .68rem "DM Sans"; letter-spacing: .06em; }
.member-record p { margin: 3px 0; color: var(--muted); font-size: .8rem; }
.membership-flag { text-transform: uppercase; font-size: .62rem; font-weight: 700; letter-spacing: .08em; }
.member-actions { grid-column: 1/-1; display: flex; gap: 8px; padding-top: 8px; }
.member-actions button { border: 1px solid var(--line); background: #fff; padding: 7px 11px; cursor: pointer; }
.member-actions .remove { color: #9a3027; }
.calendar-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 30px; }
.calendar-heading>div>p { margin-bottom: 0; }
.calendar-heading label { display: grid; gap: 5px; font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.calendar-heading input { padding: 10px; border: 1px solid var(--line); font: inherit; }
.day-calendar { display: grid; gap: 10px; }
.calendar-row { display: grid; grid-template-columns: 85px 1fr 1fr; gap: 22px; align-items: center; border: 1px solid var(--line); padding: 18px; }
.calendar-row time { font: 800 1.25rem Manrope; color: var(--river); }
.calendar-row time small { display: block; font: 500 .7rem "DM Sans"; color: var(--muted); }
.calendar-row h3 { margin: 0 0 4px; font-size: 1rem; }
.calendar-row p { margin: 0; color: var(--muted); font-size: .8rem; }
.emergency-contact { border-left: 1px solid var(--line); padding-left: 22px; }
.emergency-contact span { display: block; font-size: .62rem; text-transform: uppercase; color: var(--muted); letter-spacing: .09em; }
#edit-member-dialog { width: min(620px,calc(100% - 30px)); border: 0; padding: 0; color: var(--ink); }
#edit-member-dialog::backdrop { background: #062f32cc; }
#edit-member-form { padding: 35px; }
.dialog-heading { display: flex; justify-content: space-between; align-items: center; }
.dialog-heading h2 { margin: 0; font-size: 2rem; }
.dialog-heading button { border: 0; background: none; font-size: 1.8rem; cursor: pointer; }
@media(max-width:750px){.calendar-heading{align-items:stretch;flex-direction:column}.calendar-row{grid-template-columns:60px 1fr}.emergency-contact{grid-column:2;border-left:0;padding-left:0}}

.calendar-view-switch { display: flex; border: 1px solid var(--line); background: #fff; }
.calendar-view-switch button { border: 0; border-right: 1px solid var(--line); background: #fff; padding: 9px 15px; cursor: pointer; font-weight: 700; }
.calendar-view-switch button:last-child { border-right: 0; }
.calendar-view-switch button.active { background: var(--river); color: #fff; }
.calendar-toolbar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; margin-bottom: 18px; }
.calendar-toolbar>div { display: flex; gap: 5px; }
.calendar-toolbar button { border: 1px solid var(--line); background: #fff; min-height: 36px; padding: 6px 12px; cursor: pointer; }
.calendar-toolbar h3 { margin: 0; font-size: 1.25rem; text-align: center; }
.calendar-toolbar input { justify-self: end; border: 1px solid var(--line); padding: 8px; }
.outlook-calendar { border: 1px solid #ccd5d0; background: #fff; }
.month-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); }
.weekday { background: #f1f4f0; color: var(--muted); text-transform: uppercase; font-size: .65rem; letter-spacing: .08em; padding: 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.month-day { min-height: 125px; padding: 7px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow: hidden; cursor: pointer; }
.month-day:nth-child(7n) { border-right: 0; }
.month-day.outside { background: #f7f8f6; color: #a7b1aa; }
.month-day.today .day-number { background: var(--river); color: #fff; }
.day-number { width: 25px; height: 25px; border-radius: 50%; display: grid; place-items: center; margin-left: auto; font-size: .75rem; }
.calendar-event { background: #dceeed; border-left: 3px solid #17757a; padding: 4px 5px; margin-top: 4px; display: flex; gap: 5px; align-items: baseline; overflow: hidden; font-size: .68rem; color: var(--ink); }
.calendar-event.training-event { background: #e8e1f4; border-left-color: #75539a; }
.calendar-event.coach-availability-event { background: #e3f1d9; border-left-color: #5d8d42; }
.calendar-event time { font-weight: 700; }
.calendar-event strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calendar-event span { color: var(--muted); }
.more-events { border: 0; background: none; color: var(--river); font-size: .68rem; padding: 4px; cursor: pointer; }
.day-column-heading { padding: 12px 18px; background: #f1f4f0; border-bottom: 1px solid var(--line); font-weight: 700; }
.day-event { display: grid; grid-template-columns: 85px 1fr 1fr; align-items: center; gap: 20px; padding: 18px; border-bottom: 1px solid var(--line); border-left: 4px solid #17757a; }
.day-event.training-event { border-left-color: #75539a; background: #fcfaff; }
.day-event.coach-availability-event { border-left-color: #5d8d42; background: #f8fcf5; }
.availability-note { color: #416b2c; }
.day-event:last-child { border-bottom: 0; }
.day-event>time { color: var(--river); font: 800 1.2rem Manrope; }
.day-event>time small { display: block; color: var(--muted); font: 500 .7rem "DM Sans"; }
.day-event h3 { margin: 0 0 4px; font-size: 1rem; }
.day-event p { margin: 0; font-size: .8rem; color: var(--muted); }
.outlook-year { border: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; background: transparent; }
.mini-month { background: #fff; border: 1px solid var(--line); padding: 15px; }
.mini-month h3 { font-size: .9rem; margin: 0 0 10px; color: var(--river); }
.mini-month>div { display: grid; grid-template-columns: repeat(7,1fr); gap: 2px; }
.mini-month span,.mini-day { min-height: 25px; display: grid; place-items: center; font-size: .65rem; }
.mini-week { color: var(--muted); font-weight: 700; }
.mini-day { position: relative; border: 0; background: transparent; cursor: pointer; border-radius: 50%; }
.mini-day:hover { background: #edf2ee; }
.mini-day.has-booking { background: #dceeed; color: var(--river); font-weight: 800; }
.mini-day i { position: absolute; right: -1px; top: -2px; width: 12px; height: 12px; background: var(--river); color: #fff; border-radius: 50%; font: 500 .5rem "DM Sans"; display: grid; place-items: center; }
@media(max-width:900px){.outlook-year{grid-template-columns:repeat(2,1fr)}.month-day{min-height:95px}.calendar-event time{display:none}}
@media(max-width:650px){.calendar-toolbar{grid-template-columns:1fr auto}.calendar-toolbar h3{grid-row:2;grid-column:1/-1}.calendar-toolbar input{justify-self:end}.outlook-year{grid-template-columns:1fr}.weekday{font-size:.55rem}.month-day{min-height:70px;padding:3px}.calendar-event{font-size:0;padding:3px;min-height:8px}.calendar-event strong{font-size:.58rem}.day-event{grid-template-columns:60px 1fr}.day-event .emergency-contact{grid-column:2}.calendar-view-switch button{padding:8px 10px}}

.session-summary { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 35px; }
.session-summary article { background: #f2f5f1; border-top: 3px solid var(--river); padding: 16px; }
.session-summary article.summary-due { background: #fff5df; border-top-color: #db9d22; }
.session-summary span { display: block; color: var(--muted); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.session-summary strong { display: block; margin-top: 5px; font: 800 1.35rem Manrope; }
.training-manage select { min-width: 190px; border: 1px solid var(--line); padding: 7px; background: #fff; font: inherit; font-size: .72rem; }
@media(max-width:650px){.session-summary{grid-template-columns:repeat(2,1fr)}}

.availability-heading { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 35px; }
.availability-heading h2 { font-size: 2rem; margin-bottom: 8px; }
.availability-heading p { color: var(--muted); margin: 0; }
.availability-heading label { display: grid; gap: 5px; text-transform: uppercase; font-size: .68rem; font-weight: 700; }
.availability-heading input { border: 1px solid var(--line); padding: 10px; font: inherit; }
.availability-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 35px; }
.availability-columns>div>h3 { font-size: 1.4rem; }
.availability-list { display: grid; gap: 10px; }
.availability-card { border: 1px solid var(--line); border-left: 4px solid #6c9d56; padding: 15px; }
.availability-card.unavailable { border-left-color: #b84a40; background: #fff5f2; }
.availability-card.not-declared { border-left-color: #9aa5a0; }
.availability-card header { display: flex; justify-content: space-between; gap: 15px; }
.availability-card h4 { margin: 0 0 3px; font-size: .95rem; }
.availability-card p { margin: 0; color: var(--muted); font-size: .78rem; }
.availability-card header>span { font-size: .62rem; text-transform: uppercase; font-weight: 800; }
.availability-card button { margin-top: 10px; border: 1px solid var(--line); background: #fff; padding: 6px 9px; cursor: pointer; font-size: .7rem; }
.availability-reason { margin-top: 10px!important; color: #853b34!important; font-weight: 700; }
.booking-slots,.coach-slot { display: grid; gap: 4px; margin-top: 10px; }
.booking-slots span { background: #edf2ee; padding: 6px 8px; font-size: .72rem; }
.free-day { margin-top: 10px!important; }
.coach-slot { grid-template-columns: auto 1fr auto; align-items: center; border-top: 1px solid var(--line); padding-top: 9px; font-size: .75rem; }
.coach-slot span { color: var(--muted); }
.coach-slot button { margin: 0; }
.compact-form { margin-top: 28px; background: #f3f5f1; padding: 20px; }
.compact-form h3 { margin: 0; font-size: 1rem; }
@media(max-width:800px){.availability-columns{grid-template-columns:1fr}.availability-heading{align-items:stretch;flex-direction:column}}
.coach-sessions { margin-top: 12px; padding: 10px; background: #e8e1f4; display: grid; gap: 5px; font-size: .74rem; }
.coach-sessions>strong { color: #634586; }
.coach-sessions span { display: block; }
.warning-button { background: #ffd37a; }
.weekday-picker { border: 1px solid var(--line); padding: 12px; display: flex; flex-wrap: wrap; gap: 10px; }
.weekday-picker legend { font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.weekday-picker label { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: 4px; text-transform: none; letter-spacing: 0; }
.weekday-picker input { width: auto; }
.boat-admin { grid-column: 1/-1; border-top: 1px solid var(--line); margin-top: 45px; padding-top: 35px; }
.inline-admin-form { grid-template-columns: 2fr 2fr 1fr auto; align-items: end; margin-bottom: 25px; }
.inline-admin-form .form-status { grid-column: 1/-1; }
@media(max-width:750px){.inline-admin-form{grid-template-columns:1fr}}
.messages-layout { display: grid; grid-template-columns: 1.5fr .7fr; gap: 45px; }
.messages-layout h2 { font-size: 2rem; margin-bottom: 8px; }
.messages-layout>div>p { color: var(--muted); }
.message-list { display: grid; gap: 13px; margin-top: 25px; }
.message-card { border: 1px solid var(--line); border-left: 4px solid var(--river); padding: 20px; }
.message-card.pinned { background: #f6fbe9; border-left-color: #86a936; }
.message-card header { display: flex; justify-content: space-between; gap: 15px; }
.message-card header span { color: #638027; font-size: .6rem; font-weight: 800; letter-spacing: .1em; }
.message-card h3 { margin: 3px 0 12px; font-size: 1.1rem; }
.message-card>p { white-space: normal; color: var(--ink); }
.message-card footer { color: var(--muted); font-size: .72rem; border-top: 1px solid var(--line); padding-top: 10px; }
.message-card button { border: 0; background: none; color: #9a3027; cursor: pointer; }
.message-form { background: #f2f5f1; padding: 22px; height: max-content; }
.message-form h3 { margin: 0; }
.conditions-heading { display: flex; justify-content: space-between; gap: 25px; align-items: end; margin-bottom: 28px; }
.conditions-heading h2 { font-size: 2rem; margin-bottom: 8px; }
.conditions-heading p { max-width: 680px; color: var(--muted); margin: 0; }
.conditions-heading button { border: 1px solid var(--line); background: #fff; padding: 9px 13px; cursor: pointer; }
.condition-cards { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 25px; }
.condition-cards article { background: var(--deep); color: #fff; padding: 20px; }
.condition-cards span,.condition-cards small { display: block; color: #b9cbc7; font-size: .7rem; }
.condition-cards strong { display: block; color: var(--mint); font: 800 1.8rem Manrope; margin: 6px 0; }
.conditions-updated { grid-column: 1/-1; color: var(--muted); font-size: .72rem; margin: 0; }
.windy-frame { position: relative; min-height: 520px; }
.windy-frame iframe { border: 0; width: 100%; height: 520px; }
.conditions-credit { color: var(--muted); font-size: .72rem; margin-top: 12px; }
.conditions-credit a { text-decoration: underline; }
.portal-form .check-line { display: flex; align-items: center; gap: 10px; }
.portal-form .check-line input { width: auto; margin: 0; }
.record.needs-attention { outline: 3px solid #d99a24; background: #fff7df; }
.forgot-password { width: max-content; color: var(--river); text-decoration: underline; }
.membership-overview { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 32px; }
.membership-overview article { padding: 22px; background: #e8ede5; border-top: 4px solid var(--river); }
.membership-overview span,.membership-overview small { display: block; color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; }
.membership-overview strong { display: block; margin: 8px 0 3px; font: 700 1.05rem Manrope; text-transform: capitalize; }
.membership-overview .membership-expiring { border-top-color: #d99a24; background: #fff7df; }
.membership-overview .membership-expired { border-top-color: #b94137; background: #fff0ed; }
.bulk-availability { margin-top: 42px; padding: 32px; background: #e8ede5; display: grid; grid-template-columns: .7fr 1.3fr; gap: 45px; }
.bulk-availability .portal-form { background: #fff; padding: 25px; }
@media(max-width:850px){.messages-layout{grid-template-columns:1fr}.condition-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.membership-overview{grid-template-columns:repeat(2,1fr)}.bulk-availability{grid-template-columns:1fr}}
@media(max-width:500px){.condition-cards,.membership-overview{grid-template-columns:1fr}.conditions-heading{align-items:stretch;flex-direction:column}}
.member-booking-calendar{margin:0 0 36px;padding:28px;background:#fff;border:1px solid var(--line)}
.member-calendar-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.member-calendar-heading h2,.member-calendar-heading p{margin-bottom:4px}
.member-calendar-key{display:flex;gap:10px;font-size:.72rem;font-weight:700}.member-calendar-key span:before{content:'';display:inline-block;width:10px;height:10px;margin-right:5px;background:#17757a}.member-calendar-key .training-key:before{background:#75539a}
.member-calendar-toolbar{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:6px;margin-bottom:12px}.member-calendar-toolbar h3{margin:0;text-align:center}.member-calendar-toolbar button{border:1px solid var(--line);background:#fff;padding:8px 12px;cursor:pointer}
.member-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.member-calendar-weekday{padding:8px;text-align:center;background:var(--deep);color:#fff;font-size:.7rem;font-weight:700}.member-calendar-day{min-height:105px;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.member-calendar-day.outside{background:#f3f5f2;color:#9aa49f}.member-calendar-day.today{box-shadow:inset 0 0 0 2px var(--lime)}.member-day-number{display:block;font-size:.75rem;font-weight:700}
.member-calendar-event{display:grid;grid-template-columns:auto 1fr;gap:2px 5px;margin-top:5px;padding:5px;background:#dceeed;border-left:3px solid #17757a;font-size:.65rem;overflow:hidden}.member-calendar-event.training{background:#e8e1f4;border-left-color:#75539a}.member-calendar-event strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-calendar-event small{grid-column:1/-1;text-transform:capitalize;color:var(--muted)}
@media(max-width:650px){.member-booking-calendar{padding:14px}.member-calendar-heading{align-items:start;flex-direction:column}.member-calendar-day{min-height:55px;padding:3px}.member-calendar-event{display:block;min-height:8px;font-size:0}.member-calendar-event time,.member-calendar-event small{display:none}.member-calendar-event strong{font-size:.55rem}.member-calendar-toolbar{grid-template-columns:auto 1fr auto}.member-calendar-toolbar #member-calendar-today{display:none}.member-calendar-toolbar h3{font-size:1rem}.member-calendar-weekday{font-size:.55rem;padding:5px 2px}}
.quarter-time-picker{display:grid;grid-template-columns:minmax(75px,1fr) auto minmax(75px,1fr);align-items:center;gap:7px}.quarter-time-picker select{width:100%}.quarter-time-picker>span{font-weight:800;color:var(--muted)}
.portal-page .container{width:calc(100% - 48px);max-width:none}
.portal-page .login-card{width:min(100%,1000px)}
.portal-page .management-panel .management-summary.large{grid-template-columns:repeat(6,minmax(135px,1fr))}
@media(max-width:1200px){.portal-page .management-panel .management-summary.large{grid-template-columns:repeat(3,1fr)}}
@media(max-width:750px){.portal-page .container{width:calc(100% - 24px)}}
