:root {
  color-scheme: light;
  --navy: #0b1f3a;
  --navy-2: #12335c;
  --blue: #1868d5;
  --blue-soft: #eaf2ff;
  --gold: #f2b84b;
  --ink: #132033;
  --muted: #667085;
  --line: #dfe5ec;
  --surface: #ffffff;
  --surface-2: #f6f8fb;
  --surface-soft: #f7f8fa;
  --success: #167c53;
  --success-soft: #eaf7f1;
  --danger: #b42318;
  --danger-soft: #fff0ee;
  --warning: #a15c00;
  --warning-soft: #fff7e6;
  --shadow: 0 10px 28px rgba(20, 36, 58, 0.08);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--surface-2); }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--surface-2); }
button, input, select { font: inherit; }
button, select, input { min-height: 42px; }
button { cursor: pointer; }
a { color: var(--blue); text-decoration: none; }
a:hover { text-decoration: underline; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 268px minmax(0, 1fr); }
.sidebar {
  position: sticky; top: 0; align-self: start; height: 100vh; padding: 26px 18px 20px;
  background: linear-gradient(180deg, var(--navy) 0%, #07172d 100%); color: white;
  display: flex; flex-direction: column; gap: 28px;
}
.brand { display: flex; align-items: center; gap: 12px; padding: 0 8px; }
.brand-mark { width: 44px; height: 44px; border-radius: 14px; background: var(--gold); color: var(--navy); display: grid; place-items: center; font-weight: 900; letter-spacing: -1px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.25); }
.brand-name { font-weight: 800; font-size: 17px; letter-spacing: -.2px; }
.brand-subtitle { font-size: 12px; color: #aebed2; margin-top: 2px; }
.side-nav { display: flex; flex-direction: column; gap: 5px; }
.nav-item { border: 0; background: transparent; color: #cbd6e4; padding: 10px 12px; border-radius: 11px; display: flex; align-items: center; gap: 12px; text-align: left; font-weight: 650; }
.nav-item:hover { background: rgba(255,255,255,.07); color: white; }
.nav-item.is-active { background: rgba(255,255,255,.12); color: white; }
.nav-icon { width: 22px; text-align: center; color: #8eb8ef; font-size: 18px; }
.sidebar-bottom { margin-top: auto; display: grid; gap: 10px; }
.season-card { padding: 14px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); border-radius: 14px; display: grid; gap: 3px; }
.season-card .eyebrow { color: #9fb0c5; }
.season-card .muted { color: #aebed2; font-size: 12px; }

.main-panel { min-width: 0; display: flex; flex-direction: column; }
.topbar { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 26px 34px 18px; background: rgba(246,248,251,.92); backdrop-filter: blur(10px); position: sticky; top: 0; z-index: 10; border-bottom: 1px solid rgba(223,229,236,.72); }
.topbar h1 { margin: 0; font-size: clamp(24px, 2.5vw, 34px); letter-spacing: -.8px; }
.topbar p { margin: 5px 0 0; color: var(--muted); font-size: 14px; }
.mobile-brand { display: none; font-size: 12px; font-weight: 800; color: var(--blue); margin-bottom: 4px; }
.topbar-actions { display: flex; align-items: end; gap: 10px; }
.role-control, .student-control { display: grid; gap: 4px; color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
select, input[type="search"] { border: 1px solid var(--line); background: white; color: var(--ink); border-radius: 10px; padding: 8px 11px; font-size: 14px; outline: none; }
select:focus, input:focus { border-color: #8bb9f2; box-shadow: 0 0 0 3px rgba(24,104,213,.12); }
.avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--navy); color: white; display: grid; place-items: center; font-weight: 800; }

.content { padding: 12px 34px 36px; width: 100%; max-width: 1500px; margin: 0 auto; }
.app-footer { margin-top: auto; padding: 14px 34px 28px; color: #8a94a3; display: flex; justify-content: space-between; gap: 16px; font-size: 12px; }

.grid { display: grid; gap: 16px; }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dashboard-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, .75fr); gap: 18px; margin-top: 18px; }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 2px 7px rgba(20,36,58,.03); }
.card-pad { padding: 18px; }
.card-header { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 14px; }
.card-title { margin: 0; font-size: 16px; letter-spacing: -.2px; }
.card-subtitle { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.collapsible-panel-header > :first-child { min-width: 0; flex: 1 1 auto; }
.collapsible-panel-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex: 0 0 auto; }
.panel-collapse-toggle {
  width: 36px;
  min-height: 36px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface);
  color: var(--muted);
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
}
.panel-collapse-toggle:hover { color: var(--blue); border-color: #8bb9f2; background: var(--blue-soft); }
.panel-collapse-toggle:focus-visible { outline: 3px solid rgba(24,104,213,.2); outline-offset: 2px; }
.panel-collapse-symbol { font-size: 19px; line-height: 1; transform: translateY(-1px); }
.is-collapsed > .card-header { margin-bottom: 0; }

.kpi { padding: 18px; min-height: 126px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; position: relative; }
.kpi::after { content: ""; position: absolute; width: 70px; height: 70px; border-radius: 50%; background: var(--blue-soft); right: -18px; top: -20px; }
.kpi-label { color: var(--muted); font-size: 13px; font-weight: 650; }
.kpi-value { font-size: 30px; font-weight: 850; letter-spacing: -1px; }
.recruitment-addition { color:var(--danger); font-weight:900; white-space:nowrap; }
.active-grade-panel { position:relative; z-index:1; margin-top:10px; padding:9px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }
.active-grade-panel > span { display:block; margin-bottom:6px; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.active-grade-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; }
.active-grade-grid > div { min-width:0; display:flex; align-items:baseline; justify-content:space-between; gap:4px; }
.active-grade-grid span { color:var(--muted); font-size:11px; white-space:nowrap; }
.active-grade-grid strong { color:var(--ink); font-size:14px; }
.active-grade-grid .recruitment-addition { color:var(--danger); font-weight:900; }

.dashboard-event-legend { display:flex; gap:18px; flex-wrap:wrap; margin:12px 0 16px; color:var(--muted); font-size:12px; }
.dashboard-event-legend span { display:inline-flex; align-items:center; gap:7px; }
.dashboard-event-swatch { display:inline-block; width:12px; height:12px; border-radius:3px; }
.dashboard-event-swatch.is-returning, .dashboard-event-segment.is-returning { background:#171717; }
.dashboard-event-swatch.is-recruited, .dashboard-event-segment.is-recruited { background:#c62828; }
.dashboard-event-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 26px; }
.dashboard-event-item { min-width:0; }
.dashboard-event-label { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:5px; font-size:12px; }
.dashboard-event-label > a { min-width:0; font-weight:700; font-size:14px; line-height:1.4; color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.dashboard-event-label > a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; border-radius:2px; }
.dashboard-event-note { font-size:13px; margin:0 0 16px; line-height:1.5; }
.dashboard-event-warning { font-size:14px; color:var(--text); }
.dashboard-event-label strong { white-space:nowrap; font-size:13px; }
.dashboard-event-track { display:flex; width:100%; height:10px; overflow:hidden; border-radius:999px; background:var(--surface-2); border:1px solid var(--line); }
.dashboard-event-segment { display:block; height:100%; flex:none; }
@media (max-width:820px) { .dashboard-event-grid { grid-template-columns:1fr; } }
.kpi-note { font-size: 12px; color: var(--muted); }
.kpi.alert::after { background: var(--danger-soft); }
.kpi.alert .kpi-value { color: var(--danger); }

.section-spacer { margin-top: 18px; }
.eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; color: var(--muted); }
.muted { color: var(--muted); }

.badge { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; padding: 5px 9px; background: #eef2f6; color: #465568; font-size: 12px; font-weight: 700; white-space: nowrap; }
.badge.blue { background: var(--blue-soft); color: #1559ad; }
.badge.green { background: var(--success-soft); color: var(--success); }
.badge.red { background: var(--danger-soft); color: var(--danger); }
.badge.gold { background: var(--warning-soft); color: var(--warning); }
.event-chip { display: inline-flex; border: 1px solid #d9e4f1; background: #f8fbff; color: #254665; border-radius: 999px; padding: 5px 9px; font-size: 12px; margin: 3px 4px 3px 0; }

.timeline { display: grid; }
.timeline-row { display: grid; grid-template-columns: 86px 1fr auto; gap: 14px; align-items: start; padding: 14px 0; border-top: 1px solid #edf0f4; }
.timeline-row:first-child { border-top: 0; padding-top: 2px; }
.date-tile { text-align: center; border-radius: 12px; background: var(--surface-2); padding: 8px 6px; }
.date-tile strong { display: block; font-size: 20px; }
.date-tile span { color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; }
.timeline-main strong { display: block; font-size: 14px; }
.timeline-main p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.schedule-day-note { margin-top: 12px; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink); }
.schedule-day > .schedule-day-note { margin: 16px; }

.dashboard-upcoming-schedule { border-color: #c9d9ef; box-shadow: 0 5px 18px rgba(20,36,58,.06); }
.dashboard-upcoming-schedule > .card-header { align-items: center; }
.dashboard-upcoming-schedule .eyebrow { color: var(--blue); display: block; margin-bottom: 4px; }
.season-meeting-row { background: linear-gradient(90deg, rgba(24,104,213,.055), transparent 72%); border-radius: 12px; padding-left: 8px; padding-right: 8px; }
.season-meeting-details { margin-top: 10px; padding: 12px 14px; border: 1px solid #d7e5f7; border-radius: 12px; background: #f8fbff; color: var(--ink); }
.season-meeting-details p { margin: 7px 0 0; color: #465568; font-size: 12px; line-height: 1.55; }
.season-meeting-details a { color: var(--blue); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.season-meeting-details a:hover { text-decoration: underline; }
.season-meeting-meta { display: flex; gap: 8px 16px; flex-wrap: wrap; font-size: 12px; font-weight: 800; color: #24496e; }

.conflict-list { display: grid; gap: 9px; }
.conflict-item { border: 1px solid #f0cbc7; background: #fffafa; padding: 11px 12px; border-radius: 12px; }
.conflict-item strong { font-size: 13px; }
.conflict-item p { margin: 4px 0 0; font-size: 12px; color: #7f3c35; line-height: 1.4; }

.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 8px 0 16px; flex-wrap: wrap; }
.toolbar-left, .toolbar-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.search { width: min(330px, 72vw); }
.segmented { display: inline-flex; padding: 3px; background: #e9edf2; border-radius: 11px; }
.segmented button { min-height: 36px; border: 0; background: transparent; border-radius: 8px; padding: 6px 11px; color: #5a6878; font-weight: 700; font-size: 13px; }
.segmented button.is-active { background: white; color: var(--ink); box-shadow: 0 1px 4px rgba(20,36,58,.12); }
.primary-button, .ghost-button, .danger-button { border-radius: 10px; padding: 9px 13px; font-weight: 750; font-size: 13px; }
.primary-button.small, .ghost-button.small, .danger-button.small { padding: 6px 9px; border-radius: 8px; font-size: 11px; }
.primary-button { border: 1px solid var(--blue); background: var(--blue); color: white; }
.primary-button:hover { background: #125cbf; }
.ghost-button { border: 1px solid var(--line); background: white; color: var(--ink); }
.ghost-button:hover { background: #f8fafc; }
.danger-button { border: 1px solid #efc2bc; background: #fff5f3; color: var(--danger); }
.full { width: 100%; }

.schedule-day { margin-bottom: 16px; overflow: hidden; }
.schedule-day-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 17px; background: #fbfcfe; border-bottom: 1px solid var(--line); }
.schedule-day-head.card-header { margin-bottom: 0; }
.schedule-day-head strong { font-size: 15px; }
.schedule-day-head span { color: var(--muted); font-size: 12px; }
.past-schedule > summary { cursor: pointer; color: var(--ink); }
.past-schedule > .muted { margin: 10px 0 14px; }
.past-schedule .schedule-day { margin-top: 14px; }
.session-list { padding: 5px 16px 10px; }
.session { display: grid; grid-template-columns: 105px 1fr 145px minmax(120px,auto); gap: 12px; align-items: center; padding: 11px 0; border-top: 1px solid #edf0f4; }
.session:first-child { border-top: 0; }
.session-time { color: var(--muted); font-size: 12px; font-weight: 700; }
.session-event { font-weight: 750; font-size: 13px; }
.session-room { color: var(--muted); font-size: 12px; }
.session-actions { display:flex; gap:7px; align-items:center; justify-content:flex-end; flex-wrap:wrap; }

.student-layout { display: grid; grid-template-columns: minmax(270px, .85fr) minmax(0, 1.4fr); gap: 16px; }
.student-list { max-height: 680px; overflow: auto; }
.student-row { width: 100%; min-height: 58px; border: 0; border-top: 1px solid #edf0f4; background: white; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 14px; text-align: left; }
.student-row:first-child { border-top: 0; }
.student-row:hover, .student-row.is-active { background: #f6f9fd; }
.student-name { font-weight: 750; }
.student-meta { display:block; color: var(--muted); font-size: 12px; margin-top: 3px; line-height:1.25; }
.free-block-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-2);
}
.free-block-summary span,
.mechanical-roster-row span { color: var(--muted); font-size: 12px; }
.mechanical-roster { display: grid; gap: 8px; }
.mechanical-roster-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.detail-hero { padding: 20px; background: linear-gradient(135deg, #0d2a4e, #174675); color: white; border-radius: 15px; margin-bottom: 16px; }
.detail-hero h2 { margin: 0; font-size: 24px; }
.detail-hero p { margin: 4px 0 0; color: #c7d5e7; font-size: 13px; }

.event-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.event-card { padding: 16px; display: flex; flex-direction: column; gap: 14px; min-height: 166px; }
.event-card h3 { font-size: 15px; margin: 0; }
.event-card-top { display: flex; justify-content: space-between; gap: 12px; }
.event-card-top.card-header { margin-bottom: 0; }
.avatar-stack { display: flex; align-items: center; }
.mini-avatar { width: 29px; height: 29px; border: 2px solid white; border-radius: 50%; background: #dce8f6; color: #234566; display: grid; place-items: center; font-size: 10px; font-weight: 850; margin-left: -6px; }
.mini-avatar:first-child { margin-left: 0; }

.tournament-card { padding: 18px; }
.tournament-title { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.tournament-title.card-header { margin-bottom: 0; }
.tournament-title h3 { margin: 0; font-size: 17px; }
.tournament-meta { display: flex; gap: 12px; flex-wrap: wrap; color: var(--muted); font-size: 12px; margin-top: 8px; }
.availability-box { margin-top: 16px; padding-top: 15px; border-top: 1px solid #edf0f4; }
.availability-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.availability-actions button { min-height: 36px; border: 1px solid var(--line); border-radius: 9px; background: white; padding: 6px 11px; color: #4a596a; font-size: 12px; font-weight: 750; }
.availability-actions button.is-active[data-status="yes"] { background: var(--success-soft); border-color: #b8e3d2; color: var(--success); }
.availability-actions button.is-active[data-status="maybe"] { background: var(--warning-soft); border-color: #f2d9a9; color: var(--warning); }
.availability-actions button.is-active[data-status="no"] { background: var(--danger-soft); border-color: #efc3be; color: var(--danger); }

.my-hero { padding: 24px; background: linear-gradient(135deg, #0a2241 0%, #164d7e 70%, #1d6298 100%); color: white; border-radius: 18px; box-shadow: var(--shadow); }
.my-hero .eyebrow { color: #a9c8e7; }
.my-hero h2 { margin: 5px 0 4px; font-size: 28px; }
.my-hero p { color: #cbd9e8; margin: 0; }
.my-event-chips { margin-top: 15px; }
.my-event-chips .event-chip { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.2); color: white; }
.next-session { border-left: 4px solid var(--blue); padding: 14px 15px; }

.resource-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.resource-link { display: block; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: white; color: var(--ink); }
.resource-link strong { display: block; font-size: 13px; }
.resource-link span { display: block; color: var(--muted); font-size: 11px; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resource-link:hover { text-decoration: none; border-color: #adc8e8; }
.resource-toolbar { display: grid; grid-template-columns: minmax(180px, 1.4fr) minmax(170px, 1fr) minmax(160px, .9fr) auto; gap: 10px; align-items: center; margin: 12px 0 14px; }
.resource-toolbar input, .resource-toolbar select, .resource-toolbar button { min-height: 40px; }
.resource-event-group, .division-c-panel { border: 1px solid var(--line); border-radius: 14px; background: var(--surface); overflow: hidden; }
.resource-event-group + .resource-event-group { margin-top: 10px; }
.division-c-panel { padding: 0; }
.division-c-panel > .resource-event-group { margin: 0 12px 12px; }
.division-c-panel > .resource-event-group:first-of-type { margin-top: 0; }
.resource-event-summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 12px 14px; cursor: pointer; color: var(--ink); font-size: 13px; font-weight: 800; }
.resource-event-summary::-webkit-details-marker { display: none; }
.resource-event-summary::before { content: '▸'; color: var(--blue); transition: transform .18s ease; }
.resource-event-group[open] > .resource-event-summary::before, .division-c-panel[open] > .resource-event-summary::before { transform: rotate(90deg); }
.resource-event-summary > span:first-child { flex: 1; min-width: 0; }
.resource-event-group .resource-list { padding: 0 14px 14px; }
.resource-type-badge { display: inline-block; width: max-content; margin: 0 0 7px; padding: 3px 7px; border-radius: 999px; background: var(--blue-soft); color: var(--blue); font-size: 10px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.resource-link.workshop-resource { min-height: 98px; }
.resource-panel-count { color: var(--muted); font-size: 11px; font-weight: 800; white-space: nowrap; }
.coach-resource-panel { margin-top: 18px; }
.coach-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.coach-resource-event { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-2); }
.coach-resource-event .card-header { align-items: flex-start; }
.coach-resource-event .ghost-button { white-space: nowrap; }
.coach-resource-links { display: grid; gap: 10px; }
.coach-resource-links .resource-link { background: white; }
.coach-resource-links .empty { padding: 22px 14px; background: white; border: 1px dashed var(--line); border-radius: 12px; }
.coach-resource-more { margin-top: 10px; }
.coach-resource-more summary { cursor: pointer; color: var(--blue); font-size: 12px; font-weight: 800; }
.coach-resource-more .coach-resource-links { margin-top: 10px; }
.coach-coverage-event + .coach-coverage-event { border-top: 1px solid var(--line); }
.coach-coverage-event .card-header { align-items: flex-start; margin-bottom: 10px; }
.coach-coverage-title { display: block; font-size: 14px; }
.coach-coverage-meta { margin-top: 3px; font-size: 12px; }
.coach-coverage-resources { display: grid; gap: 8px; }
.coach-coverage-resources .resource-link.workshop-resource { min-height: 0; padding: 11px 12px; }
.coach-coverage-resources .resource-link span:last-child { white-space: normal; }
.coach-resource-more .coach-coverage-resources { margin-top: 10px; }

.empty { padding: 34px 20px; text-align: center; color: var(--muted); }
.empty strong { display: block; color: var(--ink); margin-bottom: 5px; }
.notice { padding: 12px 14px; border-radius: 12px; background: var(--blue-soft); color: #234f83; font-size: 13px; line-height: 1.5; }
.notice.warning { background: var(--warning-soft); color: #7c4b0a; }

.bottom-nav { display: none; }
.toast { position: fixed; right: 24px; bottom: 24px; background: #132033; color: white; padding: 11px 14px; border-radius: 10px; box-shadow: var(--shadow); font-size: 13px; opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s ease; z-index: 100; }
.toast.show { opacity: 1; transform: translateY(0); }


.schedule-tournaments { margin-bottom: 2px; }
.meeting-overview { overflow:hidden; }
.meeting-overview-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.meeting-stat { display:grid; align-content:center; gap:5px; min-height:102px; padding:13px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.meeting-stat > span { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.meeting-stat > strong { font-size:25px; line-height:1.05; letter-spacing:-.6px; }
.meeting-stat > small { color:var(--muted); font-size:10px; line-height:1.35; }
.meeting-months { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px 12px; margin-top:15px; padding-top:15px; border-top:1px solid var(--line); }
.meeting-month { display:grid; gap:5px; }
.meeting-month > div:first-child { display:flex; justify-content:space-between; gap:8px; color:var(--muted); font-size:10px; }
.meeting-month > div:first-child strong { color:var(--ink); }
.meeting-month-track { height:7px; overflow:hidden; border:1px solid var(--line); border-radius:999px; background:var(--surface-2); }
.meeting-month-track span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--blue),#5a9beb); }
.tournament-schedule-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tournament-schedule-row { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.tournament-schedule-row > div { min-width: 0; }
.tournament-schedule-row strong { display: block; margin-top: 3px; font-size: 13px; }
.tournament-schedule-row p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.tournament-note { margin-top: 12px; }

.access-layout { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.4fr); gap: 16px; align-items: start; }
.access-user-list { max-height: 700px; overflow: auto; }
.access-user-row { width: 100%; border: 0; border-top: 1px solid #edf0f4; background: var(--surface); color: var(--ink); padding: 12px 14px; display: flex; justify-content: space-between; align-items: center; gap: 10px; text-align: left; }
.access-user-row:first-child { border-top: 0; }
.access-user-row:hover, .access-user-row.is-active { background: var(--blue-soft); }
.access-user-row > div { min-width: 0; display: grid; gap: 3px; }
.access-user-row strong, .access-user-row span { overflow: hidden; text-overflow: ellipsis; }
.access-user-row > div > span { color: var(--muted); font-size: 11px; white-space: nowrap; }
.access-form { display: grid; gap: 15px; }
.access-form > label { display: grid; gap: 6px; font-size: 12px; font-weight: 750; }
.access-form input[type="text"], .access-form input[type="tel"], .access-form select { width: 100%; border: 1px solid var(--line); background: var(--surface); color: var(--ink); border-radius: 10px; padding: 9px 11px; outline: none; }
.access-form input[type="text"]:focus, .access-form input[type="tel"]:focus, .access-form select:focus { border-color: #8bb9f2; box-shadow: 0 0 0 3px rgba(24,104,213,.12); }
.role-fieldset { margin: 0; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); min-width: 0; }
.role-fieldset legend { padding: 0 5px; font-size: 12px; font-weight: 800; }
.role-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.role-choice { display: flex; align-items: flex-start; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); min-width: 0; }
.role-choice input { width: 17px; height: 17px; min-height: auto; margin-top: 1px; flex: 0 0 auto; }
.role-choice span { min-width: 0; display: grid; gap: 2px; }
.role-choice strong { font-size: 12px; }
.role-choice small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.parent-link-grid { display: grid; gap: 7px; max-height: 320px; overflow: auto; }
.parent-link-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(150px, .8fr); gap: 8px; align-items: center; padding: 8px 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
.parent-child-check { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 12px; font-weight: 650; }
.parent-child-check input { width: 16px; height: 16px; min-height: auto; flex: 0 0 auto; }
.parent-child-check span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.parent-link-row select:disabled { opacity: .55; }
.access-role-panel { display: grid; gap: 8px; padding: 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); }
.form-label { font-size: 12px; font-weight: 800; }
.field-help { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; max-height: 260px; overflow: auto; }
.check-item { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 8px 9px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); font-size: 12px; font-weight: 650; }
.check-item input { min-height: auto; width: 16px; height: 16px; flex: 0 0 auto; }
.check-item span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.access-actions { display: flex; gap: 9px; flex-wrap: wrap; }
button:disabled { cursor: not-allowed; opacity: .55; }

@media (max-width: 1120px) {
  .meeting-overview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-layout { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {

  .role-choice-grid { grid-template-columns: 1fr; }
  .parent-link-row { grid-template-columns: 1fr; }
  body { padding-bottom: 72px; }
  .app-shell { display: block; min-height: auto; }
  .sidebar { display: none; }
  .topbar { padding: 16px 16px 13px; align-items: flex-start; }
  .topbar h1 { font-size: 24px; }
  .topbar p { display: none; }
  .mobile-brand { display: block; }
  .topbar-actions { gap: 7px; }
  .role-control > span, .student-control > span { display: none; }
  .avatar { display: none; }
  select { max-width: 132px; min-height: 40px; }
  .content { padding: 10px 14px 24px; }
  .app-footer { padding: 12px 16px 18px; }
  .grid-3, .grid-2 { grid-template-columns: 1fr; }
  .student-layout, .access-layout { grid-template-columns: 1fr; }
  .access-user-list { max-height: 300px; }
  .tournament-schedule-grid { grid-template-columns: 1fr; }
  .meeting-overview-grid { grid-template-columns:1fr 1fr; }
  .meeting-months { grid-template-columns:1fr 1fr; }
  .student-list { max-height: 310px; }
  .event-grid { grid-template-columns: 1fr; }
  .coach-resource-grid { grid-template-columns: 1fr; }
  .coach-resource-event .card-header { flex-direction: column; }
  .coach-resource-event .collapsible-panel-actions { width: 100%; }
  .coach-resource-event .ghost-button { width: 100%; }
  .resource-list { grid-template-columns: 1fr; }
  .resource-toolbar { grid-template-columns: 1fr; }
  .resource-toolbar input, .resource-toolbar select, .resource-toolbar button { width: 100%; min-height: 40px; max-width: none; }
  .resource-event-summary { align-items: flex-start; }
  .session { grid-template-columns: 88px 1fr; }
  .session-room, .session-actions { grid-column: 2; }
  .session-actions { justify-content:flex-start; }
  .timeline-row { grid-template-columns: 70px 1fr; }
  .timeline-row > .badge { grid-column: 2; width: max-content; }
  .bottom-nav { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; bottom: 0; left: 0; right: 0; padding: 7px max(8px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); background: rgba(255,255,255,.96); border-top: 1px solid var(--line); backdrop-filter: blur(12px); z-index: 50; }
  .bottom-item { border: 0; min-width: 0; min-height: 50px; border-radius: 10px; background: transparent; color: #7a8796; display: grid; place-items: center; align-content: center; gap: 2px; }
  .bottom-item span { font-size: 18px; line-height: 1; }
  .bottom-item small { font-size: 9px; font-weight: 700; }
  .bottom-item.is-active { color: var(--blue); background: var(--blue-soft); }
  .toast { left: 14px; right: 14px; bottom: 84px; text-align: center; }
}

@media (max-width: 520px) {
  .meeting-overview-grid { grid-template-columns:1fr; }
  .grid-4 { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kpi { min-height: 112px; padding: 14px; }
  .kpi-value { font-size: 26px; }
  .card-pad { padding: 14px; }
  .topbar { gap: 8px; }
  .topbar-actions { flex-direction: column; align-items: stretch; }
  .topbar-actions select { width: 124px; }
  .my-hero { padding: 19px; }
}

@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --ink: #e7edf5;
    --muted: #9aabba;
    --line: #2a3a4d;
    --surface: #101c2b;
    --surface-2: #091522;
    --surface-soft: #152334;
    --blue-soft: #102b49;
    --success-soft: #102e24;
    --danger-soft: #351a1b;
    --warning-soft: #322510;
  }
  html, body { background: var(--surface-2); }
  .topbar { background: rgba(9,21,34,.92); }
  select, input[type="search"], .ghost-button, .availability-actions button, .resource-link, .student-row { background: var(--surface); color: var(--ink); }
  .coach-resource-links .resource-link, .coach-resource-links .empty { background: var(--surface); }
  .schedule-day-head { background: #0d1928; }
  .segmented { background: #172536; }
  .segmented button.is-active { background: #26364a; color: white; }
  .date-tile { background: #152334; }
  .conflict-item { background: #251819; }
  .event-chip { background: #10283f; border-color: #264765; color: #b8d3ee; }
  .bottom-nav { background: rgba(16,28,43,.96); }
}

/* Authentication and signed-in identity */
[hidden] { display: none !important; }
.auth-screen {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px 18px;
  background:
    radial-gradient(circle at 20% 15%, rgba(24,104,213,.16), transparent 30%),
    radial-gradient(circle at 80% 80%, rgba(242,184,75,.13), transparent 28%),
    linear-gradient(160deg, #07172d 0%, #0b1f3a 62%, #102b49 100%);
}
.auth-card {
  width: min(440px, 100%);
  background: var(--surface);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 28px 70px rgba(0,0,0,.28);
  padding: 28px;
}
.auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.auth-subtitle { color: var(--muted); }
.auth-loading { min-height: 210px; display: grid; place-items: center; align-content: center; gap: 14px; text-align: center; color: var(--muted); }
.auth-loading p { margin: 0; }
.spinner { width: 34px; height: 34px; border: 3px solid var(--line); border-top-color: var(--blue); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.auth-form { display: grid; gap: 16px; }
.auth-form h1 { margin: 0; font-size: 28px; letter-spacing: -.7px; }
.auth-form p { margin: 5px 0 0; color: var(--muted); line-height: 1.5; }
.auth-form label { display: grid; gap: 7px; font-size: 13px; font-weight: 750; }
.auth-form input {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: var(--surface);
  color: var(--ink);
  padding: 10px 12px;
  font-size: 16px;
  outline: none;
}
.auth-form input:focus { border-color: #8bb9f2; box-shadow: 0 0 0 3px rgba(24,104,213,.12); }
.link-button { border: 0; background: transparent; color: var(--blue); min-height: auto; padding: 2px 0; text-align: left; font-weight: 700; }
.auth-message { min-height: 20px; font-size: 13px; line-height: 1.45; color: var(--muted); }
.auth-message.error, .auth-error { color: var(--danger); }
.auth-message.success { color: var(--success); }
.auth-help { font-size: 12px; border-top: 1px solid var(--line); padding-top: 14px; }
.user-summary { display: flex; align-items: center; gap: 9px; }
.user-copy { display: grid; justify-items: end; gap: 2px; }
.user-copy strong { font-size: 13px; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-copy span { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }

@media (max-width: 820px) {
  .auth-screen { min-height: calc(100vh - 1px); padding: 18px 14px; }
  .auth-card { padding: 22px; border-radius: 18px; }
  .user-copy { display: none; }
  #signOutButton { min-height: 40px; padding: 7px 10px; }
  .student-control select { max-width: 118px; }
}

@media (max-width: 520px) {
  .topbar-actions { flex-direction: row; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
  #signOutButton { font-size: 12px; }
}


/* v5 Tryout dashboard (admin-only) */
.tryout-insights { display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:16px; }
.tryout-bars { display:grid; gap:11px; }
.tryout-bars.compact { gap:8px; }
.tryout-bar-row { display:grid; gap:6px; min-width:0; }
.tryout-bar-label { display:flex; justify-content:space-between; gap:10px; align-items:baseline; min-width:0; font-size:12px; }
.tryout-bar-label strong { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.tryout-bar-label span { color:var(--muted); white-space:nowrap; font-size:11px; }
.tryout-bar-track { height:8px; border-radius:999px; background:var(--surface-2); overflow:hidden; border:1px solid var(--line); }
.tryout-bar-track span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--blue),#5a9beb); }
.event-interest-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 24px; }
.duplicate-list { display:grid; gap:8px; }
.duplicate-row { display:flex; justify-content:space-between; gap:16px; align-items:center; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }
.duplicate-row strong { font-size:13px; }
.duplicate-row span { color:var(--muted); font-size:11px; text-align:right; }
.tryout-review-layout { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr); gap:16px; align-items:start; }
.tryout-table-card { overflow:hidden; }
.tryout-table-wrap { overflow:auto; max-height:760px; }
.tryout-table { width:100%; border-collapse:collapse; min-width:760px; }
.tryout-table th { position:sticky; top:0; z-index:1; background:var(--surface-2); color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-size:10px; text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
.tryout-table td { padding:10px 12px; border-top:1px solid #edf0f4; font-size:12px; vertical-align:middle; }
.tryout-table tr.is-active td { background:var(--blue-soft); }
.tryout-student-button { display:grid; gap:2px; min-height:auto; padding:0; border:0; background:transparent; color:inherit; text-align:left; }
.tryout-student-button strong { font-size:12px; }
.tryout-student-button span { color:var(--muted); font-size:10px; }
.tryout-detail { position:sticky; top:116px; max-height:calc(100vh - 140px); overflow:auto; }
.tryout-detail-name { font-size:20px; }
.contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:16px; }
.contact-grid > div { padding:10px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); display:grid; gap:3px; min-width:0; }
.contact-grid span { color:var(--muted); font-size:10px; text-transform:uppercase; font-weight:750; letter-spacing:.04em; }
.contact-grid strong { font-size:11px; overflow-wrap:anywhere; }
.tryout-detail-section { margin-top:14px; }
.tryout-detail-section h3, .tryout-response h3 { margin:0 0 6px; font-size:12px; }
.tryout-response { margin-top:14px; padding-top:13px; border-top:1px solid var(--line); }
.tryout-response p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; white-space:pre-wrap; }
.notice.danger { border-color:#f0cbc7; background:var(--danger-soft); color:var(--danger); }

@media (max-width:1120px) {
  .tryout-insights { grid-template-columns:1fr 1fr; }
  .tryout-insights > :last-child { grid-column:1/-1; }
  .tryout-review-layout { grid-template-columns:1fr; }
  .tryout-detail { position:static; max-height:none; }
}
@media (max-width:820px) {
  .tryout-insights, .event-interest-grid { grid-template-columns:1fr; }
  .tryout-insights > :last-child { grid-column:auto; }
  .duplicate-row { align-items:flex-start; flex-direction:column; }
  .duplicate-row span { text-align:left; }
  .contact-grid { grid-template-columns:1fr; }
}

/* v5.1 Returning-member filter + candidate modal */
.tryout-table { min-width: 880px; }
.tryout-student-button { cursor: pointer; }
.tryout-student-button:hover strong { text-decoration: underline; }
.candidate-badges { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; padding-right:38px; }
.tryout-candidate-dialog {
  width: min(940px, calc(100% - 36px));
  max-width: 940px;
  max-height: calc(100vh - 48px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
  color: var(--text);
  box-shadow: 0 24px 80px rgba(20, 32, 50, .28);
}
.tryout-candidate-dialog::backdrop { background: rgba(21, 31, 46, .58); backdrop-filter: blur(2px); }
.tryout-dialog-shell { position:relative; max-height:calc(100vh - 48px); overflow:auto; padding:24px; }
.tryout-dialog-close {
  position:absolute;
  z-index:2;
  top:14px;
  right:14px;
  width:38px;
  height:38px;
  min-height:38px;
  padding:0;
  border-radius:999px;
  border:1px solid var(--line);
  background:var(--surface-2);
  color:var(--text);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.tryout-dialog-close:hover { background:var(--blue-soft); border-color:#b8d4f4; }
.tryout-dialog-header { padding-right:0; }

@media (max-width: 820px) {
  .tryout-candidate-dialog { width:calc(100% - 18px); max-height:calc(100vh - 18px); border-radius:14px; }
  .tryout-dialog-shell { max-height:calc(100vh - 18px); padding:18px; }
  .candidate-badges { justify-content:flex-start; padding-right:42px; }
}

/* v5.2 Membership dashboard */
.membership-portal-hero { display:flex; justify-content:space-between; align-items:center; gap:20px; background:linear-gradient(135deg,#0d2a4e,#174675); color:white; border-color:transparent; }
.membership-portal-hero h2 { margin:5px 0 8px; font-size:28px; }
.membership-portal-hero .eyebrow { color:#b9d0e8; }
.membership-hero-badges { display:flex; flex-wrap:wrap; gap:7px; }
.membership-year-box { min-width:170px; border:1px solid rgba(255,255,255,.22); border-radius:14px; padding:15px 18px; background:rgba(255,255,255,.08); display:grid; gap:2px; text-align:center; }
.membership-year-box span { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#c7d5e7; font-weight:800; }
.membership-year-box strong { font-size:34px; }
.membership-year-box small { color:#c7d5e7; font-size:10px; }
.membership-kpi-text { font-size:18px; line-height:1.25; overflow-wrap:anywhere; }
.membership-two-col { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.membership-two-col h3 { margin:0 0 10px; font-size:13px; }
.membership-checklist { display:grid; gap:0; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.membership-check-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-top:1px solid var(--line); background:var(--surface); font-size:12px; }
.membership-check-row:first-child { border-top:0; }
.membership-check-row > span:first-child { font-weight:650; }
.membership-check-status { display:flex; align-items:center; justify-content:flex-end; min-width:110px; }
.membership-check-control { min-width:108px; padding:6px 28px 6px 9px; border:1px solid var(--line); border-radius:999px; background:var(--surface-2); color:var(--ink); font:inherit; font-weight:700; }
.membership-check-control:focus { outline:2px solid var(--accent); outline-offset:1px; }
@media (max-width:720px) { .membership-check-control { min-width:100px; } }
.membership-fees { display:grid; gap:8px; }
.membership-fees > div { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px; background:var(--surface-2); border:1px solid var(--line); border-radius:10px; font-size:12px; }
.membership-fees .badge { white-space:normal; text-align:right; justify-content:flex-end; }
.membership-fee-status-control { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.membership-fee-received { display:inline-flex; align-items:center; gap:6px; font-weight:650; cursor:pointer; }
.membership-fee-received input { width:18px; height:18px; accent-color:var(--accent); }
.membership-fee-payment-notes { margin-top:12px; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); font-size:12px; line-height:1.55; }
.membership-fee-payment-notes strong { display:block; margin-bottom:6px; font-size:12px; }
.membership-form-action { margin-top:16px; }
.membership-form-link { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.membership-form-link:hover { text-decoration:none; }
.resource-form-actions { display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; }
.resource-form-actions .resource-link.resource-form-button { display:inline-flex; align-items:center; justify-content:center; padding:9px 13px; border:1px solid var(--blue); border-radius:10px; background:var(--blue); color:#fff; max-width:100%; min-height:42px; text-align:center; text-decoration:none; }
.resource-form-actions .resource-link.resource-form-button:hover { background:#125cbf; border-color:#125cbf; color:#fff; }
.resource-form-actions .resource-admin-control { max-width:100%; }
.membership-history { display:grid; gap:8px; }
.membership-history-row { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:11px 12px; border:1px solid var(--line); border-radius:11px; background:var(--surface-2); }
.membership-history-row > div { display:grid; gap:3px; }
.membership-history-row strong { font-size:13px; }
.membership-history-row span { color:var(--muted); font-size:10px; }
.empty-inline { color:var(--muted); font-size:12px; padding:8px 0; }
.membership-table-card { overflow:hidden; }
.membership-table-wrap { overflow:auto; max-height:720px; }
.membership-table { width:100%; min-width:920px; border-collapse:collapse; }
.membership-table th { position:sticky; top:0; z-index:1; background:var(--surface-2); color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-size:10px; text-align:left; padding:10px 12px; border-bottom:1px solid var(--line); }
.membership-table td { padding:11px 12px; border-top:1px solid var(--line); font-size:12px; vertical-align:middle; }
.membership-table tbody tr:hover td { background:rgba(24,104,213,.035); }
.membership-student-cell { display:grid; gap:3px; min-width:130px; }
.membership-student-cell strong { display:block; line-height:1.3; }
.membership-student-cell .student-meta { margin-top:0; white-space:normal; }
.membership-review { min-height:34px; padding:6px 10px; }
.membership-dialog { width:min(900px,calc(100% - 36px)); max-width:900px; max-height:calc(100vh - 48px); margin:auto; padding:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--ink); box-shadow:0 24px 80px rgba(20,32,50,.28); }
.membership-dialog::backdrop { background:rgba(21,31,46,.58); backdrop-filter:blur(2px); }
.membership-dialog-shell { position:relative; max-height:calc(100vh - 48px); overflow:auto; padding:24px; }
.membership-dialog-header { padding-right:46px; }
.membership-dialog-header h2 { margin:4px 0 8px; font-size:24px; }
.dialog-big-number { font-size:34px; font-weight:850; margin:6px 0; }
.dialog-big-text { font-size:20px; font-weight:800; margin:8px 0; }
.membership-backfill { padding:16px; border:1px solid #d8e5f5; background:var(--blue-soft); border-radius:13px; }
.membership-backfill h3 { margin:0; font-size:14px; }
.membership-backfill p { margin:4px 0 12px; color:var(--muted); font-size:11px; line-height:1.5; }
.membership-backfill form { display:grid; grid-template-columns:minmax(0,1fr) minmax(170px,.42fr) auto; gap:12px; align-items:end; }
.prior-season-fieldset { min-width:0; margin:0; padding:0; border:0; }
.prior-season-fieldset legend { margin-bottom:7px; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.prior-season-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.prior-season-option { display:flex; align-items:center; gap:9px; min-width:0; padding:9px 10px; border:1px solid var(--line); border-radius:10px; background:var(--surface); cursor:pointer; }
.prior-season-option:hover { border-color:#9bbde5; background:#f8fbff; }
.prior-season-option input { flex:0 0 auto; width:16px; height:16px; margin:0; accent-color:var(--blue); }
.prior-season-option-copy { display:grid; gap:2px; min-width:0; }
.prior-season-option-copy strong { font-size:12px; line-height:1.2; }
.prior-season-option-copy small { color:var(--muted); font-size:9px; line-height:1.25; overflow-wrap:anywhere; }
.prior-season-option.is-recorded { background:rgba(39,139,90,.07); border-color:rgba(39,139,90,.22); cursor:default; }
.prior-season-option.is-recorded input { opacity:.7; }
.prior-season-status { display:grid; gap:7px; }
.prior-season-status > span { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }

@media (max-width: 900px) {
  .membership-two-col { grid-template-columns:1fr; }
  .membership-summary-grid { grid-template-columns:1fr; }
}
@media (max-width: 820px) {
  .membership-portal-hero { align-items:stretch; flex-direction:column; }
  .membership-year-box { min-width:0; }
  .membership-kpis { grid-template-columns:1fr 1fr; }
  .membership-dialog { width:calc(100% - 18px); max-height:calc(100vh - 18px); border-radius:14px; }
  .membership-dialog-shell { max-height:calc(100vh - 18px); padding:18px; }
  .membership-backfill form { grid-template-columns:1fr; align-items:stretch; }
  .prior-season-options { grid-template-columns:1fr 1fr; }
}
@media (max-width: 520px) {
  .membership-kpis { grid-template-columns:1fr 1fr; }
  .prior-season-options { grid-template-columns:1fr; }
  .membership-history-row { align-items:flex-start; flex-direction:column; }
}

/* Tryout application scoring v5.4 */
.tryout-rank { width:44px; text-align:center; font-weight:800; color:var(--muted); }
.tryout-recruitment-cell { text-align:center; }
.tryout-recruitment-cell input { width:18px; height:18px; margin:0; accent-color:var(--blue); cursor:pointer; }
.tryout-recruitment-cell input:disabled { cursor:wait; }
.tryout-score-cell { display:grid; gap:2px; min-width:74px; }
.tryout-score-cell strong { font-size:15px; line-height:1; color:var(--navy); }
.tryout-score-cell span { font-size:10px; color:var(--muted); white-space:nowrap; }
.application-score-card { margin-top:16px; padding:16px; border:1px solid #cfe0f3; border-radius:14px; background:linear-gradient(180deg,#f7fbff,#fff); }
.application-score-card.is-unscored { border-color:var(--line); background:var(--surface-2); }
.application-score-summary { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; }
.application-score-summary > div { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.application-score-summary strong { font-size:24px; color:var(--navy); }
.application-score-summary p { margin:0; max-width:470px; color:var(--muted); font-size:11px; line-height:1.45; }
.application-score-components { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:14px; }
.application-score-components > div { display:grid; gap:4px; padding:10px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.application-score-components span { color:var(--muted); font-size:10px; }
.application-score-components strong { font-size:13px; }
.application-score-rationale { margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.application-score-rationale > span { display:block; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-size:9px; font-weight:800; }
.application-score-rationale p { margin:5px 0 0; font-size:11px; line-height:1.55; color:var(--muted); }
@media (max-width:760px) {
  .application-score-summary { display:grid; }
  .application-score-components { grid-template-columns:1fr 1fr; }
}

/* v5.5 Tournament Admin */
.tournament-admin-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.tournament-admin-toolbar-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.tournament-admin-drive-state { font-size:11px; color:var(--muted); font-weight:700; }
.tournament-admin-summary-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.tournament-admin-summary-grid .kpi { display:grid; gap:6px; min-height:96px; align-content:center; }
.tournament-admin-summary-grid .kpi span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.04em; font-weight:800; }
.tournament-admin-summary-grid .kpi strong { font-size:26px; }
.tournament-admin-fee-total { font-size:21px !important; }
.tournament-admin-table-card { overflow:hidden; padding:0; }
.tournament-admin-table-wrap { overflow:auto; max-height:720px; }
.tournament-admin-table { width:100%; min-width:1220px; border-collapse:collapse; }
.tournament-admin-table th { position:sticky; top:0; z-index:1; padding:10px 11px; background:var(--surface-2); border-bottom:1px solid var(--line); font-size:9px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; text-align:left; }
.tournament-admin-table td { padding:11px; border-top:1px solid var(--line); font-size:11px; vertical-align:middle; }
.tournament-admin-table td:first-child { min-width:170px; }
.tournament-admin-table td:first-child strong { display:block; line-height:1.25; }
.tournament-admin-table td:first-child small { display:block; color:var(--muted); margin-top:3px; }
.tournament-admin-status { display:inline-flex; white-space:nowrap; border-radius:999px; padding:4px 8px; font-size:9px; font-weight:800; background:var(--surface-2); border:1px solid var(--line); }
.tournament-admin-status.is-complete { background:#e8f6ee; border-color:#b9e0c8; color:#286a42; }
.tournament-admin-status.is-progress { background:#fff5d7; border-color:#ecd68e; color:#775b04; }
.tournament-admin-status.is-info { background:#eaf3ff; border-color:#bdd5f5; color:#205b9a; }
.tournament-admin-alert { display:inline-flex; white-space:nowrap; border-radius:999px; padding:5px 8px; font-size:9px; font-weight:850; border:1px solid transparent; }
.tournament-admin-alert.tone-red { background:#fdecec; color:#9c2e2e; border-color:#f1bcbc; }
.tournament-admin-alert.tone-yellow { background:#fff5d7; color:#775b04; border-color:#ecd68e; }
.tournament-admin-alert.tone-blue { background:#eaf3ff; color:#205b9a; border-color:#bdd5f5; }
.tournament-admin-alert.tone-green { background:#e8f6ee; color:#286a42; border-color:#b9e0c8; }
.tournament-admin-dialog { width:min(980px,calc(100% - 32px)); max-width:980px; max-height:calc(100vh - 36px); margin:auto; padding:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--ink); box-shadow:0 24px 80px rgba(20,32,50,.28); }
.tournament-admin-dialog::backdrop { background:rgba(21,31,46,.58); backdrop-filter:blur(2px); }
.tournament-admin-dialog-shell { position:relative; max-height:calc(100vh - 36px); overflow:auto; padding:24px; }
.tournament-admin-dialog-body { display:grid; gap:15px; }
.tournament-admin-dialog-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding-right:42px; }
.tournament-admin-dialog-header h2 { margin:5px 0 6px; }
.tournament-admin-dialog-header p { margin:0; color:var(--muted); }
.tournament-admin-dialog-actions,.tournament-admin-alert-list { display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.tournament-admin-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.tournament-admin-detail-grid .card,.tournament-admin-notes,.tournament-admin-documents { padding:16px; }
.tournament-admin-detail-grid h3,.tournament-admin-notes h3,.tournament-admin-documents h3,.tournament-admin-upload-form h3 { margin:0 0 12px; font-size:14px; }
.tournament-admin-edit-form label,.tournament-admin-upload-form label { display:grid; gap:5px; margin-top:10px; }
.tournament-admin-edit-form label > span,.tournament-admin-upload-form label > span { font-size:10px; color:var(--muted); font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.tournament-admin-edit-form input,.tournament-admin-edit-form select,.tournament-admin-edit-form textarea,.tournament-admin-upload-form input,.tournament-admin-upload-form select { width:100%; }
.tournament-admin-read-field { display:grid; gap:4px; padding:9px 0; border-top:1px solid var(--line); }
.tournament-admin-read-field:first-of-type { border-top:0; }
.tournament-admin-read-field span { font-size:10px; color:var(--muted); text-transform:uppercase; font-weight:800; }
.tournament-admin-read-field strong { font-size:13px; }
.tournament-admin-save-row { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-top:12px; }
.tournament-admin-form-error { color:#9c2e2e; font-size:11px; margin-right:auto; }
.tournament-admin-document-list { display:grid; gap:8px; }
.tournament-admin-document-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:10px 11px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }
.tournament-admin-document-row > div:first-child { min-width:0; display:grid; gap:3px; }
.tournament-admin-document-row span,.tournament-admin-document-row small { color:var(--muted); overflow-wrap:anywhere; }
.tournament-admin-document-actions { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
.tournament-admin-upload-form { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.tournament-admin-upload-grid { display:grid; grid-template-columns:minmax(150px,.5fr) minmax(220px,1fr) auto; gap:10px; align-items:end; }
.tournament-admin-upload-form small { display:block; margin-top:7px; color:var(--muted); }
@media (max-width:1050px) { .tournament-admin-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) {
  .tournament-admin-summary-grid { grid-template-columns:1fr; }
  .tournament-admin-detail-grid { grid-template-columns:1fr; }
  .tournament-admin-dialog { width:calc(100% - 14px); max-height:calc(100vh - 14px); border-radius:13px; }
  .tournament-admin-dialog-shell { padding:16px; max-height:calc(100vh - 14px); }
  .tournament-admin-dialog-header,.tournament-admin-document-row { flex-direction:column; align-items:stretch; }
  .tournament-admin-upload-grid { grid-template-columns:1fr; }
  .tournament-admin-document-actions { justify-content:flex-start; }
}

/* v5.9 Event Captain session management */
.session-management-dialog { width:min(980px,calc(100% - 32px)); max-width:980px; max-height:calc(100vh - 36px); margin:auto; padding:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--ink); box-shadow:0 24px 80px rgba(20,32,50,.28); }
.session-management-dialog::backdrop { background:rgba(21,31,46,.58); backdrop-filter:blur(2px); }
.session-management-shell { position:relative; max-height:calc(100vh - 36px); overflow:auto; padding:24px; }
.session-management-header { padding-right:48px; }
.session-management-header h2 { margin:5px 0 6px; font-size:24px; }
.session-management-header p { margin:0; color:var(--muted); font-size:12px; }
.session-tabs { display:flex; gap:8px; border-bottom:1px solid var(--line); margin:16px 0; }
.session-tab { border:0; border-bottom:3px solid transparent; padding:10px 12px 9px; background:transparent; color:var(--muted); font-weight:800; }
.session-tab:hover { color:var(--ink); background:var(--surface-2); }
.session-tab.is-active { color:var(--blue); border-bottom-color:var(--blue); }
.session-note-form,.session-material-section { padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface-2); }
.session-material-section { margin-top:16px; }
.session-note-form > label:not(.inline-check),.session-upload-form > label:not(.inline-check) { display:grid; gap:6px; }
.session-note-form > label > span,.session-upload-form > label > span { color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.session-note-form textarea,.session-upload-form input[type="file"] { width:100%; }
.session-note-form textarea { resize:vertical; min-height:130px; }
.inline-check { display:inline-flex; align-items:center; gap:7px; min-height:30px; color:var(--ink); font-size:11px; font-weight:700; }
.inline-check input { width:16px; height:16px; min-height:0; margin:0; accent-color:var(--blue); }
.session-form-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:10px; }
.session-upload-form { display:grid; grid-template-columns:minmax(220px,1fr) auto auto; gap:12px; align-items:end; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.session-upload-form .auth-message { grid-column:1 / -1; }
.session-material-list { display:grid; gap:8px; }
.session-material-row { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:11px 12px; border:1px solid var(--line); border-radius:11px; background:var(--surface); }
.session-material-copy { min-width:0; display:grid; gap:4px; }
.session-material-copy strong { overflow-wrap:anywhere; font-size:13px; }
.session-material-copy span { color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
.session-material-actions { display:flex; gap:7px; flex-wrap:wrap; justify-content:flex-end; align-items:center; }
.session-material-actions a { display:inline-flex; align-items:center; text-decoration:none; }
.session-management-summary { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:9px; padding-top:9px; border-top:1px solid var(--line); }
.session-management-summary:first-of-type { border-top:0; }
.session-management-summary > div { min-width:0; display:grid; gap:3px; }
.session-management-summary strong { font-size:13px; }
.session-management-summary span { color:var(--muted); font-size:11px; }
.captain-chip-row { display:grid; gap:6px; padding-top:10px; border-top:1px solid var(--line); }
.attendance-list { border-top:1px solid var(--line); }
.attendance-row { display:grid; grid-template-columns:minmax(150px,1fr) auto; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); }
.attendance-copy { min-width:0; display:grid; grid-template-columns:minmax(120px,.45fr) minmax(180px,1fr); gap:5px 10px; align-items:center; }
.attendance-copy strong { font-size:13px; }
.attendance-copy span { grid-column:1 / -1; color:var(--muted); font-size:10px; }
.attendance-note { width:100%; min-height:34px; padding:7px 9px; font-size:11px; }
.attendance-overlap { grid-column:1 / -1; padding:10px; border:1px solid var(--line); border-radius:8px; background:var(--warning-soft); overflow-wrap:anywhere; }
.attendance-overlap p { margin:5px 0 0; font-size:12px; line-height:1.5; }
.attendance-overlap .badge.gold { color:var(--ink); }
.attendance-actions { display:flex; gap:6px; flex-wrap:wrap; }
html .attendance-actions button[data-attendance-status] { color:#fff; border-color:#1769d2; background:#1769d2; }
html .attendance-actions button[data-attendance-status]:hover:not(:disabled) { background:#125cbf; border-color:#125cbf; }
html .attendance-actions button[data-attendance-status].is-active,
html .attendance-actions button[data-attendance-status].is-active:hover:not(:disabled) { color:#132033; background:#ffb020; border-color:#b85c00; box-shadow:inset 0 0 0 2px #fff; }
html .attendance-actions button[data-attendance-status]:focus-visible { outline:3px solid #6aa9ff; outline-offset:3px; }
html .attendance-actions button[data-attendance-status]:disabled { opacity:.6; cursor:wait; }
.student-session-note { padding:16px; border:1px solid var(--line); border-radius:13px; background:var(--surface-2); }
.student-session-note p { margin:0; color:var(--ink); font-size:13px; line-height:1.65; overflow-wrap:anywhere; }

@media (max-width:700px) {
  .session-management-dialog { width:calc(100% - 14px); max-height:calc(100vh - 14px); border-radius:13px; }
  .session-management-shell { max-height:calc(100vh - 14px); padding:16px; }
  .session-upload-form { grid-template-columns:1fr; align-items:stretch; }
  .session-material-row,.session-management-summary { align-items:stretch; flex-direction:column; }
  .session-material-actions { justify-content:flex-start; }
  .session-material-actions .inline-check { width:100%; }
  .attendance-row { grid-template-columns:1fr; }
  .attendance-copy { grid-template-columns:1fr; }
  .attendance-copy span { grid-column:1; }
  .attendance-actions button { flex:1 1 calc(50% - 6px); }
}


/* v5.10.13 Sunday practice signup details */
.sunday-signup-dialog { width:min(760px,calc(100% - 32px)); max-width:760px; margin:auto; padding:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--ink); }
.sunday-signup-shell { position:relative; padding:24px; display:grid; gap:16px; }
.sunday-signup-meta { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.sunday-signup-form { display:grid; gap:14px; }
.sunday-signup-form label,.sunday-admin-add label { display:grid; gap:6px; }
.sunday-signup-form textarea { min-height:110px; resize:vertical; }
.sunday-signup-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.sunday-admin-add { display:grid; grid-template-columns:minmax(160px,.8fr) minmax(180px,1fr) minmax(180px,1fr) auto; gap:10px; align-items:end; margin:12px 0 18px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.sunday-signup-table { display:grid; gap:0; }
.sunday-signup-row { display:grid; grid-template-columns:minmax(130px,.8fr) minmax(150px,1fr) minmax(110px,.7fr) minmax(120px,.7fr) minmax(170px,1.1fr) minmax(130px,.8fr) auto; gap:12px; align-items:start; padding:12px 0; border-bottom:1px solid var(--line); }
.sunday-signup-row.is-header { font-size:12px; font-weight:800; color:var(--muted); }
.sunday-signup-row p { margin:0; white-space:pre-wrap; }
[data-sunday-material-word-count].is-error,[data-sunday-admin-material-word-count].is-error,[data-sunday-admin-edit-material-word-count].is-error { color:var(--danger,#b42318); font-weight:800; }
@media (max-width:700px) { .sunday-signup-dialog { width:calc(100% - 14px); border-radius:13px; } .sunday-signup-shell { padding:16px; } .sunday-admin-add { grid-template-columns:1fr; } .sunday-signup-row { grid-template-columns:1fr; gap:5px; } .sunday-signup-row.is-header { display:none; } }
.sunday-event-picker { border:1px solid var(--line); border-radius:12px; padding:12px; margin:0; }
.sunday-event-picker legend { padding:0 6px; font-weight:800; }
.sunday-event-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px 14px; }
.sunday-event-option { display:flex !important; grid-template-columns:none !important; flex-direction:row; gap:8px !important; align-items:center; min-height:36px; }
.sunday-event-option input { width:auto; margin:0; }
.sunday-time-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
@media (max-width:560px) { .sunday-event-grid,.sunday-time-grid { grid-template-columns:1fr; } }

/* v5.10.15 account security */
.account-dialog { width:min(520px,calc(100% - 32px)); max-width:520px; margin:auto; padding:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--ink); box-shadow:0 24px 80px rgba(20,32,50,.28); }
.account-dialog::backdrop { background:rgba(21,31,46,.58); backdrop-filter:blur(2px); }
.account-dialog-shell { position:relative; padding:24px; }
.account-dialog-header { padding-right:44px; }
.account-dialog-header h2 { margin:5px 0 6px; }
.account-dialog-header p { margin:0; }
@media (max-width:700px) { .account-dialog { width:calc(100% - 14px); border-radius:13px; } .account-dialog-shell { padding:18px; } }

/* General Ledger */
.ledger-toolbar{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.ledger-tabs{display:flex;gap:8px;flex-wrap:wrap}.ledger-toolbar-actions,.ledger-report-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ledger-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.ledger-entry-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card)}.ledger-entry-form label{display:flex;flex-direction:column;gap:6px;font-size:.88rem}.ledger-entry-form .span-2{grid-column:span 2}.ledger-entry-form .primary-button,.ledger-entry-form [data-ledger-form-message]{align-self:end}.ledger-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--card)}.ledger-table-wrap table{width:100%;border-collapse:collapse;min-width:780px}.ledger-table-wrap th,.ledger-table-wrap td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.ledger-table-wrap th{position:sticky;top:0;background:var(--card);z-index:1}.ledger-money{text-align:right!important;font-variant-numeric:tabular-nums}.ledger-mini-summary{display:flex;gap:18px;flex-wrap:wrap}.ledger-mini-summary span{display:flex;flex-direction:column;gap:4px}.ledger-search input{max-width:360px}.ledger-table-wrap tr.is-void{opacity:.5;text-decoration:line-through}
@media(max-width:900px){.ledger-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ledger-summary-grid,.ledger-entry-form{grid-template-columns:1fr}.ledger-entry-form .span-2{grid-column:auto}.ledger-toolbar-actions select{max-width:180px}}

/* General Ledger v6.1.0 purchase-order panels */
.ledger-po-list{display:grid;gap:14px}.ledger-po-panel{overflow:hidden;padding:0}.ledger-po-header{width:100%;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(520px,2.7fr) 28px;gap:18px;align-items:center;padding:18px 20px;text-align:left;cursor:pointer}.ledger-po-header:hover{background:var(--surface-soft)}.ledger-po-identity{display:grid;gap:5px}.ledger-po-vendor{font-size:1.05rem;font-weight:800}.ledger-po-kpis{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:10px}.ledger-po-kpis span{display:grid;gap:2px;font-size:.76rem;opacity:.8}.ledger-po-kpis strong{font-size:.98rem;opacity:1}.ledger-po-chevron{font-size:1.2rem}.ledger-po-body{border-top:1px solid var(--border,#dfe3e8);padding:16px 20px 20px}.ledger-po-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.ledger-po-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ledger-po-detail-grid>div{display:grid;gap:4px;padding:12px;border-radius:10px;background:var(--surface-soft)}.ledger-detail-label{font-size:.75rem;color:var(--muted);font-weight:700}.ledger-po-detail-grid>div>strong{color:var(--ink);font-weight:800}.ledger-po-actions,.ledger-entry-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.ledger-document-list{display:grid;gap:8px;margin-bottom:12px}.ledger-document-row{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border,#dfe3e8);border-radius:10px}.ledger-blanket-entry-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0;padding:16px;border:1px solid var(--border,#dfe3e8);border-radius:12px;background:var(--surface-soft)}.ledger-blanket-entry-form label{display:grid;gap:5px}.ledger-entry-list{display:grid;gap:10px}.ledger-entry-row{display:grid;grid-template-columns:minmax(260px,2fr) 110px minmax(160px,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--border,#dfe3e8);border-radius:12px}.ledger-entry-main{display:grid;gap:4px}.ledger-entry-main span,.ledger-entry-docs{font-size:.82rem;opacity:.8}.ledger-entry-amount{text-align:right;font-weight:800}.ledger-entry-actions{margin-top:0;justify-content:flex-end}.ledger-history-list{display:grid;gap:8px}.ledger-history-row{display:grid;grid-template-columns:100px 180px minmax(180px,1fr) auto;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border,#dfe3e8)}.ledger-check-label{display:flex!important;align-items:center;gap:8px!important}.ledger-check-label input{width:auto}.empty-inline{padding:12px 0;opacity:.7}.ledger-entry-submit{display:flex;align-items:center;gap:12px}
@media(max-width:900px){.ledger-po-header{grid-template-columns:1fr 24px}.ledger-po-kpis{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-po-chevron{grid-column:2;grid-row:1}.ledger-blanket-entry-form{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-entry-row{grid-template-columns:1fr 90px}.ledger-entry-docs,.ledger-entry-actions{grid-column:1/-1}.ledger-history-row{grid-template-columns:1fr 1fr}}@media(max-width:600px){.ledger-po-header{padding:14px}.ledger-po-body{padding:14px}.ledger-po-kpis{grid-template-columns:1fr 1fr}.ledger-po-detail-grid,.ledger-blanket-entry-form{grid-template-columns:1fr}.ledger-blanket-entry-form .span-2,.ledger-po-detail-grid .span-2{grid-column:auto}.ledger-entry-row{grid-template-columns:1fr}.ledger-entry-amount{text-align:left}.ledger-history-row{grid-template-columns:1fr}}

/* v6.1.2 Events B1-B6 schedule + build availability */
.block-color-b1{--block-color:#2563eb;--block-soft:rgba(37,99,235,.16)}
.block-color-b2{--block-color:#16a34a;--block-soft:rgba(22,163,74,.16)}
.block-color-b3{--block-color:#ea580c;--block-soft:rgba(234,88,12,.16)}
.block-color-b4{--block-color:#9333ea;--block-soft:rgba(147,51,234,.16)}
.block-color-b5{--block-color:#0f766e;--block-soft:rgba(15,118,110,.16)}
.block-color-b6{--block-color:#dc2626;--block-soft:rgba(220,38,38,.16)}
.block-schedule-card{padding:16px 18px}.block-schedule-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.block-schedule-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.block-schedule-item{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--block-color);border-radius:12px;background:var(--block-soft)}.block-schedule-item strong{font-size:.95rem;color:var(--block-color)}.block-schedule-item span{font-size:.78rem;font-weight:700;color:var(--ink);white-space:nowrap}.block-badge{border:1px solid var(--block-color);background:var(--block-soft)!important;color:var(--block-color)!important}
.build-availability-panel{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.build-availability-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.build-availability-heading>div{display:grid;gap:3px}.build-availability-heading>div>strong{font-size:.86rem}.build-availability-heading>div>span{font-size:.75rem;color:var(--muted)}.build-availability-histogram{display:grid;grid-template-columns:repeat(6,minmax(48px,1fr));gap:8px;align-items:end}.build-availability-bin{min-width:0}.build-availability-bin summary{list-style:none;display:grid;grid-template-rows:auto 92px auto;gap:5px;align-items:end;text-align:center;cursor:pointer;border:1px solid transparent;border-radius:10px;padding:7px 5px;background:var(--block-soft)}.build-availability-bin summary::-webkit-details-marker{display:none}.build-availability-bin summary:hover,.build-availability-bin[open] summary{border-color:var(--block-color)}.build-availability-bin.is-assigned summary{outline:2px solid var(--block-color);outline-offset:2px}.build-availability-bin summary>strong{font-size:.9rem;color:var(--ink)}.build-availability-bar-track{height:92px;display:flex;align-items:flex-end;justify-content:center;border-radius:8px;background:rgba(127,127,127,.08);overflow:hidden}.build-availability-bar{display:block;width:70%;min-height:3px;border-radius:6px 6px 2px 2px;background:var(--block-color);transition:height .2s ease}.build-availability-block-label{font-size:.78rem;font-weight:900;color:var(--block-color)}.build-availability-names{display:flex;flex-wrap:wrap;gap:5px;padding:7px 3px 2px;font-size:.7rem}.build-availability-names>span:not(.muted){padding:3px 6px;border-radius:999px;background:var(--block-soft);color:var(--ink)}.build-availability-missing{margin-top:10px;font-size:.74rem;color:var(--muted)}
@media(max-width:900px){.block-schedule-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.block-schedule-heading{align-items:flex-start;flex-direction:column}.block-schedule-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.build-availability-histogram{gap:5px}.build-availability-bin summary{grid-template-rows:auto 72px auto;padding:6px 3px}.build-availability-bar-track{height:72px}.build-availability-heading{flex-direction:column}}


/* v6.1.3 Events larger build cards + weekday practice windows */
.weekday-schedule-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.weekday-schedule-item{display:grid;gap:4px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.weekday-schedule-item strong{font-size:.95rem;color:var(--ink)}
.weekday-schedule-item span{font-size:.78rem;font-weight:700;color:var(--muted);white-space:nowrap}
.event-card-build{grid-column:auto}
.event-card-build .build-availability-panel{padding:12px}
.event-card-build .build-availability-histogram{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.event-card-build .build-availability-bin summary{grid-template-rows:auto 128px auto;padding:9px 7px}
.event-card-build .build-availability-bar-track{height:128px}
@media(max-width:900px){.event-card-build .build-availability-histogram{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}
@media(max-width:600px){.weekday-schedule-strip{grid-template-columns:1fr}.event-card-build .build-availability-panel{padding:12px}.event-card-build .build-availability-histogram{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.event-card-build .build-availability-bin summary{grid-template-rows:auto 90px auto}.event-card-build .build-availability-bar-track{height:90px}}

/* Read-only build-event availability; block changes are handled in Students. */
.build-availability-status-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.build-availability-bin{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:6px;align-self:stretch}
.build-availability-bar-button{width:100%;border:1px solid transparent;border-radius:12px;padding:8px 6px;background:var(--block-soft);color:var(--ink);display:grid;grid-template-rows:auto auto 128px auto;gap:5px;align-items:end;text-align:center;cursor:default}
.build-assignment-label{font-size:.68rem;font-weight:900;color:var(--block-color);min-height:1em}
.build-availability-names-wrap summary{font-size:.72rem;font-weight:800;color:var(--muted);cursor:pointer;text-align:center}.build-availability-names-wrap[open] summary{color:var(--block-color)}
.build-lock-conflict{margin:0 0 12px;padding:10px 12px;border:1px solid #dc2626;border-radius:10px;background:rgba(220,38,38,.10);color:var(--ink);font-size:.78rem}.build-lock-conflict strong{display:block;color:#dc2626;margin-bottom:4px}.build-lock-conflict.is-warning{border-color:#d97706;background:rgba(217,119,6,.10)}.build-lock-conflict.is-warning strong{color:#d97706}
@media(max-width:600px){.build-availability-bar-button{grid-template-rows:auto auto 90px auto}}
.build-availability-names-wrap summary{display:block!important;grid-template-rows:none!important;padding:3px!important;background:transparent!important;border:0!important;outline:0!important;min-height:0!important}

.tournament-student-availability{display:grid;gap:12px}.tournament-student-response{display:grid;gap:6px;padding:10px 0;border-bottom:1px solid var(--line,#e5e7eb)}.tournament-student-response:last-child{border-bottom:0}.parent-availability-form{display:grid;gap:12px}.parent-status-options,.parent-role-options{display:flex;flex-wrap:wrap;gap:10px}.parent-status-options label,.parent-role-options label{display:flex;align-items:center;gap:6px}.parent-availability-notes{display:grid;gap:6px}.parent-availability-notes textarea{min-height:72px;resize:vertical}.parent-availability-save-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}

.tournament-admin-availability{margin-top:16px;padding:18px}.tournament-availability-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tournament-availability-summary-grid section{padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:12px}.tournament-availability-summary-grid h4{margin:0 0 8px}.availability-chip-list{display:flex;flex-wrap:wrap;gap:6px}.availability-person-chip{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--surface-soft,#f3f4f6);font-size:12px}.availability-parent-row{display:grid;gap:5px;padding:8px 0;border-bottom:1px solid var(--line,#e5e7eb)}.availability-parent-row:last-child{border-bottom:0}.availability-parent-row .badge{margin-right:5px}.tournament-all-responses{margin-top:14px}.tournament-all-responses summary{cursor:pointer;font-weight:700}@media(max-width:720px){.tournament-availability-summary-grid{grid-template-columns:1fr}}
.tournament-roster-admin{margin-top:16px;padding:18px}.tournament-roster-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.tournament-roster-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;margin-top:10px}.tournament-roster-member{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;background:var(--surface-soft,#f8fafc);border-radius:9px}.tournament-roster-add-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.tournament-time-slot-grid{display:grid;gap:7px;margin-bottom:10px}.tournament-time-slot-row{display:grid;grid-template-columns:70px minmax(110px,1fr) minmax(110px,1fr) 90px;gap:8px;align-items:center}.published-tournament{margin-top:16px}.published-tournament-slot{border-top:1px solid var(--line,#dbe3ef);padding:12px 0}.published-slot-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}.published-event-row{display:grid;grid-template-columns:minmax(180px,1.2fr) 80px minmax(220px,2fr);gap:10px;padding:6px 0;font-size:13px}@media(max-width:720px){.tournament-time-slot-row{grid-template-columns:1fr 1fr}.published-event-row{grid-template-columns:1fr}.tournament-roster-add-form>*{width:100%}}

.membership-donation-panel { margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:12px; align-items:end; }
.membership-donation-panel > div:first-child { display:grid; gap:3px; }
.membership-donation-panel strong { font-size:22px; }
.membership-donation-panel small { color:var(--muted); }
.membership-donation-panel label { display:grid; gap:5px; font-size:11px; font-weight:650; }
.membership-donation-panel input { width:110px; }
.membership-donation-panel .auth-message { grid-column:1/-1; }
@media (max-width:720px) { .membership-donation-panel { grid-template-columns:1fr; } .membership-donation-panel input { width:100%; } }

.membership-signed-form-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.membership-upload-label { cursor:pointer; }
.membership-signed-form-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.membership-signed-form-status { font-size:12px; color:var(--muted); flex-basis:100%; }

.membership-donation-thanks { display:flex; gap:16px; align-items:flex-start; padding:20px; border:1px solid #ead8ad; border-radius:16px; background:linear-gradient(135deg,#fffaf0,#fffdf8); box-shadow:0 8px 24px rgba(91,67,25,.06); }
.membership-donation-thanks-icon { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; flex:0 0 auto; background:#fff0d5; color:#b36b20; font-size:20px; }
.membership-donation-thanks h2 { margin:5px 0 7px; font-size:18px; line-height:1.35; }
.membership-donation-thanks p { margin:0; color:var(--muted); line-height:1.55; }

.membership-signature-guide { margin-top:12px; padding:12px; border:1px solid var(--line); border-radius:10px; background:var(--surface-2); }
.membership-signature-guide > strong { display:block; margin-bottom:5px; }
.membership-signature-guide > p { margin:0 0 10px; color:var(--muted); font-size:12px; line-height:1.5; }
.membership-signature-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.membership-signature-options > div { padding:9px; border-radius:8px; background:var(--surface); }
.membership-signature-options span { display:block; font-weight:700; margin-bottom:3px; }
.membership-signature-options small { color:var(--muted); line-height:1.4; }
@media (max-width:720px) { .membership-signature-options { grid-template-columns:1fr; } }

.membership-verification-panel { padding:16px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.membership-verification-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.membership-verification-head h3 { margin:4px 0; }
.membership-verification-list { display:grid; gap:6px; margin-top:12px; }
.membership-verification-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:8px 10px; border-radius:8px; background:var(--surface); font-size:12px; }
.membership-verification-row small { color:var(--muted); }
@media (max-width:720px) { .membership-verification-row { grid-template-columns:1fr auto; } .membership-verification-row small { grid-column:1/-1; } }

.dashboard-membership-review-alert { border-color:#ead8ad; background:linear-gradient(135deg,#fffaf0,#fffdf8); }
.dashboard-membership-review-list { display:grid; gap:6px; margin-top:10px; }
.dashboard-membership-review-list > div { display:flex; justify-content:space-between; gap:12px; padding:8px 10px; border-radius:8px; background:rgba(255,255,255,.65); font-size:12px; }
.dashboard-membership-review-list span { color:var(--muted); text-align:right; }
.dashboard-membership-review-note { margin:10px 0 0; font-size:12px; }

.tournament-countdown-note {
  margin-top: 12px;
  color: var(--danger);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
}
.tournament-countdown-note strong { font-weight: 900; }
.georgia-countdown { margin-top:12px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.georgia-countdown-value { margin:6px 0; font-size:clamp(18px,3vw,26px); font-weight:800; font-variant-numeric:tabular-nums; color:var(--blue); }

/* Parent Donations */
.donation-parent-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fffaf0,#ffffff);border-color:#ead8ad}
.donation-parent-hero h2{margin:5px 0 8px;font-size:24px}.donation-parent-hero p{margin:0;color:var(--muted);max-width:720px;line-height:1.6}
.donation-parent-heart{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#fff0d5;color:#b36b20;font-size:28px;flex:0 0 auto}
.donation-parent-record,.donation-parent-howto{display:grid;gap:10px}.donation-parent-record h3,.donation-parent-howto h3{margin:0}
.donation-parent-amount{font-size:36px;font-weight:900;letter-spacing:-1px;color:var(--success)}.donation-parent-amount.is-empty{color:var(--muted)}
.donation-parent-thanks{display:grid;gap:3px;padding:12px 14px;border-radius:12px;background:var(--success-soft);color:var(--success)}
.donation-parent-thanks span{font-size:12px}.donation-parent-record-note{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.donation-parent-howto ol{margin:0;padding-left:20px;display:grid;gap:10px;line-height:1.55}.donation-parent-fee-note{margin-top:2px}
.donation-parent-impact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.donation-parent-impact-grid>div{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.donation-parent-impact-grid span{color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:720px){.donation-parent-hero{align-items:flex-start}.donation-parent-impact-grid{grid-template-columns:1fr}}

.donation-official-links{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border-color:#bfdbfe;background:linear-gradient(135deg,#eff6ff,#ffffff)}
.donation-official-links h3{margin:5px 0 8px}.donation-official-links p{margin:0 0 6px;line-height:1.55}
.donation-official-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.donation-official-share{grid-column:1/-1;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border-radius:10px;background:var(--surface-soft);font-size:12px}
.donation-official-share span{font-weight:800;color:var(--blue);word-break:break-all}
@media(max-width:760px){.donation-official-links{grid-template-columns:1fr}.donation-official-actions{justify-content:flex-start}.donation-official-actions a{width:100%;text-align:center}}

.build-event-details>summary{cursor:pointer;font-size:13px;font-weight:650;color:var(--ink);overflow-wrap:anywhere}
.build-event-details>summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}
.event-card-build .build-availability-heading{flex-direction:column}
.event-card-build .build-availability-bar-button{min-width:0;padding:8px 4px}
.event-card-build .build-assignment-label,.event-card-build .mechanical-bin-label{font-size:12px;overflow-wrap:anywhere;text-align:center}
.event-card-build .mechanical-conflict-student{min-width:0;overflow-wrap:anywhere}

.admin-practice-availability-summary{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.admin-practice-availability-summary>div:first-child{display:flex;flex-direction:column;gap:2px}
.admin-practice-availability-summary-counts{display:flex;gap:10px;flex-wrap:wrap}
.admin-practice-availability-summary-counts span{font-size:12px;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:5px 8px}
.admin-practice-availability{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;padding:10px;border:1px dashed var(--line);border-radius:10px;background:var(--surface)}
.admin-practice-availability-group{min-width:0}
.admin-practice-availability-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:5px}
.admin-practice-availability-people{display:flex;gap:6px;flex-wrap:wrap}
.admin-practice-availability-person{display:inline-flex;gap:4px;align-items:baseline;border-radius:999px;background:var(--surface-2);padding:4px 7px;font-size:12px}
.admin-practice-availability-note{color:var(--muted)}
.admin-practice-availability-none{font-size:12px;color:var(--muted)}
@media(max-width:720px){.admin-practice-availability-summary{align-items:flex-start;flex-direction:column}.admin-practice-availability{grid-template-columns:1fr}}
