/* Shared particle wave background (login, results, etc.) */
body.particle-wave-page {
    background: #000 !important;
    min-height: 100vh;
}

#particleCanvas {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    pointer-events: none;
}

body.particle-wave-page .navbar {
    position: relative;
    z-index: 2;
    background: transparent !important;
    border: none;
}

body.particle-wave-page .container.flex-grow-1 {
    position: relative;
    z-index: 2;
    background: transparent;
}

body.particle-wave-page footer {
    position: relative;
    z-index: 2;
}

body.particle-wave-page footer .text-muted {
    color: rgba(255, 255, 255, 0.35) !important;
}

body.particle-wave-page .wave-glass-card {
    background: rgba(10, 10, 12, 0.82);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #ececf1;
}

body.particle-wave-page .wave-glass-card h2,
body.particle-wave-page .wave-glass-card h4,
body.particle-wave-page .wave-glass-card h5 {
    color: #fff;
}

body.particle-wave-page .wave-glass-card .text-muted {
    color: rgba(200, 200, 210, 0.75) !important;
}

body.particle-wave-page .form-label {
    color: #c8c8d0;
}

body.particle-wave-page .form-control {
    background: rgba(0, 0, 0, 0.4);
    border-color: rgba(255, 255, 255, 0.18);
    color: #fff;
}

body.particle-wave-page .form-control:focus {
    background: rgba(0, 0, 0, 0.55);
    border-color: rgba(243, 190, 16, 0.5);
    color: #fff;
    box-shadow: 0 0 0 0.2rem rgba(243, 190, 16, 0.15);
}

body.particle-wave-page .alert-danger {
    background: rgba(220, 53, 69, 0.2);
    border-color: rgba(220, 53, 69, 0.4);
    color: #ffb4bc;
}

/* Results listing */
body.particle-wave-page .results-page-title {
    color: #fff;
}

body.particle-wave-page .results-event-card {
    background: rgba(12, 12, 14, 0.78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #ececf1;
}

body.particle-wave-page .results-event-card .card-img-top.bg-light {
    background: rgba(255, 255, 255, 0.06) !important;
}

body.particle-wave-page .results-event-card .text-primary {
    color: #f3be10 !important;
}

body.particle-wave-page .results-event-card .badge.bg-secondary {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #e8e8ec;
}

/* Leaderboard (live + past) */
body.particle-wave-page .leaderboard-live-card,
body.particle-wave-page .leaderboard-past-card {
    background: rgba(12, 12, 14, 0.78);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #ececf1;
}

body.particle-wave-page .leaderboard-live-card .card-title,
body.particle-wave-page .leaderboard-past-card .card-title,
body.particle-wave-page .leaderboard-live-card h4,
body.particle-wave-page .leaderboard-past-card h4 {
    color: #fff;
}

body.particle-wave-page .leaderboard-live-card .text-muted,
body.particle-wave-page .leaderboard-past-card .text-muted {
    color: rgba(200, 200, 210, 0.75) !important;
}

body.particle-wave-page .leaderboard-live-card .table {
    --bs-table-color: #ececf1;
    --bs-table-bg: transparent;
    --bs-table-hover-bg: rgba(255, 255, 255, 0.06);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.04);
    --bs-table-border-color: rgba(255, 255, 255, 0.1);
    color: #ececf1;
}

body.particle-wave-page .leaderboard-live-card .leaderboard-header {
    background: #1a1a1e;
    border-bottom-color: rgba(255, 255, 255, 0.12);
}

body.particle-wave-page .leaderboard-live-card .leaderboard-header .header-cell {
    color: #fff;
}

body.particle-wave-page .leaderboard-live-card .runner-row {
    border-bottom-color: rgba(255, 255, 255, 0.08);
    color: #ececf1;
}

body.particle-wave-page .leaderboard-live-card .runner-row:hover {
    background-color: rgba(255, 255, 255, 0.06);
    box-shadow: none;
}

body.particle-wave-page .leaderboard-live-card .runner-name-mobile strong,
body.particle-wave-page .leaderboard-live-card .runner-cell {
    color: #ececf1;
}

body.particle-wave-page .leaderboard-live-card .rank-label,
body.particle-wave-page .leaderboard-live-card .time-label {
    color: rgba(180, 180, 190, 0.9);
}

body.particle-wave-page .leaderboard-live-card .leaderboard-stats {
    color: rgba(220, 220, 230, 0.9);
}

body.particle-wave-page .leaderboard-live-card .leaderboard-stats .stat-finished {
    color: #5ee9a8;
}

body.particle-wave-page .leaderboard-live-card .leaderboard-stats .stat-overcot {
    color: #fac062;
}

body.particle-wave-page .leaderboard-live-card .leaderboard-stats .stat-running {
    color: #f3be10;
}

body.particle-wave-page .leaderboard-live-card .leaderboard-stats .stat-dns {
    color: #e8b84a;
}

body.particle-wave-page .leaderboard-live-card .leaderboard-stats .stat-dnf {
    color: #f17f70;
}

body.particle-wave-page .leaderboard-live-card .leaderboard-stats .stat-total {
    color: rgba(220, 220, 230, 0.9);
}

body.particle-wave-page .btn-outline-secondary {
    border-color: rgba(255, 255, 255, 0.35);
    color: #ececf1;
}

