/* BAM Report Page Styles - uses Inter font from _Layout */
:root {
    --bam-orange: #f26522;
    --bam-orange-dark: #e52d0e;
    --bam-orange-grad: linear-gradient(135deg,#f26522 0%,#e52d0e 100%);
    --bam-dark: #2c3e50;
    --bam-muted: #aaa;
    --bam-shadow: 0 2px 12px rgba(0,0,0,.08);
}
.bam-report-page { background:#fff; }
.bam-report-container { max-width:1200px; margin:0 auto; padding:30px 20px 60px; background:#fff; }

/* PDF Button */
.bam-pdf-btn { display:inline-flex; align-items:center; gap:8px; background:var(--bam-orange-grad); color:#fff; border:none; border-radius:6px; padding:10px 20px; font-size:14px; font-weight:600; font-family:inherit; cursor:pointer; text-decoration:none; transition:opacity .2s; }
.bam-pdf-btn:hover { opacity:.88; color:#fff; }

/* Jump Nav */
.bam-jump-nav { background:#fff; border-radius:8px; box-shadow:var(--bam-shadow); padding:14px 24px; margin-bottom:28px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.bam-jump-label { font-size:11px; font-weight:600; color:var(--bam-muted); text-transform:uppercase; letter-spacing:.6px; margin-right:6px; }
.bam-jump-link { display:inline-block; padding:5px 14px; border-radius:20px; font-size:13px; font-weight:500; text-decoration:none; color:#555; background:#f0f0f0; transition:all .2s; }
.bam-jump-link:hover { background:var(--bam-orange); color:#fff; }

/* Athlete Card */
.bam-athlete-card { background:#fff; border-radius:10px; box-shadow:var(--bam-shadow); margin-bottom:28px; overflow:hidden; }
.bam-athlete-top { display:flex; gap:24px; align-items:center; padding:26px 32px 18px; }
.bam-athlete-avatar { width:64px; height:64px; border-radius:50%; background:var(--bam-orange-grad); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.bam-athlete-avatar svg { width:34px; height:34px; fill:#fff; }
.bam-athlete-name { font-size:22px; color:var(--bam-dark); margin-bottom:3px; font-weight:700; }
.bam-athlete-event { font-size:14px; color:var(--bam-orange); font-weight:500; margin-bottom:4px; }
.bam-athlete-id { font-size:12px; color:#888; }

/* Assessment */
.bam-assessment { padding:14px 32px 30px; border-top:2px solid #f4f4f4; }
.bam-assessment-grid { display:flex; gap:36px; align-items:flex-start; }
.bam-assessment-left { flex:0 0 38%; min-width:0; padding-top:18px; }
.bam-assessment-left h2 { font-size:17px; color:var(--bam-dark); margin-bottom:10px; font-weight:600; }
.bam-assessment-left p { font-size:14px; line-height:1.75; color:#555; }
.bam-assessment-right { flex:0 0 62%; min-width:0; text-align:center; }

/* BAMScore Number */
.bam-score-block { display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:10px; }
.bam-score-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:var(--bam-muted); white-space:nowrap; }
.bam-score-value { font-size:54px; font-weight:800; color:var(--bam-dark); line-height:1; letter-spacing:-1px; opacity:0; transform:translateY(10px); transition:opacity .7s ease,transform .7s ease; }
.bam-score-value.bam-visible { opacity:1; transform:translateY(0); }
.bam-score-status { font-size:12px; color:var(--bam-orange); font-weight:600; margin-top:2px; }

/* Bell Curve */
.bam-bell-wrap { position:relative; width:100%; height:215px; }
.bam-bell-tooltip { display:none; position:absolute; background:var(--bam-dark); color:#fff; padding:6px 10px; border-radius:5px; font-size:12px; font-weight:500; line-height:1.4; pointer-events:none; white-space:nowrap; z-index:20; box-shadow:0 2px 8px rgba(0,0,0,.2); }
.bam-bell-tooltip::after { content:''; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:5px solid transparent; border-top-color:var(--bam-dark); }
.bam-bell-zone { cursor:pointer; transition:opacity .15s; }

/* Scores Overview */
.bam-scores-overview { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-bottom:32px; }
.bam-score-mini { background:#fff; border-radius:8px; box-shadow:var(--bam-shadow); padding:18px 14px; text-align:center; text-decoration:none; color:inherit; transition:transform .2s,box-shadow .2s; display:block; }
.bam-score-mini:hover { transform:translateY(-2px); box-shadow:0 4px 20px rgba(0,0,0,.12); color:inherit; }
.bam-mini-label { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--bam-muted); margin-bottom:8px; }
.bam-mini-value { font-size:26px; font-weight:700; color:var(--bam-dark); line-height:1; }
.bam-mini-unit { font-size:13px; font-weight:400; color:var(--bam-muted); margin-left:2px; }

/* Protocol Sections */
.bam-protocol-section { background:#fff; border-radius:10px; box-shadow:var(--bam-shadow); margin-bottom:22px; overflow:hidden; }
.bam-protocol-header { padding:20px 32px; border-bottom:2px solid #f4f4f4; display:flex; justify-content:space-between; align-items:center; }
.bam-protocol-header h3 { font-size:19px; color:var(--bam-dark); font-weight:700; margin:0; }
.bam-score-big { display:flex; align-items:baseline; gap:4px; }
.bam-score-big-value { font-size:32px; font-weight:700; color:var(--bam-dark); }
.bam-score-big-unit { font-size:14px; color:var(--bam-muted); font-weight:400; }
.bam-protocol-body { padding:24px 32px; }

/* Category Bar */
.bam-cat-bar-wrap { margin-bottom:26px; }
.bam-cat-bar-track { width:100%; height:26px; border-radius:13px; overflow:hidden; position:relative; display:flex; background:#f0f0f0; }
.bam-cat-bar-seg { height:100%; flex:1; position:relative; opacity:0; transition:opacity 1.1s ease; }
.bam-cat-bar-seg.bam-visible { opacity:.78; }
.bam-cat-bar-seg-lbl { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:8.5px; font-weight:700; color:rgba(255,255,255,.95); white-space:nowrap; pointer-events:none; letter-spacing:.3px; }
.bam-cat-marker-wrap { position:absolute; top:0; left:0; width:100%; height:100%; pointer-events:none; }
.bam-cat-marker { position:absolute; top:50%; transform:translate(-50%,-50%); width:14px; height:14px; background:#fff; border:3px solid var(--bam-dark); border-radius:50%; z-index:5; transition:left 1.3s ease-out; box-shadow:0 1px 4px rgba(0,0,0,.2); }

/* Accordion */
.bam-analysis-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.bam-accordion-item { margin-top:8px; }
.bam-accordion-btn { display:flex; justify-content:space-between; align-items:center; width:100%; padding:10px 0; background:none; border:none; border-bottom:2px solid #f4f4f4; cursor:pointer; font-family:inherit; text-align:left; }
.bam-accordion-title { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
.bam-accordion-title.analysis { color:var(--bam-dark); }
.bam-accordion-title.nextsteps { color:var(--bam-orange); }
.bam-accordion-icon { font-size:11px; color:var(--bam-muted); transition:transform .25s; flex-shrink:0; }
.bam-accordion-btn[aria-expanded="true"] .bam-accordion-icon { transform:rotate(180deg); }
.bam-accordion-body { font-size:14px; line-height:1.75; color:#555; padding:12px 0 4px; }

/* Branding footer tiles */
.bam-branding-footer { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:48px; margin-bottom:16px; }
.bam-branding-tile { position:relative; overflow:hidden; border-radius:10px; background:#f9f9f9; display:flex; align-items:center; justify-content:center; padding:24px; min-height:180px; }
.bam-branding-tile img { width:100%; max-width:280px; object-fit:contain; filter:grayscale(100%); }
.bam-branding-overlay { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.bam-branding-text { font-size:38px; font-weight:900; color:rgba(0,0,0,.15); text-transform:uppercase; letter-spacing:6px; transform:rotate(-25deg); white-space:nowrap; user-select:none; font-family:inherit; }

/* PDF watermark — hidden on screen, shown only during PDF generation via JS */
.bam-pdf-watermark { display:none; text-align:center; opacity:.08; padding:40px 0; }

/* ── Improvement Gap CTA panel (on ReportByEvent) ──────────────────── */
.ig-cta-panel {
    display:flex; align-items:center; justify-content:space-between;
    gap:14px; margin:16px 0 26px; padding:18px 28px;
    border-radius:10px; background:var(--bam-orange-grad); color:#fff; flex-wrap:wrap;
}
.ig-cta-text           { font-size:15px; font-weight:400; }
.ig-cta-text strong    { font-size:16px; font-weight:700; }
.ig-cta-btn {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(255,255,255,.18); border:2px solid rgba(255,255,255,.55);
    color:#fff; border-radius:6px; padding:10px 22px;
    font-size:14px; font-weight:600; text-decoration:none;
    transition:background .2s, border-color .2s; white-space:nowrap;
}
.ig-cta-btn:hover { background:rgba(255,255,255,.3); border-color:#fff; color:#fff; }

/* ── Improvement Gap page ─────────────────────────────────────────────── */
.ig-page { background:#fff; }

.ig-intro-card {
    background:#fff; border-radius:10px; box-shadow:var(--bam-shadow);
    padding:22px 28px; margin-bottom:24px;
    border-left:4px solid var(--bam-orange);
}
.ig-intro-card p { font-size:15px; line-height:1.8; color:#555; margin:0; }

/* Goal selector bar */
.ig-selector-bar {
    background:#fff; border-radius:10px; box-shadow:var(--bam-shadow);
    padding:16px 24px; margin-bottom:28px;
    display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
.ig-selector-label { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.6px; color:var(--bam-muted); white-space:nowrap; }
.ig-goal-select {
    border:2px solid #e5e7eb; border-radius:8px; padding:9px 14px;
    font-size:14px; font-weight:500; font-family:inherit; color:#374151;
    background:#fafafa; cursor:pointer; transition:border-color .2s; min-width:230px;
}
.ig-goal-select:focus { outline:none; border-color:var(--bam-orange); }
.ig-selector-hint { font-size:12px; color:var(--bam-muted); }

/* Protocol card */
.ig-proto-card { background:#fff; border-radius:10px; box-shadow:var(--bam-shadow); margin-bottom:22px; overflow:hidden; }
.ig-proto-header {
    padding:18px 28px 14px; border-bottom:2px solid #f4f4f4;
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px;
}
.ig-proto-title   { font-size:18px; font-weight:700; color:var(--bam-dark); margin:0; }
.ig-level-status  { font-size:12px; font-weight:600; color:var(--bam-muted); }
.ig-badges        { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.ig-badge         { font-size:12px; font-weight:600; padding:4px 12px; border-radius:20px; }
.ig-badge.today   { background:#fff3ee; color:var(--bam-orange); border:1px solid #f5cdb0; }
.ig-badge.target  { background:#f0f4ff; color:#374151; border:1px solid #c7d2fe; }
.ig-badge.gap     { background:#f9fafb; color:#555; border:1px solid #e5e7eb; }

/* Bar body */
.ig-bar-body  { padding:20px 28px 24px; }

/* Annotation row — labels above the bar track */
.ig-anno-row  { position:relative; height:52px; margin-bottom:4px; }
.ig-anno {
    position:absolute; transform:translateX(-50%);
    text-align:center; bottom:6px;
    display:flex; flex-direction:column; align-items:center; gap:1px;
}
.ig-anno-val  { font-size:13px; font-weight:700; color:var(--bam-dark); line-height:1.2; white-space:nowrap; }
.ig-anno-lbl  { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; }
.ig-anno-today  .ig-anno-lbl { color:var(--bam-orange); }
.ig-anno-target .ig-anno-lbl { color:var(--bam-dark); }
.ig-anno-gap  { bottom:auto; top:2px; }
.ig-gap-chip  {
    font-size:10px; font-weight:600; color:#666; white-space:nowrap;
    background:#fff; padding:2px 8px; border-radius:10px;
    border:1px solid #e5e7eb; box-shadow:0 1px 3px rgba(0,0,0,.06);
}

/* Bar track */
.ig-bar-track {
    width:100%; height:42px; border-radius:21px;
    position:relative; display:flex; background:#f0f0f0; overflow:visible;
}
.ig-bar-seg {
    height:100%; flex:1; position:relative;
    display:flex; align-items:center; justify-content:center;
}
.ig-bar-seg-lbl {
    font-size:11px; font-weight:700; color:rgba(255,255,255,.92);
    text-transform:uppercase; pointer-events:none; white-space:nowrap;
}

/* Markers on the bar */
.ig-dot { position:absolute; z-index:10; transform:translateX(-50%); }

/* TODAY: circle */
.ig-dot-today {
    width:20px; height:20px; border-radius:50%;
    background:#fff; border:3px solid #2c3e50;
    top:50%; transform:translate(-50%,-50%);
    box-shadow:0 2px 8px rgba(0,0,0,.22);
}
/* TARGET: vertical line */
.ig-dot-target {
    width:3px; height:calc(100% + 8px); top:-4px; border-radius:2px;
    background:var(--bam-dark); box-shadow:0 0 8px rgba(0,0,0,.25);
}

/* Connector line between today and target */
.ig-connector {
    position:absolute; top:50%; transform:translateY(-50%);
    height:4px; background:rgba(242,101,34,.3); z-index:5; border-radius:2px;
}
.ig-achieved { color:#27ae60 !important; font-weight:700; }

/* ── Summary + Gap panels ───────────────────────────────────────── */
.ig-sum-section { margin-bottom:24px; display:flex; flex-direction:column; gap:10px; }
.ig-sum-row     { display:flex; gap:10px; }
.ig-sum-card {
    flex:1; background:#fff; border-radius:12px;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
    padding:16px 18px;
}
.ig-sum-card-gap  { background:#fafafa; }
.ig-sum-card-lbl  {
    font-size:10px; font-weight:700; color:var(--bam-muted);
    letter-spacing:.6px; text-transform:uppercase; margin-bottom:6px;
}
.ig-sum-card-val  { font-size:26px; font-weight:800; color:var(--bam-dark); line-height:1.1; }
.ig-sum-card-unit { font-size:13px; font-weight:600; color:var(--bam-muted); }
.ig-gap-sum       { font-size:15px; font-weight:700; color:var(--bam-dark); line-height:1.3; }
.ig-gap-achieved  { color:#27ae60; }

/* Responsive */
@media (max-width:768px) {
    .ig-cta-panel     { flex-direction:column; align-items:flex-start; }
    .ig-bar-seg-lbl   { display:none; }
    .ig-selector-hint { display:none; }
    .ig-proto-header  { flex-direction:column; align-items:flex-start; }
    .ig-sum-row       { overflow-x:auto; flex-wrap:nowrap; }
    .ig-sum-card      { flex:0 0 130px; }
}

/* Responsive */
@media (max-width:900px){ .bam-scores-overview{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:768px){
    .bam-athlete-top{ flex-direction:column; text-align:center; gap:14px; }
    .bam-assessment-grid{ flex-direction:column; }
    .bam-assessment-left,.bam-assessment-right{ flex:1 1 100%; }
    .bam-scores-overview{ grid-template-columns:repeat(2,1fr); }
    .bam-analysis-grid{ grid-template-columns:1fr; }
    .bam-protocol-header{ flex-direction:column; gap:8px; align-items:flex-start; }
    .bam-branding-footer{ grid-template-columns:1fr; }
}
@media (max-width:480px){
    .bam-scores-overview{ grid-template-columns:1fr 1fr; }
    .bam-score-value{ font-size:40px; }
    .bam-protocol-body{ padding:16px; }
}

/* ── Athletes accordion page ────────────────────────────────────────── */
.ath-page-header { margin-bottom:24px; }
.ath-page-title  { font-size:24px; font-weight:700; color:var(--bam-dark); margin:0; }

.ath-accordion { display:flex; flex-direction:column; gap:12px; }
.ath-accordion-item {
    border:none; border-radius:10px !important;
    box-shadow:var(--bam-shadow); overflow:hidden;
}
.ath-accordion-btn {
    background:#fff; color:var(--bam-dark);
    font-weight:600; padding:16px 22px;
    display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    border-radius:10px !important;
}
.ath-accordion-btn:not(.collapsed) {
    background:#fff3ee; color:var(--bam-dark);
    border-bottom:2px solid #f5cdb0;
    border-radius:10px 10px 0 0 !important;
    box-shadow:none;
}
.ath-accordion-btn::after { margin-left:auto; flex-shrink:0; }

.ath-acc-avatar {
    width:34px; height:34px; border-radius:50%;
    background:var(--bam-orange); color:#fff;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.ath-acc-avatar svg { width:20px; height:20px; }

.ath-acc-name { font-size:16px; font-weight:700; }

.ath-acc-meta {
    display:flex; align-items:center; gap:6px; flex-wrap:wrap;
    font-size:13px; color:var(--bam-muted); font-weight:400;
}
.ath-meta-dot { color:#d1d5db; }
.ath-acc-badge {
    background:#fff3ee; color:var(--bam-orange);
    border:1px solid #f5cdb0; border-radius:20px;
    font-size:11px; font-weight:700; padding:2px 10px;
}

.ath-accordion-body { padding:0; }

.ath-section {
    padding:20px 26px;
    border-bottom:1px solid #f4f4f4;
}
.ath-section-last { border-bottom:none; }

.ath-section-header {
    font-size:13px; font-weight:700; text-transform:uppercase;
    letter-spacing:.5px; color:var(--bam-muted);
    margin-bottom:14px;
    display:flex; align-items:center; gap:6px;
}
.ath-section-count { font-weight:400; }

.ath-events-table thead tr th {
    font-size:12px; font-weight:700; text-transform:uppercase;
    letter-spacing:.4px; color:var(--bam-muted);
    border-bottom:2px solid #f0f0f0; padding-bottom:8px;
}
.ath-events-table tbody tr td { vertical-align:middle; font-size:14px; }
.ath-events-table tbody tr:last-child td { border-bottom:none; }

.ath-view-btn {
    background:var(--bam-orange); color:#fff;
    font-size:13px; font-weight:600; white-space:nowrap;
}
.ath-view-btn:hover { background:#e52d0e; color:#fff; }

.ath-empty-msg { font-size:13px; color:var(--bam-muted); margin:0; font-style:italic; }

@media (max-width:576px) {
    .ath-acc-meta { display:none; }
    .ath-accordion-btn { padding:14px 16px; gap:10px; }
    .ath-section { padding:16px; }
}

/* ── Projected BAMScore section ──────────────────────────────────── */
.ig-proj-section {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    padding: 1.5rem;
    margin-top: 2rem;
}

.ig-proj-header {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a2e;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.6rem;
    flex-wrap: wrap;
}

.ig-proj-estimate-badge {
    font-size: 0.72rem;
    font-weight: 600;
    background: #fff3cd;
    color: #856404;
    border: 1px solid #ffc107;
    border-radius: 20px;
    padding: 3px 10px;
    margin-left: auto;
    white-space: nowrap;
}

.ig-proj-note {
    font-size: 0.82rem;
    color: #6c757d;
    font-style: italic;
    margin-bottom: 1.25rem;
}

.ig-proj-cards {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.ig-proj-card {
    flex: 1;
    min-width: 130px;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    text-align: center;
}

.ig-proj-card-highlight {
    background: #1a1a2e;
    border-color: #1a1a2e;
}

.ig-proj-card-highlight .ig-proj-card-lbl { color: rgba(255,255,255,0.65); }
.ig-proj-card-highlight .ig-proj-card-val { color: #fff; }

.ig-proj-card-lbl {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6c757d;
    margin-bottom: 0.35rem;
}

.ig-proj-card-val {
    font-size: 2rem;
    font-weight: 800;
    color: #1a1a2e;
    line-height: 1;
}

.ig-proj-today { color: #1a1a2e; }

.ig-proj-arrow {
    color: #adb5bd;
    font-size: 1.4rem;
    flex: none;
}

.ig-proj-positive { color: #198754 !important; }
.ig-proj-negative { color: #dc3545 !important; }
.ig-proj-neutral  { color: #6c757d !important; }

@media (max-width: 576px) {
    .ig-proj-cards { gap: 0.6rem; }
    .ig-proj-card  { min-width: 100px; padding: 0.75rem; }
    .ig-proj-card-val { font-size: 1.5rem; }
    .ig-proj-arrow { display: none; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   EVENT SEARCH  (.evs-*)
   ───────────────────────────────────────────────────────────────────────────── */

.evs-back-btn {
    background: #f0f0f5;
    color: #1a1a2e;
    border: 1px solid #d0d0e0;
    font-size: 0.82rem;
    padding: 0.3rem 0.75rem;
    border-radius: 6px;
}
.evs-back-btn:hover { background: #e0e0ef; }

.evs-filter-bar {
    background: #f8f8fc;
    border: 1px solid #e0e0ee;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.evs-filter-row {
    display: grid;
    grid-template-columns: 2fr 1.25fr 1fr auto;
    gap: 0.75rem;
    align-items: end;
}
.evs-filter-field { display: flex; flex-direction: column; min-width: 0; }
.evs-search-field { }
.evs-filter-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: #555;
    margin-bottom: 0.2rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.evs-input {
    font-size: 0.95rem;
    padding: 0.4rem 0.7rem;
    border: 1px solid #ccc;
    border-radius: 6px;
    height: 38px;
}
.evs-filter-actions { display: flex; gap: 0.5rem; align-items: flex-end; }

.evs-search-btn {
    background: #e8590c;
    color: #fff;
    font-size: 0.85rem;
    padding: 0.35rem 0.9rem;
    border-radius: 6px;
    border: none;
    height: 36px;
}
.evs-search-btn:hover { background: #c44a08; color: #fff; }

.evs-clear-btn {
    background: #f0f0f5;
    color: #555;
    font-size: 0.85rem;
    padding: 0.35rem 0.75rem;
    border-radius: 6px;
    border: 1px solid #ccc;
    height: 36px;
}
.evs-clear-btn:hover { background: #e0e0ef; }

.evs-map-toggle-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.75rem;
}
.evs-map-toggle-btn {
    background: #1a1a2e;
    color: #fff;
    font-size: 0.85rem;
    padding: 0.35rem 0.9rem;
    border-radius: 6px;
    border: none;
}
.evs-map-toggle-btn:hover { background: #2a2a4e; color: #fff; }
.evs-result-count { font-size: 0.85rem; color: #666; }

/* Map panel */
.evs-map-panel {
    background: #f8f8fc;
    border: 1px solid #e0e0ee;
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 1.25rem;
}
.evs-radius-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}
.evs-radius-city-input { width: 200px; flex: none; }
.evs-radius-range { width: 130px; accent-color: #e8590c; }
.evs-radius-label { font-size: 0.85rem; font-weight: 600; min-width: 50px; }
.evs-map-container {
    height: 400px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #ccc;
    position: relative;
    z-index: 0;
}
.evs-map-note {
    font-size: 0.78rem;
    color: #888;
    margin-top: 0.5rem;
    margin-bottom: 0.3rem;
}
.evs-radius-sync-check label { font-size: 0.82rem; }

/* Map pins */
.ev-map-pin {
    width: 32px; height: 32px;
    background: #1a1a2e;
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    display: flex; align-items: center; justify-content: center;
    font-size: 14px;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.ev-map-pin > * { transform: rotate(45deg); }
.ev-map-pin-reg { background: #198754; }

.evs-no-results { border-radius: 8px; }

/* ─────────────────────────────────────────────────────────────────────────────
   EVENT CARDS  (.ev-*)
   ───────────────────────────────────────────────────────────────────────────── */

.ev-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 1rem;
}
.ev-card {
    background: #fff;
    border: 1px solid #e0e0ee;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    will-change: transform;
}
.ev-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,.14);
    transform: translateY(-4px);
}

.ev-card-header {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    padding: 0.6rem 0.85rem 0;
}
.ev-sport-badge {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.ev-sport-basketball { background: #fff3e0; color: #e65100; }
.ev-sport-volleyball  { background: #e8f5e9; color: #2e7d32; }
.ev-sport-football    { background: #e3f2fd; color: #1565c0; }
.ev-sport-soccer      { background: #e8f4fd; color: #1a6b9a; }
.ev-sport-baseball    { background: #fef3e2; color: #92400e; }
.ev-sport-softball    { background: #fce7f3; color: #9d174d; }
.ev-sport-track       { background: #f3f0ff; color: #5b21b6; }
.ev-sport-swimming    { background: #ecfeff; color: #0e7490; }
.ev-sport-tennis      { background: #f0fdf4; color: #166534; }
.ev-sport-golf        { background: #f7fee7; color: #3f6212; }
.ev-sport-wrestling   { background: #fff7ed; color: #9a3412; }
.ev-sport-lacrosse    { background: #eff6ff; color: #1e40af; }
.ev-sport-gymnastics  { background: #fdf4ff; color: #86198f; }

.ev-reg-badge {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 0.2rem 0.6rem;
    border-radius: 20px;
    background: #d4edda;
    color: #155724;
}
.ev-level-badge {
    font-size: 0.72rem;
    padding: 0.2rem 0.55rem;
    border-radius: 20px;
    background: #f0f0f5;
    color: #555;
    text-transform: capitalize;
}

.ev-card-body { padding: 0.65rem 0.85rem; flex: 1; }
.ev-card-title {
    font-size: 0.97rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 0.4rem;
    line-height: 1.3;
}
.ev-card-meta {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    font-size: 0.81rem;
    color: #555;
    margin-bottom: 0.5rem;
}
.ev-card-meta span { display: flex; align-items: center; gap: 0.25rem; }
.ev-card-desc {
    font-size: 0.8rem;
    color: #666;
    line-height: 1.45;
    margin-bottom: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ev-card-footer {
    padding: 0.6rem 0.85rem;
    border-top: 1px solid #f0f0f5;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
.ev-register-btn {
    background: #e8590c;
    color: #fff;
    font-size: 0.82rem;
    padding: 0.3rem 0.75rem;
    border-radius: 6px;
    border: none;
    position: relative;
    overflow: hidden;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
}
.ev-register-btn:hover {
    background: #c44a08;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 14px rgba(232,89,12,0.45);
}
.ev-register-btn:active { transform: scale(0.96); }
/* Ripple effect */
.bam-ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,0.35);
    width: 4px; height: 4px;
    margin-top: -2px; margin-left: -2px;
    transform: scale(0);
    animation: bam-ripple-anim 0.55s linear;
    pointer-events: none;
}
@keyframes bam-ripple-anim {
    to { transform: scale(60); opacity: 0; }
}
.ev-already-registered {
    font-size: 0.82rem;
    color: #198754;
    font-weight: 600;
}

/* ─────────────────────────────────────────────────────────────────────────────
   EVENT REGISTER  (.evr-*)
   ───────────────────────────────────────────────────────────────────────────── */

.evr-event-card {
    background: #f8f8fc;
    border: 1px solid #e0e0ee;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
}
.evr-event-header { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.evr-event-name {
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 0.4rem;
}
.evr-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    font-size: 0.83rem;
    color: #555;
}
.evr-event-meta span { display: flex; align-items: center; gap: 0.25rem; }
.evr-event-desc { font-size: 0.83rem; color: #666; margin-top: 0.5rem; margin-bottom: 0; }

.evr-athlete-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #fff;
    border: 1px solid #e0e0ee;
    border-radius: 10px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
}
.evr-athlete-icon { color: #888; }
.evr-athlete-name { font-size: 0.97rem; font-weight: 700; color: #1a1a2e; }
.evr-athlete-meta { font-size: 0.8rem; color: #666; }

.evr-form { max-width: 640px; }
.evr-section { background: #fff; border: 1px solid #e0e0ee; border-radius: 10px; padding: 1rem 1.25rem; margin-bottom: 1rem; }
.evr-section-title { font-size: 0.88rem; font-weight: 700; color: #1a1a2e; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.75rem; }
.evr-role-options { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 0.5rem; }
.evr-role-check .form-check-label { font-size: 0.88rem; }
.evr-name-row { margin-top: 0.75rem; }
.evr-field-label { font-size: 0.82rem; font-weight: 600; color: #555; margin-bottom: 0.25rem; display: block; }
.evr-required { color: #dc3545; }

.evr-payment-stub {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    background: #fff8e1;
    border: 1px solid #ffe082;
    border-radius: 10px;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
}
.evr-payment-icon { font-size: 1.3rem; color: #f9a825; padding-top: 0.1rem; }
.evr-payment-title { font-size: 0.88rem; font-weight: 700; color: #7a5c00; margin-bottom: 0.2rem; }
.evr-payment-body { font-size: 0.83rem; color: #5a4400; }

.evr-waiver-notice {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    background: #e8f4fd;
    border: 1px solid #bee5f8;
    border-radius: 10px;
    padding: 0.85rem 1rem;
    margin-bottom: 1.25rem;
}
.evr-waiver-icon { font-size: 1.3rem; color: #0d6efd; padding-top: 0.1rem; }
.evr-waiver-title { font-size: 0.88rem; font-weight: 700; color: #084298; margin-bottom: 0.2rem; }
.evr-waiver-body { font-size: 0.83rem; color: #0a3060; }

.evr-form-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 0.5rem; }
.evr-submit-btn {
    background: #e8590c;
    color: #fff;
    font-size: 0.88rem;
    padding: 0.45rem 1.2rem;
    border-radius: 6px;
    border: none;
}
.evr-submit-btn:hover { background: #c44a08; color: #fff; }
.evr-cancel-btn {
    background: #f0f0f5;
    color: #555;
    font-size: 0.88rem;
    padding: 0.45rem 1rem;
    border-radius: 6px;
    border: 1px solid #ccc;
}
.evr-cancel-btn:hover { background: #e0e0ef; }
.evr-already-reg { border-radius: 8px; }

/* ─────────────────────────────────────────────────────────────────────────────
   EVENT WAIVER  (.evw-*)
   ───────────────────────────────────────────────────────────────────────────── */

.evw-context-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
    font-size: 0.85rem;
    color: #555;
    background: #f8f8fc;
    border: 1px solid #e0e0ee;
    border-radius: 8px;
    padding: 0.5rem 1rem;
    margin-bottom: 1rem;
}
.evw-guardian-alert { border-radius: 8px; }
.evw-signed-confirm { border-radius: 8px; }

.evw-waiver-doc {
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 10px;
    padding: 1.5rem 2rem;
    max-height: 420px;
    overflow-y: auto;
    margin-bottom: 1.25rem;
    font-size: 0.85rem;
    line-height: 1.65;
    color: #333;
}
.evw-waiver-heading {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1a1a2e;
    margin-bottom: 1rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 0.5rem;
}

.evw-sig-form { max-width: 500px; }
.evw-sig-block {
    background: #f8f8fc;
    border: 2px solid #e0e0ee;
    border-radius: 10px;
    padding: 1.25rem;
}
.evw-sig-title {
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #1a1a2e;
    margin-bottom: 0.75rem;
}
.evw-sig-field { margin-bottom: 0.85rem; }
.evw-sig-input { font-size: 0.9rem; border-bottom: 2px solid #1a1a2e; border-radius: 4px 4px 0 0; }
.evw-date-input { background: #f0f0f5; color: #666; }

/* ─── Waitlist / capacity notice classes ──────────────────────────────────── */
.evr-notice {
    border-radius: 10px;
    padding: .85rem 1rem;
    margin-bottom: 16px;
    display: flex;
    gap: .75rem;
    align-items: flex-start;
}
.evr-notice-icon  { font-size: 1.15rem; flex-shrink: 0; padding-top: .05rem; }
.evr-notice-title { font-size: .88rem; font-weight: 700; margin-bottom: .15rem; }
.evr-notice-body  { font-size: .82rem; line-height: 1.55; }

/* Low availability — orange */
.evr-notice--low                { background: #fff7ed; border: 1px solid #fed7aa; }
.evr-notice--low .evr-notice-icon  { color: #ea580c; }
.evr-notice--low .evr-notice-title { color: #7c2d12; }
.evr-notice--low .evr-notice-body  { color: #6b2510; }

/* Waitlist open — purple */
.evr-notice--waitlist                { background: #f3f0ff; border: 1px solid #c4b5fd; }
.evr-notice--waitlist .evr-notice-icon  { color: #7c3aed; }
.evr-notice--waitlist .evr-notice-title { color: #4c1d95; }
.evr-notice--waitlist .evr-notice-body  { color: #3b1473; }

/* Event full / no waitlist — red */
.evr-notice--danger                { background: #fff5f5; border: 1px solid #fecaca; }
.evr-notice--danger .evr-notice-icon  { color: #dc3545; }
.evr-notice--danger .evr-notice-title { color: #7f1d1d; }
.evr-notice--danger .evr-notice-body  { color: #6b2020; }

/* Already-waitlisted alert */
.evr-waitlist-alert {
    background: #f3f0ff;
    border: 1px solid #c4b5fd;
    color: #3b1473;
    border-radius: 10px;
    padding: .85rem 1.1rem;
    font-size: .88rem;
    font-weight: 600;
}
.evr-waitlist-alert .alert-link { color: #4c1d95; }

/* Waitlist stub (replaces evr-payment-stub for waitlist form) */
.evr-waitlist-stub {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    background: #f3f0ff;
    border: 1px solid #c4b5fd;
    border-radius: 10px;
    padding: .85rem 1rem;
    margin-bottom: 14px;
}
.evr-waitlist-icon  { font-size: 1.2rem; color: #7c3aed; flex-shrink: 0; padding-top: .1rem; }
.evr-waitlist-title { font-size: .88rem; font-weight: 700; color: #4c1d95; margin-bottom: .2rem; }
.evr-waitlist-body  { font-size: .82rem; color: #3b1473; line-height: 1.55; }

/* Waitlist submit button — purple gradient */
.evr-waitlist-submit-btn {
    background: linear-gradient(135deg, #7c3aed 0%, #4c1d95 100%);
    color: #fff !important;
    border: none;
    border-radius: 8px;
    padding: .6rem 1.6rem;
    font-size: .92rem;
    font-weight: 700;
    transition: opacity .2s, transform .15s;
}
.evr-waitlist-submit-btn:hover { opacity: .88; transform: translateY(-1px); color: #fff; }

/* ─────────────────────────────────────────────────────────────────────────────
   WITHDRAW REGISTRATION  (.evwd-*)
   ───────────────────────────────────────────────────────────────────────────── */

.evwd-summary { border-left: 4px solid #e8590c; }
.evwd-no-refund { border-radius: 8px; }
.evwd-refund-ok { border-radius: 8px; }
.evwd-already-withdrawn { border-radius: 8px; }

.evwd-form { max-width: 540px; margin-top: 1rem; }
.evwd-field { margin-bottom: 1rem; }
.evwd-note { font-size: 0.88rem; }
.evwd-optional { font-weight: 400; color: #999; }
.evwd-refund-check { margin-bottom: 1.25rem; }
.evwd-refund-check label { font-size: 0.88rem; }

.evwd-confirm-btn {
    background: #dc3545;
    color: #fff;
    font-size: 0.88rem;
    padding: 0.45rem 1.2rem;
    border-radius: 6px;
    border: none;
}
.evwd-confirm-btn:hover { background: #bb2d3b; color: #fff; }

/* ─────────────────────────────────────────────────────────────────────────────
   ATHLETES PAGE — registration + find-events additions  (.ath-*)
   ───────────────────────────────────────────────────────────────────────────── */

.ath-tempdata-alert { border-radius: 8px; margin-bottom: 1rem; }

.ath-waiver-signed {
    font-size: 0.8rem;
    color: #198754;
    font-weight: 600;
}
.ath-waiver-btn {
    background: #e8f4fd;
    color: #084298;
    font-size: 0.78rem;
    padding: 0.2rem 0.55rem;
    border: 1px solid #bee5f8;
    border-radius: 5px;
}
.ath-waiver-btn:hover { background: #cce5ff; }

.ath-reg-evt-link {
    color: var(--bam-orange);
    font-weight: 600;
    text-decoration: none;
}
.ath-reg-evt-link:hover { text-decoration: underline; color: #c4511a; }

.ath-withdraw-btn {
    background: #fff3f3;
    color: #842029;
    font-size: 0.78rem;
    padding: 0.2rem 0.55rem;
    border: 1px solid #f5c2c7;
    border-radius: 5px;
}
.ath-withdraw-btn:hover { background: #f8d7da; }

.ath-find-events-section { background: #f8f8fc; border-radius: 8px; padding: 0.75rem 1rem; }
.ath-find-events-row {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
}
.ath-find-events-desc {
    flex: 1;
    font-size: 0.83rem;
    color: #555;
    margin-bottom: 0;
}
.ath-find-events-btn {
    background: #e8590c;
    color: #fff;
    font-size: 0.85rem;
    padding: 0.4rem 1rem;
    border-radius: 6px;
    border: none;
    white-space: nowrap;
}
.ath-find-events-btn:hover { background: #c44a08; color: #fff; }