body.particle-wave-page .btn-outline-secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(243, 190, 16, 0.5);
    color: #fff;
}

body.particle-wave-page .leaderboard-past-card .table a {
    color: #f3be10;
    text-decoration: none;
    font-weight: 600;
}

body.particle-wave-page .leaderboard-past-card .table a:hover {
    color: #ff9933;
}

body.particle-wave-page .leaderboard-live-card .lb-cat-badge {
    background: rgba(255, 255, 255, 0.08) !important;
    color: rgba(200, 200, 210, 0.85) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    cursor: pointer;
    box-shadow: none;
}

body.particle-wave-page .leaderboard-live-card .lb-cat-badge.is-current {
    background: linear-gradient(135deg, #ff9933 0%, #e6841f 100%) !important;
    border-color: #f3be10 !important;
    color: #fff !important;
    box-shadow: 0 0 0 2px rgba(243, 190, 16, 0.5), 0 4px 14px rgba(255, 153, 51, 0.45) !important;
    font-weight: 700;
}

body.particle-wave-page .leaderboard-live-card .info-badge {
    background: rgba(0, 0, 0, 0.35);
    border-color: rgba(255, 255, 255, 0.15);
    color: #ececf1;
}

body.particle-wave-page .leaderboard-live-card .custom-pagination .pagination-info {
    color: rgba(200, 200, 210, 0.85);
}

body.particle-wave-page .leaderboard-live-card .pagination-btn {
    background: rgba(0, 0, 0, 0.4);
    border-color: rgba(255, 255, 255, 0.18);
    color: #fff;
}

body.particle-wave-page .leaderboard-live-card .pagination-btn:disabled {
    opacity: 0.4;
}

body.particle-wave-page #leaderboardBackToTop {
    background: rgba(12, 12, 14, 0.85);
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: #fff;
}

body.particle-wave-page #runnerModal .modal-content,
body.particle-wave-page #runnerModal .modal-body,
body.particle-wave-page #runnerModal .runner-modal-footer {
    background: #121214;
    color: #fff;
}

body.particle-wave-page #runnerModal .runner-modal-close {
    border-color: rgba(255, 255, 255, 0.4);
    color: #fff;
}

body.particle-wave-page #runnerModal .runner-modal-close:hover {
    background: #2a2a2e;
    border-color: #f3be10;
    color: #fff;
}

body.particle-wave-page .leaderboard-live-card #genderFilter,
body.particle-wave-page .leaderboard-past-card #genderFilter {
    background: #fff;
    border-color: rgba(0, 0, 0, 0.15);
    color: #212529;
}

body.particle-wave-page .leaderboard-live-card #genderFilter option,
body.particle-wave-page .leaderboard-past-card #genderFilter option {
    color: #212529;
    background: #fff;
}

/* Live leaderboard — mobile: brighter text on dark card */
@media screen and (max-width: 767.98px) {
    body.particle-wave-page .leaderboard-live-card .text-muted,
    body.particle-wave-page .leaderboard-live-card .leaderboard-live-toolbar .text-muted {
        color: rgba(255, 255, 255, 0.88) !important;
    }

    body.particle-wave-page .leaderboard-live-card .runner-name-mobile strong,
    body.particle-wave-page .leaderboard-live-card .runner-cell,
    body.particle-wave-page .leaderboard-live-card .time-value,
    body.particle-wave-page .leaderboard-live-card .bib-mobile,
    body.particle-wave-page .leaderboard-live-card .detail-item-mobile,
    body.particle-wave-page .leaderboard-live-card .custom-pagination .pagination-info {
        color: #fff !important;
    }

    body.particle-wave-page .leaderboard-live-card .rank-label,
    body.particle-wave-page .leaderboard-live-card .time-label {
        color: rgba(255, 255, 255, 0.82) !important;
    }

    body.particle-wave-page .leaderboard-live-card .mobile-times {
        border-color: rgba(255, 255, 255, 0.22);
        background: rgba(0, 0, 0, 0.2);
    }

    body.particle-wave-page .leaderboard-live-card .time-value .text-primary {
        color: #9fd4ff !important;
    }

    body.particle-wave-page .leaderboard-live-card .time-value .text-info {
        color: #ffd699 !important;
    }

    body.particle-wave-page .leaderboard-live-card .info-badge {
        color: #fff !important;
        border-color: rgba(255, 255, 255, 0.28);
    }

    body.particle-wave-page .leaderboard-live-card .leaderboard-stats {
        color: #fff !important;
    }

    body.particle-wave-page .leaderboard-live-card .lb-cat-badge {
        color: rgba(255, 255, 255, 0.92) !important;
    }

    body.particle-wave-page .leaderboard-live-card .form-control,
    body.particle-wave-page .leaderboard-live-card .form-select:not(#genderFilter) {
        color: #fff;
    }

    body.particle-wave-page .leaderboard-live-card #genderFilter {
        background: #fff !important;
        color: #212529 !important;
        border-color: rgba(0, 0, 0, 0.15) !important;
    }

    body.particle-wave-page .leaderboard-live-card .form-control::placeholder {
        color: rgba(255, 255, 255, 0.55);
    }

    body.particle-wave-page .results-page-title {
        color: #fff;
    }
}
