html, body {
    font-family: 'Plus Jakarta Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    color: #2b2f2e;
}

/* ═══════════════════════════════════════════════════════
   MUDBLAZOR GLOBAL OVERRIDES — NSF design system
   Force our fonts, colors, and radii onto MudBlazor's
   generated classes so they match the design exactly.
═══════════════════════════════════════════════════════ */

/* 1. Font — Plus Jakarta Sans on every MudBlazor input/button surface */
.mud-input-root input,
.mud-input-root textarea,
.mud-select-input .mud-input-root input,
.mud-picker-input .mud-input-root input,
.mud-button-root,
.mud-input-helper-text,
.mud-input-label,
.mud-chip span {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}

/* 2. Outlined-variant inputs — background fill + rounded border */
.mud-input-outlined .mud-input-root-outlined {
    background: #eef2f0 !important;
    border-radius: 10px !important;
}
.mud-input-outlined-border {
    border-radius: 10px !important;
    border-color: rgba(43, 47, 46, 0.15) !important;
    border-width: 1.5px !important;
}
.mud-input-outlined:hover:not(.mud-disabled) .mud-input-outlined-border {
    border-color: rgba(0, 105, 62, 0.35) !important;
}
.mud-input.mud-input-outlined.mud-input-focused .mud-input-outlined-border {
    border-color: #00693e !important;
    border-width: 1.5px !important;
}

/* 3. Input text size + colour */
.mud-input-root input {
    font-size: 0.9rem !important;
    color: #2b2f2e !important;
}
.mud-input-root input::placeholder {
    color: #9aa5a1 !important;
    opacity: 1;
}

/* 4. Remove the floating label (we always show labels outside) */
.nsf-input .mud-input-label,
.nsf-input .mud-input-label-animated {
    display: none !important;
}
/*
 * Vertical centering fix — symmetric padding, no flexbox override.
 * MudBlazor's floating label reserves extra top-padding; replacing it
 * with equal top/bottom padding naturally centers the text.
 * DO NOT add display:flex here — it breaks the absolutely-positioned
 * fieldset that draws the outlined border.
 */
.nsf-input .mud-input-root-outlined {
    padding: 14px !important;
}
/*
 * The fieldset <legend> creates the "notch" in the outlined border
 * where the floating label would sit. Since we hide the label, the
 * legend still has a JS-calculated width that draws a gap across the
 * middle of the border (the visible "split"). Collapsing it removes
 * the gap entirely and closes the border into a clean rectangle.
 */
.nsf-input .mud-input-outlined-border legend {
    width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
}
.nsf-input .mud-input-root input,
.nsf-input .mud-input-root textarea {
    padding: 0 !important;
    font-size: 0.9rem !important;
    color: #2b2f2e !important;
}

/* 5. Validation / helper text below inputs */
.nsf-input .mud-input-helper-text {
    font-size: 0.72rem !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    margin-top: 4px !important;
}
/* Error state border */
.nsf-input .mud-input.mud-input-error .mud-input-outlined-border {
    border-color: #ba1a1a !important;
}

/* 6. MudSelect — same look as text inputs */
.nsf-input .mud-select .mud-input-root-outlined {
    background: #eef2f0 !important;
    border-radius: 10px !important;
}
.nsf-input .mud-select .mud-input-label,
.nsf-input .mud-select .mud-input-label-animated {
    display: none !important;
}

/* 7. MudNumericField */
.nsf-input .mud-numeric-field .mud-input-root-outlined {
    background: #eef2f0 !important;
    border-radius: 10px !important;
}

/* 8. MudDatePicker */
.nsf-input .mud-picker-input .mud-input-root-outlined {
    background: #eef2f0 !important;
    border-radius: 10px !important;
}
.nsf-input .mud-picker-input .mud-input-label,
.nsf-input .mud-picker-input .mud-input-label-animated {
    display: none !important;
}

/* 9. Primary button — pill shape + NSF green */
.mud-button-filled-primary {
    border-radius: 9999px !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    padding: 0.9rem 1.5rem !important;
}
.mud-button-filled-primary:hover {
    background-color: #005533 !important;
    transform: translateY(-1px);
    transition: transform 0.15s ease;
}

/* ── NSF FIELD WRAPPER (external label pattern) ───────── */

.nsf-field {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.5rem;
}
.nsf-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #4a5551;
    margin-bottom: 6px;
    line-height: 1;
}

/* ── Native inputs (used on SSR pages like Login where MudTextField can't bind) ── */
.nsf-native-input {
    width: 100%;
    padding: 14px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    color: #2b2f2e;
    background: #eef2f0;
    border: 1.5px solid rgba(43,47,46,0.15);
    border-radius: 10px;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.15s;
}
.nsf-native-input::placeholder { color: #9aa5a1; }
.nsf-native-input:focus { border-color: #00693e; background: #fff; }
.nsf-validation {
    display: block;
    margin-top: 4px;
    font-size: 0.75rem;
    color: #ba1a1a;
}

/* ── Section dividers inside forms ───────────────────── */
.nsf-section-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #00693e;
    margin: 1.75rem 0 1.25rem;
    padding-bottom: 0.6rem;
    border-bottom: 2px solid #d4ede2;
}
.nsf-section-title:first-of-type {
    margin-top: 0.25rem;
}

/* ── Two and three column rows ───────────────────────── */
.nsf-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.nsf-row-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
}

/* ── Guardian callout box ────────────────────────────── */
.nsf-guardian-box {
    background: #fff8e6;
    border-left: 3px solid #f5c518;
    border-radius: 12px;
    padding: 1.25rem;
    margin-top: 0.5rem;
}
.nsf-guardian-box .nsf-section-title {
    color: #a07800;
    border-bottom-color: #f5de84;
    margin-top: 0;
}

/* ── Form action row ─────────────────────────────────── */
.nsf-form-actions {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
    align-items: center;
}

@media (max-width: 700px) {
    .nsf-row, .nsf-row-3 { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════
   AUTH PAGES — shared
═══════════════════════════════════════════════════════ */

.auth-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Header */
.auth-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10;
    padding: 1.5rem 2.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.auth-brand {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.12em;
    color: #ffffff;
}
.auth-brand-logo {
    display: inline-flex;
    align-items: center;
    transition: transform 0.15s;
}
.auth-brand-logo:hover { transform: translateY(-1px); }
.auth-brand-logo-img {
    height: 66px;
    width: auto;
    display: block;
}
.auth-header-exit {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    color: #2b2f2e;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 6px;
}
.auth-header-exit:hover { opacity: 0.7; }

/* Footer */
.auth-footer {
    padding: 1.25rem 2.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #2b2f2e;
    margin-top: auto;
}

/* ── Forgot Password page ──────────────────────────────── */
.forgot-page {
    background: #00693e;
    background-image: radial-gradient(ellipse at 60% 40%, rgba(0,105,62,0.85) 0%, rgba(26,61,43,0.95) 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}
.forgot-card {
    background: #fff;
    border-radius: 20px;
    padding: 2.5rem 2.25rem;
    width: 100%;
    max-width: 420px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    box-shadow: 0 24px 64px rgba(0,0,0,0.18);
}
.forgot-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 1.5rem;
}
.forgot-brand-text {
    font-family: 'Lexend', sans-serif;
    font-size: 1rem;
    letter-spacing: 0.15em;
    color: #00693e;
    text-transform: uppercase;
}
.forgot-brand-text strong { font-weight: 800; }
.forgot-brand-line {
    width: 32px;
    height: 3px;
    background: #f5c518;
    border-radius: 2px;
    margin-top: 6px;
}
.forgot-title {
    font-family: 'Lexend', sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    color: #2b2f2e;
    margin: 0 0 0.5rem;
    line-height: 1.2;
}
.forgot-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.875rem;
    color: #4a5551;
    margin: 0 0 1.75rem;
    line-height: 1.6;
}
.forgot-error {
    width: 100%;
    background: #fff0f0;
    border: 1px solid #ba1a1a;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 0.82rem;
    color: #ba1a1a;
    margin-bottom: 1rem;
    text-align: left;
}
.forgot-page .nsf-field { width: 100%; text-align: left; }
.forgot-btn {
    width: 100%;
    padding: 0.9rem;
    background: #00693e;
    color: #fff;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    border: none;
    border-radius: 9999px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 0.5rem;
    margin-bottom: 1.25rem;
    transition: background 0.2s;
}
.forgot-btn:hover { background: #005530; }
.forgot-back {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: #4a5551;
    text-decoration: none;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 6px;
}
.forgot-back:hover { color: #00693e; }
.forgot-confirm-icon {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #eef7f2;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.25rem;
}
.forgot-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 420px;
    margin-top: 1.5rem;
    padding: 0 0.25rem;
}
.forgot-footer-brand {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.7);
}
.forgot-footer-nav {
    display: flex;
    gap: 1.25rem;
}
.forgot-footer-nav a {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem;
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.forgot-footer-nav a:hover { color: #fff; }

.auth-footer-brand {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    color: #ffffff;
}
.auth-footer-nav {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
}
.auth-footer-nav a {
    color: #adb5b2;
    font-size: 0.75rem;
    text-decoration: none;
}
.auth-footer-nav a:hover { color: #ffffff; }
.auth-footer-nav span {
    color: #6b7370;
    font-size: 0.7rem;
}

/* Form shared */
.auth-field-group {
    margin-bottom: 1.25rem;
}
.auth-label {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #4a5551;
    margin-bottom: 0.5rem;
}
.auth-label-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.5rem;
}
.auth-input-wrap {
    position: relative;
    display: flex;
    align-items: center;
    background: #eef2f0;
    border-radius: 10px;
    border: 1.5px solid rgba(74, 85, 81, 0.15);
    transition: border-color 0.2s;
}
.auth-input-wrap:focus-within {
    border-color: #00693e;
    background: #ffffff;
}
.auth-input-icon {
    padding: 0 0.75rem;
    color: #6b7370;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
.auth-input {
    flex: 1;
    padding: 0.8rem 0.75rem 0.8rem 0;
    background: transparent;
    border: none;
    outline: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    color: #2b2f2e;
    width: 100%;
}
.auth-input::placeholder { color: #9aa5a1; }
.auth-validation {
    display: block;
    font-size: 0.75rem;
    color: #ba1a1a;
    margin-top: 0.35rem;
}
.auth-link-small {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #00693e;
    text-decoration: none;
}
.auth-link-small:hover { text-decoration: underline; }
.auth-remember {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 1.5rem;
}
.auth-checkbox {
    width: 16px;
    height: 16px;
    accent-color: #00693e;
    cursor: pointer;
}
.auth-remember-label {
    font-size: 0.85rem;
    color: #4a5551;
    cursor: pointer;
}
.auth-btn-primary {
    width: 100%;
    padding: 0.9rem;
    background: #00693e;
    color: #ffffff;
    border: none;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, transform 0.15s;
    margin-bottom: 1.25rem;
}
.auth-btn-primary:hover {
    background: #005533;
    transform: translateY(-1px);
}
.auth-btn-secondary {
    width: 100%;
    padding: 0.9rem;
    background: #d4ede2;
    color: #00693e;
    border: none;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background 0.2s;
    margin-bottom: 1.25rem;
}
.auth-btn-secondary:hover { background: #c0e5d4; }

.auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 1.25rem 0;
    color: #9aa5a1;
    font-size: 0.78rem;
    letter-spacing: 0.05em;
}
.auth-divider::before,
.auth-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: rgba(43,47,46,0.12);
}

.auth-btn-google {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0.75rem 1rem;
    border: 1.5px solid rgba(43,47,46,0.18);
    border-radius: 9999px;
    background: #fff;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    color: #2b2f2e;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    letter-spacing: 0.01em;
}
.auth-btn-google:hover {
    background: #f5f7f6;
    border-color: rgba(43,47,46,0.3);
}

.auth-switch {
    text-align: center;
    font-size: 0.85rem;
    color: #4a5551;
    margin: 0;
}
.auth-link-green {
    color: #00693e;
    font-weight: 700;
    text-decoration: none;
}
.auth-link-green:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════════════════
   LOGIN PAGE
═══════════════════════════════════════════════════════ */

.login-page {
    background: #ffffff;
    position: relative;
}

.login-body {
    flex: 1;
    display: flex;
    min-height: calc(100vh - 56px);
}

/* Left: hero */
.login-hero {
    flex: 0 0 55%;
    display: flex;
    align-items: flex-end;
    padding: 7rem 3rem 3rem 3rem;
    position: relative;
    background: #f6f9f7;
}
.login-hero-content { position: relative; z-index: 2; }
.hero-eyebrow {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: #00693e;
    margin-bottom: 1rem;
}
.hero-headline {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(3rem, 7vw, 5.5rem);
    line-height: 0.95;
    letter-spacing: -0.02em;
    color: #0d3020;
    margin-bottom: 2rem;
}
.hero-highlight { color: #00693e; }
.hero-sub {
    font-size: 0.95rem;
    color: #4a5551;
    max-width: 360px;
    line-height: 1.6;
    margin-bottom: 1.5rem;
}
.hero-tag {
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    color: #9aa5a1;
    margin: 0;
}

/* Right: card */
.login-form-side {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6rem 3rem 3rem;
    background: #ffffff;
}
.login-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 2.5rem;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.15);
}
.login-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.6rem;
    color: #2b2f2e;
    margin-bottom: 0.35rem;
}
.login-card-sub {
    font-size: 0.85rem;
    color: #6b7370;
    margin-bottom: 1.75rem;
    line-height: 1.5;
}
.login-secure-note {
    text-align: center;
    font-size: 0.65rem;
    letter-spacing: 0.06em;
    color: #adb5b2;
    margin-top: 1.5rem;
    margin-bottom: 0;
}

/* ═══════════════════════════════════════════════════════
   REGISTRATION (JOIN) PAGE
═══════════════════════════════════════════════════════ */

.join-page {
    background: #eef2f0;
    position: relative;
}
.join-page .auth-brand { color: #2b2f2e; }
.join-page .auth-header {
    background: transparent;
    border-bottom: none;
}

.join-body {
    flex: 1;
    display: flex;
    align-items: stretch;
    padding: 5.5rem 2.5rem 2rem;
    gap: 2rem;
    max-width: 1100px;
    margin: 0 auto;
    width: 100%;
}

/* Left: step card */
.join-step-card {
    flex: 0 0 340px;
    background: #00693e;
    border-radius: 20px;
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    min-height: 480px;
}
.join-step-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0,40,22,0.7) 0%, rgba(0,105,62,0.3) 100%);
    z-index: 0;
}
.join-step-card > * { position: relative; z-index: 1; }

.join-step-badge {
    display: inline-flex;
    align-items: center;
    background: #f5c518;
    color: #2b2f2e;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    padding: 0.35rem 0.9rem;
    border-radius: 9999px;
    width: fit-content;
    margin-bottom: 1.5rem;
}
.join-step-headline {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.9rem;
    line-height: 1.05;
    letter-spacing: -0.01em;
    color: #ffffff;
    margin-bottom: 1rem;
}
.join-step-headline span { color: #92febc; }
.join-step-sub {
    font-size: 0.85rem;
    color: rgba(255,255,255,0.7);
    line-height: 1.6;
    margin-bottom: 2rem;
}
.join-step-dots {
    display: flex;
    gap: 6px;
    margin-top: auto;
}
.join-step-dot {
    width: 24px;
    height: 4px;
    border-radius: 9999px;
    background: rgba(255,255,255,0.25);
}
.join-step-dot.active {
    background: #92febc;
    width: 40px;
}

/* Right: form area */
.join-form-area {
    flex: 1;
    background: #ffffff;
    border-radius: 20px;
    padding: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.join-form-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 2rem;
    letter-spacing: -0.02em;
    color: #2b2f2e;
    margin-bottom: 0.4rem;
    line-height: 1.1;
}
.join-form-sub {
    font-size: 0.9rem;
    color: #6b7370;
    margin-bottom: 2rem;
    line-height: 1.5;
}
.join-form-section-label {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 0.12em;
    color: #00693e;
    text-transform: uppercase;
    margin: 1.5rem 0 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #d4ede2;
}
.join-form-section-label:first-of-type { margin-top: 0; }

.join-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.join-form-row-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
}

.join-step-label {
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    color: #6b7370;
    margin-top: 1.5rem;
}
.join-step-label strong { color: #00693e; }

/* Guardian section */
.guardian-section {
    background: #fff8e6;
    border-radius: 12px;
    padding: 1.25rem;
    margin-top: 1rem;
    border-left: 3px solid #f5c518;
}
.guardian-section .join-form-section-label {
    color: #a07800;
    border-bottom-color: #f5c518;
    margin-top: 0;
}

/* Success page */
.join-success-body {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5.5rem 2.5rem 2rem;
    gap: 3rem;
    max-width: 1000px;
    margin: 0 auto;
    width: 100%;
}
.join-success-image-card {
    flex: 0 0 360px;
    height: 460px;
    background: linear-gradient(135deg, #003c23 0%, #00693e 100%);
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
    position: relative;
    overflow: hidden;
}
.join-success-status-badge {
    background: #ffffff;
    border-radius: 10px;
    padding: 1rem 1.25rem;
    position: relative;
    z-index: 1;
}
.join-success-status-label {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #f5c518;
    margin-bottom: 0.25rem;
}
.join-success-status-text {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    color: #2b2f2e;
    line-height: 1.3;
}
.join-success-content { flex: 1; }
.join-success-confirmed {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #d4ede2;
    color: #00693e;
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    padding: 0.4rem 0.9rem;
    border-radius: 9999px;
    margin-bottom: 1.25rem;
}
.join-success-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 2.5rem;
    letter-spacing: -0.02em;
    color: #2b2f2e;
    line-height: 1.1;
    margin-bottom: 1rem;
}
.join-success-desc {
    font-size: 0.95rem;
    color: #4a5551;
    line-height: 1.6;
    margin-bottom: 2rem;
}
.join-success-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-top: 1rem;
}
.join-success-link-card {
    background: #eef2f0;
    border-radius: 12px;
    padding: 1rem;
    text-decoration: none;
    color: #2b2f2e;
    transition: background 0.2s;
}
.join-success-link-card:hover { background: #d4ede2; color: #00693e; }
.join-success-link-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    margin-bottom: 0.2rem;
}
.join-success-link-sub {
    font-size: 0.78rem;
    color: #6b7370;
}

/* Role selection cards */
.join-role-options {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.join-role-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    flex: 1 1 120px;
    min-width: 110px;
    padding: 1.25rem 1rem;
    border-radius: 0.75rem;
    background: #f6f9f7;
    border: 2px solid #dfe4e1;
    cursor: pointer;
    transition: border-color 0.18s, background 0.18s, box-shadow 0.18s;
    text-align: center;
    position: relative;
    user-select: none;
}

.join-role-card:hover {
    border-color: #00693e;
    background: #edf6f1;
}

.join-role-card--active {
    border-color: #00693e;
    background: #e0f5ec;
    box-shadow: 0 0 0 3px rgba(0,105,62,0.12);
}

.join-role-checkbox {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.join-role-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: #d4ede2;
    color: #00693e;
    transition: background 0.18s;
}

.join-role-card--active .join-role-icon {
    background: #00693e;
    color: #fff;
}

.join-role-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    color: #2b2f2e;
}

.join-role-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem;
    color: #5a6e66;
    line-height: 1.3;
}

/* Responsive */
@media (max-width: 900px) {
    .login-body { flex-direction: column; }
    .login-hero { flex: none; padding: 6rem 2rem 2rem; }
    .login-form-side { padding: 2rem; }
    .join-body { flex-direction: column; }
    .join-step-card { flex: none; min-height: 260px; }
    .join-form-row, .join-form-row-3 { grid-template-columns: 1fr; }
    .join-success-body { flex-direction: column; }
    .join-success-image-card { flex: none; height: 280px; width: 100%; }
    .join-role-options { flex-direction: column; }
    .join-role-card { flex-direction: row; text-align: left; padding: 1rem; }
    .join-role-icon { flex-shrink: 0; }
}

/* ═══════════════════════════════════════════════════════
   PUBLIC LAYOUT — nav + footer
═══════════════════════════════════════════════════════ */

.public-layout {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: #f0f4f1;
}

.public-main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* ── Top Nav ──────────────────────────────────────────── */

.public-nav {
    position: sticky;
    top: 0;
    z-index: 100;
    height: 68px;
    background: #ffffff;
    display: flex;
    align-items: center;
    padding: 0 2.5rem;
    gap: 2rem;
    box-shadow: 0 1px 0 #e5e9e7, 0 2px 12px rgba(13,48,32,0.04);
}

.public-nav-logo {
    display: flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
    margin-right: 1rem;
}

.public-nav-logo-img {
    height: 80px;
    width: auto;
    display: block;
}

.public-nav-links {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    flex: 1;
}

.public-nav-link {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: #4a5551;
    text-decoration: none;
    padding: 0.4rem 0.75rem;
    border-radius: 6px;
    transition: color 0.15s, background 0.15s;
    position: relative;
}

.public-nav-link:hover {
    color: #0d3020;
    background: #eef5f0;
}

.public-nav-link.active {
    color: #00693e;
    font-weight: 600;
}

.public-nav-link.active::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 2px;
    background: #00693e;
    border-radius: 2px;
}

.public-nav-cta {
    flex-shrink: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #ffffff;
    background: #00693e;
    text-decoration: none;
    padding: 0.55rem 1.25rem;
    border-radius: 9999px;
    transition: background 0.2s, transform 0.15s;
}

.public-nav-cta:hover {
    background: #005530;
    transform: translateY(-1px);
}

@media (max-width: 768px) {
    .public-nav { padding: 0 1.25rem; gap: 1rem; }
    .public-nav-links { display: none; }
}

/* Nav dropdown */
.public-nav-dropdown {
    position: relative;
    display: inline-block;
}

.public-nav-dropdown-menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    min-width: 200px;
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0,0,0,0.18);
    padding: 0.4rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.18s, transform 0.18s, visibility 0.18s;
    pointer-events: none;
    z-index: 200;
}

.public-nav-dropdown:hover .public-nav-dropdown-menu,
.public-nav-dropdown:focus-within .public-nav-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
}

.public-nav-dropdown-item {
    display: block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    color: #2b2f2e;
    text-decoration: none;
    padding: 0.6rem 0.85rem;
    border-radius: 6px;
    transition: background 0.12s, color 0.12s;
    white-space: nowrap;
}

.public-nav-dropdown-item:hover,
.public-nav-dropdown-item.active {
    background: #eef5f0;
    color: #00693e;
}

/* ── Footer ───────────────────────────────────────────── */

.public-footer {
    background: #0d1e14;
    padding: 2rem 2.5rem;
}

.public-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 3rem;
    flex-wrap: wrap;
}

.public-footer-brand { flex: 1; min-width: 200px; }

.public-footer-logo {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.85rem;
}

.public-footer-logo-img {
    height: 80px;
    width: auto;
    display: block;
}

.public-footer-tagline {
    font-size: 0.75rem;
    color: rgba(255,255,255,0.45);
    line-height: 1.6;
    margin: 0;
    max-width: 240px;
}

.public-footer-nav {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    align-items: center;
}

.public-footer-nav a {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: color 0.15s;
}

.public-footer-nav a:hover { color: #ffffff; }

.public-footer-copy {
    width: 100%;
    font-size: 0.7rem;
    color: rgba(255,255,255,0.3);
    margin: 1rem 0 0;
}

/* ═══════════════════════════════════════════════════════
   PLAYER LISTINGS PAGE
═══════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────── */

.listings-hero {
    background: #f6f9f7;
    padding: 3.5rem 2.5rem 2.5rem;
    position: relative;
    overflow: hidden;
}

.listings-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    position: relative;
    z-index: 1;
}

.listings-hero-left { flex: 1; }

.listings-hero-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #2b2f2e;
    background: #f5c518;
    border-radius: 4px;
    padding: 0.35rem 0.75rem;
    margin-bottom: 1.25rem;
}

.listings-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    line-height: 0.9;
    letter-spacing: -0.02em;
    color: #0d3020;
    margin: 0 0 1.25rem;
}

.listings-hero-sub {
    font-size: 0.9rem;
    color: #6b7370;
    max-width: 420px;
    line-height: 1.6;
    margin: 0;
}

.listings-hero-right {
    flex-shrink: 0;
    padding-top: 1.5rem;
}

.listings-hero-stat {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
}

.listings-hero-stat-number {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(3rem, 7vw, 5rem);
    line-height: 0.9;
    letter-spacing: -0.03em;
    color: #00693e;
}

.listings-hero-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #00693e;
    line-height: 1.2;
    padding-top: 0.5rem;
}

/* decorative swoosh on the right */
.listings-hero-swoosh {
    position: absolute;
    right: -150px;
    top: 0;
    bottom: 0;
    width: 500px;
    background:
        radial-gradient(ellipse at 30% 50%, rgba(0,105,62,0.08) 0%, transparent 55%),
        radial-gradient(ellipse at 60% 80%, rgba(146,254,188,0.12) 0%, transparent 55%);
    transform: skewX(-12deg);
    pointer-events: none;
}

@media (max-width: 768px) {
    .listings-hero { padding: 2.5rem 1.25rem 2rem; }
    .listings-hero-inner { flex-direction: column; gap: 1.25rem; }
    .listings-hero-right { padding-top: 0; }
    .listings-hero-swoosh { display: none; }
}

/* ── Controls ─────────────────────────────────────────── */

.listings-controls-wrap {
    background: #f6f9f7;
    padding: 1.5rem 2.5rem;
}

.listings-controls {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #ffffff;
    border: 1px solid rgba(43,47,46,0.08);
    border-radius: 9999px;
    padding: 0.4rem 0.5rem 0.4rem 0.5rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.03);
}

.listings-search {
    flex: 1;
    min-width: 0;
}

.listings-search-input .mud-input-root-outlined {
    background: transparent !important;
    border-radius: 9999px !important;
}
.listings-search-input .mud-input-outlined-border {
    border-color: transparent !important;
}
.listings-search-input.mud-input-outlined:hover:not(.mud-disabled) .mud-input-outlined-border,
.listings-search-input.mud-input-outlined .mud-input-focused .mud-input-outlined-border {
    border-color: transparent !important;
}
.listings-search-input .mud-input-outlined-border legend {
    width: 0 !important; max-height: 0 !important;
}
.listings-search-input .mud-input-root input {
    font-size: 0.85rem !important;
}
.listings-search-input .mud-input-adornment {
    color: #9aa5a1 !important;
}

.listings-filter-group {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.listings-filter-btn {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #4a5551;
    background: #f6f9f7;
    border: none;
    border-radius: 9999px;
    padding: 0.5rem 1rem;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}

.listings-filter-btn:hover {
    background: #eef5f0;
    color: #00693e;
}

.listings-filter-btn.active {
    background: #00693e;
    color: #ffffff;
    box-shadow: 0 2px 8px rgba(0,105,62,0.25);
}

.listings-sort-menu {
    flex-shrink: 0;
}
.listings-sort-menu .mud-icon-button {
    background: #f6f9f7 !important;
    color: #4a5551 !important;
    border-radius: 9999px !important;
    padding: 0.5rem !important;
}
.listings-sort-menu .mud-icon-button:hover {
    background: #eef5f0 !important;
    color: #00693e !important;
}

@media (max-width: 768px) {
    .listings-controls-wrap { padding: 1.25rem; }
    .listings-controls {
        flex-wrap: wrap;
        border-radius: 20px;
        padding: 0.75rem;
    }
    .listings-search { flex-basis: 100%; }
    .listings-filter-group { flex: 1; }
    .listings-filter-btn { flex: 1; }
}

/* ── Grid ─────────────────────────────────────────────── */

.listings-grid-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 2.5rem 4rem;
    width: 100%;
    box-sizing: border-box;
}

.listings-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

@media (max-width: 1024px) { .listings-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .listings-grid { grid-template-columns: 1fr; } }

/* ── Listing Card ─────────────────────────────────────── */

.listing-card {
    background: #ffffff;
    border: 1px solid rgba(43,47,46,0.08);
    border-radius: 18px;
    overflow: hidden;
    position: relative;
    transition: transform 0.2s, box-shadow 0.2s;
    display: flex;
    flex-direction: column;
}

.listing-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 44px rgba(0,0,0,0.1);
}

/* Whole-card link variant (referee listing) */
.listing-card--link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
}

/* Top: colored photo section */
.listing-card-top {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}

/* Per-card color variants (rotated via player.Id % 5) */
.listing-card-color-0 .listing-card-top { background: linear-gradient(135deg, #0d3020 0%, #1a6b4a 100%); }
.listing-card-color-1 .listing-card-top { background: linear-gradient(135deg, #7a1f48 0%, #c94476 100%); }
.listing-card-color-2 .listing-card-top { background: linear-gradient(135deg, #8a1f1f 0%, #c94141 100%); }
.listing-card-color-3 .listing-card-top { background: linear-gradient(135deg, #1f3a5c 0%, #3d6ba3 100%); }
.listing-card-color-4 .listing-card-top { background: linear-gradient(135deg, #5c2d7a 0%, #9044c4 100%); }

.listing-card-rank {
    position: absolute;
    top: 14px;
    left: 14px;
    z-index: 2;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    color: #ffffff;
    background: #00693e;
    border-radius: 6px;
    padding: 0.35rem 0.7rem;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}

.listing-card-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    mix-blend-mode: normal;
    transition: transform 0.4s ease;
}

.listing-card:hover .listing-card-photo {
    transform: scale(1.05);
}

.listing-card-name-overlay {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 1rem 1.25rem;
    background: linear-gradient(to top, rgba(10,20,14,0.9) 0%, rgba(10,20,14,0.5) 50%, transparent 100%);
    z-index: 1;
}

.listing-card-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.15rem;
    line-height: 1.1;
    color: #ffffff;
    letter-spacing: 0.01em;
    margin-bottom: 0.2rem;
}

.listing-card-state {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    color: rgba(255,255,255,0.7);
}

/* Bottom: stats section */
.listing-card-bottom {
    background: #ffffff;
    padding: 1.1rem 1.25rem 1.1rem;
}

.listing-stat-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    padding-bottom: 0.85rem;
    margin-bottom: 0.85rem;
    border-bottom: 1px solid #eef2f0;
}

.listing-stat {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.listing-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #9aa5a1;
    text-transform: uppercase;
}

.listing-stat-value {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.35rem;
    color: #0d3020;
    line-height: 1;
}

.listing-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.listing-card-footer-text {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.listing-card-footer-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #9aa5a1;
    text-transform: uppercase;
}

.listing-card-footer-value {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    color: #2b2f2e;
}

.listing-card-arrow {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #d4ede2;
    color: #00693e;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.15s;
}

.listing-card-arrow:hover {
    background: #00693e;
    color: #ffffff;
    transform: translateX(3px);
}

/* Skeleton */
.listing-card-skeleton {
    height: 420px;
    background: linear-gradient(90deg, #e8eee9 25%, #f4f7f5 50%, #e8eee9 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.4s infinite;
    border: none;
}

@keyframes skeleton-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Empty state ──────────────────────────────────────── */

.listings-empty {
    padding: 4rem 0;
    text-align: center;
    color: #9aa5a1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.listings-empty p {
    font-size: 0.9rem;
    margin: 0;
}

/* ── Pagination ───────────────────────────────────────── */

.listings-pagination {
    display: flex;
    justify-content: center;
    margin-top: 3rem;
}

.listings-pagination .mud-pagination-item {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 700 !important;
    min-width: 36px !important;
    height: 36px !important;
    border-radius: 9999px !important;
    color: #4a5551 !important;
    border: none !important;
    background: transparent !important;
}

.listings-pagination .mud-pagination-item:hover {
    background: #eef5f0 !important;
    color: #00693e !important;
}

.listings-pagination .mud-pagination-item.mud-pagination-item-selected {
    background: #00693e !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(0,105,62,0.25);
}

/* ═══════════════════════════════════════════════════════
   BOARD OF DIRECTORS PAGE
═══════════════════════════════════════════════════════ */

/* ── Hero ─────────────────────────────────────────────── */

.board-hero {
    background: #ffffff;
    padding: 3.5rem 2.5rem 3rem;
    position: relative;
}

.board-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 3rem;
    align-items: center;
    position: relative;
}

.board-hero-left { position: relative; z-index: 1; }

.board-hero-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #2b2f2e;
    background: #f5c518;
    border-radius: 4px;
    padding: 0.35rem 0.75rem;
    margin-bottom: 1.5rem;
}

.board-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.5rem, 6vw, 4.75rem);
    line-height: 0.95;
    letter-spacing: -0.02em;
    margin: 0 0 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.15em;
}

.board-hero-title-dark  { color: #0d3020; }
.board-hero-title-green { color: #00693e; }

.board-hero-sub {
    font-size: 0.95rem;
    color: #6b7370;
    max-width: 460px;
    line-height: 1.65;
    margin: 0;
}

.board-hero-panel {
    background: linear-gradient(135deg, #e8f3ec 0%, #d4ede2 100%);
    border-radius: 16px;
    height: 100%;
    min-height: 280px;
    position: relative;
    overflow: hidden;
}

.board-hero-panel::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 30% 30%, rgba(0,105,62,0.12) 0%, transparent 45%),
        radial-gradient(circle at 70% 70%, rgba(146,254,188,0.25) 0%, transparent 55%);
}

@media (max-width: 900px) {
    .board-hero { padding: 2.5rem 1.25rem 2rem; }
    .board-hero-inner { grid-template-columns: 1fr; gap: 1.5rem; }
    .board-hero-panel { min-height: 160px; }
}

/* ── Sections ─────────────────────────────────────────── */

.board-section {
    padding: 3.5rem 2.5rem;
    background: #ffffff;
}

.board-section-alt {
    background: #f6f9f7;
}

.board-section-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.board-section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 2rem;
    flex-wrap: wrap;
}

.board-section-heading {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: #0d3020;
    margin: 0 0 1.75rem;
    position: relative;
    display: inline-block;
    padding-bottom: 0.65rem;
}

.board-section-underline {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 64px;
    height: 3px;
    background: #00693e;
    border-radius: 2px;
}

.board-section-underline.yellow { background: #f5c518; }

.board-section-subtext {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    color: #9aa5a1;
    letter-spacing: 0.04em;
    padding-bottom: 1.25rem;
}

/* ── Executive Committee ──────────────────────────────── */

.board-exec-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 1.25rem;
}

@media (max-width: 900px) {
    .board-exec-grid { grid-template-columns: 1fr; }
}

/* Featured president card */
.board-exec-featured {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0;
    background: #ffffff;
    border: 1px solid rgba(43,47,46,0.08);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,0.04);
}

.board-exec-photo-wrap {
    width: 260px;
    /* no fixed height — stretches to the full card height via the grid row */
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
    flex-shrink: 0;
    align-self: stretch;
}

.board-exec-photo {
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
    object-position: top center;
    display: block;
}

.board-exec-body {
    padding: 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.board-role-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #00693e;
    margin-bottom: 0.5rem;
}

.board-role-label-light {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: rgba(255,255,255,0.65);
    margin-bottom: 0.5rem;
    display: block;
}

.board-exec-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.5rem;
    line-height: 1.15;
    color: #0d3020;
    margin: 0 0 0.85rem;
}

.board-exec-bio {
    font-size: 0.82rem;
    color: #6b7370;
    line-height: 1.6;
    margin: 0 0 1.25rem;
}

.board-email-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    color: #00693e;
    text-decoration: none;
    background: #eef5f0;
    border-radius: 9999px;
    padding: 0.5rem 1rem;
    transition: background 0.15s, color 0.15s;
    margin-top: 0.25rem;
    align-self: flex-start;
}

.board-email-btn:hover {
    background: #00693e;
    color: #ffffff;
}

@media (max-width: 640px) {
    .board-exec-featured { grid-template-columns: 1fr; }
    .board-exec-photo-wrap { width: 100%; height: 260px; }
}

/* Side cards */
.board-exec-side {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: 1.25rem;
}

/* VP mini card */
.board-exec-mini {
    background: #ffffff;
    border: 1px solid rgba(43,47,46,0.08);
    border-radius: 18px;
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    box-shadow: 0 4px 16px rgba(0,0,0,0.04);
}

.board-exec-mini-photo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    object-position: top center;
    flex-shrink: 0;
    background: #eef2f0;
}

.board-exec-mini-body { flex: 1; min-width: 0; }

.board-exec-mini-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    color: #0d3020;
    margin: 0 0 0.2rem;
    line-height: 1.2;
}

.board-exec-mini-sub {
    font-size: 0.75rem;
    color: #9aa5a1;
    margin: 0;
    line-height: 1.4;
}

/* Tech lead green card */
.board-exec-green {
    background: linear-gradient(135deg, #00693e 0%, #1a6b4a 100%);
    border-radius: 18px;
    padding: 1.5rem 1.75rem;
    position: relative;
    overflow: hidden;
    color: #ffffff;
}

.board-exec-green::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 180px;
    height: 180px;
    border: 24px solid rgba(255,255,255,0.07);
    border-radius: 50%;
    pointer-events: none;
}

.board-exec-green-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.35rem;
    margin: 0 0 0.35rem;
    line-height: 1.15;
    position: relative;
}

.board-exec-green-sub {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.75);
    margin: 0 0 1rem;
    position: relative;
}

.board-exec-green-arrow {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff;
    color: #00693e;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    transition: transform 0.15s;
}

.board-exec-green-arrow:hover { transform: translateX(3px); }

/* ── Board Members Grid ───────────────────────────────── */

.board-members-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.25rem;
}

@media (max-width: 1100px) { .board-members-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .board-members-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .board-members-grid { grid-template-columns: 1fr; } }

.board-member-card {
    background: #ffffff;
    border: 1px solid rgba(43,47,46,0.08);
    border-radius: 16px;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.2s;
    display: flex;
    flex-direction: column;
}

.board-member-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.08);
}

.board-member-photo-wrap {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #eef2f0;
}

.board-member-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
    transition: transform 0.35s;
}

.board-member-card:hover .board-member-photo {
    transform: scale(1.04);
}

.board-member-body {
    padding: 1.1rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.board-member-category {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.58rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #00693e;
    margin-bottom: 0.35rem;
}

.board-member-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.98rem;
    color: #0d3020;
    margin: 0 0 0.25rem;
    line-height: 1.2;
}

.board-member-title {
    font-size: 0.75rem;
    color: #6b7370;
    margin: 0 0 1rem;
    flex: 1;
    line-height: 1.4;
}

.board-member-profile-btn {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #00693e;
    background: #eef5f0;
    border: none;
    border-radius: 9999px;
    padding: 0.5rem 0.9rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    transition: all 0.15s;
    align-self: flex-start;
}

.board-member-profile-btn:hover {
    background: #00693e;
    color: #ffffff;
}

/* ═══════════════════════════════════════════════════════
   PLAYER PROFILE PAGE
═══════════════════════════════════════════════════════ */

/* ── Loading / Not Found ──────────────────────────────── */

.profile-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6rem 2rem;
}

.profile-not-found {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 6rem 2rem;
    text-align: center;
}

.profile-not-found h2 {
    font-family: 'Lexend', sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #2b2f2e;
    margin: 0;
}

.profile-not-found p {
    color: #6b7370;
    font-size: 0.9rem;
    margin: 0 0 1rem;
}

/* ── Hero ─────────────────────────────────────────────── */

.profile-hero {
    background: linear-gradient(135deg, #0a1810 0%, #0f2d1a 40%, #00693e 100%);
    padding: 3.5rem 2.5rem 0;
    position: relative;
    overflow: hidden;
    min-height: 320px;
}

.profile-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-end;
    gap: 3rem;
    position: relative;
    z-index: 1;
}

/* Photo */
.profile-hero-photo-wrap {
    flex-shrink: 0;
    width: 220px;
    height: 280px;
    border-radius: 12px 12px 0 0;
    overflow: hidden;
    background: #1a3d2b;
    box-shadow: 0 -8px 32px rgba(0,0,0,0.3);
    align-self: flex-end;
}

.profile-hero-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    display: block;
}

/* Info */
.profile-hero-info {
    flex: 1;
    padding-bottom: 2.5rem;
}

.profile-hero-badges {
    display: flex;
    gap: 0.6rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.profile-badge-pro {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #2b2f2e;
    background: #f5c518;
    border-radius: 9999px;
    padding: 0.3rem 0.85rem;
}

.profile-badge-verified {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #92febc;
    border: 1px solid rgba(146,254,188,0.4);
    border-radius: 9999px;
    padding: 0.3rem 0.85rem;
    display: flex;
    align-items: center;
    gap: 4px;
}

.profile-hero-name {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.75rem;
}

.profile-hero-firstname {
    font-family: 'Lexend', sans-serif;
    font-weight: 400;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    color: rgba(255,255,255,0.65);
    line-height: 1;
    letter-spacing: 0.02em;
}

.profile-hero-lastname {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.25rem, 5vw, 3.75rem);
    color: #92febc;
    line-height: 0.95;
    letter-spacing: -0.01em;
}

.profile-hero-stats {
    display: flex;
    align-items: center;
    gap: 0;
    flex-wrap: wrap;
}

.profile-hero-stat {
    display: flex;
    flex-direction: column;
    padding: 0 1.5rem 0 0;
}

.profile-hero-stat-divider {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,0.2);
    margin-right: 1.5rem;
}

.profile-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: rgba(255,255,255,0.45);
    text-transform: uppercase;
    margin-bottom: 0.25rem;
}

.profile-stat-value {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.1rem;
    color: #ffffff;
    line-height: 1.1;
}

/* Qualification and grade are free text and run long — one coach's is 186
   characters. Give those stats room and clamp to two lines; the full value
   stays in the title attribute and in the profile info panel below. */
.profile-hero-stat--wide { max-width: 26rem; }
.profile-stat-value--clamp {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 1rem;
    line-height: 1.3;
}

.profile-hero-accent {
    position: absolute;
    right: -80px;
    bottom: -80px;
    width: 400px;
    height: 400px;
    border: 50px solid rgba(255,255,255,0.03);
    border-radius: 50%;
    pointer-events: none;
}

@media (max-width: 768px) {
    .profile-hero { padding: 2.5rem 1.25rem 0; min-height: auto; }
    .profile-hero-inner { gap: 1.5rem; }
    .profile-hero-photo-wrap { width: 140px; height: 180px; }
    .profile-hero-lastname { font-size: 2rem; }
    .profile-hero-firstname { font-size: 1.4rem; }
}

@media (max-width: 480px) {
    .profile-hero-inner { flex-direction: column; align-items: flex-start; padding-bottom: 1.5rem; }
    .profile-hero-photo-wrap { width: 120px; height: 150px; border-radius: 12px; }
    .profile-hero-info { padding-bottom: 0; }
}

/* ── Body ─────────────────────────────────────────────── */

.profile-body {
    background: #f0f4f1;
    padding: 2.5rem 2.5rem 4rem;
}

.profile-body-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 2rem;
    align-items: start;
}

@media (max-width: 900px) {
    .profile-body-inner { grid-template-columns: 1fr; }
    .profile-body { padding: 1.5rem 1.25rem 3rem; }
}

/* ── Profile Info Card ────────────────────────────────── */

.profile-info-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 1.75rem;
    margin-bottom: 1.25rem;
}

.profile-info-heading {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.15em;
    color: #2b2f2e;
    margin: 0 0 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #eef2f0;
}

.profile-info-row {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid #f4f7f5;
}

.profile-info-row:last-child { border-bottom: none; }

.profile-info-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #9aa5a1;
    text-transform: uppercase;
}

.profile-info-value {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    font-weight: 500;
    color: #2b2f2e;
}

.profile-sponsor-badge {
    display: inline-block;
    background: #eef2f0;
    border-radius: 6px;
    padding: 0.3rem 0.75rem;
    font-weight: 700;
    font-size: 0.8rem;
    color: #2b2f2e;
    letter-spacing: 0.04em;
    margin-top: 0.15rem;
}

/* ── Invite Card ──────────────────────────────────────── */

.profile-invite-card {
    background: #00693e;
    border-radius: 16px;
    padding: 1.5rem;
    position: relative;
    overflow: hidden;
}

.profile-invite-card::before {
    content: '';
    position: absolute;
    top: -40px;
    right: -40px;
    width: 160px;
    height: 160px;
    border: 24px solid rgba(255,255,255,0.07);
    border-radius: 50%;
    pointer-events: none;
}

.profile-invite-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    color: #ffffff;
    margin: 0 0 0.5rem;
}

.profile-invite-desc {
    font-size: 0.78rem;
    color: rgba(255,255,255,0.7);
    line-height: 1.6;
    margin: 0 0 1.25rem;
}

.profile-invite-btn {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #00693e;
    background: #ffffff;
    border: none;
    border-radius: 9999px;
    padding: 0.6rem 1.25rem;
    cursor: pointer;
    transition: background 0.15s;
    width: 100%;
}

.profile-invite-btn:hover { background: #d4ede2; }

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}
/* ═══════════════════════════════════════════════════════════════
   TOURNAMENT DETAIL
═══════════════════════════════════════════════════════════════ */

/* ── Hero: split layout ─────────────────────────────────────── */
.tourn-hero {
    background: #eef7f1;
    padding: 52px 0 56px;
}

.tourn-hero-inner {
    display: flex;
    align-items: center;
    gap: 56px;
}

/* Poster column */
.tourn-hero-poster {
    flex-shrink: 0;
    width: 280px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 18px 48px rgba(13,48,32,0.18), 0 0 0 1px rgba(13,48,32,0.05);
    background: #dfe9e3;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 360px;
}

.tourn-hero-poster-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.tourn-hero-poster-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 360px;
}

/* Info column */
.tourn-hero-info {
    flex: 1;
    min-width: 0;
}

.tourn-hero-tag {
    display: inline-block;
    background: #00693e;
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    padding: 5px 13px;
    border-radius: 9999px;
    margin-bottom: 20px;
    text-transform: uppercase;
}

.tourn-hero-title {
    font-family: 'Lexend', sans-serif;
    font-size: clamp(28px, 3.6vw, 52px);
    font-weight: 900;
    color: #0d3020;
    line-height: 1.05;
    margin: 0 0 24px;
    text-transform: uppercase;
    letter-spacing: -0.02em;
}

/* Venue / date rows beneath title */
.tourn-hero-meta {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 32px;
}

.tourn-hero-meta-row {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #51605a;
    font-size: 14px;
}

.tourn-hero-meta-icon {
    color: #00693e !important;
    font-size: 16px !important;
    flex-shrink: 0;
}

/* Stats strip */
.tourn-hero-stats {
    display: flex;
    align-items: stretch;
    gap: 0;
    padding-top: 28px;
    border-top: 1px solid rgba(13,48,32,0.12);
}

.tourn-hero-stat {
    display: flex;
    flex-direction: column;
    padding-right: 28px;
    margin-right: 28px;
    border-right: 1px solid rgba(13,48,32,0.12);
}

.tourn-hero-stat:last-child {
    border-right: none;
    padding-right: 0;
    margin-right: 0;
}

.tourn-hero-stat .stat-value {
    font-family: 'Lexend', sans-serif;
    font-size: 20px;
    font-weight: 800;
    color: #0d3020;
    line-height: 1.2;
}

.tourn-hero-stat .stat-label {
    font-size: 10px;
    color: #6c7a73;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-top: 3px;
}

.tourn-hero-stat.stat-open .stat-value  { color: #00693e; }
.tourn-hero-stat.stat-closed .stat-value { color: #c0392b; }

/* Info bar */
.tourn-info-bar {
    background: #f6f9f7;
    padding: 20px 0;
}

.tourn-info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.tourn-info-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fff;
    border-radius: 12px;
    padding: 15px 16px;
    box-shadow: 0 1px 3px rgba(13,48,32,0.06);
}

.tourn-info-item .mud-icon-root {
    color: #00693e;
    margin-top: 1px;
    flex-shrink: 0;
}

.tourn-info-item .info-label {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #999;
    font-weight: 700;
    margin-bottom: 2px;
}

.tourn-info-item .info-value {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #1a2e24;
}

/* Body layout */
.tourn-body {
    display: grid;
    grid-template-columns: 1fr 310px;
    gap: 24px;
    padding-top: 32px;
    padding-bottom: 56px;
    align-items: start;
}

.tourn-left,
.tourn-right {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Cards */
.tourn-card {
    background: #fff;
    border-radius: 12px;
    border: 1px solid #e4ede8;
    overflow: hidden;
}

.tourn-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-bottom: 1px solid #e4ede8;
    flex-wrap: wrap;
}

.tourn-card-label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #1a2e24;
    text-transform: uppercase;
    white-space: nowrap;
    margin-right: auto;
}

/* Prize tabs */
.tourn-prize-tabs {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.prize-tab {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 9px;
    border-radius: 20px;
    border: 1px solid #cde3d6;
    background: transparent;
    color: #666;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}

.prize-tab.active,
.prize-tab:hover {
    background: #00693e;
    color: #fff;
    border-color: #00693e;
}

.tourn-download-btn {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.08em;
    color: #fff;
    background: #00693e;
    border: none;
    border-radius: 4px;
    padding: 5px 10px;
    cursor: pointer;
    text-transform: uppercase;
    flex-shrink: 0;
    transition: background 0.15s;
}

.tourn-download-btn:hover { background: #005530; }

/* Prize table */
.tourn-prize-table {
    width: 100%;
    border-collapse: collapse;
}

.tourn-prize-table tr { border-bottom: 1px solid #f0f5f2; }
.tourn-prize-table tr:last-child { border-bottom: none; }

.tourn-prize-table td {
    padding: 13px 18px;
    font-size: 14px;
}

.tourn-prize-table .prize-level {
    color: #555;
    font-weight: 500;
}

.tourn-prize-table .prize-amount {
    text-align: right;
    font-weight: 800;
    font-family: 'Lexend', sans-serif;
    color: #1a2e24;
    font-size: 15px;
}

/* Green card header (entry list) */
.tourn-card-header--green {
    background: #00693e;
    border-bottom: none;
}
.tourn-card-header--green .tourn-card-label { color: #fff; }

/* Entry sidebar tabs */
.tourn-entry-tabs {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.tourn-card-header--green .entry-tab {
    border-color: rgba(255,255,255,0.4);
    color: rgba(255,255,255,0.85);
}
.tourn-card-header--green .entry-tab.active,
.tourn-card-header--green .entry-tab:hover {
    background: #92febc;
    color: #0d3020;
    border-color: #92febc;
}

.entry-tab {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 9px;
    border-radius: 20px;
    border: 1px solid #cde3d6;
    background: transparent;
    color: #666;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}

.entry-tab.active,
.entry-tab:hover {
    background: #0d3020;
    color: #fff;
    border-color: #0d3020;
}

/* Entry list */
.tourn-entry-list {
    padding: 4px 0;
}

.tourn-no-entries {
    padding: 20px 18px;
    font-size: 13px;
    color: #aaa;
    margin: 0;
}

.tourn-entry-row {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 18px;
    border-bottom: 1px solid #f0f5f2;
    transition: background 0.1s;
}

.tourn-entry-row:last-child { border-bottom: none; }
.tourn-entry-row:hover { background: #f6f9f7; }

.entry-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 1.5px solid #e4ede8;
}

.entry-pos {
    flex-shrink: 0;
    width: 20px;
    font-family: 'Lexend', sans-serif;
    font-size: 12px;
    font-weight: 800;
    color: #9aa5a1;
    text-align: center;
}

.entry-name {
    font-size: 13px;
    font-weight: 600;
    color: #1a2e24;
}

.tourn-view-draw-btn {
    display: block;
    text-align: center;
    margin: 10px 16px 14px;
    padding: 10px;
    background: #f6f9f7;
    border: 1.5px solid #cde3d6;
    border-radius: 6px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #00693e;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.15s;
}

.tourn-view-draw-btn:hover {
    background: #00693e;
    color: #fff;
    border-color: #00693e;
}

/* Note card */
.tourn-note-card {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #fffbeb;
    border: 1px solid #fde68a;
    border-radius: 8px;
    padding: 14px 16px;
    font-size: 13px;
    color: #78350f;
}

.tourn-note-card .mud-icon-root {
    color: #d97706;
    flex-shrink: 0;
    margin-top: 1px;
}

/* Join the Court CTA */
.tourn-join-card {
    position: relative;
    overflow: hidden;
    background: #00693e;
    border-radius: 12px;
    padding: 28px 22px;
}
.tourn-join-card::after {
    content: "";
    position: absolute;
    top: -70px; right: -50px;
    width: 200px; height: 200px;
    border: 1px solid rgba(146,254,188,0.25);
    border-radius: 50%;
    pointer-events: none;
}

.tourn-join-title {
    position: relative;
    font-family: 'Lexend', sans-serif;
    font-size: 28px;
    font-weight: 900;
    color: #fff;
    text-transform: uppercase;
    line-height: 1.05;
    margin: 0 0 14px;
}

.tourn-join-text {
    position: relative;
    font-size: 13px;
    color: rgba(255,255,255,0.8);
    line-height: 1.65;
    margin: 0 0 22px;
}

.tourn-join-btn {
    position: relative;
    display: inline-block;
    background: #92febc;
    color: #0d3020;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    padding: 11px 22px;
    border-radius: 9999px;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tourn-join-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(13,48,32,0.3); }

/* Latest News card */
.tourn-news-all {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #00693e;
    text-decoration: none;
}
.tourn-news-all:hover { text-decoration: underline; }

.tourn-news-list { padding: 4px 0; }

.tourn-news-row {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 12px 18px;
    border-bottom: 1px solid #f0f5f2;
    text-decoration: none;
    transition: background 0.1s;
}
.tourn-news-row:last-child { border-bottom: none; }
.tourn-news-row:hover { background: #f6f9f7; }

.tourn-news-thumb {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    border-radius: 10px;
    background-size: cover;
    background-position: center;
}
.tourn-news-thumb--empty {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef5f0;
    color: #9aa5a1;
}

.tourn-news-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.tourn-news-cat {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #00693e;
}
.tourn-news-title {
    font-size: 13px;
    font-weight: 700;
    color: #1a2e24;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.tourn-news-date {
    font-size: 11px;
    color: #9aa5a1;
}


/* ═══════════════════════════════════════════════════════════════
   TOURNAMENT ENTRIES LIST
═══════════════════════════════════════════════════════════════ */

.entries-hero {
    background: #fff;
    border-bottom: 1px solid #e4ede8;
    padding: 48px 0 36px;
}

.entries-hero-inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 32px;
}

.entries-hero-left { flex: 1; }

.entries-hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #00693e;
    border: 1.5px solid #00693e;
    border-radius: 20px;
    padding: 4px 12px;
    margin-bottom: 16px;
}

.entries-hero-tag::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #00693e;
    flex-shrink: 0;
}

.entries-hero-title {
    font-family: 'Lexend', sans-serif;
    font-size: clamp(28px, 4vw, 44px);
    font-weight: 900;
    color: #1a2e24;
    line-height: 1.1;
    margin: 0 0 12px;
}

.entries-hero-title .title-green { color: #00693e; }

.entries-hero-meta {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #666;
    margin: 0;
}

.entries-hero-meta .mud-icon-root {
    font-size: 16px;
    color: #999;
}

.entries-hero-stats {
    display: flex;
    gap: 14px;
    flex-shrink: 0;
    align-self: center;
}

.entries-stat-box {
    background: #f6f9f7;
    border: 1px solid #d0e8da;
    border-radius: 10px;
    padding: 14px 20px;
    text-align: center;
    min-width: 100px;
}

.entries-stat-label {
    display: block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 6px;
}

.entries-stat-value {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-size: 32px;
    font-weight: 900;
    color: #1a2e24;
    line-height: 1;
}

.entries-stat-box.countdown .entries-stat-value {
    color: #f5c518;
    -webkit-text-stroke: 1px #c9960a;
}

/* Controls */
.entries-controls {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 24px 0 16px;
    flex-wrap: wrap;
}

.entries-search-wrap {
    flex: 1;
    min-width: 220px;
    max-width: 380px;
    position: relative;
}

.entries-search-icon {
    position: absolute !important;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: #aaa !important;
    font-size: 18px !important;
    pointer-events: none;
}

.entries-search {
    width: 100%;
    padding: 9px 12px 9px 36px;
    border: 1.5px solid #d0e8da;
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
    outline: none;
    background: #fff;
    transition: border-color 0.15s;
    box-sizing: border-box;
}

.entries-search:focus { border-color: #00693e; }

.entries-cat-select {
    padding: 9px 14px;
    border: 1.5px solid #d0e8da;
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
    font-weight: 600;
    color: #1a2e24;
    background: #fff;
    outline: none;
    cursor: pointer;
    min-width: 140px;
}

.entries-filter-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 14px;
    border: 1.5px solid #d0e8da;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    color: #555;
    background: #fff;
    cursor: pointer;
    transition: all 0.15s;
}

.entries-filter-btn:hover {
    border-color: #00693e;
    color: #00693e;
}

/* Table */
.entries-table-wrap {
    background: #fff;
    border: 1px solid #e4ede8;
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 20px;
}

.entries-table {
    width: 100%;
    border-collapse: collapse;
}

.entries-table thead tr { background: #0d3020; }

.entries-table thead th {
    padding: 13px 16px;
    text-align: left;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    white-space: nowrap;
}

.sort-icon {
    display: inline-block;
    margin-left: 3px;
    opacity: 0.45;
    vertical-align: middle;
    font-size: 11px;
}

.entries-table tbody tr {
    border-bottom: 1px solid #f0f5f2;
    transition: background 0.1s;
}

.entries-table tbody tr:last-child { border-bottom: none; }
.entries-table tbody tr:hover { background: #f6f9f7; }

.entries-table td {
    padding: 12px 16px;
    font-size: 13px;
    color: #333;
    vertical-align: middle;
}

.entries-rank {
    font-weight: 800;
    font-family: 'Lexend', sans-serif;
    color: #1a2e24;
    font-size: 14px;
}

.entries-player-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}

.entries-player-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    border: 2px solid #e4ede8;
}

.entries-player-name {
    display: block;
    font-weight: 700;
    font-size: 14px;
    color: #1a2e24;
}

.entries-player-nsf {
    display: block;
    font-size: 11px;
    color: #999;
    margin-top: 1px;
}

/* Category pill */
.entry-cat-pill {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 20px;
    background: #e8f4ee;
    color: #00693e;
    border: 1px solid #c2e0cf;
    white-space: nowrap;
}

/* Status */
.entry-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    white-space: nowrap;
    color: #aaa;
}

.entry-status-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    background: #ccc;
}

.entry-status.confirmed  { color: #16a34a; }
.entry-status.confirmed  .entry-status-dot { background: #16a34a; }

.entry-status.waiting    { color: #d97706; }
.entry-status.waiting    .entry-status-dot { background: #d97706; }

.entry-status.pending    { color: #dc2626; }
.entry-status.pending    .entry-status-dot { background: #dc2626; }

.entry-status.withdrawn  { color: #9ca3af; }
.entry-status.withdrawn  .entry-status-dot { background: #9ca3af; }

/* Table footer */
.entries-table-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 0 32px;
    flex-wrap: wrap;
    gap: 12px;
}

.entries-showing {
    font-size: 12px;
    color: #888;
}

.entries-actions {
    display: flex;
    gap: 8px;
}

.entries-action-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1.5px solid #d0e8da;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
    color: #555;
    background: #fff;
    cursor: pointer;
    transition: all 0.15s;
}

.entries-action-btn:hover {
    border-color: #00693e;
    color: #00693e;
}

/* Shared loading state */
.page-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 80px 0;
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — TOURNAMENT DETAIL
═══════════════════════════════════════════════════════════════ */

/* Tablet: collapse side-by-side body to single column */
@media (max-width: 960px) {
    .tourn-body {
        grid-template-columns: 1fr;
    }

    .tourn-right {
        /* On tablet, show the right column below left */
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .tourn-join-card {
        grid-column: 1 / -1;
    }

    .tourn-info-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}

/* Tablet: stack poster above info */
@media (max-width: 860px) {
    .tourn-hero {
        padding: 36px 0 44px;
    }

    .tourn-hero-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 28px;
    }

    .tourn-hero-poster {
        width: 200px;
        min-height: 260px;
        align-self: auto;
    }

    .tourn-hero-title {
        font-size: clamp(24px, 5vw, 36px);
    }
}

/* Mobile */
@media (max-width: 640px) {
    .tourn-hero {
        padding: 28px 0 36px;
    }

    .tourn-hero-poster {
        width: 160px;
        min-height: 210px;
    }

    .tourn-hero-tag {
        font-size: 9px;
    }

    .tourn-hero-stats {
        flex-wrap: wrap;
        gap: 12px;
    }

    .tourn-hero-stat {
        border-right: none;
        padding-right: 0;
        margin-right: 0;
        flex: 1 1 40%;
    }

    .tourn-hero-stat .stat-value {
        font-size: 16px;
    }

    .tourn-info-grid {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .tourn-body {
        padding-top: 20px;
        padding-bottom: 36px;
        gap: 16px;
    }

    .tourn-right {
        grid-template-columns: 1fr;
    }

    .tourn-card-header {
        flex-wrap: wrap;
        gap: 8px;
    }

    .tourn-prize-tabs {
        order: 3;
        width: 100%;
    }

    .tourn-download-btn {
        order: 2;
    }

    .tourn-join-card {
        grid-column: unset;
    }
}

/* Small mobile */
@media (max-width: 420px) {
    .tourn-info-grid {
        grid-template-columns: 1fr;
    }

    .tourn-hero-stat {
        flex: 1 1 100%;
    }
}


/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE — TOURNAMENT ENTRIES LIST
═══════════════════════════════════════════════════════════════ */

@media (max-width: 900px) {
    .entries-hero-inner {
        flex-direction: column;
        gap: 24px;
    }

    .entries-hero-stats {
        align-self: flex-start;
    }

    .entries-stat-value {
        font-size: 26px;
    }
}

@media (max-width: 640px) {
    .entries-hero {
        padding: 32px 0 24px;
    }

    .entries-hero-title {
        font-size: clamp(24px, 7vw, 36px);
    }

    .entries-hero-stats {
        width: 100%;
    }

    .entries-stat-box {
        flex: 1;
        min-width: 0;
        padding: 12px 14px;
    }

    .entries-stat-value {
        font-size: 28px;
    }

    /* Make table horizontally scrollable */
    .entries-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .entries-table {
        min-width: 560px;
    }

    /* Hide State/Club column on small screens */
    .entries-table th:nth-child(4),
    .entries-table td:nth-child(4) {
        display: none;
    }

    .entries-controls {
        gap: 8px;
    }

    .entries-search-wrap {
        max-width: 100%;
        width: 100%;
        flex: 1 1 100%;
        order: -1;
    }

    .entries-cat-select {
        flex: 1;
        min-width: 0;
    }

    .entries-table-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .entries-actions {
        width: 100%;
    }

    .entries-action-btn {
        flex: 1;
        justify-content: center;
    }
}

@media (max-width: 420px) {
    /* At very small sizes, also hide Category column — keep rank, player, status */
    .entries-table th:nth-child(3),
    .entries-table td:nth-child(3) {
        display: none;
    }

    .entries-table {
        min-width: 360px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   TOURNAMENTS LIST  (/tournaments)
═══════════════════════════════════════════════════════════════ */

.tourn-list-hero {
    position: relative;
    background: linear-gradient(135deg, #00693e 0%, #004e2d 100%);
    padding: 4.5rem 2.5rem 5rem;
    overflow: hidden;
    color: #fff;
}

.tourn-list-hero-court-line {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(45deg, transparent 48%, rgba(146,254,188,0.18) 49%, rgba(146,254,188,0.18) 50%, transparent 51%),
        linear-gradient(45deg, transparent 78%, rgba(146,254,188,0.10) 79%, rgba(146,254,188,0.10) 80%, transparent 81%);
    background-size: 200px 200px;
    pointer-events: none;
    opacity: 0.6;
}

.tourn-list-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 3rem;
    align-items: end;
    position: relative;
    z-index: 1;
}

.tourn-list-hero-left {
    max-width: 620px;
}

.tourn-list-hero-tag {
    display: inline-block;
    background: #92febc;
    color: #00331e;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    padding: 0.4rem 0.85rem;
    border-radius: 9999px;
    margin-bottom: 1.5rem;
}

.tourn-list-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.75rem, 7vw, 5.5rem);
    line-height: 0.9;
    letter-spacing: -0.025em;
    margin: 0 0 1.25rem;
    text-transform: uppercase;
}

.kinetic-accent {
    color: #92febc;
    font-style: italic;
}

.tourn-list-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
    color: rgba(255,255,255,0.78);
    line-height: 1.65;
    max-width: 500px;
    margin: 0 0 1.75rem;
}

.tourn-list-hero-ctas {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.tourn-list-hero-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    padding: 0.85rem 1.6rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.2s;
}

.tourn-list-hero-btn.primary {
    background: #92febc;
    color: #00331e;
    box-shadow: 0 8px 24px rgba(0,0,0,0.18);
}
.tourn-list-hero-btn.primary:hover {
    transform: translateY(-2px);
    background: #a8ffc8;
}

.tourn-list-hero-btn.ghost {
    background: rgba(255,255,255,0.08);
    color: #fff;
    backdrop-filter: blur(20px);
}
.tourn-list-hero-btn.ghost:hover {
    background: rgba(255,255,255,0.16);
}

.tourn-list-hero-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1.25rem;
}

.tourn-list-hero-metric {
    text-align: right;
    display: flex;
    align-items: flex-end;
    gap: 0.85rem;
}

.tourn-list-hero-metric-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(3.5rem, 9vw, 6rem);
    line-height: 0.85;
    letter-spacing: -0.04em;
    color: #92febc;
}

.tourn-list-hero-metric.alt .tourn-list-hero-metric-num {
    color: #fff;
    font-size: clamp(2rem, 4vw, 3rem);
}

.tourn-list-hero-metric-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: rgba(255,255,255,0.72);
    text-transform: uppercase;
    line-height: 1.2;
    padding-bottom: 0.5rem;
}

@media (max-width: 768px) {
    .tourn-list-hero { padding: 3rem 1.25rem 3.5rem; }
    .tourn-list-hero-inner { grid-template-columns: 1fr; gap: 2rem; }
    .tourn-list-hero-right { align-items: flex-start; }
    .tourn-list-hero-metric { text-align: left; }
}

/* ── Featured card ─────────────────────────────────── */
.tourn-featured-wrap {
    background: #f6f9f7;
    padding: 2.5rem 2.5rem 1.5rem;
}

.tourn-featured {
    position: relative;
    max-width: 1200px;
    margin: -4rem auto 0;
    min-height: 340px;
    border-radius: 1.25rem;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-color: #0a2518;
    box-shadow: 0 24px 56px rgba(0,0,0,0.14);
    display: flex;
}

.tourn-featured-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(10,37,24,0.92) 0%, rgba(0,105,62,0.6) 55%, rgba(0,105,62,0.15) 100%);
}

.tourn-featured-inner {
    position: relative;
    z-index: 1;
    padding: 3rem 3rem;
    max-width: 620px;
    display: flex;
    align-items: center;
    color: #fff;
}

.tourn-featured-body { width: 100%; }

.tourn-featured-tag {
    display: inline-block;
    background: #f5c518;
    color: #0a2518;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    padding: 0.35rem 0.85rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.tourn-featured-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 0 0 1rem;
    text-transform: uppercase;
}

.tourn-featured-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
    color: rgba(255,255,255,0.85);
    margin-bottom: 1.5rem;
}
.tourn-featured-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.tourn-featured-stats {
    display: flex;
    gap: 2rem;
    margin-bottom: 1.75rem;
}

.tourn-featured-stat {
    display: flex;
    flex-direction: column;
}
.tourn-featured-stat .value {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.4rem;
    color: #92febc;
    letter-spacing: -0.01em;
}
.tourn-featured-stat .label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.65);
    text-transform: uppercase;
    margin-top: 0.2rem;
}

.tourn-featured-cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: #92febc;
    color: #00331e;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    padding: 0.9rem 1.5rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: all 0.2s;
}
.tourn-featured-cta:hover {
    background: #a8ffc8;
    transform: translateY(-2px);
}

@media (max-width: 768px) {
    .tourn-featured-wrap { padding: 1.5rem 1rem 1rem; }
    .tourn-featured { margin-top: -2rem; }
    .tourn-featured-inner { padding: 2rem 1.5rem; }
    .tourn-featured-stats { gap: 1.25rem; }
}

/* ── Controls ──────────────────────────────────────── */
.tourn-list-controls-wrap {
    background: #f6f9f7;
    padding: 1.5rem 2.5rem 1rem;
}
.tourn-list-controls {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: #ffffff;
    border-radius: 9999px;
    padding: 0.4rem 0.5rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.03);
}
.tourn-list-search { flex: 1; min-width: 0; }

.tourn-list-filter-group {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}

.tourn-list-filter-btn {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    color: #4a5551;
    background: #f6f9f7;
    border: none;
    border-radius: 9999px;
    padding: 0.5rem 1rem;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}
.tourn-list-filter-btn:hover {
    background: #eef5f0;
    color: #00693e;
}
.tourn-list-filter-btn.active {
    background: #00693e;
    color: #fff;
    box-shadow: 0 2px 8px rgba(0,105,62,0.25);
}

@media (max-width: 768px) {
    .tourn-list-controls-wrap { padding: 1rem 1rem 0.5rem; }
    .tourn-list-controls { flex-wrap: wrap; border-radius: 20px; padding: 0.75rem; }
    .tourn-list-search { flex-basis: 100%; }
    .tourn-list-filter-group { flex: 1; flex-wrap: wrap; }
    .tourn-list-filter-btn { flex: 1; }
}

/* ── Grid ──────────────────────────────────────────── */
.tourn-list-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1.5rem 2.5rem 4rem;
}

.tourn-list-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

@media (max-width: 980px) { .tourn-list-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
    .tourn-list-grid { grid-template-columns: 1fr; }
    .tourn-list-wrap { padding: 1rem 1rem 3rem; }
}

.tourn-list-card {
    display: flex;
    flex-direction: column;
    background: #ffffff;
    border-radius: 0.85rem;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s, box-shadow 0.2s;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.tourn-list-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 36px rgba(0,105,62,0.12);
}

.tourn-list-card-skeleton {
    min-height: 360px;
    background: linear-gradient(90deg, #eef2f0 0%, #f6f9f7 50%, #eef2f0 100%);
    background-size: 200% 100%;
    animation: tourn-shimmer 1.4s infinite;
    border-radius: 0.85rem;
}
@keyframes tourn-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.tourn-list-card-media {
    position: relative;
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    background-color: #0d3020;
}
.tourn-list-card-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,37,24,0.0) 40%, rgba(10,37,24,0.45) 100%);
}

.tourn-list-card-chip {
    position: absolute;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 1;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    padding: 0.35rem 0.75rem;
    border-radius: 9999px;
}
.tourn-list-card-chip.chip-live {
    background: #f5c518;
    color: #0a2518;
}
.tourn-list-card-chip.chip-open {
    background: #92febc;
    color: #00331e;
}
.tourn-list-card-chip.chip-upcoming {
    background: rgba(255,255,255,0.9);
    color: #00693e;
}
.tourn-list-card-chip.chip-closed {
    background: rgba(13,48,32,0.82);
    color: #fff;
}

.tourn-list-card-type {
    position: absolute;
    bottom: 0.85rem;
    right: 0.85rem;
    z-index: 1;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    padding: 0.3rem 0.7rem;
    border-radius: 4px;
    background: rgba(255,255,255,0.88);
    color: #0d3020;
    backdrop-filter: blur(8px);
}

.tourn-list-card-body {
    display: flex;
    gap: 1rem;
    padding: 1.25rem 1.25rem 0.5rem;
}

.tourn-list-card-date {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #eef5f0;
    border-radius: 0.5rem;
    padding: 0.6rem 0.7rem;
    min-width: 56px;
    line-height: 1;
}
.tourn-list-card-date .day {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 1.5rem;
    color: #00693e;
    letter-spacing: -0.02em;
}
.tourn-list-card-date .month {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #00693e;
    margin-top: 0.25rem;
}

.tourn-list-card-main {
    flex: 1;
    min-width: 0;
}

.tourn-list-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.05rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: #0d3020;
    margin: 0 0 0.5rem;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tourn-list-card-meta {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    color: #6b7370;
    margin-top: 0.15rem;
}
.tourn-list-card-meta .mud-icon-root {
    color: #00693e;
    font-size: 0.95rem !important;
    width: 1rem; height: 1rem;
}

.tourn-list-card-footer {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem 1.25rem 1.1rem;
    margin-top: 0.5rem;
    background: #f6f9f7;
}

.tourn-list-card-stat {
    display: flex;
    flex-direction: column;
    line-height: 1;
}
.tourn-list-card-stat .v {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1rem;
    color: #0d3020;
}
.tourn-list-card-stat .l {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #6b7370;
    text-transform: uppercase;
    margin-top: 0.3rem;
}

.tourn-list-card-arrow {
    margin-left: auto;
    width: 34px;
    height: 34px;
    border-radius: 9999px;
    background: #00693e;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s;
}
.tourn-list-card:hover .tourn-list-card-arrow {
    transform: translateX(3px);
    background: #92febc;
    color: #00331e;
}

.tourn-list-empty {
    text-align: center;
    padding: 4rem 1rem;
    color: #6b7370;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.tourn-list-empty p { margin-top: 1rem; }


/* ═══════════════════════════════════════════════════════════════
   PAST TOURNAMENTS  (/tournaments/past)
═══════════════════════════════════════════════════════════════ */

.past-hero {
    position: relative;
    background: #dfe4e1;
    padding: 4.5rem 2.5rem 4rem;
    overflow: hidden;
}
.past-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(45deg, transparent 48%, rgba(0,105,62,0.05) 49%, rgba(0,105,62,0.05) 50%, transparent 51%);
    background-size: 180px 180px;
    pointer-events: none;
}

.past-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 2.5rem;
    align-items: end;
    position: relative;
    z-index: 1;
}

.past-hero-left { max-width: 620px; }

.past-hero-tag {
    display: inline-block;
    background: #0d3020;
    color: #92febc;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    padding: 0.4rem 0.9rem;
    border-radius: 9999px;
    margin-bottom: 1.5rem;
}

.past-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.75rem, 7.5vw, 6rem);
    line-height: 0.9;
    letter-spacing: -0.025em;
    color: #0d3020;
    margin: 0 0 1.25rem;
    text-transform: uppercase;
}

.past-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
    color: #4a5551;
    line-height: 1.7;
    max-width: 500px;
    margin: 0 0 1.5rem;
}

.past-hero-back {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #00693e;
    text-decoration: none;
    padding: 0.6rem 0;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}
.past-hero-back:hover { border-bottom-color: #00693e; }

.past-hero-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.75rem;
}

.past-hero-bignum {
    display: flex;
    align-items: flex-end;
    gap: 0.85rem;
}
.past-hero-bignum .num {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(4rem, 11vw, 8rem);
    line-height: 0.82;
    letter-spacing: -0.05em;
    color: #00693e;
}
.past-hero-bignum .lbl {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    color: #0d3020;
    text-transform: uppercase;
    line-height: 1.2;
    padding-bottom: 0.75rem;
}

.past-hero-subnum {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #0d3020;
    background: #92febc;
    padding: 0.45rem 0.85rem;
    border-radius: 9999px;
}

@media (max-width: 768px) {
    .past-hero { padding: 3rem 1.25rem 2.5rem; }
    .past-hero-inner { grid-template-columns: 1fr; }
    .past-hero-right { align-items: flex-start; }
}

/* ── Controls ────────────────────────────────────────── */
.past-controls-wrap {
    background: #e5e9e7;
    padding: 1.5rem 2.5rem;
}
.past-controls {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.past-search {
    flex: 1;
    min-width: 260px;
    background: #fff;
    border-radius: 9999px;
    padding: 0.2rem 0.5rem;
    box-shadow: 0 2px 10px rgba(0,0,0,0.03);
}

.past-year-group {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.past-year-btn {
    font-family: 'Lexend', sans-serif;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #0d3020;
    background: #fff;
    border: none;
    border-radius: 9999px;
    padding: 0.55rem 1.05rem;
    cursor: pointer;
    transition: all 0.15s;
}
.past-year-btn:hover {
    background: #eef5f0;
    color: #00693e;
}
.past-year-btn.active {
    background: #0d3020;
    color: #92febc;
}

/* ── Shared filter dropdown (category picker, used on both tournament pages) ── */

.filter-dropdown-wrap {
    position: relative;
    display: inline-flex;
}

.filter-dropdown-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding-right: 0.75rem;
}
.filter-dropdown-trigger .mud-icon-root {
    font-size: 1rem !important;
    width: 1rem;
    height: 1rem;
    transition: transform 0.2s;
}
.filter-dropdown-trigger.open .mud-icon-root {
    transform: rotate(180deg);
}

.filter-dropdown-panel {
    position: absolute;
    top: calc(100% + 0.4rem);
    left: 0;
    z-index: 200;
    background: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    padding: 0.4rem;
    min-width: 160px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.filter-dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    color: #0d3020;
    background: transparent;
    border: none;
    border-radius: 0.5rem;
    padding: 0.55rem 0.85rem;
    cursor: pointer;
    text-align: left;
    transition: background 0.12s;
    white-space: nowrap;
}
.filter-dropdown-item:hover {
    background: #eef5f0;
    color: #00693e;
}
.filter-dropdown-item.active {
    background: #0d3020;
    color: #92febc;
    font-weight: 700;
}
.filter-dropdown-item .mud-icon-root {
    font-size: 0.9rem !important;
    width: 0.9rem;
    height: 0.9rem;
}

/* ────────────────────────────────────────────────────────────── */

.past-year-more-wrap {
    position: relative;
    display: inline-flex;
}

.past-year-btn.past-year-more {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    background: #fff;
    color: #4a5551;
    padding-right: 0.75rem;
}
.past-year-btn.past-year-more:hover,
.past-year-btn.past-year-more.open {
    background: #eef5f0;
    color: #00693e;
}
.past-year-btn.past-year-more .mud-icon-root {
    font-size: 1rem !important;
    width: 1rem;
    height: 1rem;
    transition: transform 0.2s;
}
.past-year-btn.past-year-more.open .mud-icon-root {
    transform: rotate(180deg);
}

.past-year-dropdown {
    position: absolute;
    top: calc(100% + 0.4rem);
    left: 0;
    z-index: 200;
    background: #fff;
    border-radius: 0.75rem;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
    padding: 0.4rem;
    min-width: 130px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.past-year-dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'Lexend', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    color: #0d3020;
    background: transparent;
    border: none;
    border-radius: 0.5rem;
    padding: 0.55rem 0.85rem;
    cursor: pointer;
    text-align: left;
    transition: background 0.12s;
}
.past-year-dropdown-item:hover {
    background: #eef5f0;
    color: #00693e;
}
.past-year-dropdown-item.active {
    background: #0d3020;
    color: #92febc;
}
.past-year-dropdown-item .mud-icon-root {
    font-size: 0.9rem !important;
    width: 0.9rem;
    height: 0.9rem;
}

@media (max-width: 640px) {
    .past-controls-wrap { padding: 1rem; }
    .past-search { min-width: 100%; flex-basis: 100%; }
}

/* ── Archive body ────────────────────────────────────── */
.past-wrap {
    background: #f6f9f7;
    padding: 2.5rem 2.5rem 4rem;
}

.past-skeleton {
    max-width: 1200px;
    margin: 0 auto 1rem;
    height: 120px;
    border-radius: 1rem;
    background: linear-gradient(90deg, #eef2f0 0%, #fff 50%, #eef2f0 100%);
    background-size: 200% 100%;
    animation: tourn-shimmer 1.4s infinite;
}

.past-year-section {
    max-width: 1200px;
    margin: 0 auto 3.5rem;
}

.past-year-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding: 0 0.25rem;
    flex-wrap: wrap;
}

.past-year-label {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1;
    letter-spacing: -0.03em;
    color: #0d3020;
    margin: 0;
}

.past-year-meta {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    color: #4a5551;
    display: flex;
    gap: 0.5rem;
    letter-spacing: 0.02em;
}
.past-year-meta strong { color: #00693e; }

.past-year-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.past-row {
    display: grid;
    grid-template-columns: 72px 120px 1fr auto 42px;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem 1.25rem;
    background: #ffffff;
    border-radius: 0.85rem;
    text-decoration: none;
    color: inherit;
    transition: transform 0.15s, box-shadow 0.2s;
}
.past-row:hover {
    transform: translateX(4px);
    box-shadow: 0 14px 28px rgba(0,105,62,0.08);
}

.past-row-date {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1;
}
.past-row-date .month {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #00693e;
}
.past-row-date .day {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 2rem;
    color: #0d3020;
    letter-spacing: -0.03em;
    margin: 0.25rem 0;
}
.past-row-date .year {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    color: #6b7370;
    letter-spacing: 0.08em;
}

.past-row-media {
    aspect-ratio: 4 / 3;
    background-size: cover;
    background-position: center;
    border-radius: 0.5rem;
    background-color: #0d3020;
}
.past-row-media-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #00693e 0%, #004e2d 100%);
    color: #92febc;
}
.past-row-media-fallback .mud-icon-root { font-size: 2rem !important; }

.past-row-main { min-width: 0; }

.past-row-chips {
    display: flex;
    gap: 0.4rem;
    margin-bottom: 0.4rem;
}

.past-chip {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    padding: 0.25rem 0.65rem;
    border-radius: 9999px;
    text-transform: uppercase;
}
.past-chip.completed {
    background: #eef5f0;
    color: #00693e;
}
.past-chip.type {
    background: #fff5cc;
    color: #7a5a00;
}

.past-row-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.1rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: #0d3020;
    margin: 0 0 0.4rem;
    text-transform: uppercase;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.past-row-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    color: #6b7370;
}
.past-row-meta span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.past-row-meta .mud-icon-root {
    color: #00693e;
    font-size: 0.95rem !important;
    width: 1rem; height: 1rem;
}

.past-row-stats {
    display: flex;
    gap: 1.5rem;
}
.past-row-stat {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    line-height: 1;
}
.past-row-stat .v {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.05rem;
    color: #0d3020;
}
.past-row-stat .l {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: #6b7370;
    text-transform: uppercase;
    margin-top: 0.35rem;
}

.past-row-arrow {
    width: 38px;
    height: 38px;
    border-radius: 9999px;
    background: #eef5f0;
    color: #00693e;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}
.past-row:hover .past-row-arrow {
    background: #00693e;
    color: #fff;
}

.past-empty {
    text-align: center;
    padding: 4rem 1rem;
    color: #6b7370;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.past-empty p { margin-top: 1rem; }

@media (max-width: 900px) {
    .past-row {
        grid-template-columns: 72px 1fr 38px;
        gap: 0.85rem;
    }
    .past-row-media { display: none; }
    .past-row-stats {
        grid-column: 2 / -1;
        justify-content: flex-start;
        gap: 1.25rem;
        margin-top: 0.5rem;
    }
    .past-row-stat { align-items: flex-start; }
}
@media (max-width: 500px) {
    .past-wrap { padding: 1.5rem 1rem 3rem; }
    .past-row { padding: 0.85rem 1rem; }
    .past-row-title { white-space: normal; }
}


/* ═══════════════════════════════════════════════════════════════
   SEED TOURNAMENT IMAGES  (/admin/seed-tournament-images)
═══════════════════════════════════════════════════════════════ */

.seed-wrap {
    max-width: 900px;
    margin: 0 auto;
    padding: 3rem 2rem 5rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.seed-tag {
    display: inline-block;
    background: #f5c518;
    color: #0a2518;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    padding: 0.3rem 0.75rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

.seed-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 2.25rem;
    color: #0d3020;
    letter-spacing: -0.02em;
    margin: 0 0 0.75rem;
}

.seed-sub {
    font-size: 0.9rem;
    color: #4a5551;
    line-height: 1.65;
    max-width: 640px;
    margin: 0 0 1.75rem;
}
.seed-sub code {
    background: #eef5f0;
    color: #00693e;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    font-size: 0.85em;
}

.seed-actions { display: flex; gap: 0.75rem; align-items: center; }

.seed-run-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: #00693e;
    color: #fff;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 9999px;
    cursor: pointer;
    transition: background 0.15s;
}
.seed-run-btn:hover:not([disabled]) { background: #005530; }
.seed-run-btn[disabled] { opacity: 0.65; cursor: not-allowed; }

.seed-clear-btn {
    background: transparent;
    border: none;
    font-size: 0.8rem;
    color: #6b7370;
    cursor: pointer;
    padding: 0.5rem;
}
.seed-clear-btn:hover { color: #0d3020; }

.seed-summary {
    display: flex;
    gap: 1.25rem;
    margin: 2rem 0 0.75rem;
    font-size: 0.85rem;
    font-weight: 700;
}
.seed-summary-item.ok  { color: #00693e; }
.seed-summary-item.err { color: #c0392b; }

.seed-log {
    display: flex;
    flex-direction: column;
    gap: 2px;
    border-radius: 0.75rem;
    overflow: hidden;
    background: #f6f9f7;
}

.seed-log-row {
    display: grid;
    grid-template-columns: 130px 240px 1fr;
    gap: 1rem;
    padding: 0.7rem 1rem;
    font-size: 0.8rem;
    align-items: baseline;
}
.seed-log-row.ok  { background: #f0faf5; }
.seed-log-row.err { background: #fff5f5; }

.seed-log-id   { font-weight: 700; color: #0d3020; font-family: 'Lexend', sans-serif; }
.seed-log-file { color: #4a5551; font-size: 0.75rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.seed-log-msg  { color: #2b2f2e; word-break: break-all; }
.seed-log-row.ok  .seed-log-msg { color: #00693e; }
.seed-log-row.err .seed-log-msg { color: #c0392b; }

@media (max-width: 640px) {
    .seed-log-row { grid-template-columns: 1fr; gap: 0.25rem; }
    .seed-log-file { white-space: normal; }
}

/* ═══════════════════════════════════════════════════════════════
   COMMITTEES  (/about/committees)
═══════════════════════════════════════════════════════════════ */

.committees-hero {
    position: relative;
    background: #0d3020;
    color: #fff;
    padding: 5rem 2.5rem 4.5rem;
    overflow: hidden;
}

.committees-hero-court-line {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(45deg, transparent 49%, rgba(146,254,188,0.08) 49.5%, rgba(146,254,188,0.08) 50.5%, transparent 51%),
        linear-gradient(-45deg, transparent 79%, rgba(146,254,188,0.05) 79.5%, rgba(146,254,188,0.05) 80.5%, transparent 81%);
    background-size: 260px 260px;
    pointer-events: none;
}

.committees-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 3rem;
    align-items: end;
    position: relative;
    z-index: 1;
}

.committees-hero-left { max-width: 680px; }

.committees-hero-tag {
    display: inline-block;
    background: #92febc;
    color: #00331e;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    padding: 0.4rem 0.95rem;
    border-radius: 9999px;
    margin-bottom: 1.75rem;
}

.committees-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.75rem, 7.5vw, 6rem);
    line-height: 0.88;
    letter-spacing: -0.03em;
    margin: 0 0 1.5rem;
    text-transform: uppercase;
}

.committees-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
    color: rgba(255,255,255,0.78);
    line-height: 1.7;
    max-width: 520px;
    margin: 0 0 1.75rem;
}

.committees-hero-links {
    display: flex;
    gap: 1rem;
}

.committees-hero-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #92febc;
    text-decoration: none;
    padding: 0.5rem 0;
    border-bottom: 2px solid transparent;
    transition: border-color 0.2s;
}
.committees-hero-link:hover { border-bottom-color: #92febc; }

.committees-hero-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1.5rem;
}

.committees-hero-stat {
    text-align: right;
    display: flex;
    align-items: flex-end;
    gap: 0.85rem;
}

.committees-hero-stat-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(3.5rem, 9vw, 6rem);
    line-height: 0.82;
    letter-spacing: -0.04em;
    color: #92febc;
}

.committees-hero-stat.alt .committees-hero-stat-num {
    color: #fff;
    font-size: clamp(2rem, 4vw, 3rem);
}

.committees-hero-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    color: rgba(255,255,255,0.72);
    text-transform: uppercase;
    line-height: 1.2;
    padding-bottom: 0.5rem;
}

@media (max-width: 768px) {
    .committees-hero { padding: 3rem 1.25rem 3rem; }
    .committees-hero-inner { grid-template-columns: 1fr; gap: 2rem; }
    .committees-hero-right { align-items: flex-start; }
    .committees-hero-stat { text-align: left; }
}

/* ── Committee sections ─────────────────────────────── */
.committees-wrap {
    background: #f6f9f7;
}

.committee-section {
    background: #f6f9f7;
    padding: 4rem 2.5rem;
}
.committee-section-alt {
    background: #e5e9e7;
}

.committee-inner {
    max-width: 1200px;
    margin: 0 auto;
}

.committee-header {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 2.5rem;
    align-items: flex-start;
    margin-bottom: 2.25rem;
}

.committee-number {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(3.5rem, 8vw, 6rem);
    line-height: 0.82;
    letter-spacing: -0.05em;
    color: #00693e;
    position: relative;
    padding-top: 0.25rem;
}
.committee-number::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.35rem;
    width: 2.5rem;
    height: 4px;
    background: #92febc;
    border-radius: 2px;
}

.committee-heading-block {
    padding-top: 1rem;
    min-width: 0;
}

.committee-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(1.75rem, 3.5vw, 2.75rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: #0d3020;
    margin: 0 0 0.65rem;
    text-transform: uppercase;
}

.committee-subtitle {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
    color: #4a5551;
    line-height: 1.6;
    margin: 0;
    max-width: 520px;
}

.committee-meta {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding-top: 1.5rem;
    min-width: 180px;
    text-align: right;
}

.committee-meta-row {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    line-height: 1.15;
}

.committee-meta-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    color: #6b7370;
    text-transform: uppercase;
}

.committee-meta-value {
    font-family: 'Lexend', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: #0d3020;
}

/* ── Member grid ────────────────────────────────────── */
.committee-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.85rem;
}

.committee-member {
    position: relative;
    background: #ffffff;
    border-radius: 0.75rem;
    padding: 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    transition: transform 0.15s;
}
.committee-member:hover {
    transform: translateY(-2px);
}


.committee-member-chair {
    background: linear-gradient(145deg, #0d3020 0%, #00693e 100%);
    color: #fff;
    padding-top: 1.6rem;
}

.committee-chair-chip {
    display: inline-block;
    width: fit-content;
    background: #f5c518;
    color: #0a2518;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    padding: 0.25rem 0.6rem;
    border-radius: 9999px;
    margin-bottom: 0.15rem;
}

.committee-member-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.25;
    letter-spacing: -0.01em;
    color: #0d3020;
}
.committee-member-chair .committee-member-name {
    color: #fff;
    font-weight: 800;
    font-size: 1.15rem;
}

@media (max-width: 768px) {
    .committee-section { padding: 2.5rem 1.25rem; }
    .committee-header {
        grid-template-columns: auto 1fr;
        gap: 1.25rem;
    }
    .committee-meta {
        grid-column: 1 / -1;
        text-align: left;
        flex-direction: row;
        gap: 1.5rem;
        padding-top: 0.5rem;
        min-width: 0;
    }
    .committee-grid {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }
}

/* ── Committees footer note ─────────────────────────── */
.committees-footer {
    background: #0d3020;
    padding: 3rem 2.5rem;
    color: rgba(255,255,255,0.72);
}
.committees-footer-inner {
    max-width: 1200px;
    margin: 0 auto;
}
.committees-footer-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    line-height: 1.7;
    max-width: 640px;
    margin: 0;
}

@media (max-width: 768px) {
    .committees-footer { padding: 2rem 1.25rem; }
}



/* ═══════════════════════════════════════════════════════════════
   ADMIN SHELL — MudBlazor drawer-based layout
   MudDrawer handles responsive behaviour; we only need to style
   the contents (brand, nav items, footer actions).
═══════════════════════════════════════════════════════════════ */

/* MudDrawer overrides */
.mud-drawer { border-right: none !important; }
.mud-drawer-content { display: flex; flex-direction: column; height: 100%; }

/* Brand block (inside MudDrawerHeader) */
.adm-brand {
    display: flex;
    align-items: center;
    gap: 10px;
}

.adm-brand-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.adm-brand-name {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-size: 13px;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.2;
}

.adm-brand-sub {
    display: block;
    font-size: 10px;
    color: rgba(255,255,255,0.45);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-top: 1px;
}

/* Nav */
.adm-nav {
    flex: 1;
    padding: 14px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow-y: auto;
}

.adm-nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
    cursor: pointer;
}

.adm-nav-item:hover {
    background: rgba(255,255,255,0.08);
    color: #ffffff;
}

.adm-nav-item.active {
    background: rgba(146,254,188,0.12);
    color: #92febc;
}

.adm-nav-icon {
    font-size: 18px !important;
    flex-shrink: 0;
}

.adm-nav-divider {
    height: 1px;
    background: rgba(255,255,255,0.07);
    margin: 8px 0;
}

/* Drawer footer */
.adm-new-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 16px;
    background: #00693e;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    border-radius: 9999px;
    text-decoration: none;
    margin-bottom: 8px;
    transition: background 0.15s, transform 0.15s;
}

.adm-new-btn:hover {
    background: #005530;
    transform: translateY(-1px);
}

.adm-sidebar-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
    background: none;
    border: none;
    cursor: pointer;
    width: 100%;
    text-align: left;
}

.adm-sidebar-link:hover {
    color: rgba(255,255,255,0.85);
    background: rgba(255,255,255,0.06);
}

.adm-logout-btn { font-family: 'Plus Jakarta Sans', sans-serif; }

/* Mobile app bar — shown only on small screens */
@media (max-width: 959px) {
    .adm-appbar { display: flex !important; }
}

.adm-page-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
}


/* ═══════════════════════════════════════════════════════════════
   ADMIN DASHBOARD — home page
═══════════════════════════════════════════════════════════════ */

.adm-dashboard {
    padding: 36px 40px 60px;
    width: 100%;
    box-sizing: border-box;
}

/* Page header */
.adm-page-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 36px;
}

.adm-insight-chip {
    display: inline-block;
    background: #f5c518;
    color: #0d3020;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.14em;
    padding: 4px 12px;
    border-radius: 3px;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.adm-page-title {
    font-family: 'Lexend', sans-serif;
    font-size: clamp(28px, 3.5vw, 46px);
    font-weight: 900;
    color: #0d3020;
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 0 0 12px;
}

.adm-page-subtitle {
    font-size: 14px;
    color: #6b7a74;
    margin: 0;
    line-height: 1.5;
}

.adm-page-header-right {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
    padding-bottom: 4px;
}

.adm-header-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition: all 0.15s;
}

.adm-header-btn-outline {
    background: #fff;
    color: #0d3020;
    box-shadow: 0 0 0 1.5px rgba(13,48,32,0.15);
}

.adm-header-btn-outline:hover {
    box-shadow: 0 0 0 1.5px #00693e;
    color: #00693e;
}

.adm-header-btn-primary {
    background: #0d3020;
    color: #ffffff;
}

.adm-header-btn-primary:hover {
    background: #00693e;
    transform: translateY(-1px);
}

.adm-header-btn-danger {
    background: #fff0f0;
    color: #b91c1c;
    border: 1px solid #fca5a5;
}

.adm-header-btn-danger:hover {
    background: #fee2e2;
    transform: translateY(-1px);
}

/* Stats row */
.adm-stats-row {
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr;
    gap: 16px;
    margin-bottom: 32px;
}

.adm-stat-card {
    background: #fff;
    border-radius: 14px;
    padding: 24px 24px 20px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(13,48,32,0.06);
}

.adm-stat-card--hero {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}

.adm-stat-hero-bg {
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg width='120' height='120' viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='100' cy='100' r='80' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='2'/%3E%3Ccircle cx='100' cy='100' r='50' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='2'/%3E%3C/svg%3E") bottom right no-repeat;
}

.adm-stat-hero-content { position: relative; z-index: 1; }

.adm-stat-hero-icon {
    position: absolute;
    bottom: 16px;
    right: 20px;
    font-size: 64px !important;
    color: rgba(255,255,255,0.07) !important;
    z-index: 0;
}

.adm-stat-hero-value {
    font-family: 'Lexend', sans-serif;
    font-size: 48px;
    font-weight: 900;
    color: #ffffff;
    line-height: 1;
    margin: 8px 0 6px;
    letter-spacing: -0.03em;
}

.adm-stat-hero-sub {
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    margin: 0;
}

.adm-stat-icon-wrap {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.adm-stat-icon--green { background: rgba(0,105,62,0.1); color: #00693e; }
.adm-stat-icon--gold  { background: rgba(245,197,24,0.12); color: #b8880a; }
.adm-stat-icon--green .mud-icon-root { color: #00693e; }
.adm-stat-icon--gold  .mud-icon-root { color: #b8880a; }

.adm-stat-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #9aa5a1;
    text-transform: uppercase;
    margin: 0 0 4px;
}

.adm-stat-card--hero .adm-stat-label { color: rgba(255,255,255,0.5); }

.adm-stat-value {
    font-family: 'Lexend', sans-serif;
    font-size: 34px;
    font-weight: 900;
    color: #0d3020;
    line-height: 1.1;
    margin: 0 0 6px;
}

.adm-stat-value--gold { color: #b8880a; }

.adm-stat-foot {
    font-size: 11px;
    margin: 0;
}

.adm-stat-foot--green { color: #00693e; }
.adm-stat-foot--gold  { color: #b8880a; }

/* Body grid */
.adm-body-grid {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 24px;
    align-items: start;
}

/* Sections */
.adm-section {
    background: #ffffff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 2px 12px rgba(13,48,32,0.06);
    margin-bottom: 20px;
}

.adm-right-col .adm-section:last-child { margin-bottom: 0; }

.adm-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.adm-section-title {
    font-family: 'Lexend', sans-serif;
    font-size: 14px;
    font-weight: 700;
    color: #0d3020;
}

.adm-section-link {
    font-size: 12px;
    font-weight: 600;
    color: #00693e;
    text-decoration: none;
}

.adm-section-link:hover { text-decoration: underline; }

/* Activity list */
.adm-activity-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.adm-activity-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid #f0f4f1;
}

.adm-activity-row:last-child { border-bottom: none; padding-bottom: 0; }
.adm-activity-row:first-child { padding-top: 0; }

.adm-activity-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    background: #e5e9e7;
}

.adm-activity-info {
    flex: 1;
    min-width: 0;
}

.adm-activity-name {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #1a2e24;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.adm-activity-meta {
    display: block;
    font-size: 11px;
    color: #9aa5a1;
    margin-top: 1px;
}

.adm-activity-time { color: #bcc5c0; }

.adm-activity-badges { flex-shrink: 0; }

.adm-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 3px 9px;
    border-radius: 9999px;
    text-transform: uppercase;
}

.adm-badge--pending { background: rgba(245,197,24,0.15); color: #8a6800; }
.adm-badge--active  { background: rgba(0,105,62,0.1);    color: #00693e; }

.adm-activity-action {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    color: #00693e;
    text-decoration: none;
    padding: 5px 12px;
    border-radius: 9999px;
    background: rgba(0,105,62,0.08);
    white-space: nowrap;
    transition: background 0.15s;
}

.adm-activity-action:hover { background: rgba(0,105,62,0.16); }

/* Events */
.adm-events-list { display: flex; flex-direction: column; gap: 10px; }

.adm-event-card {
    padding: 14px 16px;
    border-radius: 10px;
    background: #f6f9f7;
}

.adm-event-card--featured {
    background: linear-gradient(135deg, #0d3020 0%, #1a4d32 100%);
    padding: 18px 20px;
}

.adm-event-type {
    display: inline-block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #92febc;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.adm-event-name {
    font-family: 'Lexend', sans-serif;
    font-size: 14px;
    font-weight: 800;
    color: #0d3020;
    margin: 0 0 8px;
    line-height: 1.3;
}

.adm-event-card--featured .adm-event-name { color: #ffffff; }

.adm-event-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 11px;
    color: #6b7a74;
}

.adm-event-card--featured .adm-event-meta { color: rgba(255,255,255,0.6); }

.adm-event-meta span {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Shortcuts */
.adm-shortcuts-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.adm-shortcut {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 16px 12px;
    background: #f6f9f7;
    border-radius: 10px;
    text-decoration: none;
    color: #1a2e24;
    font-size: 11px;
    font-weight: 600;
    text-align: center;
    transition: background 0.15s, transform 0.15s;
}

.adm-shortcut:hover {
    background: #e8f0ea;
    transform: translateY(-2px);
}

.adm-shortcut-icon {
    font-size: 24px !important;
    color: #00693e !important;
}

.adm-empty {
    font-size: 13px;
    color: #9aa5a1;
    text-align: center;
    padding: 20px 0;
    margin: 0;
}

/* Responsive */
@media (max-width: 1100px) {
    .adm-body-grid {
        grid-template-columns: 1fr;
    }
    .adm-right-col {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }
    .adm-right-col .adm-section { margin-bottom: 0; }
}

@media (max-width: 820px) {
    .adm-stats-row { grid-template-columns: 1fr 1fr; }
    .adm-stat-card--hero { grid-column: 1 / -1; }
    .adm-dashboard { padding: 24px 20px 40px; }
    .adm-page-header { flex-direction: column; align-items: flex-start; }
    .adm-right-col { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .adm-stats-row { grid-template-columns: 1fr; }
    .adm-stat-card--hero { grid-column: unset; }
    .adm-dashboard { padding: 20px 16px 40px; }
}


/* ═══════════════════════════════════════════════════════════════════════
   ADMIN — PLAYERS LIST  (/admin/players)
   Prefix: apl-
═══════════════════════════════════════════════════════════════════════ */

.apl-page {
    width: 100%;
    padding: 40px 48px 60px;
    box-sizing: border-box;
}

/* ── Filter bar ─────────────────────────────────────────────────────── */
.apl-filters-bar {
    margin-bottom: 24px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.apl-chips-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.apl-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 16px;
    border-radius: 9999px;
    font-size: 13px;
    font-weight: 600;
    font-family: 'Plus Jakarta Sans', sans-serif;
    background: #f0f4f2;
    color: #4a5753;
    border: none;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.apl-chip:hover { background: #e0ebe5; color: #0d3020; }

.apl-chip--active {
    background: #0d3020;
    color: #ffffff;
}

.apl-chip--pending.apl-chip--active {
    background: #f5c518;
    color: #0d3020;
}

.apl-chip-badge {
    background: rgba(255,255,255,0.25);
    border-radius: 9999px;
    padding: 1px 7px;
    font-size: 11px;
    font-weight: 700;
}

.apl-chip--active .apl-chip-badge { background: rgba(255,255,255,0.22); }
.apl-chip--pending.apl-chip--active .apl-chip-badge { background: rgba(0,0,0,0.12); }

/* ── Search ─────────────────────────────────────────────────────────── */
.apl-search-wrap {
    position: relative;
    max-width: 520px;
}

.apl-search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px !important;
    color: #9aa5a1;
    pointer-events: none;
}

.apl-search-input {
    width: 100%;
    padding: 10px 16px 10px 44px;
    border-radius: 9999px;
    background: #f0f4f2;
    border: 1.5px solid transparent;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    color: #2b2f2e;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
    box-sizing: border-box;
}

.apl-search-input:focus {
    border-color: #00693e;
    background: #ffffff;
}

.apl-search-input::placeholder { color: #9aa5a1; }

/* ── Table ──────────────────────────────────────────────────────────── */
.apl-table-wrap {
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 20px;
}

.apl-table {
    width: 100%;
    border-collapse: collapse;
}

.apl-table thead th {
    padding: 13px 18px;
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', sans-serif;
    letter-spacing: 0.06em;
    color: #6b7a74;
    background: #f6f9f7;
}

.apl-table tbody tr {
    border-top: 1px solid #f0f4f2;
    transition: background 0.12s;
}

.apl-table tbody tr:hover { background: #fafcfb; }

.apl-table tbody td {
    padding: 14px 18px;
    font-size: 14px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    vertical-align: middle;
}

/* Player name cell */
.apl-player-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}

.apl-player-cell--link {
    text-decoration: none;
    color: inherit;
}

.apl-player-cell--link:hover .apl-player-name {
    color: #00693e;
    text-decoration: underline;
}

.apl-avatar {
    width: 60px;
    height: 60px;
    border-radius: 9999px;
    object-fit: cover;
    background: #e5e9e7;
    flex-shrink: 0;
}

.apl-player-name {
    display: block;
    font-weight: 700;
    color: #0d3020;
    font-size: 14px;
}

.apl-player-code {
    display: block;
    font-size: 11px;
    color: #9aa5a1;
    font-weight: 500;
}

.apl-cell-muted { color: #6b7a74; }

/* Status chips */
.apl-status-chip {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.apl-status-chip--active   { background: #e6f4ec; color: #00693e; }
.apl-status-chip--pending  { background: #fff8dc; color: #a07c00; }
.apl-status-chip--inactive { background: #f0f4f2; color: #6b7a74; }

/* Actions cell */
.apl-actions-cell {
    display: flex;
    align-items: center;
    gap: 8px;
}

.apl-approve-btn {
    padding: 5px 14px;
    border-radius: 9999px;
    background: #00693e;
    color: #ffffff;
    font-size: 12px;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', sans-serif;
    border: none;
    cursor: pointer;
    transition: background 0.15s;
}

.apl-approve-btn:hover    { background: #005530; }
.apl-approve-btn:disabled { opacity: 0.5; cursor: not-allowed; }

.apl-edit-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #f0f4f2;
    color: #4a5753;
    text-decoration: none;
    transition: background 0.15s;
}

.apl-edit-btn:hover { background: #e0ebe5; color: #0d3020; }

.apl-delete-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #fef2f2;
    color: #b91c1c;
    border: none;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.apl-delete-btn:hover { background: #fee2e2; color: #991b1b; }

/* Empty row */
.apl-empty-row {
    text-align: center;
    color: #9aa5a1;
    font-size: 14px;
    padding: 40px 0 !important;
}

/* ── Pagination ─────────────────────────────────────────────────────── */
.apl-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 32px;
}

.apl-pagination-info {
    font-size: 13px;
    color: #6b7a74;
}

.apl-pagination-btns {
    display: flex;
    align-items: center;
    gap: 8px;
}

.apl-page-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9999px;
    background: #f0f4f2;
    border: none;
    cursor: pointer;
    color: #4a5753;
    transition: background 0.15s;
}

.apl-page-btn:hover:not(:disabled) { background: #e0ebe5; }
.apl-page-btn:disabled { opacity: 0.35; cursor: not-allowed; }

.apl-page-indicator {
    font-size: 13px;
    color: #6b7a74;
    min-width: 48px;
    text-align: center;
}

/* ── Stats row ──────────────────────────────────────────────────────── */
.apl-stats-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
}

.apl-stat-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 24px 28px;
}

.apl-stat-card--hero {
    background: #0d3020;
    color: #ffffff;
}

.apl-stat-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #9aa5a1;
    margin: 0 0 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.apl-stat-card--hero .apl-stat-label { color: rgba(255,255,255,0.55); }

.apl-stat-value {
    font-family: 'Lexend', sans-serif;
    font-size: 36px;
    font-weight: 900;
    color: #0d3020;
    margin: 0 0 4px;
    line-height: 1;
    letter-spacing: -0.02em;
}

.apl-stat-card--hero .apl-stat-value { color: #92febc; }

.apl-stat-value--gold  { color: #a07c00; }
.apl-stat-value--green { color: #00693e; }

.apl-stat-sub {
    font-size: 12px;
    color: #9aa5a1;
    margin: 0;
}

.apl-stat-card--hero .apl-stat-sub { color: rgba(255,255,255,0.45); }

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .apl-page         { padding: 24px 20px 40px; }
    .apl-stats-row    { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
    .apl-stats-row    { grid-template-columns: 1fr; }
}

/* ── MudDataGrid overrides ──────────────────────────────────────────── */

/* Outer card shell */
.apl-data-grid {
    border-radius: 12px;
    overflow: hidden;
    border: 1.5px solid #e5e9e7;
    background: #fff;
}

/* Remove MudBlazor's default shadow / border since we have our own shell */
.apl-data-grid .mud-paper {
    box-shadow: none !important;
    border: none !important;
}

/* Header cells */
.apl-data-grid table thead th {
    background: #f6f9f7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #4a5753;
    padding: 11px 16px;
    border-bottom: 1.5px solid #e5e9e7;
    white-space: nowrap;
}

/* Body cells */
.apl-data-grid table tbody td {
    padding: 10px 16px;
    font-size: 14px;
    color: #2b2f2e;
    border-bottom: 1px solid #f0f4f1;
    vertical-align: middle;
}

.apl-data-grid table tbody tr:last-child td {
    border-bottom: none;
}

/* Row hover colour */
.apl-data-grid table tbody tr:hover td {
    background: #f6faf8 !important;
}

/* Pagination bar */
.apl-data-grid .mud-table-pagination {
    border-top: 1.5px solid #e5e9e7;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    color: #4a5753;
    padding: 4px 8px;
    background: #f6f9f7;
}

/* Sort / filter icon colour in header */
.apl-data-grid .mud-table-cell-head .mud-icon-root {
    color: #6b7a74;
    font-size: 16px !important;
}

/* Active sort arrow */
.apl-data-grid .mud-table-cell-head.sorted .mud-icon-root {
    color: #00693e;
}


/* ═══════════════════════════════════════════════════════════════════════
   ADMIN — PLAYER FORM  (/admin/players/new · /admin/players/{id}/edit)
   Prefix: apf-
═══════════════════════════════════════════════════════════════════════ */

.apf-page {
    width: 100%;
    padding: 40px 48px 60px;
    box-sizing: border-box;
}

/* ── Two-column layout ──────────────────────────────────────────────── */
.apf-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 28px;
    align-items: start;
}

.apf-main {
    display: flex;
    flex-direction: column;
    gap: 28px;
    min-width: 0;
}

/* ── Sidebar ────────────────────────────────────────────────────────── */
.apf-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: sticky;
    top: 24px;
}

/* ── Section title variant ──────────────────────────────────────────── */
.apf-title.adm-page-title { margin-bottom: 6px; }

.apf-section-icon--amber {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #fff8e1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.apf-section-icon--amber .mud-icon-root { color: #f59f00; font-size: 20px; }

/* ── Three-column name row ──────────────────────────────────────────── */
.apf-name-row {
    grid-template-columns: 1fr 1fr 1fr !important;
}

/* ── Age / level hint below DOB picker ─────────────────────────────── */
.apf-age-hint {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #6b7a74;
    margin-top: 4px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.apf-minor-pill {
    background: #fff3cd;
    color: #856404;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    padding: 2px 7px;
    border-radius: 999px;
    border: 1px solid #ffc107;
}

/* ── Coach rows ─────────────────────────────────────────────────────── */
.apf-coach-row {
    display: grid;
    grid-template-columns: 1fr 1fr 32px;
    gap: 10px;
    align-items: center;
    margin-bottom: 10px;
}

/* ── Birth cert link ────────────────────────────────────────────────── */
.apf-cert-link {
    font-size: 12px;
    color: #00693e;
    text-decoration: none;
    margin-left: 10px;
    font-weight: 600;
}
.apf-cert-link:hover { text-decoration: underline; }

/* ── Profile photo card ─────────────────────────────────────────────── */
.apf-photo-wrap {
    display: flex;
    justify-content: center;
    margin: 8px 0 16px;
}

.apf-photo-img {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #e5e9e7;
}

.apf-photo-placeholder {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: #f0f4f1;
    border: 2px dashed #cdd7d2;
    display: flex;
    align-items: center;
    justify-content: center;
}

.apf-photo-upload {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.apf-photo-hint {
    font-size: 11px;
    color: #9eada7;
    margin: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    text-align: center;
}

/* ── Player preview card ────────────────────────────────────────────── */
.apf-preview-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 4px 0 8px;
}

.apf-preview-avatar {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #f0f4f1;
    border: 2px solid #e5e9e7;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
    margin-bottom: 4px;
}

.apf-preview-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 15px;
    color: #0d3020;
    margin: 0;
    text-align: center;
    letter-spacing: -0.01em;
}

.apf-preview-level {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: #e6f4ec;
    color: #00693e;
    padding: 2px 10px;
    border-radius: 999px;
}

.apf-preview-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 2px;
}

.apf-preview-sfcode {
    font-size: 12px;
    font-weight: 700;
    color: #4a5753;
    font-family: 'Plus Jakarta Sans', monospace;
    background: #f0f4f1;
    padding: 2px 8px;
    border-radius: 6px;
}

.apf-preview-detail {
    font-size: 12px;
    color: #6b7a74;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Error state ────────────────────────────────────────────────────── */
.apf-error-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 80px 24px;
    text-align: center;
    color: #4a5753;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .apf-layout { grid-template-columns: 1fr; }
    .apf-sidebar { position: static; }
}

@media (max-width: 820px) {
    .apf-page     { padding: 24px 20px 40px; }
    .apf-name-row { grid-template-columns: 1fr 1fr !important; }
}

@media (max-width: 640px) {
    .apf-name-row       { grid-template-columns: 1fr !important; }
    .apf-coach-row      { grid-template-columns: 1fr; }
    .apf-coach-row > button { justify-self: end; }
}


/* ═══════════════════════════════════════════════════════════════════════
   ADMIN — TOURNAMENTS LIST  (/admin/tournaments)
   Prefix: atl-
═══════════════════════════════════════════════════════════════════════ */

.atl-page {
    padding: 40px 48px 60px;
    max-width: 1300px;
}

/* ── Stats row ──────────────────────────────────────────────────────── */
.atl-stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

.atl-stat-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.atl-stat-card--alert {
    background: #fff8dc;
}

.atl-stat-icon-wrap {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.atl-stat-icon--green { background: #e6f4ec; color: #00693e; }
.atl-stat-icon--blue  { background: #e6eef9; color: #1a73e8; }
.atl-stat-icon--gold  { background: #fff8dc; color: #a07c00; }
.atl-stat-icon--red   { background: #fdecea; color: #e53935; }
.atl-stat-icon--muted { background: #f0f4f2; color: #6b7a74; }

.atl-stat-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #9aa5a1;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin: 0;
}

.atl-stat-value {
    font-family: 'Lexend', sans-serif;
    font-size: 28px;
    font-weight: 900;
    color: #0d3020;
    margin: 0;
    line-height: 1;
    letter-spacing: -0.02em;
}

.atl-stat-value--sm {
    font-size: 16px;
    font-weight: 800;
    letter-spacing: -0.01em;
}

.atl-stat-foot {
    font-size: 11px;
    color: #9aa5a1;
    margin: 0;
}

/* ── Tabs ───────────────────────────────────────────────────────────── */
.atl-tabs {
    display: flex;
    gap: 0;
    margin-bottom: 20px;
    border-bottom: 2px solid #e5e9e7;
}

.atl-tab {
    padding: 10px 22px;
    font-size: 13px;
    font-weight: 600;
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #6b7a74;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}

.atl-tab:hover { color: #0d3020; }

.atl-tab--active {
    color: #00693e;
    border-bottom-color: #00693e;
}

/* ── Tournament list rows ────────────────────────────────────────────── */
.atl-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
}

.atl-row {
    display: flex;
    align-items: center;
    gap: 20px;
    background: #ffffff;
    border-radius: 16px;
    padding: 18px 22px;
    transition: box-shadow 0.15s;
}

.atl-row:hover {
    box-shadow: 0 2px 12px rgba(0,105,62,0.08);
}

/* Poster thumbnail */
.atl-poster-wrap {
    flex-shrink: 0;
}

.atl-poster {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    object-fit: cover;
    display: block;
}

.atl-poster--fallback {
    width: 80px;
    height: 80px;
    border-radius: 12px;
    background: #f0f4f2;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Main info */
.atl-row-body {
    flex: 1;
    min-width: 0;
}

.atl-row-top {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}

.atl-status-chip {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 9999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.atl-status-open      { background: #fff8dc; color: #a07c00; }
.atl-status-ongoing   { background: #e6f4ec; color: #00693e; }
.atl-status-completed { background: #f0f4f2; color: #6b7a74; }
.atl-status-upcoming  { background: #e6eef9; color: #1a73e8; }

.atl-id {
    font-size: 11px;
    font-weight: 600;
    color: #9aa5a1;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.atl-name {
    font-family: 'Lexend', sans-serif;
    font-size: 17px;
    font-weight: 800;
    color: #0d3020;
    margin: 0 0 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    letter-spacing: -0.01em;
}

.atl-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 12px;
    color: #6b7a74;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.atl-meta span {
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Entry count block */
.atl-entries-block {
    flex-shrink: 0;
    text-align: center;
    min-width: 80px;
}

.atl-entries-num {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-size: 30px;
    font-weight: 900;
    color: #00693e;
    line-height: 1;
    letter-spacing: -0.02em;
}

.atl-entries-lbl {
    display: block;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.07em;
    color: #9aa5a1;
    margin-top: 3px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Row actions */
.atl-row-actions {
    flex-shrink: 0;
    display: flex;
    gap: 6px;
}

.atl-action-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: #f0f4f2;
    color: #4a5753;
    text-decoration: none;
    transition: background 0.15s;
}

.atl-action-btn:hover { background: #e0ebe5; color: #0d3020; }

/* Empty state */
.atl-empty {
    background: #ffffff;
    border-radius: 16px;
    padding: 60px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: #9aa5a1;
    font-size: 15px;
    text-align: center;
}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .atl-stats-row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
    .atl-page     { padding: 24px 20px 40px; }
    .atl-row      { flex-wrap: wrap; gap: 14px; }
    .atl-poster-wrap { display: none; }
}

@media (max-width: 640px) {
    .atl-stats-row { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════
   ADMIN — TOURNAMENT FORM  (/admin/tournaments/new & /{id}/edit)
   Prefix: tf-
═══════════════════════════════════════════════════════════════════════ */

.tf-page {
    width: 100%;
    padding: 40px 48px 60px;
    box-sizing: border-box;
}

/* ── Draft chip ─────────────────────────────────────────────────────── */
.tf-draft-chip {
    display: inline-block;
    padding: 3px 14px;
    border-radius: 9999px;
    background: #f5c518;
    color: #0d3020;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin-bottom: 10px;
}

/* ── Title split ────────────────────────────────────────────────────── */
.tf-title.adm-page-title {
    margin-bottom: 6px;
}

.tf-title-action { color: #0d3020; }
.tf-title-noun   { color: #00693e; }

/* ── Error banner ───────────────────────────────────────────────────── */
.tf-form-error {
    background: #fdecea;
    color: #b71c1c;
    padding: 12px 18px;
    border-radius: 10px;
    font-size: 13px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin-bottom: 20px;
}

.tf-error-state {
    padding: 80px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    color: #6b7a74;
    font-size: 15px;
    text-align: center;
}

/* ── Two-column layout ──────────────────────────────────────────────── */
.tf-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 28px;
    align-items: start;
}

/* ── Section ────────────────────────────────────────────────────────── */
.tf-section {
    margin-bottom: 28px;
}

.tf-section-header {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 14px;
}

.tf-section-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tf-section-icon--green { background: #e6f4ec; color: #00693e; }
.tf-section-icon--gold  { background: #fff8dc; color: #a07c00; }
.tf-section-icon--grey  { background: #f0f4f2; color: #4a5753; }

.tf-section-title {
    font-family: 'Lexend', sans-serif;
    font-size: 17px;
    font-weight: 900;
    color: #0d3020;
    margin: 0 0 2px;
    letter-spacing: -0.01em;
}

.tf-section-sub {
    font-size: 12px;
    color: #9aa5a1;
    margin: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Card ───────────────────────────────────────────────────────────── */
.tf-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* ── Field / label / input ──────────────────────────────────────────── */
.tf-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tf-field--full { grid-column: 1 / -1; }

.tf-field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.tf-label {
    font-size: 12px;
    font-weight: 700;
    color: #4a5753;
    font-family: 'Plus Jakarta Sans', sans-serif;
    letter-spacing: 0.02em;
}

.tf-optional {
    font-weight: 400;
    color: #9aa5a1;
}

.tf-field-error {
    display: block;
    font-size: 12px;
    color: #e53935;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin-top: 4px;
}

.tf-input {
    width: 100%;
    padding: 10px 14px;
    border-radius: 10px;
    background: #f0f4f2;
    border: 1.5px solid transparent;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
    color: #2b2f2e;
    outline: none;
    transition: border-color 0.2s, background 0.2s;
    box-sizing: border-box;
}

.tf-input:focus {
    border-color: #00693e;
    background: #ffffff;
}

.tf-input::placeholder { color: #9aa5a1; }

.tf-textarea {
    resize: vertical;
    min-height: 80px;
}

.tf-select {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

/* ── Slug ───────────────────────────────────────────────────────────── */
.tf-slug-wrap {
    display: flex;
    align-items: center;
    background: #f0f4f2;
    border-radius: 10px;
    border: 1.5px solid transparent;
    overflow: hidden;
    transition: border-color 0.2s;
}

.tf-slug-wrap:focus-within {
    border-color: #00693e;
    background: #ffffff;
}

.tf-slug-prefix {
    padding: 10px 4px 10px 14px;
    font-size: 13px;
    color: #9aa5a1;
    white-space: nowrap;
    font-family: 'Plus Jakarta Sans', sans-serif;
    background: transparent;
}

.tf-slug-input {
    border: none !important;
    background: transparent !important;
    padding-left: 0 !important;
    flex: 1;
}

.tf-slug-input:focus { border-color: transparent !important; }

/* ── Prize rows ─────────────────────────────────────────────────────── */
.tf-prize-header-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 36px;
    gap: 10px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #9aa5a1;
    font-family: 'Plus Jakarta Sans', sans-serif;
    padding: 0 2px;
}

.tf-prize-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 36px;
    gap: 10px;
    align-items: center;
}

.tf-prize-remove {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #fdecea;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #e53935;
    transition: background 0.15s;
    flex-shrink: 0;
}

.tf-prize-remove:hover { background: #fcc8c7; }

.tf-add-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border-radius: 9999px;
    background: #f0f4f2;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: background 0.15s;
    align-self: flex-start;
}

.tf-add-btn:hover { background: #e0ebe5; }

/* ── Category checkboxes ────────────────────────────────────────────── */
.tf-checkbox-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tf-checkbox-label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #2b2f2e;
    cursor: pointer;
    padding: 6px 14px;
    border-radius: 8px;
    background: #f0f4f2;
    transition: background 0.15s;
}

.tf-checkbox-label:hover { background: #e0ebe5; }

.tf-checkbox-label input[type="checkbox"] {
    accent-color: #00693e;
    width: 15px;
    height: 15px;
    cursor: pointer;
}

/* ── Toggle ─────────────────────────────────────────────────────────── */
.tf-toggle-row {
    flex-direction: row;
    align-items: center;
    gap: 12px;
}

.tf-toggle {
    position: relative;
    width: 44px;
    height: 24px;
    border-radius: 9999px;
    background: #dfe4e1;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
    flex-shrink: 0;
    padding: 0;
}

.tf-toggle--on { background: #00693e; }

.tf-toggle-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 9999px;
    background: #ffffff;
    transition: transform 0.2s;
    display: block;
}

.tf-toggle--on .tf-toggle-knob { transform: translateX(20px); }

.tf-toggle-value {
    font-size: 13px;
    font-weight: 600;
    color: #4a5753;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Sidebar cards ──────────────────────────────────────────────────── */
.tf-sidebar {
    display: flex;
    flex-direction: column;
    gap: 20px;
    position: sticky;
    top: 24px;
}

/* Live preview */
.tf-preview-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 22px 24px;
}

.tf-preview-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #9aa5a1;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin: 0 0 14px;
}

.tf-preview-inner {
    background: #f6f9f7;
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tf-preview-poster {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: #e6f4ec;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.tf-preview-name {
    font-family: 'Lexend', sans-serif;
    font-size: 15px;
    font-weight: 900;
    color: #0d3020;
    margin: 0;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.tf-preview-meta {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 12px;
    color: #6b7a74;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.tf-preview-meta span {
    display: flex;
    align-items: center;
    gap: 5px;
}

.tf-preview-prize {
    color: #a07c00 !important;
    font-weight: 600;
}

/* Help card */
.tf-help-card {
    background: #0d3020;
    border-radius: 16px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.tf-help-title {
    font-family: 'Lexend', sans-serif;
    font-size: 15px;
    font-weight: 900;
    color: #92febc;
    margin: 0;
}

.tf-help-body {
    font-size: 12px;
    color: rgba(255,255,255,0.55);
    line-height: 1.6;
    margin: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.tf-help-link {
    font-size: 13px;
    font-weight: 700;
    color: #92febc;
    text-decoration: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.tf-help-link:hover { text-decoration: underline; }

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .tf-layout {
        grid-template-columns: 1fr;
    }
    .tf-sidebar {
        position: static;
        display: grid;
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 820px) {
    .tf-page      { padding: 24px 20px 40px; }
    .tf-field-row { grid-template-columns: 1fr; }
    .tf-prize-header-row,
    .tf-prize-row {
        grid-template-columns: 1fr 1fr;
    }
    .tf-prize-row .tf-input:nth-child(3),
    .tf-prize-row .tf-input:nth-child(4) {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .tf-sidebar   { grid-template-columns: 1fr; }
}

/* ── TournamentForm — MudBlazor control overrides ───────────────────── */

/* Strip outer margin so fields sit flush in the tf-field containers */
.tf-mud-field.mud-input-control,
.tf-mud-field { margin-bottom: 0 !important; }

/* Match outlined border radius to the rest of the form */
.tf-mud-field .mud-input-outlined-border,
.tf-mud-field .mud-input-outlined .mud-input-outlined-border {
    border-radius: 10px !important;
}

/* Green focus ring */
.tf-card .mud-input-outlined:focus-within .mud-input-outlined-border,
.tf-card .mud-select:focus-within .mud-input-outlined-border {
    border-color: #00693e !important;
    border-width: 2px !important;
}
.tf-card .mud-input-outlined.mud-input-error .mud-input-outlined-border {
    border-color: #e53935 !important;
}

/* ── Prize-row selects — compact (Margin.Dense) ──────────────────────── */
.tf-prize-select.mud-input-control { margin-bottom: 0 !important; }
.tf-prize-select .mud-input-outlined-border { border-radius: 8px !important; }
.tf-prize-select .mud-input-root { font-size: 13px !important; }
/* Dense height override so rows don't become too tall */
.tf-prize-select .mud-input-slot { padding-top: 6px !important; padding-bottom: 6px !important; }

/* ── Prize row — wide variant (when "Others" level is present) ───────── */
.tf-prize-header-row--wide {
    grid-template-columns: 1fr 1fr 1fr 90px 1fr 36px !important;
}
.tf-prize-row--wide {
    grid-template-columns: 1fr 1fr 1fr 90px 1fr 36px !important;
}

/* ── MudSwitch green accent ──────────────────────────────────────────── */
.mud-switch-base.mud-checked .mud-switch-track { background-color: #00693e !important; }

/* ── MudCheckBox spacing ─────────────────────────────────────────────── */
.tf-checkbox-grid .tf-checkbox { margin: 0 !important; }

/* ── Save-error banner (only shown on unexpected save failures) ──────── */
.tf-save-error {
    display: flex;
    align-items: center;
    background: #fdecea;
    color: #c62828;
    font-size: 13px;
    font-weight: 600;
    font-family: 'Plus Jakarta Sans', sans-serif;
    padding: 10px 16px;
    border-radius: 10px;
    margin-bottom: 20px;
}

/* ── Poster upload section ───────────────────────────────────────────── */
/* Portrait card matching the public tournament detail poster (280 × 380) */
.tf-poster-banner {
    position: relative;
    width: 280px;
    height: 380px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0,0,0,0.20);
    background: #0a2218;
    margin-bottom: 20px;
}

.tf-poster-banner-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tf-poster-banner-label {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: rgba(13,48,32,0.80);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.07em;
    padding: 3px 10px;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.tf-poster-upload { }

/* Hidden native file input */
.tf-file-input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    overflow: hidden;
}

/* Custom file pick button */
.tf-file-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 18px;
    border-radius: 9999px;
    background: #f0f4f2;
    border: none;
    cursor: pointer;
    font-size: 13px;
    font-weight: 600;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: background 0.15s;
    margin-top: 8px;
}

.tf-file-btn:hover { background: #e0ebe5; }

.tf-file-size {
    font-size: 11px;
    color: #6d7a76;
    font-weight: 400;
}

/* ── Datetime row (date picker + time picker side by side) ───────────── */
.tf-datetime-row {
    display: grid;
    grid-template-columns: 1fr 160px;
    gap: 10px;
    align-items: start;
}

/* Time picker narrower than date picker */
.tf-time-field.mud-input-control { margin-bottom: 0 !important; }

/* WAT timezone pill — used inline next to datetime labels */
.dtf-tz-pill {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 9999px;
    background: #e8f5ee;
    color: #00693e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    font-family: 'Plus Jakarta Sans', sans-serif;
    vertical-align: middle;
    margin-left: 6px;
}


/* ═══════════════════════════════════════════════════════════════════════
   AdminTournaments — draws action button variant
   ═══════════════════════════════════════════════════════════════════════ */

.atl-action-btn--draws {
    background: #e8f5ee;
    color: #00693e;
}
.atl-action-btn--draws:hover {
    background: #00693e;
    color: #ffffff;
}
.atl-action-btn--delete {
    background: #fff5f5;
    color: #ba1a1a;
    border: none;
    cursor: pointer;
}
.atl-action-btn--delete:hover {
    background: #ba1a1a;
    color: #ffffff;
}


/* ═══════════════════════════════════════════════════════════════════════
   DrawsHub  (dh-)
   ═══════════════════════════════════════════════════════════════════════ */

.dh-page {
    padding: 40px 48px 60px;
    width: 100%;
    box-sizing: border-box;
}
.dh-not-found {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 80px 24px;
    text-align: center;
    color: #6b7e77;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.dh-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: #00693e;
    text-decoration: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.dh-back-link:hover { text-decoration: underline; }

/* ── Meta bar ── */
.dh-meta-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 10px 0;
    background: #f6f9f7;
    border-bottom: none;
    margin-bottom: 8px;
    border-radius: 10px;
    padding: 10px 14px;
}
.dh-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #4a5753;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.dh-meta-chip {
    padding: 2px 10px;
    border-radius: 9999px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.dh-meta-chip--psa {
    background: #fff3cd;
    color: #856404;
}
.dh-meta-chip--nsf {
    background: #e8f5ee;
    color: #00693e;
}

/* ── Category block ── */
.dh-category-block {
    padding: 24px 0 8px;
}
.dh-category-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 18px;
    color: #0d3020;
    letter-spacing: -0.01em;
    margin: 0 0 16px 0;
}
.dh-brackets-row {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}

/* ── Bracket card ── */
.dh-bracket-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 18px 20px 14px;
    min-width: 200px;
    flex: 1 1 200px;
    max-width: 280px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.dh-bracket-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.dh-gender-label {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: #0d3020;
}

/* Status chips */
.dh-status-draft,
.dh-status-generated,
.dh-status-published {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    letter-spacing: 0.06em;
}
.dh-status-draft    { background: #f0f4f2; color: #6b7e77; }
.dh-status-generated { background: #e8f0fe; color: #1a73e8; }
.dh-status-published { background: #e8f5ee; color: #00693e; }

/* ── Bracket stats ── */
.dh-bracket-stats {
    display: flex;
    gap: 16px;
}
.dh-bstat {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.dh-bstat-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 22px;
    color: #0d3020;
    line-height: 1;
}
.dh-bstat-lbl {
    font-size: 10px;
    font-weight: 600;
    color: #8a9e96;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Bracket action links ── */
.dh-bracket-actions {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.dh-step-btn {
    padding: 5px 12px;
    border-radius: 9999px;
    background: #f0f4f2;
    color: #2b2f2e;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: background 0.15s;
}
.dh-step-btn:hover    { background: #e0ebe5; color: #0d3020; }
.dh-step-btn--active  { background: #00693e; color: #ffffff; }
.dh-step-btn--active:hover { background: #005732; }

/* ── Published bar ── */
.dh-published-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    color: #00693e;
    padding: 6px 8px;
    background: #e8f5ee;
    border-radius: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.dh-public-link {
    color: #00693e;
    text-decoration: underline;
    margin-left: auto;
    font-size: 11px;
}

/* ── Empty state ── */
.dh-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 60px 24px;
    text-align: center;
    color: #6b7e77;
    font-family: 'Plus Jakarta Sans', sans-serif;
}


/* ═══════════════════════════════════════════════════════════════════════
   DrawEntries  (de-)
   ═══════════════════════════════════════════════════════════════════════ */

.de-page {
    padding: 40px 48px 60px;
    width: 100%;
    box-sizing: border-box;
}

/* ── Count cards ── */
.de-counts-row {
    display: flex;
    gap: 16px;
    padding: 0 0 24px;
    flex-wrap: wrap;
}
.de-count-card {
    background: #ffffff;
    border-radius: 14px;
    padding: 20px 24px;
    min-width: 110px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}
.de-count-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 32px;
    color: #0d3020;
    line-height: 1;
    margin: 0;
}
.de-count-lbl {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin: 4px 0 0 0;
}
.de-count-card--confirmed .de-count-lbl { color: #00693e; }
.de-count-card--pending   .de-count-lbl { color: #e67e22; }
.de-count-card--withdrawn .de-count-lbl { color: #8a9e96; }
.de-count-card--draw      .de-count-lbl { color: #1a73e8; }

/* ── Section ── */
.de-section {
    margin: 0 0 24px;
    background: #ffffff;
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.de-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: #0d3020;
    margin: 0 0 14px 0;
}
.de-section-title--warn { color: #e67e22; }
.de-note {
    font-size: 12px;
    color: #8a9e96;
    margin: -8px 0 12px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.de-empty {
    padding: 32px 0;
    text-align: center;
    color: #8a9e96;
    font-size: 13px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Table ── */
.de-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.de-table th {
    font-size: 11px;
    font-weight: 700;
    color: #8a9e96;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 6px 12px 10px;
    text-align: left;
}
.de-table td {
    padding: 9px 12px;
    color: #2b2f2e;
    vertical-align: middle;
}
.de-table tbody tr { border-top: 1px solid #f0f4f2; }
.de-table tbody tr:hover { background: #fafcfb; }
.de-table--muted td { color: #8a9e96; }
.de-td-num {
    width: 36px;
    font-weight: 600;
    color: #8a9e96;
    text-align: center;
}

/* ── Category / gender nav switcher (shared across draw pages) ── */
.draw-nav-select {
    min-width: 220px;
}

/* ── MudDataGrid toolbar ── */
.de-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 4px 0;
}
.de-toolbar-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #0d3020;
}
.de-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e8f5ee;
    color: #00693e;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.de-search-field {
    max-width: 260px;
}

/* ── Date cell ── */
.de-date-cell {
    font-size: 13px;
    color: #2b2f2e;
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.de-time {
    font-size: 11px;
    color: #8a9e96;
}

/* ── Player cell ── */
.de-player-cell {
    display: flex;
    align-items: center;
    gap: 10px;
}
/*
 * ── App-wide avatar standard ───────────────────────────────────────────
 * All player/user avatar images and fallback icons MUST use these classes.
 * Size is fixed at 50×50 px. Do NOT define a different avatar size elsewhere.
 */
.app-avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.app-avatar--fallback {
    background: #e8f5ee;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #00693e;
}
.de-player-name {
    font-weight: 600;
    color: #0d3020;
    font-size: 13px;
}
.de-unregistered-badge {
    display: inline-block;
    padding: 1px 7px;
    border-radius: 9999px;
    background: #fff3cd;
    color: #856404;
    font-size: 10px;
    font-weight: 700;
    margin-left: 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    vertical-align: middle;
}
.de-status-chip {
    padding: 2px 8px;
    border-radius: 9999px;
    font-size: 10px;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.de-status--pending { background: #fff3cd; color: #856404; }


/* ═══════════════════════════════════════════════════════════════════════
   DrawSeeding  (ds-)
   ═══════════════════════════════════════════════════════════════════════ */

.ds-page {
    padding: 40px 48px 60px;
    width: 100%;
    box-sizing: border-box;
}

/* ── Unregistered review panel ── */
/* ── Existing draw overwrite warning ── */
.ds-overwrite-warning {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0 0 20px;
    padding: 14px 18px;
    background: #fff3cd;
    border-left: 4px solid #e67e22;
    border-radius: 10px;
    color: #7d4e00;
    font-size: 13px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    line-height: 1.5;
}
.ds-overwrite-warning strong { color: #5a3700; }

.ds-review-panel {
    margin: 0 0 24px;
    background: #fffbf0;
    border-radius: 16px;
    padding: 18px 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.ds-review-header {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #856404;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ds-review-count {
    margin-left: auto;
    background: #f5c518;
    color: #0d3020;
    font-size: 10px;
    font-weight: 800;
    padding: 2px 8px;
    border-radius: 9999px;
}
.ds-review-note {
    font-size: 12px;
    color: #8a9e96;
    margin: 0 0 12px 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ds-review-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid #f0ead0;
    flex-wrap: wrap;
}
.ds-review-entry { display: flex; flex-direction: column; min-width: 140px; flex: 1; }
.ds-review-name  { font-weight: 600; color: #0d3020; font-size: 13px; font-family: 'Plus Jakarta Sans', sans-serif; }
.ds-review-entryid { font-size: 11px; color: #8a9e96; font-family: 'Plus Jakarta Sans', sans-serif; }
.ds-review-match { display: flex; align-items: center; gap: 6px; }
.ds-review-points { font-weight: 700; color: #00693e; font-size: 13px; font-family: 'Plus Jakarta Sans', sans-serif; }
.ds-review-from  { font-size: 11px; color: #8a9e96; font-family: 'Plus Jakarta Sans', sans-serif; }
.ds-review-no-match { font-size: 12px; color: #8a9e96; font-style: italic; font-family: 'Plus Jakarta Sans', sans-serif; }
.ds-review-btns  { display: flex; gap: 6px; }
.ds-confirm-btn  {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 12px;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: opacity 0.15s;
}
.ds-confirm-btn:hover { opacity: 0.85; }
.ds-confirm-btn--accept  { background: #e8f5ee; color: #00693e; }
.ds-confirm-btn--dismiss { background: #fee8e8; color: #c0392b; }

/* ── Seeding list ── */
.ds-list-wrap {
    margin: 0 0 24px;
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.ds-list-header {
    display: grid;
    grid-template-columns: 52px 1fr 100px 36px;
    align-items: center;
    gap: 0;
    padding: 10px 16px;
    background: #f6f9f7;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ds-col-seed   { text-align: center; }
.ds-col-drag   { text-align: center; color: #c5d0ca; }

/* ── Seeding row ── */
.ds-row {
    display: grid;
    grid-template-columns: 52px 1fr 100px 36px;
    align-items: center;
    gap: 0;
    padding: 10px 16px;
    border-top: 1px solid #f0f4f2;
    transition: background 0.12s;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ds-row:first-child { border-top: none; }
.ds-row:hover        { background: #fafcfb; }
.ds-row--top-seed    { background: #fefff8; }
.ds-row--top-seed:hover { background: #f9ffef; }
.ds-row--mid-seed    { background: #fafcff; }

/* Seed badge */
.ds-seed-num { display: flex; justify-content: center; }

/* ── Editable seed number input (replaces static badge) ── */
.ds-seed-input {
    width: 42px;
    height: 28px;
    border: none;
    border-radius: 6px;
    text-align: center;
    font-size: 11px;
    font-weight: 800;
    font-family: 'Plus Jakarta Sans', sans-serif;
    cursor: pointer;
    outline: none;
    transition: box-shadow 0.15s;
}
.ds-seed-input:focus {
    box-shadow: 0 0 0 2px #00693e55;
}
/* remove number spinners */
.ds-seed-input::-webkit-outer-spin-button,
.ds-seed-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ds-seed-input[type=number] { -moz-appearance: textfield; }

.ds-seed-input--1       { background: #f5c518; color: #0d3020; }
.ds-seed-input--2       { background: #e0e0e0; color: #2b2f2e; }
.ds-seed-input--34      { background: #e8f5ee; color: #00693e; }
.ds-seed-input--58      { background: #f0f4f2; color: #4a5753; }
.ds-seed-input--unseeded { background: #f6f9f7; color: #8a9e96; border: 1px solid #dfe4e1; }

/* Player cell */
.ds-player-info { display: flex; align-items: center; gap: 9px; }
.ds-player-name { font-weight: 600; color: #0d3020; font-size: 13px; }
.ds-sf-code     { font-size: 11px; color: #8a9e96; margin-left: 5px; }
.ds-points      { font-size: 13px; font-weight: 600; color: #00693e; text-align: right; padding-right: 8px; }
.ds-no-points   { color: #c5d0ca; }
.ds-drag-handle { text-align: center; color: #c5d0ca; font-size: 16px; cursor: grab; }

/* ── Draw size preview ── */
.ds-draw-preview {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 24px;
    padding: 12px 18px;
    background: #e8f5ee;
    border-radius: 12px;
    font-size: 13px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #2b2f2e;
    flex-wrap: wrap;
}


/* ═══════════════════════════════════════════════════════════════════════
   DrawBracketPage  (db-)
   ═══════════════════════════════════════════════════════════════════════ */

.db-page {
    padding: 40px 48px 60px;
    width: 100%;
    box-sizing: border-box;
}

/* ── Status bar ── */
.db-status-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 10px 14px 14px;
    background: #f6f9f7;
    border-radius: 10px;
    margin-bottom: 16px;
}
.db-status-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: #4a5753;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.db-status-item--published {
    color: #00693e;
    background: #e8f5ee;
    padding: 2px 10px;
    border-radius: 9999px;
}

/* ── Admin hint ── */
.db-admin-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 16px;
    padding: 8px 14px;
    background: #f0f4f2;
    border-radius: 10px;
    font-size: 12px;
    color: #6b7e77;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Bracket scroll ── */
.db-bracket-scroll {
    padding: 0 0 24px 0;
    overflow-x: auto;
    overflow-y: visible;
    white-space: nowrap; /* keeps all round columns on one horizontal row */
}


/* ═══════════════════════════════════════════════════════════════════════
   BracketView  (bv-)
   ═══════════════════════════════════════════════════════════════════════ */

.bv-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 60px 0;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 14px;
}

/* ── Bracket tree layout ──────────────────────────────────────────────
   Flow all round columns in one horizontal row. Each main-round column
   distributes its matches with flex:1 cells so later rounds auto-centre
   between their two feeder matches, and connector lines are drawn into
   the inter-column gap with pseudo-elements. */
.bv-bracket {
    display: flex;
    width: max-content;
    align-items: stretch;          /* every column stretches to the tallest (round 1) */
    padding-top: 2px;
    --bv-gap:  56px;               /* horizontal space between columns (where lines live) */
    --bv-line: #c2d2ca;            /* connector line colour */
}

.bv-section {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    margin-right: var(--bv-gap);
}
.bv-section:last-child { margin-right: 0; }

/* Prominent round headers (PSA-style green bars) */
.bv-round-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #ffffff;
    background: linear-gradient(135deg, #00693e 0%, #0d3020 100%);
    margin: 0 0 16px 0;
    padding: 10px 14px;
    border-radius: 9px;
    text-align: center;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 105, 62, 0.18);
}
.bv-round-title--qualifier {
    background: #eef2f0;
    color: #5b6b63;
    box-shadow: none;
}

/* Qualifier column — simple stacked list, no tree spacing */
.bv-round {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
}
.bv-round--qualifier { gap: 10px; }

/* Main-draw column — equal-height cells centre the card; later rounds gap out */
.bv-round--main {
    flex: 1;
    gap: 0;
}
.bv-round--main .bv-match-cell {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    position: relative;
    padding: 6px 0;
}

/* ── Connector lines (main draw only) ──────────────────────────────── */
/* outgoing horizontal stub to the right of every match that feeds forward */
.bv-round--has-next .bv-match-cell::after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(var(--bv-gap) / -2);
    width: calc(var(--bv-gap) / 2);
    height: 2px;
    background: var(--bv-line);
}
/* vertical connector joining each pair (odd goes down, even goes up) */
.bv-round--has-next .bv-match-cell:nth-child(odd)::before {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(var(--bv-gap) / -2);
    width: 2px;
    height: 50%;
    background: var(--bv-line);
}
.bv-round--has-next .bv-match-cell:nth-child(even)::before {
    content: "";
    position: absolute;
    bottom: 50%;
    right: calc(var(--bv-gap) / -2);
    width: 2px;
    height: 50%;
    background: var(--bv-line);
}
/* Incoming horizontal stub on the left of every match that has feeders.
   This is a real element rather than a pseudo-element on the card: the card sets
   overflow:hidden to keep its slot backgrounds inside the rounded corners, which
   clipped the stub away entirely. The cell does not clip, so the line survives. */
.bv-connector-in {
    position: absolute;
    top: 50%;
    left: calc(var(--bv-gap) / -2);
    width: calc(var(--bv-gap) / 2);
    height: 2px;
    background: var(--bv-line);
}

/* connector lines must never intercept clicks (admin match cards stay clickable) */
.bv-round--main .bv-match-cell::before,
.bv-round--main .bv-match-cell::after,
.bv-connector-in {
    pointer-events: none;
}

/* ── Drag-to-scroll affordance (bound by JS on the public draws pane) ── */
.bv-draggable { cursor: grab; }
.bv-draggable.bv-dragging { cursor: grabbing; user-select: none; }

/* ── Match card ── */
.bv-match-card {
    background: #ffffff;
    border-radius: 10px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
    width: 280px;
    position: relative;
    transition: box-shadow 0.15s;
    overflow: hidden;
}
/* Round the top corners of the first slot so the card looks clipped */
.bv-match-card > .bv-slot:first-child {
    border-radius: 10px 10px 0 0;
}
/* Round the bottom of the last visible coloured element */
.bv-result-chip { border-radius: 0 0 10px 10px; }
.bv-slot--bye   { border-radius: 0 0 10px 10px; }
.bv-match--completed { box-shadow: 0 1px 4px rgba(0,0,0,0.07), inset 3px 0 0 #00693e; }

/* ── Slot ── */
.bv-slot {
    padding: 9px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #ffffff;
    min-height: 48px;
}
.bv-slot--winner { background: #e8f5ee; }
.bv-slot--bye    { background: #f0f4f2; }
.bv-slot-num {
    font-size: 11px;
    font-weight: 700;
    color: #8a9e96;
    min-width: 18px;
    text-align: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.bv-player-name {
    display: flex;
    flex-direction: column;
    flex: 1;
    overflow: hidden;
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #0d3020;
    min-width: 0;
}
.bv-name-first {
    font-size: 11px;
    font-weight: 500;
    color: #4a6358;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}
.bv-name-last {
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}
.bv-player-tbd { font-size: 13px; color: #c5d0ca; font-style: italic; font-family: 'Plus Jakarta Sans', sans-serif; }
.bv-bye-label  { font-size: 12px; font-weight: 700; color: #8a9e96; letter-spacing: 0.06em; font-family: 'Plus Jakarta Sans', sans-serif; }
.bv-score-block {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 8px;
    gap: 2px;
    flex-shrink: 0;
}
.bv-score-general {
    font-size: 13px;
    font-weight: 700;
    color: #00693e;
    font-family: 'Plus Jakarta Sans', sans-serif;
    white-space: nowrap;
}
.bv-score-sets {
    font-size: 10px;
    font-weight: 500;
    color: #4a6358;
    font-family: 'Plus Jakarta Sans', sans-serif;
    white-space: nowrap;
}

/* ── Match divider ── */
.bv-match-divider {
    height: 1px;
    background: #f0f4f2;
    margin: 0 12px;
}

/* ── Result chip ── */
.bv-result-chip {
    display: flex;
    justify-content: center;
    padding: 4px 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    font-family: 'Plus Jakarta Sans', sans-serif;
    border-top: 1px solid #f0f4f2;
}
.bv-result--normal  { background: #e8f5ee; color: #00693e; }
.bv-result--wo      { background: #fff3cd; color: #856404; }
.bv-result--ret     { background: #fee8e8; color: #c0392b; }
.bv-result--def     { background: #fce8ff; color: #7b1fa2; }
.bv-result--pending { background: #f0f4f2; color: #6b7e77; cursor: pointer; }
.bv-result--pending:hover { background: #e0ebe5; }

/* ── Seed badge ── */
.bv-seed-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    color: #00693e;
    margin-right: 3px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    letter-spacing: 0;
}

/* ── Qualifier slot label (Q1 / Q2 / Q3) ── */
.bv-qual-label {
    font-size: 12px;
    font-weight: 700;
    color: #1a73e8;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-style: italic;
}

/* ── Qualifier advancement footer strip ── */
.bv-qual-advance {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 6px;
    padding: 5px 12px;
    background: #eef7f1;
    border-top: 1px solid #c8e6d5;
}

.bv-qual-advance-arrow {
    font-size: 11px;
    color: #00693e;
    font-weight: 700;
}

.bv-qual-advance-slot {
    font-size: 11px;
    font-weight: 800;
    font-family: 'Lexend', sans-serif;
    color: #00693e;
    background: #c8e6d5;
    padding: 1px 6px;
    border-radius: 9999px;
    letter-spacing: 0.02em;
}

.bv-qual-advance-text {
    font-size: 10px;
    color: #5a7a68;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 500;
}

/* ── Context menu ── */
.bv-menu-wrap {
    position: relative;
}
.bv-menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border: none;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    padding: 0;
    margin: 3px 6px 3px auto;
    color: #8a9e96;
    transition: background 0.12s, color 0.12s;
}
.bv-menu-btn:hover,
.bv-menu-btn--open {
    background: #e0ebe5;
    color: #00693e;
}
.bv-menu-dots {
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0;
}
.bv-menu-backdrop {
    position: fixed;
    inset: 0;
    z-index: 399;
}
.bv-menu-panel {
    position: fixed;
    z-index: 400;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 8px 28px rgba(0,0,0,0.14), 0 2px 8px rgba(0,0,0,0.08);
    min-width: 210px;
    padding: 6px 0;
    display: flex;
    flex-direction: column;
}
.bv-menu-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #2b2f2e;
    transition: background 0.1s;
    white-space: nowrap;
}
.bv-menu-item:hover { background: #f6f9f7; }
.bv-menu-item--danger { color: #c0392b; }
.bv-menu-item--danger:hover { background: #fff3f3; }
.bv-menu-divider {
    height: 1px;
    background: #f0f4f2;
    margin: 4px 0;
}


/* ═══════════════════════════════════════════════════════════════════════
   ScoreEntryDialog  (se-)
   ═══════════════════════════════════════════════════════════════════════ */

.se-dialog-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: #0d3020;
}
.se-content {
    padding: 4px 0;
    min-width: 320px;
}

/* ── Players row ── */
.se-players-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    background: #f6f9f7;
    border-radius: 10px;
    padding: 10px 14px;
}
.se-player { display: flex; flex-direction: column; flex: 1; }
.se-player--1 { align-items: flex-start; }
.se-player--2 { align-items: flex-end; }
.se-player-label {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.se-player-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #0d3020;
}
.se-vs {
    font-size: 10px;
    font-weight: 800;
    color: #c5d0ca;
    letter-spacing: 0.1em;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Fields ── */
.se-field-row {
    margin-bottom: 14px;
}
.se-result-select { width: 100%; }

/* ── Sets ── */
.se-sets-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.se-sets-title {
    font-size: 12px;
    font-weight: 700;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.se-add-set-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 9999px;
    background: #e8f5ee;
    color: #00693e;
    border: none;
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: background 0.15s;
}
.se-add-set-btn:hover { background: #d0ede0; }

.se-sets-grid-header {
    display: grid;
    grid-template-columns: 28px 1fr 1fr 70px 28px;
    gap: 6px;
    align-items: center;
    padding: 4px 0;
    font-size: 10px;
    font-weight: 700;
    color: #8a9e96;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.se-set-row {
    display: grid;
    grid-template-columns: 28px 1fr 1fr 70px 28px;
    gap: 6px;
    align-items: center;
    margin-bottom: 6px;
}
.se-set-num {
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.se-score-input { }
.se-remove-set-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    color: #c5d0ca;
    transition: color 0.12s;
    padding: 0;
}
.se-remove-set-btn:hover { color: #c0392b; }

.se-no-sets {
    font-size: 12px;
    color: #8a9e96;
    text-align: center;
    padding: 12px 0;
    font-style: italic;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Section label ── */
.se-section-label {
    font-size: 11px;
    font-weight: 700;
    color: #4a6358;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin: 0 0 8px;
    display: flex;
    align-items: center;
    gap: 4px;
}
.se-required { color: #c0392b; }
.se-section-hint {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: #8a9e96;
    font-size: 11px;
}

/* ── General score row ── */
.se-general-score-row {
    display: flex;
    align-items: center;
    gap: 10px;
}
.se-gs-name {
    font-size: 12px;
    font-weight: 700;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
    flex: 1;
}
.se-gs-name:last-child { text-align: right; }
.se-gs-input { width: 60px; flex-shrink: 0; }
.se-gs-sep {
    font-size: 18px;
    font-weight: 700;
    color: #c5d0ca;
    font-family: 'Lexend', sans-serif;
}

/* ── Detailed score toggle ── */
.se-detail-toggle {
    margin: 4px 0 10px;
}

/* ── Validation error ── */
.se-validation-error {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    background: #fff3f3;
    border-left: 3px solid #c0392b;
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 12px;
    color: #c0392b;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin-top: 10px;
    line-height: 1.4;
}

.se-wo-winner-row {
    display: flex;
    gap: 10px;
}

.se-wo-player-btn {
    flex: 1;
    padding: 10px 12px;
    border: 2px solid #dfe4e1;
    border-radius: 0.75rem;
    background: #f6f9f7;
    color: #2b2f2e;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    text-align: center;
}

.se-wo-player-btn:hover {
    border-color: #00693e;
    background: #e8f5ee;
}

.se-wo-player-btn--selected {
    border-color: #00693e;
    background: #00693e;
    color: #fff;
}


/* ═══════════════════════════════════════════════════════════════════════
   SubstitutePlayerDialog  (sp-)
   ═══════════════════════════════════════════════════════════════════════ */

.sp-dialog-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 700;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.sp-content {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 4px 0 8px;
}

.sp-current-label {
    font-size: 13px;
    color: #4a5e58;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin: 0;
}
.sp-current-label strong {
    color: #0d3020;
}

.sp-mode-toggle {
    display: flex;
    gap: 6px;
    background: #f0f4f2;
    border-radius: 8px;
    padding: 4px;
}

.sp-mode-btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px 12px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: #6b7e77;
    font-size: 12px;
    font-weight: 600;
    font-family: 'Plus Jakarta Sans', sans-serif;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.sp-mode-btn--active {
    background: #ffffff;
    color: #00693e;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.sp-mode-btn:hover:not(.sp-mode-btn--active) {
    color: #0d3020;
}

.sp-search-field,
.sp-name-field {
    width: 100%;
}

.sp-manual-note {
    font-size: 11px;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin: -6px 0 0;
    font-style: italic;
}


/* ═══════════════════════════════════════════════════════════════════════
   TournamentSchedule  (ts-)
   ═══════════════════════════════════════════════════════════════════════ */

.ts-page {
    padding: 40px 48px 60px;
    width: 100%;
    box-sizing: border-box;
}

.ts-body {
    display: flex;
    gap: 20px;
    padding: 0;
    align-items: flex-start;
}

/* ── Sidebar ── */
.ts-sidebar {
    flex: 0 0 260px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 80px;
}
.ts-card {
    background: #ffffff;
    border-radius: 14px;
    padding: 16px 18px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.ts-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #0d3020;
    margin: 0 0 12px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.ts-unscheduled-count {
    margin-left: auto;
    background: #f5c518;
    color: #0d3020;
    font-size: 10px;
    font-weight: 800;
    padding: 2px 7px;
    border-radius: 9999px;
}
.ts-card-hint {
    font-size: 11px;
    color: #8a9e96;
    margin: -6px 0 10px;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Court management */
.ts-court-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid #f0f4f2;
}
.ts-court-row:last-of-type { border-bottom: none; }
.ts-court-name {
    font-size: 13px;
    font-weight: 600;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ts-remove-btn {
    display: flex;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    color: #c5d0ca;
    padding: 2px;
    transition: color 0.12s;
}
.ts-remove-btn:hover { color: #c0392b; }
.ts-add-court-row {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 10px;
}
.ts-court-input { flex: 1; }
.ts-add-court-btn { flex-shrink: 0; }

/* Auto-schedule settings */
.ts-setting-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.ts-setting-label {
    font-size: 12px;
    font-weight: 600;
    color: #4a5753;
    flex-shrink: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Unscheduled match chips */
.ts-match-chip {
    display: flex;
    flex-direction: column;
    padding: 8px 10px;
    background: #f0f4f2;
    border-radius: 8px;
    margin-bottom: 6px;
    cursor: grab;
    transition: background 0.12s;
}
.ts-match-chip:hover   { background: #e0ebe5; }
.ts-match-chip:active  { cursor: grabbing; }
.ts-match-label {
    font-size: 10px;
    font-weight: 700;
    color: #8a9e96;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ts-match-players {
    font-size: 12px;
    font-weight: 600;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin-top: 2px;
}

/* ── Main grid ── */
.ts-grid-wrap {
    flex: 1;
    overflow-x: auto;
    min-width: 0;
}
.ts-day-block {
    margin-bottom: 28px;
}
.ts-day-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 16px;
    color: #0d3020;
    margin: 0 0 12px 0;
    letter-spacing: -0.01em;
}
.ts-court-columns {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 4px;
}
.ts-court-col {
    flex: 1 1 160px;
    min-width: 160px;
}
.ts-court-col-header {
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    color: #8a9e96;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 6px 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    background: #f6f9f7;
    border-radius: 8px 8px 0 0;
}

/* Time slots */
.ts-slot {
    min-height: 56px;
    border-bottom: 1px solid #f0f4f2;
    padding: 4px 8px;
    position: relative;
    transition: background 0.12s;
}
.ts-slot--empty:hover { background: #f6f9f7; }
.ts-slot--filled { background: #fafcfb; }
.ts-slot-time {
    font-size: 10px;
    font-weight: 600;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
    display: block;
    margin-bottom: 2px;
}
.ts-slot-match {
    background: #e8f5ee;
    border-radius: 6px;
    padding: 4px 6px;
    cursor: grab;
    position: relative;
    display: flex;
    flex-direction: column;
}
.ts-slot-match:active { cursor: grabbing; }
.ts-slot-match-label {
    font-size: 9px;
    font-weight: 700;
    color: #00693e;
    text-transform: uppercase;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ts-slot-match-players {
    font-size: 11px;
    font-weight: 600;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.ts-unassign-btn {
    position: absolute;
    top: 3px;
    right: 3px;
    background: none;
    border: none;
    cursor: pointer;
    color: #8a9e96;
    padding: 0;
    display: flex;
    align-items: center;
    transition: color 0.12s;
}
.ts-unassign-btn:hover { color: #c0392b; }


/* ═══════════════════════════════════════════════════════════════════════
   TournamentPointsAssignment  (tp-)
   ═══════════════════════════════════════════════════════════════════════ */

.tp-page {
    padding: 40px 48px 60px;
    width: 100%;
    box-sizing: border-box;
}

/* ── Warning banner ── */
.tp-warning {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 20px;
    padding: 12px 16px;
    background: #fffbf0;
    border-radius: 12px;
    font-size: 13px;
    color: #856404;
    font-family: 'Plus Jakarta Sans', sans-serif;
    flex-wrap: wrap;
}
.tp-warning-link {
    color: #00693e;
    font-weight: 600;
    text-decoration: underline;
    margin-left: auto;
}

/* ── Already assigned badge ── */
.tp-already-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    background: #e8f5ee;
    color: #00693e;
    border-radius: 9999px;
    font-size: 12px;
    font-weight: 600;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Ranking points table ── */
.tp-ranking-table {
    margin: 0 0 20px;
    background: #ffffff;
    border-radius: 14px;
    padding: 18px 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.tp-section-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: #0d3020;
    margin: 0 0 12px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.tp-preview-count {
    font-size: 12px;
    font-weight: 600;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.tp-points-grid {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.tp-pts-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 10px;
    background: #f6f9f7;
    border-radius: 8px;
    font-size: 13px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #2b2f2e;
}
.tp-pts-val {
    font-weight: 700;
    color: #00693e;
}

/* ── Preview / existing sections ── */
.tp-section {
    margin: 0 0 24px;
    background: #ffffff;
    border-radius: 16px;
    padding: 20px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}

/* ── Standings header: title left, category switcher + edit controls right ── */
.tp-standings-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}
.tp-standings-head .tp-section-title { margin: 0; }
.tp-standings-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

/* ── Standings table ── */
.tp-standings-table .tp-th-pos,
.tp-standings-table .tp-td-pos {
    width: 90px;
    text-align: center;
}
.tp-standings-table .tp-td-pos {
    font-weight: 700;
    color: #8a9e96;
}
.tp-standings-table .tp-th-pts,
.tp-standings-table .tp-td-pts {
    width: 200px;
}
.tp-standings-table .tp-td-pts strong { color: #00693e; }
.tp-standings-table .tp-th-remove,
.tp-standings-table .tp-td-remove {
    width: 110px;
    text-align: right;
}

/* ── Inline points editor ── */
.tp-pts-input {
    width: 110px;
    padding: 7px 10px;
    background: #f6f9f7;
    border: none;
    border-radius: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: #0d3020;
    outline: none;
}
.tp-pts-input:focus {
    background: #e8f5ee;
    box-shadow: 0 0 0 2px #92febc;
}
.tp-remove-btn {
    padding: 6px 14px;
    background: #fdeceb;
    color: #c0392b;
    border: none;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.tp-remove-btn:hover { background: #f9d9d6; }

/* ── NSF / PSA points tables side by side ── */
.tp-tables-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}
.tp-table-col-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    flex-wrap: wrap;
}
.tp-table-col-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 13px;
    color: #0d3020;
}

/* ── "using the tournament-wide table" hint ── */
.tp-inherited-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 12px;
    background: #f6f9f7;
    color: #8a9e96;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    font-weight: 600;
}


/* ═══════════════════════════════════════════════════════════════════════
   TournamentDraws — public  (td-)
   ═══════════════════════════════════════════════════════════════════════ */

.td-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 60vh;
}
.td-not-found {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 100px 24px;
    text-align: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.td-not-found h2 {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 28px;
    color: #0d3020;
    margin: 0;
}
.td-back-link {
    color: #00693e;
    text-decoration: underline;
    font-weight: 600;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Page ── */
.td-page {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 0 80px 0;
}

/* ── Hero ── */
.td-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 40px 32px 28px;
    background: #0d3020;
    position: relative;
    overflow: hidden;
}
.td-hero-content { flex: 1; }
.td-hero-chip {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 9999px;
    background: #92febc;
    color: #0d3020;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    font-family: 'Plus Jakarta Sans', sans-serif;
    margin-bottom: 12px;
}
.td-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 32px;
    color: #ffffff;
    letter-spacing: -0.02em;
    margin: 0 0 14px 0;
    line-height: 1.1;
}
.td-hero-meta {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
}
.td-hero-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: rgba(255,255,255,0.75);
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.td-hero-poster {
    width: 90px;
    height: 120px;
    border-radius: 10px;
    object-fit: cover;
    box-shadow: 0 4px 16px rgba(0,0,0,0.3);
    flex-shrink: 0;
}

/* ── No draws ── */
.td-no-draws {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 80px 24px;
    text-align: center;
    color: #8a9e96;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Category tabs ── */
.td-tabs-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 20px 32px 0;
}
.td-tab {
    padding: 7px 18px;
    border-radius: 9999px;
    border: none;
    background: #f0f4f2;
    color: #4a5753;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: background 0.15s;
}
.td-tab:hover    { background: #e0ebe5; color: #0d3020; }
.td-tab--active  { background: #00693e; color: #ffffff; }
.td-tab--active:hover { background: #005732; }

/* ── Bracket section ── */
.td-bracket-section {
    padding: 20px 32px 0;
}
.td-bracket-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    flex-wrap: wrap;
}
.td-bracket-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 20px;
    color: #0d3020;
    margin: 0;
}
.td-bracket-size {
    padding: 3px 10px;
    border-radius: 9999px;
    background: #e8f5ee;
    color: #00693e;
    font-size: 11px;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.td-qualifier-badge {
    padding: 3px 10px;
    border-radius: 9999px;
    background: #e8f0fe;
    color: #1a73e8;
    font-size: 11px;
    font-weight: 700;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.td-bracket-scroll {
    overflow-x: auto;
    padding-bottom: 24px;
}

/* ── Responsive ── */
@media (max-width: 768px) {
    .td-hero { flex-direction: column-reverse; padding: 24px 16px 20px; }
    .td-hero-title { font-size: 24px; }
    .td-hero-poster { width: 60px; height: 80px; }
    .td-tabs-row { padding: 16px; }
    .td-bracket-section { padding: 16px 16px 0; }
    .dh-page, .de-page, .ds-page, .db-page, .ts-page, .tp-page {
        padding: 24px 16px 40px;
    }
    .dh-category-block { padding: 16px 0 8px; }
    .dh-brackets-row { gap: 10px; }
    .dh-bracket-card { min-width: 140px; max-width: none; flex: 1 1 140px; padding: 12px 14px 10px; }
    .ts-body { flex-direction: column; }
    .ts-sidebar { position: static; flex: unset; }
}


/* ── Admin News List (anl-) ──────────────────────────────────────────────── */

.anl-page { padding: 28px 32px 60px; max-width: 1400px; }

.anl-stats-row {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.anl-stat-card {
    background: #fff;
    border-radius: 12px;
    padding: 16px 24px;
    min-width: 140px;
}
.anl-stat-card--green { border-left: 3px solid #00693e; }
.anl-stat-card--muted { border-left: 3px solid #c5d0ca; }
.anl-stat-label {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #6b7c75;
    margin: 0 0 4px;
}
.anl-stat-value {
    font-family: 'Lexend', sans-serif;
    font-size: 1.6rem;
    font-weight: 800;
    color: #0d3020;
    margin: 0;
}

.anl-grid-wrap { background: #fff; border-radius: 16px; overflow: hidden; }
.anl-grid { font-family: 'Plus Jakarta Sans', sans-serif; }

.anl-title-cell { display: flex; flex-direction: column; gap: 2px; }
.anl-title { font-weight: 600; color: #0d3020; font-size: 0.875rem; }
.anl-slug  { font-size: 0.72rem; color: #8a9a93; }

.anl-chip {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
}
.anl-chip--published { background: #d4f5e2; color: #006633; }
.anl-chip--draft     { background: #f0f2f1; color: #6b7c75; }

.anl-date    { font-size: 0.82rem; color: #4a5551; }
.anl-no-date { color: #c5d0ca; }

.anl-row-actions { display: flex; gap: 6px; }
.anl-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #f0f4f2;
    color: #2b2f2e;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.12s;
}
.anl-action-btn:hover { background: #e0e8e3; }
.anl-action-btn--delete:hover { background: #fdecea; color: #ba1a1a; }

.anl-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 48px 24px;
    color: #8a9a93;
    gap: 8px;
}

/* ── Admin News Form (anf-) ──────────────────────────────────────────────── */

.anf-page { padding: 28px 32px 60px; max-width: 1400px; }

.anf-form-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 20px;
    align-items: start;
    margin-top: 8px;
    width: 100%;
}

.anf-col-main {
    display: flex;
    flex-direction: column;
    gap: 16px;
    min-width: 0; /* prevent grid blowout */
}

.anf-col-sidebar {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 24px;
}

.anf-card {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.anf-card--editor { gap: 10px; }

.anf-panel {
    background: #fff;
    border-radius: 14px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.anf-panel-title {
    font-family: 'Lexend', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #6b7c75;
    text-transform: uppercase;
    margin: 0 0 2px;
    padding-bottom: 10px;
    border-bottom: 1px solid #f0f4f2;
}

.anf-field-group { display: flex; flex-direction: column; gap: 4px; }
.anf-label { font-size: 0.82rem; font-weight: 600; color: #2b2f2e; }
.anf-required { color: #ba1a1a; }
.anf-input { background: #fff; }

/* ── Quill editor ── */
.anf-editor-wrap {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid #e8edea;
}
.anf-quill-editor { min-height: 480px; font-family: 'Plus Jakarta Sans', sans-serif; }
.anf-editor-wrap .ql-toolbar {
    border: none;
    border-bottom: 1px solid #e8edea;
    background: #f8faf9;
}
.anf-editor-wrap .ql-container { border: none; font-size: 0.95rem; }
.anf-editor-wrap .ql-editor { min-height: 440px; line-height: 1.7; }

/* ── Image upload ── */
.anf-img-preview-wrap { display: flex; flex-direction: column; gap: 8px; }
.anf-img-preview {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: 8px;
}
.anf-img-remove-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: none;
    color: #ba1a1a;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
}
.anf-file-label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1.5px dashed #c5d0ca;
    border-radius: 10px;
    cursor: pointer;
    font-size: 0.83rem;
    font-weight: 600;
    color: #4a5551;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
}
.anf-file-label:hover { border-color: #00693e; background: #f2faf6; color: #00693e; }
.anf-file-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
    width: 100%;
    height: 100%;
}
.anf-file-name {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    color: #4a5551;
    margin: 0;
}
.anf-file-size { color: #8a9a93; }

@media (max-width: 900px) {
    .anf-form-layout { grid-template-columns: 1fr; }
    .anf-col-sidebar { position: static; }
    .anl-page, .anf-page { padding: 16px; }
}


/* ═══════════════════════════════════════════════════════════════════════
   HOME PAGE (home-)
   ═══════════════════════════════════════════════════════════════════════ */

.home-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
}

/* ── Hero Slider ────────────────────────────────────────────────────────── */
.home-hero {
    position: relative;
    width: 100%;
    height: clamp(560px, 78vh, 760px);
    overflow: hidden;
    background: #0d3020;
}

.home-hero-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.8s ease;
    pointer-events: none;
}
.home-hero-slide--active {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}
.home-hero-slide--default {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}

.home-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        90deg,
        rgba(13, 48, 32, 0.92) 0%,
        rgba(13, 48, 32, 0.78) 35%,
        rgba(13, 48, 32, 0.30) 65%,
        rgba(13, 48, 32, 0.10) 100%
    );
}

.home-hero-inner {
    position: relative;
    z-index: 2;
    height: 100%;
    max-width: 1320px;
    margin: 0 auto;
    padding: 80px 56px;
    display: flex;
    align-items: center;
}

.home-hero-body { max-width: 640px; color: #fff; }

.home-hero-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #92febc;
    background: rgba(146, 254, 188, 0.12);
    padding: 6px 14px;
    border-radius: 999px;
    margin-bottom: 22px;
}

.home-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.6rem, 6vw, 4.6rem);
    line-height: 0.96;
    letter-spacing: -0.03em;
    margin: 0 0 22px;
    text-transform: uppercase;
}
.home-hero-title .kinetic-accent { color: #92febc; }

.home-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1.05rem;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.84);
    margin: 0 0 32px;
    max-width: 560px;
}

.home-hero-ctas { display: flex; gap: 14px; flex-wrap: wrap; }

.home-hero-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 32px;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.92rem;
    text-decoration: none;
    transition: transform 0.15s ease, background 0.15s ease;
    letter-spacing: 0.02em;
}
.home-hero-btn--primary {
    background: #00693e;
    color: #fff;
    box-shadow: 0 6px 24px rgba(0, 105, 62, 0.35);
}
.home-hero-btn--primary:hover {
    background: #008e54;
    transform: translateY(-2px);
}
.home-hero-btn--ghost {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255, 255, 255, 0.45);
}
.home-hero-btn--ghost:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.7);
}

.home-hero-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    cursor: pointer;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
}
.home-hero-arrow:hover { background: rgba(255, 255, 255, 0.2); }
.home-hero-arrow--prev { left: 24px; }
.home-hero-arrow--next { right: 24px; }

.home-hero-dots {
    position: absolute;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 3;
}
.home-hero-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: background 0.15s, transform 0.15s;
}
.home-hero-dot--active {
    background: #92febc;
    transform: scale(1.4);
}

/* ── Section heads ─────────────────────────────────────────────────────── */
.home-section-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    color: #00693e;
    margin-bottom: 12px;
}
.home-section-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: clamp(1.8rem, 3.6vw, 2.6rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: #0d3020;
    margin: 0;
}
.home-section-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.88rem;
    color: #00693e;
    text-decoration: none;
}
.home-section-link:hover { color: #0d3020; }

/* ── Key Announcements ─────────────────────────────────────────────────── */
.home-news {
    background: #f6f9f7;
    padding: 100px 56px;
}
.home-news-inner { max-width: 1320px; margin: 0 auto; }

.home-news-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 40px;
    gap: 24px;
    flex-wrap: wrap;
}

.home-news-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 28px;
}

.home-news-featured {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.2s ease;
}
.home-news-featured:hover { transform: translateY(-2px); }
.home-news-featured-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: #e5e9e7;
}
.home-news-featured-img--fallback {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}
.home-news-featured-body { padding: 28px 30px 32px; }
.home-news-featured-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #0d3020;
    margin: 14px 0 12px;
}
.home-news-featured-summary {
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #4a5551;
    font-size: 0.92rem;
    line-height: 1.55;
    margin: 0;
}

.home-news-side { display: flex; flex-direction: column; gap: 16px; }
.home-news-side-card {
    border-radius: 14px;
    overflow: hidden;
    color: #0d3020;
    text-decoration: none;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    flex: 1;
    display: flex;
    flex-direction: column;
}
.home-news-side-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.1); }
.home-news-side-card--empty { opacity: 0.6; }

.home-news-side-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: #0d3020;
    flex-shrink: 0;
}
.home-news-side-img--fallback {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}

.home-news-side-body {
    padding: 18px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.home-news-side-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.3;
    margin: 0;
    color: #0d3020;
}

.home-news-cat-chip {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #f5c518;
    background: rgba(245, 197, 24, 0.14);
    padding: 4px 10px;
    border-radius: 999px;
}
.home-news-cat-chip--green {
    color: #00693e;
    background: rgba(0, 105, 62, 0.1);
}

/* ── Featured Players ──────────────────────────────────────────────────── */
.home-players {
    background: #f0f4f1;
    padding: 100px 56px;
}
.home-players-inner { max-width: 1320px; margin: 0 auto; }
.home-players-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 36px;
}

.home-player-card {
    position: relative;
    aspect-ratio: 4 / 5;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s ease;
}
.home-player-card:hover { transform: translateY(-3px); }

.home-player-img {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}
.home-player-img--fallback {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-player-card::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 50%, rgba(13, 48, 32, 0.92) 100%);
    pointer-events: none;
}

.home-player-name {
    position: absolute;
    bottom: 18px;
    left: 18px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 0;
    color: #fff;
}
.home-player-first {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    opacity: 0.8;
}
.home-player-last {
    font-family: 'Lexend', sans-serif;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.05;
}

.home-players-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 48px;
    color: #6b7c75;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* ── Final CTA ──────────────────────────────────────────────────────────── */
.home-cta {
    background: linear-gradient(135deg, #00693e 0%, #005530 100%);
    padding: 90px 56px;
    text-align: center;
    color: #fff;
}
.home-cta-inner { max-width: 720px; margin: 0 auto; }
.home-cta-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 0 0 18px;
    text-transform: uppercase;
}
.home-cta-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.86);
    margin: 0 0 32px;
}
.home-cta-ctas {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}
.home-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 13px 30px;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    transition: transform 0.15s, background 0.15s;
}
.home-cta-btn--primary {
    background: #fff;
    color: #00693e;
}
.home-cta-btn--primary:hover { transform: translateY(-2px); }
.home-cta-btn--ghost {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255, 255, 255, 0.5);
}
.home-cta-btn--ghost:hover { background: rgba(255, 255, 255, 0.08); }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .home-hero-inner   { padding: 56px 24px; }
    .home-news,
    .home-players,
    .home-cta          { padding: 70px 24px; }
    .home-news-grid    { grid-template-columns: 1fr; }
    .home-players-grid { grid-template-columns: repeat(2, 1fr); }
    .home-hero-arrow   { width: 36px; height: 36px; }
    .home-hero-arrow--prev { left: 12px; }
    .home-hero-arrow--next { right: 12px; }
}
@media (max-width: 520px) {
    .home-players-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .home-hero-ctas    { flex-direction: column; align-items: stretch; }
    .home-hero-btn     { padding: 13px 24px; }
}


/* ═══════════════════════════════════════════════════════════════════════
   ADMIN BANNER PAGE (abp-)
   ═══════════════════════════════════════════════════════════════════════ */

.abp-page { padding: 28px 32px 60px; max-width: 1200px; }

/* ── Create card ─── */
.abp-create-card {
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    margin-bottom: 32px;
}
.abp-create-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.15rem;
    color: #0d3020;
    margin: 0 0 4px;
}
.abp-create-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #6b7c75;
    font-size: 0.86rem;
    margin: 0 0 20px;
}
.abp-create-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.abp-field { display: flex; flex-direction: column; gap: 6px; }
.abp-field--span2 { grid-column: 1 / -1; }
.abp-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    color: #2b2f2e;
}
.abp-required { color: #ba1a1a; }
.abp-help { font-size: 0.74rem; color: #8a9a93; margin: 0; }

.abp-input {
    background: #f6f9f7;
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 11px 14px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    color: #2b2f2e;
    width: 100%;
    transition: border-color 0.15s;
}
.abp-input:focus { outline: none; border-color: #00693e; background: #fff; }

.abp-file-label {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 14px;
    border: 1.5px dashed #c5d0ca;
    border-radius: 10px;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.86rem;
    font-weight: 600;
    color: #4a5551;
    transition: border-color 0.15s, background 0.15s;
    position: relative;
    background: #fff;
}
.abp-file-label:hover { border-color: #00693e; background: #f2faf6; color: #00693e; }
.abp-file-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.abp-create-actions {
    margin-top: 22px;
    display: flex;
    justify-content: flex-end;
}

/* ── Sections / list ─── */
.abp-section { margin-bottom: 36px; }
.abp-section-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 8px;
}
.abp-section-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.1rem;
    color: #0d3020;
    margin: 0;
}
.abp-section-count {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    color: #6b7c75;
}
.abp-section-note {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.84rem;
    color: #6b7c75;
    margin: 0 0 16px;
    line-height: 1.5;
}
.abp-section-note a { color: #00693e; font-weight: 600; }

.abp-banner-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.abp-banner-row {
    display: grid;
    grid-template-columns: 160px 1fr auto;
    gap: 20px;
    align-items: center;
    background: #fff;
    border-radius: 14px;
    padding: 14px 20px;
    transition: opacity 0.15s;
}
.abp-banner-row--inactive { opacity: 0.55; }
.abp-banner-row--auto { background: #f6f9f7; }

.abp-banner-thumb {
    width: 160px;
    aspect-ratio: 16 / 9;
    border-radius: 8px;
    background-color: #e5e9e7;
    background-size: cover;
    background-position: center;
}

.abp-banner-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.abp-banner-tag {
    display: inline-block;
    width: fit-content;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: #00693e;
    background: rgba(0, 105, 62, 0.1);
    padding: 3px 9px;
    border-radius: 999px;
}
.abp-banner-tag--auto { background: rgba(245, 197, 24, 0.14); color: #b58900; }
.abp-banner-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    color: #0d3020;
    margin: 4px 0 0;
}
.abp-banner-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
    color: #4a5551;
    margin: 0;
}
.abp-banner-cta {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    color: #00693e;
    margin-top: 4px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.abp-banner-controls {
    display: flex;
    align-items: center;
    gap: 10px;
}
.abp-sort {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.abp-sort-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #6b7c75;
    text-transform: uppercase;
}
.abp-sort-input {
    width: 60px;
    padding: 6px 8px;
    border: 1px solid #e5e9e7;
    border-radius: 8px;
    text-align: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    font-weight: 600;
    color: #0d3020;
    background: #f6f9f7;
}
.abp-sort-input:focus { outline: none; border-color: #00693e; background: #fff; }

.abp-toggle-btn,
.abp-delete-btn,
.abp-edit-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #f0f4f2;
    border: none;
    cursor: pointer;
    color: #4a5551;
    transition: background 0.15s, color 0.15s;
    text-decoration: none;
}
.abp-toggle-btn:hover { background: #e0e8e3; }
.abp-toggle-btn--on   { background: #d4f5e2; color: #006633; }
.abp-delete-btn:hover { background: #fdecea; color: #ba1a1a; }
.abp-edit-link:hover  { background: #e0e8e3; color: #0d3020; }

.abp-empty {
    background: #fff;
    border-radius: 14px;
    padding: 36px 24px;
    text-align: center;
    color: #6b7c75;
    font-family: 'Plus Jakarta Sans', sans-serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
.abp-empty p { margin: 0; }

@media (max-width: 900px) {
    .abp-create-grid { grid-template-columns: 1fr; }
    .abp-banner-row {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .abp-banner-thumb { width: 100%; }
    .abp-banner-controls { justify-content: flex-end; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   NEWS DETAIL PAGE  (nd-*)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Loading / not-found */
.nd-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
}
.nd-notfound {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f0f4f1;
}
.nd-notfound-inner {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 48px 24px;
}
.nd-notfound-inner h2 {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.6rem;
    color: #0d3020;
    margin: 0;
}
.nd-notfound-inner p { color: #4a5551; margin: 0; font-family: 'Plus Jakarta Sans', sans-serif; }
.nd-notfound-btn {
    display: inline-block;
    margin-top: 8px;
    padding: 12px 28px;
    background: #00693e;
    color: #fff;
    border-radius: 9999px;
    text-decoration: none;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.88rem;
    letter-spacing: 0.04em;
}

/* ── Breadcrumb ─────────────────────────────────────────────────────────── */
.nd-breadcrumb-bar {
    background: #fff;
    border-bottom: 1px solid #edf0ee;
    padding: 14px 0;
}
.nd-breadcrumb-inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 56px;
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}
.nd-breadcrumb-link {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: #00693e;
    text-decoration: none;
    white-space: nowrap;
}
.nd-breadcrumb-link:hover { text-decoration: underline; }
.nd-breadcrumb-sep {
    font-size: 16px !important;
    color: #9aafa5;
}
.nd-breadcrumb-current {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    color: #4a5551;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 360px;
}

/* ── Page shell ─────────────────────────────────────────────────────────── */
.nd-page {
    background: #f0f4f1;
    min-height: 100vh;
    padding: 48px 56px 80px;
}
.nd-layout {
    max-width: 1320px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 32px;
    align-items: start;
}

/* ── Article ────────────────────────────────────────────────────────────── */
.nd-article {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
}

.nd-article-header {
    padding: 40px 48px 0;
}

/* Category chip */
.nd-cat-chip {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #00693e;
    background: rgba(0, 105, 62, 0.1);
    padding: 5px 12px;
    border-radius: 999px;
    margin-bottom: 18px;
}

/* Headline */
.nd-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: clamp(1.9rem, 3.2vw, 2.6rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: #0d3020;
    margin: 0 0 16px;
}

/* Summary deck */
.nd-summary {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1.05rem;
    line-height: 1.6;
    color: #4a5551;
    margin: 0 0 28px;
    font-weight: 500;
}

/* ── Meta row (author + share) ──────────────────────────────────────────── */
.nd-meta {
    padding: 0 48px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border-bottom: 1px solid #f0f4f1;
}
.nd-author {
    display: flex;
    align-items: center;
    gap: 12px;
}
.nd-author-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
    color: #92febc;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.nd-author-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.nd-author-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.88rem;
    color: #0d3020;
}
.nd-author-date {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    color: #6b7c75;
}

/* Share icons (header) */
.nd-share-row {
    display: flex;
    align-items: center;
    gap: 8px;
}
.nd-share-btn {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: transform 0.15s ease, opacity 0.15s ease;
}
.nd-share-btn:hover { transform: translateY(-2px); opacity: 0.85; }
.nd-share-btn--twitter   { background: #000; color: #fff; }
.nd-share-btn--facebook  { background: #1877f2; color: #fff; }
.nd-share-btn--whatsapp  { background: #25d366; color: #fff; }

/* ── Hero image ─────────────────────────────────────────────────────────── */
.nd-hero-img {
    width: 100%;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: #0d3020;
    margin: 28px 0 0;
}

/* ── Article body (rich text) ───────────────────────────────────────────── */
.nd-body {
    padding: 40px 48px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.75;
    color: #2b2f2e;
}
.nd-body p {
    margin: 0 0 1.4em;
}
.nd-body h2 {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.5rem;
    letter-spacing: -0.02em;
    color: #0d3020;
    margin: 2em 0 0.6em;
    line-height: 1.2;
}
.nd-body h3 {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.18rem;
    color: #0d3020;
    margin: 1.6em 0 0.5em;
    line-height: 1.25;
}
.nd-body h4, .nd-body h5, .nd-body h6 {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    color: #0d3020;
    margin: 1.4em 0 0.4em;
}
.nd-body ul, .nd-body ol {
    margin: 0 0 1.4em 1.5em;
    padding: 0;
}
.nd-body li { margin-bottom: 0.4em; }
.nd-body a {
    color: #00693e;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.nd-body a:hover { color: #005533; }
.nd-body strong { font-weight: 700; color: #0d3020; }
.nd-body em { font-style: italic; }
.nd-body img {
    max-width: 100%;
    border-radius: 12px;
    margin: 12px 0;
}

/* Pull quotes / blockquotes */
.nd-body blockquote {
    margin: 2em 0;
    padding: 28px 32px;
    border-left: 5px solid #00693e;
    background: #f4f9f6;
    border-radius: 0 14px 14px 0;
    position: relative;
}
.nd-body blockquote p {
    font-family: 'Lexend', sans-serif;
    font-size: 1.18rem;
    font-weight: 600;
    line-height: 1.5;
    color: #0d3020;
    margin: 0;
    font-style: italic;
}
.nd-body blockquote cite,
.nd-body blockquote footer {
    display: block;
    margin-top: 12px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #00693e;
    font-style: normal;
    text-transform: uppercase;
}

/* Code blocks */
.nd-body pre {
    background: #0d3020;
    color: #92febc;
    padding: 20px 24px;
    border-radius: 12px;
    overflow-x: auto;
    font-size: 0.9rem;
    margin: 0 0 1.4em;
}
.nd-body code {
    background: rgba(0,105,62,0.1);
    color: #005533;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.88em;
}
.nd-body pre code { background: none; color: inherit; padding: 0; }

/* ── Footer share strip ─────────────────────────────────────────────────── */
.nd-footer-share {
    padding: 24px 48px 36px;
    border-top: 1px solid #f0f4f1;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.nd-footer-share-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: #4a5551;
    text-transform: uppercase;
}
.nd-footer-share-links {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.nd-footer-share-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: 999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
    transition: opacity 0.15s ease, transform 0.15s ease;
}
.nd-footer-share-chip:hover { opacity: 0.85; transform: translateY(-1px); }
.nd-footer-share-chip--twitter  { background: #000; color: #fff; }
.nd-footer-share-chip--facebook { background: #1877f2; color: #fff; }
.nd-footer-share-chip--whatsapp { background: #25d366; color: #fff; }

/* ── Sidebar ────────────────────────────────────────────────────────────── */
.nd-sidebar {
    display: flex;
    flex-direction: column;
    gap: 24px;
    position: sticky;
    top: 24px;
}

.nd-sidebar-block {
    background: #fff;
    border-radius: 18px;
    padding: 28px 24px;
}

.nd-sidebar-heading {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}
.nd-sidebar-heading-line {
    display: block;
    width: 4px;
    height: 20px;
    background: #00693e;
    border-radius: 2px;
    flex-shrink: 0;
}
.nd-sidebar-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1rem;
    color: #0d3020;
    margin: 0;
    letter-spacing: -0.01em;
}

.nd-related-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-bottom: 20px;
}
.nd-related-card {
    display: flex;
    gap: 12px;
    text-decoration: none;
    align-items: flex-start;
    transition: transform 0.15s ease;
}
.nd-related-card:hover { transform: translateX(2px); }
.nd-related-thumb {
    width: 88px;
    height: 64px;
    border-radius: 10px;
    background-size: cover;
    background-position: center;
    flex-shrink: 0;
}
.nd-related-thumb--fallback {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}
.nd-related-body {
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
    min-width: 0;
}
.nd-related-cat {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #00693e;
}
.nd-related-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.88rem;
    line-height: 1.25;
    color: #0d3020;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.nd-related-date {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    color: #9aafa5;
    margin-top: 2px;
}
.nd-related-empty {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    color: #6b7c75;
    margin: 0 0 16px;
}

.nd-view-all-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    color: #00693e;
    text-decoration: none;
    padding: 10px 0 0;
    border-top: 1px solid #f0f4f1;
    width: 100%;
    transition: gap 0.15s ease;
}
.nd-view-all-btn:hover { gap: 10px; }

/* ── Newsletter sidebar card ────────────────────────────────────────────── */
.nd-newsletter {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
    border-radius: 18px;
    padding: 28px 24px;
    color: #fff;
}
.nd-newsletter-icon {
    width: 44px;
    height: 44px;
    background: rgba(255,255,255,0.12);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}
.nd-newsletter-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.05rem;
    letter-spacing: -0.01em;
    color: #fff;
    margin: 0 0 8px;
}
.nd-newsletter-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.75);
    margin: 0 0 20px;
}
.nd-newsletter-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.nd-newsletter-input {
    width: 100%;
    padding: 12px 16px;
    border-radius: 10px;
    border: none;
    background: rgba(255,255,255,0.12);
    color: #fff;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    outline: none;
    box-sizing: border-box;
    transition: background 0.15s ease;
}
.nd-newsletter-input::placeholder { color: rgba(255,255,255,0.45); }
.nd-newsletter-input:focus { background: rgba(255,255,255,0.2); }
.nd-newsletter-btn {
    width: 100%;
    padding: 13px 20px;
    border-radius: 999px;
    border: none;
    background: #92febc;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 0.88rem;
    letter-spacing: 0.04em;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}
.nd-newsletter-btn:hover { background: #7df0ac; transform: translateY(-1px); }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
    .nd-layout {
        grid-template-columns: 1fr 320px;
        gap: 24px;
    }
    .nd-article-header, .nd-meta, .nd-body, .nd-footer-share {
        padding-left: 32px;
        padding-right: 32px;
    }
}

@media (max-width: 860px) {
    .nd-page { padding: 24px 20px 60px; }
    .nd-breadcrumb-inner { padding: 0 20px; }
    .nd-layout {
        grid-template-columns: 1fr;
    }
    .nd-sidebar { position: static; }
    .nd-article-header, .nd-meta, .nd-footer-share {
        padding-left: 24px;
        padding-right: 24px;
    }
    .nd-body {
        padding: 28px 24px 32px;
    }
    .nd-title { font-size: 1.7rem; }
}

@media (max-width: 560px) {
    .nd-meta { flex-direction: column; align-items: flex-start; }
    .nd-breadcrumb-current { max-width: 200px; }
}


/* ── News Listing (nl-) ──────────────────────────────────────────────────── */

/* Hero */
.nl-hero {
    background: #0d3020;
    position: relative;
    overflow: hidden;
    padding: 56px 0 0;
}
.nl-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 48px 52px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 40px;
}
.nl-hero-left { flex: 1; }
.nl-hero-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    color: #92febc;
    margin-bottom: 14px;
}
.nl-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.8rem, 6vw, 4.5rem);
    letter-spacing: -0.03em;
    color: #fff;
    line-height: 1;
    margin: 0 0 16px;
}
.nl-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.65;
    color: rgba(255,255,255,0.6);
    max-width: 520px;
    margin: 0;
}
.nl-hero-right {
    display: flex;
    gap: 32px;
    flex-shrink: 0;
    padding-bottom: 8px;
}
.nl-hero-metric { text-align: center; }
.nl-hero-metric-num {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 2.8rem;
    letter-spacing: -0.03em;
    color: #fff;
    line-height: 1;
}
.nl-hero-metric.alt .nl-hero-metric-num { color: #92febc; }
.nl-hero-metric-label {
    display: block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: rgba(255,255,255,0.4);
    margin-top: 6px;
    line-height: 1.4;
}
.nl-hero-court-line {
    height: 3px;
    background: linear-gradient(90deg, #92febc 0%, transparent 70%);
    opacity: 0.35;
}

/* Loading */
.nl-loading {
    display: flex;
    justify-content: center;
    padding: 80px 0;
}

/* Featured article */
.nl-featured-wrap {
    max-width: 1200px;
    margin: 40px auto 0;
    padding: 0 48px;
}
.nl-featured {
    display: block;
    position: relative;
    border-radius: 20px;
    overflow: hidden;
    min-height: 420px;
    background: #0d3020;
    background-size: cover;
    background-position: center;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.nl-featured:hover {
    transform: translateY(-3px);
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.nl-featured-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(13,48,32,0.85) 0%, rgba(0,0,0,0.45) 60%, transparent 100%);
}
.nl-featured-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    min-height: 420px;
    padding: 40px 48px;
}
.nl-featured-body { max-width: 680px; }
.nl-featured-cat {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    color: #92febc;
    background: rgba(146,254,188,0.12);
    padding: 4px 12px;
    border-radius: 999px;
    margin-bottom: 14px;
}
.nl-featured-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: clamp(1.6rem, 3.2vw, 2.2rem);
    letter-spacing: -0.02em;
    color: #fff;
    line-height: 1.2;
    margin: 0 0 12px;
}
.nl-featured-summary {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.7);
    margin: 0 0 20px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.nl-featured-meta {
    display: flex;
    align-items: center;
    gap: 24px;
}
.nl-featured-date {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    color: rgba(255,255,255,0.45);
}
.nl-featured-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
    font-weight: 700;
    color: #92febc;
    letter-spacing: 0.04em;
}

/* Filter bar */
.nl-controls-wrap {
    max-width: 1200px;
    margin: 32px auto 0;
    padding: 0 48px;
}
.nl-controls {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.nl-search { flex-shrink: 0; width: 260px; }
.nl-cat-filters {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.nl-cat-btn {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 7px 18px;
    border-radius: 999px;
    border: 1.5px solid #d4ddd9;
    background: #fff;
    color: #4a5551;
    cursor: pointer;
    transition: all 0.18s ease;
    white-space: nowrap;
}
.nl-cat-btn:hover { border-color: #00693e; color: #00693e; }
.nl-cat-btn.active {
    background: #0d3020;
    border-color: #0d3020;
    color: #fff;
}

/* Card grid */
.nl-grid-wrap {
    max-width: 1200px;
    margin: 28px auto 0;
    padding: 0 48px 80px;
}
.nl-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}
.nl-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}
.nl-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.12);
}
.nl-card-img {
    position: relative;
    aspect-ratio: 16 / 9;
    background-size: cover;
    background-position: center;
    background-color: #e5e9e7;
}
.nl-card-img--fallback {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}
.nl-card-cat-chip {
    position: absolute;
    top: 12px;
    left: 12px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #fff;
    background: rgba(0,0,0,0.55);
    padding: 4px 10px;
    border-radius: 999px;
    backdrop-filter: blur(4px);
}
.nl-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 20px 22px 20px;
}
.nl-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: -0.01em;
    color: #0d3020;
    line-height: 1.35;
    margin: 0 0 10px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.nl-card-summary {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
    line-height: 1.6;
    color: #4a5551;
    margin: 0 0 16px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
}
.nl-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 14px;
    border-top: 1px solid #f0f4f1;
    margin-top: auto;
}
.nl-card-date {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    color: #8a9a93;
}
.nl-card-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: #f0f4f1;
    border-radius: 50%;
    color: #00693e;
    transition: background 0.18s, color 0.18s;
}
.nl-card:hover .nl-card-arrow {
    background: #00693e;
    color: #fff;
}

/* Empty state */
.nl-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 80px 0;
    color: #8a9a93;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
}

/* Load more */
.nl-load-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 48px;
}
.nl-load-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #0d3020;
    background: #fff;
    border: 2px solid #0d3020;
    padding: 12px 32px;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.2s ease;
}
.nl-load-more-btn:hover {
    background: #0d3020;
    color: #fff;
}

/* Responsive */
@media (max-width: 1100px) {
    .nl-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
    .nl-hero-inner { flex-direction: column; align-items: flex-start; padding: 0 28px 44px; }
    .nl-hero-right { padding-bottom: 0; }
    .nl-featured-wrap, .nl-controls-wrap, .nl-grid-wrap { padding-left: 28px; padding-right: 28px; }
    .nl-featured-inner { padding: 28px 32px; min-height: 340px; }
    .nl-controls { flex-direction: column; align-items: flex-start; }
    .nl-search { width: 100%; }
}
@media (max-width: 600px) {
    .nl-hero-title { font-size: 2.6rem; }
    .nl-hero-right { gap: 20px; }
    .nl-hero-metric-num { font-size: 2.2rem; }
    .nl-featured-wrap, .nl-controls-wrap, .nl-grid-wrap { padding-left: 20px; padding-right: 20px; }
    .nl-featured-inner { padding: 24px; min-height: 280px; }
    .nl-grid { grid-template-columns: 1fr; }
    .nl-featured-title { font-size: 1.4rem; }
}


/* ── Rankings (rk-) ──────────────────────────────────────────────────────── */

/* Hero */
.rk-hero {
    background: #f6f9f7;
    padding: 64px 0 56px;
}
.rk-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 48px;
}
.rk-hero-tag {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: clamp(1.6rem, 3.2vw, 2.4rem);
    letter-spacing: -0.02em;
    color: #00693e;
    line-height: 1;
    margin-bottom: 8px;
}
.rk-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.8rem, 6vw, 4.4rem);
    letter-spacing: -0.03em;
    color: #0d3020;
    line-height: 1;
    margin: 0 0 18px;
}
.rk-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.65;
    color: #4a5551;
    max-width: 560px;
    margin: 0;
}

/* Loading */
.rk-loading {
    display: flex;
    justify-content: center;
    padding: 80px 0;
}

/* Filter row */
.rk-controls-wrap {
    margin: 28px 0 0;
    padding: 0 48px;
}
.rk-controls {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}
.rk-pill-group {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.rk-pill {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 8px 18px;
    border-radius: 999px;
    border: 1.5px solid #d4ddd9;
    background: #fff;
    color: #4a5551;
    cursor: pointer;
    transition: all 0.18s ease;
    white-space: nowrap;
}
.rk-pill:hover { border-color: #00693e; color: #00693e; }
.rk-pill--gender-active {
    background: #00693e;
    border-color: #00693e;
    color: #fff;
}
.rk-pill--cat-active {
    background: #f5c518;
    border-color: #f5c518;
    color: #2b2f2e;
}
.rk-name-search { width: 220px; flex-shrink: 0; }
.rk-period {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}
.rk-period-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #8a9a93;
}
.rk-period-controls {
    display: flex;
    gap: 8px;
}
.rk-period-select {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    color: #0d3020;
    background: #fff;
    border: 1.5px solid #d4ddd9;
    border-radius: 999px;
    padding: 7px 28px 7px 14px;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%230d3020'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 14px;
}
.rk-period-select:focus { outline: none; border-color: #00693e; }

/* Table */
.rk-table-wrap {
    margin: 24px 0 0;
    padding: 0 48px 80px;
}
.rk-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 80px 0;
    color: #8a9a93;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
}
.rk-table-scroll {
    overflow-x: auto;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.rk-table {
    width: 100%;
    min-width: 700px;
    border-collapse: collapse;
    font-family: 'Plus Jakarta Sans', sans-serif;
}
.rk-table thead {
    background: #00693e;
}
.rk-th {
    text-align: left;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #fff;
    padding: 14px 16px;
    white-space: nowrap;
}
.rk-th--rank   { width: 80px; }
.rk-th--total  { text-align: right; width: 100px; }
.rk-th--trend  { width: 90px; text-align: center; }
.rk-th--tour   {
    text-align: right;
    min-width: 110px;
    max-width: 160px;
}
.rk-th-tour-name {
    display: block;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 150px;
    margin-left: auto;
}
.rk-th-tour-date {
    display: block;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.65);
    margin-top: 2px;
}

.rk-row { border-bottom: 1px solid #f0f4f1; }
.rk-row:last-child { border-bottom: none; }
.rk-row:hover { background: #fafdfb; }

.rk-cell {
    padding: 16px;
    font-size: 0.88rem;
    color: #2b2f2e;
    vertical-align: middle;
}
.rk-cell--rank {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1rem;
    color: #00693e;
    letter-spacing: -0.01em;
}
.rk-cell--player {
    display: flex;
    align-items: center;
    gap: 12px;
}
.rk-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    background: #e5e9e7;
    flex-shrink: 0;
}
.rk-avatar--fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0d3020;
    color: #92febc;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
}
.rk-player-name {
    font-weight: 700;
    color: #0d3020;
    font-size: 0.92rem;
}
.rk-player-link {
    text-decoration: none;
    transition: color 0.15s ease;
}
.rk-player-link:hover { color: #00693e; text-decoration: underline; }
.rk-cell--pts {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: #2b2f2e;
}
.rk-cell--empty { color: #c5d0ca; font-weight: 400; }
.rk-cell--total {
    text-align: right;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1rem;
    color: #00693e;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
}
.rk-cell--trend { text-align: center; }
.rk-trend {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 999px;
    font-variant-numeric: tabular-nums;
}
.rk-trend--up   { color: #00693e; background: rgba(0,105,62,0.10); }
.rk-trend--down { color: #ba1a1a; background: rgba(186,26,26,0.08); }
.rk-trend--flat { color: #8a9a93; background: #f0f4f1; }
.rk-trend--new  {
    color: #f5c518;
    background: rgba(245,197,24,0.14);
    font-size: 0.65rem;
    letter-spacing: 0.12em;
    padding: 4px 10px;
}

.rk-tbody-empty {
    padding: 60px 16px;
    text-align: center;
    color: #8a9a93;
    font-size: 0.92rem;
}

/* Responsive */
@media (max-width: 860px) {
    .rk-hero { padding: 44px 0 36px; }
    .rk-hero-inner, .rk-controls-wrap, .rk-table-wrap { padding-left: 24px; padding-right: 24px; }
    .rk-period { margin-left: 0; }
}
@media (max-width: 600px) {
    .rk-hero-inner, .rk-controls-wrap, .rk-table-wrap { padding-left: 18px; padding-right: 18px; }
    .rk-controls { gap: 12px; }
}

/* ════════════════════════════════════════════════════════════════════
   404 — NOT FOUND PAGE  (nf-*)
   ════════════════════════════════════════════════════════════════════ */
.nf-page {
    min-height: calc(100vh - 140px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 64px 24px;
    background:
        radial-gradient(circle at 50% 0%, #e9f5ee 0%, transparent 55%),
        #f6f9f7;
}

.nf-inner {
    max-width: 640px;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Oversized 404 ----------------------------------------------------- */
.nf-code-wrap {
    position: relative;
    display: inline-block;
    margin-bottom: 12px;
}

.nf-code {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.04em;
    font-size: clamp(7rem, 22vw, 13rem);
    line-height: 0.9;
    background: linear-gradient(135deg, #00693e 0%, #0d3020 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #0d3020;
}

/* The squash ball sitting inside the first zero */
.nf-ball {
    position: absolute;
    top: 18%;
    right: -6px;
    width: clamp(20px, 5vw, 34px);
    height: clamp(20px, 5vw, 34px);
    border-radius: 9999px;
    background: #f5c518;
    box-shadow: 0 6px 18px rgba(245, 197, 24, 0.45);
}

/* Copy -------------------------------------------------------------- */
.nf-chip {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #00693e;
    background: #92febc;
    padding: 6px 14px;
    border-radius: 9999px;
    margin-bottom: 18px;
}

.nf-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: clamp(1.9rem, 5vw, 2.75rem);
    line-height: 1.05;
    color: #0d3020;
    margin: 0 0 14px;
}

.nf-subtitle {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1.02rem;
    line-height: 1.6;
    color: #4a5450;
    max-width: 460px;
    margin: 0 0 34px;
}

/* Actions ----------------------------------------------------------- */
.nf-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
}

.nf-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    padding: 12px 24px;
    border-radius: 9999px;
    transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.nf-btn--primary {
    background: #00693e;
    color: #ffffff;
    box-shadow: 0 8px 22px rgba(0, 105, 62, 0.28);
}
.nf-btn--primary:hover {
    background: #0d3020;
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 105, 62, 0.34);
}

.nf-btn--ghost {
    background: #ffffff;
    color: #0d3020;
}
.nf-btn--ghost:hover {
    background: #e5e9e7;
    transform: translateY(-2px);
}

@media (max-width: 600px) {
    .nf-actions { flex-direction: column; width: 100%; }
    .nf-btn { justify-content: center; width: 100%; }
}

/* ════════════════════════════════════════════════════════════════════
   OUR HISTORY PAGE  (hist-*)
   ════════════════════════════════════════════════════════════════════ */
.hist-page { background: #f6f9f7; }

/* Hero -------------------------------------------------------------- */
.hist-hero {
    position: relative;
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
    overflow: hidden;
}
.hist-hero-pattern {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 82% 20%, rgba(146, 254, 188, 0.18) 0%, transparent 38%),
        repeating-linear-gradient(115deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 26px);
    pointer-events: none;
}
.hist-hero-inner {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: 92px 24px 120px;
}
.hist-hero-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    color: #0d3020;
    background: #92febc;
    padding: 6px 14px;
    border-radius: 9999px;
    margin-bottom: 24px;
}
.hist-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.0;
    font-size: clamp(2.4rem, 6.5vw, 4.6rem);
    color: #ffffff;
    margin: 0;
}

/* Intro card -------------------------------------------------------- */
.hist-intro-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 2.5rem 24px 0;
    position: relative;
    z-index: 2;
}
.hist-intro-card {
    background: #ffffff;
    border-radius: 18px;
    box-shadow: 0 24px 60px rgba(13, 48, 32, 0.14);
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: 40px;
    padding: 44px 48px;
}
.hist-intro-lede {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.32rem;
    line-height: 1.45;
    letter-spacing: -0.01em;
    color: #00693e;
    margin: 0 0 22px;
}
.hist-intro-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
    line-height: 1.7;
    color: #4a5551;
    margin: 0 0 16px;
}
.hist-intro-stats {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 22px;
    border-left: 0;
}
.hist-stat {
    display: flex;
    flex-direction: column;
    padding-left: 18px;
    border-left: 3px solid #92febc;
}
.hist-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.66rem;
    letter-spacing: 0.12em;
    color: #8a958f;
    margin-bottom: 4px;
}
.hist-stat-value {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 2.1rem;
    line-height: 1;
    letter-spacing: -0.02em;
    color: #0d3020;
}
.hist-stat-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.74rem;
    color: #6b746f;
    margin-top: 4px;
}

/* Timeline ---------------------------------------------------------- */
.hist-timeline { padding: 80px 0 40px; }
.hist-timeline-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.hist-timeline-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 32px;
    margin-bottom: 56px;
    flex-wrap: wrap;
}
.hist-timeline-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 0.98;
    font-size: clamp(1.9rem, 4.5vw, 3rem);
    color: #00693e;
    margin: 0;
}
.hist-timeline-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.92rem;
    line-height: 1.6;
    color: #6b746f;
    max-width: 320px;
    margin: 0;
    text-align: right;
}
.hist-row {
    display: grid;
    grid-template-columns: 230px 1fr 280px;
    align-items: center;
    gap: 28px;
    padding: 36px 0;
    border-top: 2px solid #e5e9e7;
}
.hist-row--reverse .hist-row-visual { order: -1; }
.hist-year {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.03em;
    font-size: clamp(2.6rem, 6vw, 4rem);
    line-height: 1;
}
.hist-year--green { color: #92febc; }
.hist-year--gold  { color: #f5c518; text-align: right; }
.hist-year--grey  { color: #c2cbc6; }
.hist-row-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.3rem;
    letter-spacing: -0.01em;
    color: #0d3020;
    margin: 0 0 10px;
}
.hist-row-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.92rem;
    line-height: 1.65;
    color: #4a5551;
    margin: 0;
}
.hist-row-visual {
    height: 150px;
    border-radius: 14px;
    background-size: cover;
    background-position: center;
}
.hist-row-visual--court {
    /* NSF delegation with the Chief of Defence Staff — the Army/Police roots
       this row's text describes. Federation's own photo, not stock. */
    background-image: linear-gradient(rgba(13,48,32,0.10), rgba(13,48,32,0.10)),
                      url('/images/history-1974-court.jpg');
    box-shadow: inset 0 0 0 6px rgba(255,255,255,0.12);
}
.hist-row-visual--ball {
    /* Match action from the 1st Anayi Egbeita Open. */
    background-image: linear-gradient(rgba(124,45,18,0.12), rgba(124,45,18,0.12)),
                      url('/images/history-opens-era.jpg');
}
.hist-row-visual--modern {
    /* Team Nigeria at the 2022 Africa Championships. */
    background-image: linear-gradient(rgba(0,105,62,0.10), rgba(0,105,62,0.10)),
                      url('/images/history-new-generation.jpg');
    box-shadow: inset 0 0 0 6px rgba(0,105,62,0.08);
}

/* Achievements ------------------------------------------------------ */
.hist-achieve { padding: 60px 0 80px; }
.hist-achieve-inner { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.hist-achieve-tag {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    color: #00693e;
    text-transform: uppercase;
}
.hist-achieve-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: clamp(1.7rem, 4vw, 2.4rem);
    color: #0d3020;
    margin: 8px 0 32px;
}
.hist-achieve-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    grid-template-rows: auto auto;
    gap: 20px;
}
.hist-card {
    border-radius: 18px;
    padding: 32px;
    display: flex;
    flex-direction: column;
}
.hist-card--feature {
    grid-row: span 2;
    background: linear-gradient(150deg, #00693e 0%, #0d3020 100%);
    color: #ffffff;
    justify-content: flex-end;
    min-height: 280px;
}
.hist-card-icon-lg {
    font-size: 2.6rem !important;
    color: #92febc;
    margin-bottom: auto;
}
.hist-card--feature .hist-card-title { color: #ffffff; }
.hist-card--feature .hist-card-text { color: rgba(255,255,255,0.82); }
.hist-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.25rem;
    letter-spacing: -0.01em;
    color: #0d3020;
    margin: 14px 0 8px;
}
.hist-card-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #4a5551;
    margin: 0;
}
.hist-card--white { background: #ffffff; }
.hist-card-iconbox {
    width: 46px; height: 46px;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
}
.hist-card-iconbox--green { background: #92febc; color: #00693e; }
.hist-card--gold { background: #f5c518; justify-content: space-between; min-height: 130px; }
.hist-card--grey { background: #e5e9e7; justify-content: space-between; min-height: 130px; }
.hist-card-stat {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 2.6rem;
    line-height: 1;
    letter-spacing: -0.02em;
    color: #0d3020;
}
.hist-card-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.82rem;
    color: #2b2f2e;
}

/* Closing ----------------------------------------------------------- */
.hist-closing { padding: 20px 0 96px; }
.hist-closing-inner {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
}
.hist-closing-icon {
    font-size: 2.2rem !important;
    color: #00693e;
    margin-bottom: 14px;
}
.hist-closing-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: clamp(1.7rem, 4.5vw, 2.5rem);
    line-height: 1.1;
    color: #0d3020;
    margin: 0 0 16px;
}
.hist-closing-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: #4a5551;
    margin: 0 0 30px;
}
.hist-closing-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}
.hist-btn {
    display: inline-flex;
    align-items: center;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    padding: 13px 30px;
    border-radius: 9999px;
    transition: transform 0.15s ease, background 0.15s ease;
}
.hist-btn--primary { background: #00693e; color: #ffffff; }
.hist-btn--primary:hover { background: #0d3020; transform: translateY(-2px); }
.hist-btn--ghost { background: #e5e9e7; color: #0d3020; }
.hist-btn--ghost:hover { background: #d6ddd9; transform: translateY(-2px); }

/* Responsive -------------------------------------------------------- */
@media (max-width: 900px) {
    .hist-intro-card { grid-template-columns: 1fr; gap: 28px; padding: 32px 26px; }
    .hist-intro-stats { flex-direction: row; flex-wrap: wrap; }
    .hist-stat { flex: 1 1 30%; }
    .hist-timeline-sub { text-align: left; }
    .hist-row { grid-template-columns: 1fr; gap: 16px; text-align: left; }
    .hist-row--reverse .hist-row-visual { order: 0; }
    .hist-year--gold { text-align: left; }
    .hist-row-visual { height: 120px; }
    .hist-achieve-grid { grid-template-columns: 1fr; }
    .hist-card--feature { grid-row: auto; min-height: 200px; }
}

/* ════════════════════════════════════════════════════════════════════
   RULES OF THE GAME PAGE  (rules-*)
   ════════════════════════════════════════════════════════════════════ */
.rules-page { background: #f6f9f7; padding-bottom: 80px; }

/* Hero -------------------------------------------------------------- */
.rules-hero { background: #f6f9f7; }
.rules-hero-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 72px 24px 40px;
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 32px;
    align-items: end;
}
.rules-hero-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.14em;
    color: #0d3020;
    background: #f5c518;
    padding: 6px 14px;
    border-radius: 9999px;
    margin-bottom: 20px;
}
.rules-hero-title {
    display: flex;
    flex-direction: column;
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 0.95;
    font-size: clamp(2.6rem, 7vw, 4.8rem);
    margin: 0;
}
.rules-hero-title-green { color: #00693e; }
.rules-hero-title-dark  { color: #2b2f2e; }
.rules-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.98rem;
    line-height: 1.65;
    color: #4a5551;
    margin: 0 0 8px;
    text-align: right;
}

/* Section + grids --------------------------------------------------- */
.rules-section { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.rules-grid { display: grid; gap: 22px; margin-top: 22px; }
.rules-grid--top    { grid-template-columns: 1.55fr 1fr; }
.rules-grid--bottom { grid-template-columns: 1fr 1.55fr; }

/* Cards ------------------------------------------------------------- */
.rules-card { border-radius: 18px; padding: 30px 32px; }
.rules-card--white { background: #ffffff; box-shadow: 0 10px 30px rgba(13,48,32,0.06); }
.rules-card--soft  { background: #eef2f0; }
.rules-card--green {
    background: linear-gradient(155deg, #00693e 0%, #0d3020 100%);
    color: #ffffff;
}
.rules-card-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}
.rules-card-head--spread { justify-content: space-between; align-items: flex-start; }
.rules-card-head-left { display: flex; align-items: center; gap: 14px; }
.rules-iconbox {
    width: 44px; height: 44px;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.rules-iconbox--green { background: #92febc; color: #00693e; }
.rules-iconbox--mint  { background: rgba(146,254,188,0.18); color: #92febc; }
.rules-iconbox--red   { background: #fef2f2; color: #dc2626; }
.rules-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1.35rem;
    letter-spacing: -0.01em;
    color: #0d3020;
    margin: 0;
}
.rules-card-title--light { color: #ffffff; }
.rules-discretion {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
    color: #dc2626;
    max-width: 90px;
    text-align: right;
    line-height: 1.3;
    margin-top: 6px;
}

/* The Court --------------------------------------------------------- */
.rules-card-split {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 24px;
    align-items: stretch;
}
.rules-numbered { list-style: none; margin: 0; padding: 0; }
.rules-numbered li {
    display: flex;
    gap: 14px;
    margin-bottom: 18px;
}
.rules-numbered li:last-child { margin-bottom: 0; }
.rules-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.92rem;
    color: #00693e;
    flex-shrink: 0;
    padding-top: 1px;
}
.rules-numbered p {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    line-height: 1.55;
    color: #4a5551;
    margin: 0;
}
.rules-court-visual {
    position: relative;
    border-radius: 12px;
    min-height: 160px;
    background:
        linear-gradient(135deg, #eef2f0 0%, #dfe4e1 100%);
    box-shadow: inset 0 0 0 5px rgba(255,255,255,0.7),
                inset 0 0 0 6px #cfd8d3;
    display: flex;
    align-items: flex-end;
    padding: 12px;
}
.rules-court-visual::before {
    content: "";
    position: absolute;
    left: 22%; right: 22%; top: 16%; bottom: 38%;
    border: 2px solid #b6c1bb;
    border-bottom: none;
}
.rules-court-visual::after {
    content: "";
    position: absolute;
    left: 50%; top: 16%; bottom: 12%;
    width: 2px;
    background: #b6c1bb;
}
.rules-court-label {
    position: relative;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.6rem;
    letter-spacing: 0.1em;
    color: #6b746f;
    background: #ffffff;
    padding: 4px 8px;
    border-radius: 6px;
}

/* The Equipment ----------------------------------------------------- */
.rules-checks { list-style: none; margin: 0; padding: 0; }
.rules-checks li {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}
.rules-checks li:last-child { margin-bottom: 0; }
.rules-check-icon { color: #92febc !important; font-size: 1.2rem !important; flex-shrink: 0; }
.rules-checks p {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.88);
    margin: 0;
}

/* Scoring ----------------------------------------------------------- */
.rules-score-item {
    background: #ffffff;
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 16px;
    border-left: 4px solid #00693e;
}
.rules-score-item:last-child { margin-bottom: 0; }
.rules-score-item--gold { border-left-color: #f5c518; }
.rules-score-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    color: #0d3020;
    margin: 0 0 6px;
}
.rules-score-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #4a5551;
    margin: 0;
}

/* Fouls ------------------------------------------------------------- */
.rules-fouls-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.rules-foul {
    background: #f6f9f7;
    border-radius: 12px;
    padding: 16px 18px;
}
.rules-foul-name {
    display: inline-block;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.92rem;
    letter-spacing: 0.02em;
    color: #00693e;
    margin-bottom: 6px;
}
.rules-foul p {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #4a5551;
    margin: 0;
}

/* CTA --------------------------------------------------------------- */
.rules-cta {
    margin-top: 22px;
    background: linear-gradient(150deg, #00693e 0%, #0d3020 100%);
    border-radius: 20px;
    padding: 48px 32px;
    text-align: center;
}
.rules-cta-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: 0.01em;
    font-size: clamp(1.5rem, 3.5vw, 2.1rem);
    color: #92febc;
    margin: 0 0 12px;
}
.rules-cta-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.96rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.82);
    max-width: 540px;
    margin: 0 auto 28px;
}
.rules-cta-actions {
    display: flex;
    gap: 14px;
    justify-content: center;
    flex-wrap: wrap;
}
.rules-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
    padding: 13px 28px;
    border-radius: 9999px;
    transition: transform 0.15s ease, background 0.15s ease;
}
.rules-cta-btn--primary { background: #92febc; color: #0d3020; }
.rules-cta-btn--primary:hover { background: #aeffce; transform: translateY(-2px); }
.rules-cta-btn--ghost { background: rgba(255,255,255,0.12); color: #ffffff; }
.rules-cta-btn--ghost:hover { background: rgba(255,255,255,0.2); transform: translateY(-2px); }

/* Responsive -------------------------------------------------------- */
@media (max-width: 900px) {
    .rules-hero-inner { grid-template-columns: 1fr; gap: 16px; }
    .rules-hero-sub { text-align: left; }
    .rules-grid--top, .rules-grid--bottom { grid-template-columns: 1fr; }
    .rules-card-split { grid-template-columns: 1fr; }
    .rules-fouls-grid { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════════
   COMMITTEES PAGE  (cmte-*)
   ════════════════════════════════════════════════════════════════════ */
.cmte-page { background: #f6f9f7; }

/* Masthead ---------------------------------------------------------- */
.cmte-hero {
    position: relative;
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
    overflow: hidden;
}
.cmte-hero-pattern {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 88% 12%, rgba(146, 254, 188, 0.18) 0%, transparent 40%),
        repeating-linear-gradient(125deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 28px);
    pointer-events: none;
}
.cmte-hero-inner {
    position: relative;
    max-width: 1200px;
    margin: 0 auto;
    padding: 84px 24px 88px;
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: 40px;
    align-items: center;
}
.cmte-hero-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    color: #0d3020;
    background: #92febc;
    padding: 6px 14px;
    border-radius: 9999px;
    margin-bottom: 22px;
}
.cmte-hero-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 0.95;
    font-size: clamp(2.6rem, 7vw, 5rem);
    color: #ffffff;
    margin: 0 0 20px;
}
.cmte-hero-accent { color: #92febc; }
.cmte-hero-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 1rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
    max-width: 560px;
    margin: 0 0 24px;
}
.cmte-hero-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    color: #92febc;
    text-decoration: none;
    transition: gap 0.15s ease;
}
.cmte-hero-link:hover { gap: 10px; }

.cmte-hero-stats {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.cmte-hero-stat {
    background: rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    padding: 22px 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.cmte-hero-stat--alt { background: rgba(146, 254, 188, 0.14); }
.cmte-hero-stat-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 2.8rem;
    line-height: 1;
    letter-spacing: -0.03em;
    color: #92febc;
}
.cmte-hero-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.68rem;
    letter-spacing: 0.12em;
    line-height: 1.4;
    color: rgba(255, 255, 255, 0.78);
}

/* Card grid --------------------------------------------------------- */
.cmte-grid-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 64px 24px 24px;
}
.cmte-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 22px;
}
.cmte-card {
    background: #ffffff;
    border-radius: 18px;
    padding: 26px 26px 22px;
    box-shadow: 0 10px 30px rgba(13, 48, 32, 0.06);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.cmte-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 46px rgba(13, 48, 32, 0.12);
}
.cmte-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.cmte-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #92febc;
    color: #00693e;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cmte-card-icon .mud-icon-root { font-size: 1.5rem; }
.cmte-card-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 1.6rem;
    letter-spacing: -0.02em;
    color: #e0e6e3;
}
.cmte-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.3rem;
    letter-spacing: -0.01em;
    color: #0d3020;
    margin: 0 0 18px;
}

/* Chair highlight --------------------------------------------------- */
.cmte-chair {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #f6f9f7;
    border-radius: 12px;
    padding: 12px 14px;
}
.cmte-monogram {
    width: 42px;
    height: 42px;
    border-radius: 9999px;
    background: linear-gradient(135deg, #00693e 0%, #0d3020 100%);
    color: #ffffff;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.92rem;
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.cmte-chair-text { display: flex; flex-direction: column; }
.cmte-chair-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    color: #0d3020;
}
.cmte-chair-role {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.64rem;
    letter-spacing: 0.12em;
    color: #00693e;
}

/* Members ----------------------------------------------------------- */
.cmte-divider {
    height: 2px;
    background: #eef2f0;
    margin: 18px 0 16px;
}
.cmte-members {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
    flex-grow: 1;
}
.cmte-member {
    display: flex;
    align-items: center;
    gap: 10px;
}
.cmte-member-dot {
    width: 6px;
    height: 6px;
    border-radius: 9999px;
    background: #92febc;
    flex-shrink: 0;
}
.cmte-member-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.92rem;
    color: #2b2f2e;
}
.cmte-member-role {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    color: #00693e;
    background: #e8f6ee;
    padding: 2px 8px;
    border-radius: 9999px;
}

/* Card footer ------------------------------------------------------- */
.cmte-card-foot {
    display: flex;
    align-items: center;
    gap: 7px;
    padding-top: 14px;
    border-top: 2px solid #f1f4f2;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.78rem;
    color: #6b746f;
}
.cmte-card-foot .mud-icon-root { font-size: 1rem; color: #9aa5a1; }

/* Footer note ------------------------------------------------------- */
.cmte-note { padding: 24px 0 80px; }
.cmte-note-inner {
    max-width: 820px;
    margin: 0 auto;
    padding: 26px 28px;
    background: #e8f6ee;
    border-radius: 16px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.cmte-note-icon { color: #00693e !important; font-size: 1.6rem !important; flex-shrink: 0; }
.cmte-note-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.92rem;
    line-height: 1.6;
    color: #2b5e44;
    margin: 0;
}

/* Responsive -------------------------------------------------------- */
@media (max-width: 880px) {
    .cmte-hero-inner { grid-template-columns: 1fr; gap: 28px; }
    .cmte-hero-stats { flex-direction: row; }
    .cmte-hero-stat { flex: 1; }
}
@media (max-width: 560px) {
    .cmte-grid { grid-template-columns: 1fr; }
    .cmte-hero-stats { flex-direction: column; }
}

/* ════════════════════════════════════════════════════════════════════
   PLAYER RESULTS — recent results + upcoming tournaments  (pres-*)
   ════════════════════════════════════════════════════════════════════ */
.pres-block { margin-bottom: 38px; }
.pres-block:last-child { margin-bottom: 0; }

.pres-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
}
.pres-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.15rem;
    letter-spacing: 0.01em;
    color: #0d3020;
    margin: 0;
}
.pres-viewall {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    color: #00693e;
    text-decoration: none;
    transition: opacity 0.15s ease;
}
.pres-viewall:hover { opacity: 0.65; }

.pres-empty {
    background: #f6f9f7;
    border-radius: 14px;
    padding: 34px 20px;
    text-align: center;
    color: #6b746f;
}
.pres-empty p {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    margin: 10px 0 0;
}

/* Result rows ------------------------------------------------------- */
.pres-list { display: flex; flex-direction: column; gap: 10px; }
.pres-row {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #ffffff;
    border-radius: 14px;
    padding: 14px 18px;
    box-shadow: 0 4px 14px rgba(13, 48, 32, 0.05);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pres-row:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(13, 48, 32, 0.09);
}
.pres-outcome {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    padding: 8px 10px;
    border-radius: 10px;
    flex-shrink: 0;
}
.pres-outcome--win  { background: #e8f6ee; }
.pres-outcome--loss { background: #fdeeee; }
.pres-outcome-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 800;
    font-size: 0.62rem;
    letter-spacing: 0.08em;
}
.pres-outcome--win  .pres-outcome-label { color: #00693e; }
.pres-outcome--loss .pres-outcome-label { color: #ba1a1a; }
.pres-outcome-score {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 1.05rem;
    letter-spacing: -0.01em;
    color: #0d3020;
}

.pres-row-main {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.pres-row-tourn {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    color: #0d3020;
}
.pres-row-round { font-weight: 500; color: #6b746f; }
.pres-row-meta {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    color: #6b746f;
}
.pres-row-opp { color: #00693e; text-decoration: none; font-weight: 600; }
.pres-row-opp:hover { text-decoration: underline; }
.pres-row-sets { color: #9aa5a1; }

.pres-row-side {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
    text-align: right;
}
.pres-row-cat {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    color: #00693e;
    background: #e8f6ee;
    padding: 2px 8px;
    border-radius: 9999px;
}
.pres-row-date {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.76rem;
    color: #9aa5a1;
}

/* Upcoming tournament cards ----------------------------------------- */
.pres-tourn-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}
.pres-tourn-card {
    background: #ffffff;
    border-radius: 16px;
    overflow: hidden;
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(13, 48, 32, 0.05);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.pres-tourn-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 30px rgba(13, 48, 32, 0.12);
}
.pres-tourn-img {
    position: relative;
    height: 120px;
    background-color: #0d3020;
    background-size: cover;
    background-position: center;
}
.pres-tourn-img::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 40%, rgba(13,48,32,0.35) 100%);
}
.pres-tourn-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 1;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    color: #0d3020;
    background: #f5c518;
    padding: 3px 9px;
    border-radius: 9999px;
}
.pres-tourn-body { padding: 14px 16px 16px; }
.pres-tourn-name {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.98rem;
    line-height: 1.25;
    letter-spacing: -0.01em;
    color: #0d3020;
    margin-bottom: 8px;
}
.pres-tourn-meta {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    color: #6b746f;
}
.pres-tourn-venue { color: #9aa5a1; }

/* ════════════════════════════════════════════════════════════════════
   FULL MATCH HISTORY PAGE  (phist-*)
   ════════════════════════════════════════════════════════════════════ */
.phist-page { background: #f6f9f7; min-height: 70vh; padding-bottom: 70px; }
.phist-hero {
    background: linear-gradient(135deg, #0d3020 0%, #00693e 100%);
}
.phist-hero-inner {
    max-width: 920px;
    margin: 0 auto;
    padding: 40px 24px 36px;
}
.phist-back {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.85rem;
    color: #92febc;
    text-decoration: none;
    margin-bottom: 18px;
    transition: gap 0.15s ease;
}
.phist-back:hover { gap: 9px; }
.phist-tag {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.66rem;
    letter-spacing: 0.16em;
    color: #0d3020;
    background: #92febc;
    padding: 5px 12px;
    border-radius: 9999px;
    margin-bottom: 14px;
}
.phist-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: clamp(1.8rem, 4.5vw, 2.8rem);
    color: #ffffff;
    margin: 0 0 22px;
}
.phist-stats {
    display: flex;
    align-items: center;
    gap: 22px;
}
.phist-stat { display: flex; flex-direction: column; }
.phist-stat-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 1.9rem;
    line-height: 1;
    letter-spacing: -0.02em;
    color: #ffffff;
}
.phist-stat-num--win  { color: #92febc; }
.phist-stat-num--loss { color: #ffd0d0; }
.phist-stat-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.64rem;
    letter-spacing: 0.12em;
    color: rgba(255,255,255,0.7);
    margin-top: 4px;
}
.phist-stat-divider { width: 1px; height: 34px; background: rgba(255,255,255,0.2); }

.phist-body {
    max-width: 920px;
    margin: 0 auto;
    padding: 32px 24px 0;
}
.phist-pagination {
    display: flex;
    justify-content: center;
    margin-top: 26px;
}

/* Responsive -------------------------------------------------------- */
@media (max-width: 560px) {
    .pres-row { flex-wrap: wrap; }
    .pres-row-side { align-items: flex-start; text-align: left; flex-direction: row; gap: 10px; width: 100%; }
    .pres-tourn-grid { grid-template-columns: 1fr 1fr; }
}

/* ════════════════════════════════════════════════════════════════════
   TOURNAMENT SUB-NAV + PLAYERS / MATCHES / RESULTS  (tnav / tlist / tmatch / tres)
   ════════════════════════════════════════════════════════════════════ */

/* Sub-navigation bar ------------------------------------------------ */
.tnav {
    background: #ffffff;
    border-bottom: 2px solid #e5e9e7;
    position: sticky;
    top: 0;
    z-index: 20;
}
.tnav-inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    gap: 4px;
    overflow-x: auto;
}
.tnav-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 16px 18px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.9rem;
    color: #6b746f;
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 3px solid transparent;
    transition: color 0.15s ease, border-color 0.15s ease;
}
.tnav-tab:hover { color: #00693e; }
.tnav-tab--active { color: #00693e; border-bottom-color: #00693e; }
.tnav-tab-icon { font-size: 1.1rem !important; }

/* Generic list table (players + results) ---------------------------- */
/* Toolbar (filter) above the entries table */
.tlist-toolbar {
    max-width: 1200px;
    margin: 0 auto;
    padding: 4px 24px 0;
    display: flex;
    justify-content: flex-end;
}
.tlist-search {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #f6f9f7;
    border-radius: 9999px;
    padding: 6px 16px;
    width: 100%;
    max-width: 320px;
    transition: box-shadow .15s ease, background .15s ease;
}
.tlist-search:focus-within { background: #fff; box-shadow: 0 0 0 2px #00693e; }
.tlist-search-icon { color: #6b746f; font-size: 18px; }
.tlist-search-input {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 14px;
    font-family: inherit;
    color: #0d3020;
    padding: 4px 0;
}

.tlist-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px 24px 60px;
}
.tlist-table {
    width: 100%;
    border-collapse: collapse;
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(13, 48, 32, 0.05);
}
.tlist-table thead th {
    text-align: left;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    color: #8a958f;
    padding: 14px 18px;
    background: #f6f9f7;
}
.tlist-th-seed      { width: 64px; }
.tlist-th-entrydate { width: 200px; white-space: nowrap; }
.tlist-table tbody td {
    padding: 14px 18px;
    border-top: 1px solid #eef2f0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.92rem;
    color: #2b2f2e;
    vertical-align: middle;
}
.tlist-table tbody tr:hover { background: #f9fbfa; }
.tlist-seed {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    color: #00693e;
}
.tlist-player-link { color: #0d3020; font-weight: 700; text-decoration: none; }
.tlist-player-link:hover { color: #00693e; text-decoration: underline; }
.tlist-player-name { font-weight: 700; color: #0d3020; }
.tlist-muted { color: #6b746f; }
.tlist-status {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.66rem;
    letter-spacing: 0.04em;
    padding: 4px 10px;
    border-radius: 9999px;
    background: #eef2f0;
    color: #6b746f;
}
.tlist-status--confirmed      { background: #e8f6ee; color: #00693e; }
.tlist-status--waiting        { background: #fef6e6; color: #b7791f; }
.tlist-status--pendingpayment { background: #fdeeee; color: #ba1a1a; }

/* Withdraw action column */
.tlist-th-action { width: 110px; }
.tlist-action    { text-align: right; }
.tlist-withdraw {
    background: none;
    border: none;
    color: #ba1a1a;
    font-family: inherit;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
    padding: 6px 10px;
    border-radius: 8px;
    transition: background .15s ease;
}
.tlist-withdraw:hover { background: #fdeeee; }

.tlist-empty {
    text-align: center;
    color: #6b746f;
    font-style: italic;
    padding: 28px 18px !important;
}

/* Withdrawal confirmation modal */
.tlist-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(13, 48, 32, 0.45);
    backdrop-filter: blur(2px);
    display: grid;
    place-items: center;
    z-index: 1400;
    padding: 16px;
}
.tlist-modal {
    background: #fff;
    border-radius: 1rem;
    padding: 28px;
    max-width: 420px;
    width: 100%;
    text-align: center;
    box-shadow: 0 24px 60px rgba(13, 48, 32, 0.28);
}
.tlist-modal-icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin: 0 auto 14px;
    background: #fdeeee;
    border-radius: 9999px;
}
.tlist-modal-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: 20px;
    color: #0d3020;
    margin: 0 0 8px;
}
.tlist-modal-text { font-size: 14px; color: #6b746f; line-height: 1.5; margin: 0 0 22px; }
.tlist-modal-text strong { color: #0d3020; }
.tlist-modal-actions { display: flex; gap: 10px; justify-content: center; }
.tlist-modal-cancel,
.tlist-modal-confirm {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: inherit;
    font-weight: 800;
    font-size: 14px;
    border: none;
    border-radius: 9999px;
    padding: 12px 22px;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.tlist-modal-cancel { background: #eef2f0; color: #0d3020; }
.tlist-modal-cancel:hover:not(:disabled) { background: #e0ebe5; }
.tlist-modal-confirm { background: #ba1a1a; color: #fff; }
.tlist-modal-confirm:hover:not(:disabled) {
    background: #9a1414;
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(186, 26, 26, 0.28);
}
.tlist-modal-cancel:disabled,
.tlist-modal-confirm:disabled { opacity: 0.5; cursor: not-allowed; }

@media (max-width: 600px) {
    .tlist-toolbar { padding: 4px 16px 0; }
    .tlist-search { max-width: none; }
}

/* Results table ----------------------------------------------------- */
.tres-th-points { width: 160px; text-align: right !important; }
.tres-rank {
    width: 64px;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    color: #6b746f;
}
.tres-trophy { font-size: 1.3rem !important; vertical-align: middle; }
.tres-trophy--gold { color: #f5c518 !important; }
.tres-row--podium td { background: #fcfdf8; }
.tres-points {
    text-align: right;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.05rem;
    color: #0d3020;
}
.tres-points-unit {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 600;
    font-size: 0.72rem;
    color: #9aa5a1;
}

/* Match list -------------------------------------------------------- */
.tmatch-list {
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px 24px 60px;
}
.tmatch-round-head {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #00693e;
    margin: 26px 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid #e5e9e7;
}
.tmatch-round-head:first-child { margin-top: 6px; }
.tmatch-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #ffffff;
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: 10px;
    box-shadow: 0 3px 12px rgba(13, 48, 32, 0.05);
    flex-wrap: wrap;
}
.tmatch-card--pending { opacity: 0.85; }
.tmatch-players {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 260px;
    flex: 1;
}
.tmatch-player {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tmatch-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.95rem;
    color: #4a5551;
    text-decoration: none;
}
a.tmatch-name:hover { color: #00693e; text-decoration: underline; }
.tmatch-player--win .tmatch-name { color: #0d3020; font-weight: 700; }
.tmatch-win-tick { font-size: 1rem !important; color: #00693e; }
.tmatch-sets {
    margin-left: auto;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.05rem;
    color: #0d3020;
    min-width: 22px;
    text-align: center;
}
.tmatch-player:not(.tmatch-player--win) .tmatch-sets { color: #9aa5a1; }
.tmatch-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.tmatch-setline {
    font-family: 'Lexend', sans-serif;
    font-weight: 600;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    color: #6b746f;
}
.tmatch-tag {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    font-size: 0.64rem;
    letter-spacing: 0.06em;
    padding: 4px 10px;
    border-radius: 9999px;
}
.tmatch-tag--wo      { background: #fef6e6; color: #b7791f; }
.tmatch-tag--pending { background: #eef2f0; color: #6b746f; }
.tmatch-court, .tmatch-time {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.76rem;
    color: #9aa5a1;
}

/* Responsive -------------------------------------------------------- */
@media (max-width: 600px) {
    .tmatch-meta { width: 100%; justify-content: flex-start; }
    .tlist-table thead { display: none; }
    .tlist-table tbody td { padding: 10px 12px; }
}

/* ============================================================================
   TOURNAMENT REGISTRATION WIZARD  (reg-*)
   Search-driven, eligibility-aware tournament entry flow.
   ========================================================================== */

.reg-page { max-width: 760px; }

.reg-back,
.reg-back-inline {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    color: #6b746f;
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin-bottom: 10px;
}
.reg-back:hover,
.reg-back-inline:hover { color: #00693e; }

/* Players-tab hero button */
.reg-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    padding: 9px 18px;
    background: #92febc;
    color: #0d3020;
    font-weight: 800;
    font-size: 13px;
    letter-spacing: 0.01em;
    border-radius: 9999px;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease;
}
.reg-hero-cta:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(13, 48, 32, 0.18);
}

/* ── Stepper ─────────────────────────────────────────────────────────────── */
.reg-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 24px 16px 8px;
}
.reg-step { display: flex; align-items: center; gap: 8px; opacity: 0.5; }
.reg-step--active { opacity: 1; }
.reg-step-dot {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 9999px;
    background: #e5e9e7;
    color: #6b746f;
    font-weight: 800;
    font-size: 13px;
}
.reg-step--active .reg-step-dot { background: #00693e; color: #fff; }
.reg-step--done .reg-step-dot   { background: #92febc; color: #0d3020; }
.reg-step-label { font-size: 13px; font-weight: 700; color: #0d3020; }
.reg-step-bar {
    width: 48px;
    height: 3px;
    border-radius: 9999px;
    background: #e5e9e7;
}
.reg-step-bar--done { background: #92febc; }

/* ── Shell + cards ───────────────────────────────────────────────────────── */
.reg-shell { padding: 16px; }

.reg-card {
    background: #ffffff;
    border-radius: 1rem;
    padding: 28px;
    box-shadow: 0 1px 2px rgba(43, 47, 46, 0.04), 0 12px 32px rgba(43, 47, 46, 0.06);
}
.reg-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: 22px;
    color: #0d3020;
    margin: 0 0 4px;
}
.reg-card-sub { font-size: 14px; color: #6b746f; margin: 0 0 18px; }

.reg-hint { font-size: 13px; color: #6b746f; margin: 10px 2px 0; }
.reg-hint--center { text-align: center; margin-top: 16px; }
.reg-hint a { color: #00693e; font-weight: 700; }

.reg-closed {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 24px 16px;
    padding: 16px 18px;
    background: #fdeeee;
    color: #ba1a1a;
    border-radius: 0.75rem;
    font-size: 14px;
    font-weight: 600;
}

/* ── Search ──────────────────────────────────────────────────────────────── */
.reg-search {
    position: relative;
    display: flex;
    align-items: center;
    background: #f6f9f7;
    border-radius: 9999px;
    padding: 4px 18px;
    transition: box-shadow .15s ease, background .15s ease;
}
.reg-search:focus-within {
    background: #fff;
    box-shadow: 0 0 0 2px #00693e;
}
.reg-search-icon { color: #6b746f; font-size: 20px; }
.reg-search-input {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    padding: 12px 10px;
    font-size: 15px;
    font-family: inherit;
    color: #0d3020;
}
.reg-search-spin { margin-left: auto; }

/* ── Results ─────────────────────────────────────────────────────────────── */
.reg-results { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; }
.reg-result {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    text-align: left;
    background: #f6f9f7;
    border: none;
    border-radius: 0.75rem;
    padding: 10px 14px;
    cursor: pointer;
    transition: background .15s ease, transform .12s ease;
}
.reg-result:hover { background: #e8f6ee; transform: translateX(2px); }
.reg-avatar {
    width: 44px;
    height: 44px;
    border-radius: 9999px;
    object-fit: cover;
    background: #e5e9e7;
    flex-shrink: 0;
}
.reg-avatar--lg { width: 56px; height: 56px; }
.reg-result-body { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.reg-result-name { font-weight: 800; color: #0d3020; font-size: 15px; }
.reg-result-meta { font-size: 12.5px; color: #6b746f; }
.reg-level-chip {
    background: #0d3020;
    color: #92febc;
    font-size: 11px;
    font-weight: 800;
    padding: 4px 10px;
    border-radius: 9999px;
    flex-shrink: 0;
}
.reg-entered-chip {
    background: #fef6e6;
    color: #b7791f;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 9999px;
    flex-shrink: 0;
}
.reg-result-arrow { color: #c5d0ca; flex-shrink: 0; }

.reg-empty { text-align: center; padding: 28px 16px; }
.reg-empty p { color: #6b746f; margin: 10px 0 16px; }

.reg-link-btn {
    display: inline-block;
    background: none;
    border: none;
    color: #00693e;
    font-weight: 800;
    font-size: 14px;
    cursor: pointer;
    text-decoration: none;
    padding: 8px 4px;
}
.reg-link-btn:hover { text-decoration: underline; }

/* ── Selected-player banner ─────────────────────────────────────────────── */
.reg-player-banner {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    background: #f6f9f7;
    border-radius: 0.75rem;
    margin-bottom: 22px;
}
.reg-player-name { display: block; font-weight: 800; color: #0d3020; font-size: 16px; }
.reg-player-meta { font-size: 13px; color: #6b746f; }

/* ── Event picker ────────────────────────────────────────────────────────── */
.reg-events { display: flex; flex-direction: column; gap: 10px; }
.reg-event {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    text-align: left;
    background: #fff;
    border: 2px solid #e5e9e7;
    border-radius: 0.75rem;
    padding: 14px 16px;
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}
.reg-event:hover:not(.reg-event--disabled) { border-color: #92febc; }
.reg-event--selected { border-color: #00693e; background: #f3fbf6; }
.reg-event--disabled { opacity: 0.55; cursor: not-allowed; background: #f6f9f7; }
.reg-event-check { display: grid; place-items: center; width: 24px; flex-shrink: 0; }
.reg-event-box {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 2px solid #c5d0ca;
}
.reg-event-body { display: flex; flex-direction: column; flex: 1; }
.reg-event-name { font-weight: 700; color: #0d3020; font-size: 15px; }
.reg-event-note { font-size: 12.5px; color: #6b746f; margin-top: 2px; }
.reg-reco-chip {
    background: #92febc;
    color: #0d3020;
    font-size: 11px;
    font-weight: 800;
    padding: 4px 10px;
    border-radius: 9999px;
    flex-shrink: 0;
}

.reg-error {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    padding: 12px 14px;
    background: #fdeeee;
    color: #ba1a1a;
    border-radius: 0.5rem;
    font-size: 13.5px;
    font-weight: 600;
}

/* ── Submit bar ──────────────────────────────────────────────────────────── */
.reg-submit-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 24px;
    flex-wrap: wrap;
}
.reg-submit-count { font-size: 13px; font-weight: 700; color: #6b746f; }
.reg-submit-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #00693e;
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    border: none;
    border-radius: 9999px;
    padding: 13px 26px;
    cursor: pointer;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.reg-submit-btn:hover:not(:disabled) {
    background: #005732;
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(13, 48, 32, 0.2);
}
.reg-submit-btn:disabled { opacity: 0.45; cursor: not-allowed; }

/* ── Done ────────────────────────────────────────────────────────────────── */
.reg-done { text-align: center; }
.reg-done-badge {
    display: grid;
    place-items: center;
    width: 88px;
    height: 88px;
    margin: 0 auto 12px;
    background: #e8f6ee;
    border-radius: 9999px;
}
.reg-done-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: 26px;
    color: #0d3020;
    margin: 0 0 4px;
}
.reg-done-events {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin: 18px 0;
}
.reg-done-event {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #f3fbf6;
    color: #00693e;
    font-weight: 700;
    font-size: 13px;
    padding: 8px 14px;
    border-radius: 9999px;
}
.reg-payment {
    text-align: left;
    background: #f6f9f7;
    border-radius: 0.75rem;
    padding: 18px 20px;
    margin: 8px 0 22px;
}
.reg-payment-head {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    color: #0d3020;
    font-size: 14px;
    margin-bottom: 6px;
}
.reg-payment-body { font-size: 13.5px; color: #6b746f; margin: 0 0 8px; }
.reg-payment-line { font-size: 13.5px; color: #0d3020; margin: 4px 0; }
.reg-done-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}

@media (max-width: 600px) {
    .reg-shell { padding: 12px; }
    .reg-card { padding: 20px 16px; }
    .reg-step-bar { width: 24px; }
    .reg-step-label { display: none; }
    .reg-submit-bar { justify-content: center; }
    .reg-submit-btn { width: 100%; justify-content: center; }
}

/* ============================================================================
   UNIFIED PAGE HERO  (pgh-*)
   Shared hero for public landing pages. Dark default + .pgh--light variant.
   Variants: .pgh--centered, .pgh--statsrow. .pgh--pattern adds faint rings.
   Replaces the legacy per-page *-hero blocks.
   ========================================================================== */

.pgh {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #0d3020 0%, #0b3a23 100%);
    padding: 3.5rem 2.5rem 2.75rem;
}

.pgh-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    position: relative;
    z-index: 1;
}

.pgh-left { flex: 1; min-width: 0; }

.pgh-eyebrow {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #92febc;
    margin-bottom: 0.85rem;
}

.pgh-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: clamp(2.4rem, 6vw, 4.25rem);
    line-height: 0.92;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #ffffff;
    margin: 0;
}
.pgh-accent { color: #92febc; }

.pgh-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.68);
    max-width: 46ch;
    margin: 1rem 0 0;
}

/* Right-side metric blocks */
.pgh-metrics {
    flex-shrink: 0;
    display: flex;
    gap: 1.5rem;
}
.pgh-metric { text-align: right; }
.pgh-metric-num {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: clamp(2.4rem, 5vw, 3.4rem);
    line-height: 1;
    letter-spacing: -0.02em;
    color: #92febc;
}
.pgh-metric-label {
    display: block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-top: 0.5rem;
}

/* Actions (CTAs / links) */
.pgh-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.4rem;
}
.pgh-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 0.6rem 1.1rem;
    border-radius: 9999px;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.pgh-btn--primary { background: #92febc; color: #0d3020; }
.pgh-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(13,48,32,0.25); }
.pgh-btn--ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4); }
.pgh-btn--ghost:hover { background: rgba(255,255,255,0.08); }

.pgh-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: #92febc;
    text-decoration: none;
}
.pgh-link:hover { text-decoration: underline; }
.pgh-toplink { margin-bottom: 0.85rem; }

/* Stats-row variant */
.pgh--statsrow .pgh-inner { display: block; }
.pgh-statrow {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-top: 1.25rem;
}
.pgh-stat-num {
    display: block;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: clamp(1.6rem, 4vw, 2.1rem);
    line-height: 1;
    color: #ffffff;
}
.pgh-stat-num--win  { color: #92febc; }
.pgh-stat-num--loss { color: #f5c518; }
.pgh-stat-label {
    display: block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
    margin-top: 0.4rem;
}
.pgh-stat-divider { width: 1px; height: 2rem; background: rgba(255, 255, 255, 0.15); }

/* Centered variant */
.pgh--centered .pgh-inner { justify-content: center; text-align: center; }
.pgh--centered .pgh-left { flex: 0 1 auto; max-width: 760px; }
.pgh--centered .pgh-sub { margin-left: auto; margin-right: auto; }

/* Decorative rings (pattern) */
.pgh-ring {
    position: absolute;
    top: -90px; right: -60px;
    width: 300px; height: 300px;
    border: 1px solid rgba(146, 254, 188, 0.14);
    border-radius: 50%;
    z-index: 0;
}
.pgh-ring--2 { top: -30px; right: 40px; width: 180px; height: 180px; border-color: rgba(146,254,188,0.10); }

/* Bottom court-line accent */
.pgh-court { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: rgba(255, 255, 255, 0.08); }
.pgh-court::after { content: ""; position: absolute; left: 2.5rem; bottom: 0; width: 96px; height: 4px; background: #92febc; }

/* ── Light editorial variant ──────────────────────────────────────────────── */
.pgh--light { background: #eef7f1; }
.pgh--light .pgh-eyebrow { color: #00693e; }
.pgh--light .pgh-title { color: #0d3020; }
.pgh--light .pgh-accent { color: #00693e; }
.pgh--light .pgh-sub { color: #51605a; }
.pgh--light .pgh-metric-num { color: #00693e; }
.pgh--light .pgh-metric-label { color: #6c7a73; }
.pgh--light .pgh-btn--primary { background: #00693e; color: #fff; }
.pgh--light .pgh-btn--ghost { color: #0d3020; border-color: rgba(13,48,32,0.3); }
.pgh--light .pgh-btn--ghost:hover { background: rgba(13,48,32,0.05); }
.pgh--light .pgh-link { color: #00693e; }
.pgh--light .pgh-stat-num { color: #0d3020; }
.pgh--light .pgh-stat-num--win  { color: #00693e; }
.pgh--light .pgh-stat-num--loss { color: #b8860b; }
.pgh--light .pgh-stat-label { color: #6c7a73; }
.pgh--light .pgh-stat-divider { background: rgba(13, 48, 32, 0.15); }
.pgh--light .pgh-ring { border-color: rgba(0, 105, 62, 0.12); }
.pgh--light .pgh-ring--2 { border-color: rgba(0, 105, 62, 0.09); }
.pgh--light .pgh-court { background: rgba(13, 48, 32, 0.08); }
.pgh--light .pgh-court::after { background: #00693e; }

@media (max-width: 720px) {
    .pgh { padding: 2.5rem 1.25rem 2rem; }
    .pgh-inner { flex-direction: column; align-items: flex-start; gap: 1.5rem; }
    .pgh-metrics { gap: 1.25rem; }
    .pgh-metric { text-align: left; }
    .pgh-court::after { left: 1.25rem; }
}

/* ════════════════════════════════════════════════════════════════════════
   ADMIN — RANKING LEVELS GRID  (rkl-*)
   Spreadsheet-style editor: levels as rows, finishing positions as columns.
   ════════════════════════════════════════════════════════════════════════ */

.rkl-page { padding-bottom: 3rem; }

.rkl-grid-wrap {
    overflow-x: auto;
    background: #ffffff;
    border-radius: 0.75rem;
    box-shadow: 0 1px 3px rgba(13, 48, 32, 0.06);
}

.rkl-grid {
    border-collapse: separate;
    border-spacing: 0;
    width: max-content;
    min-width: 100%;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

.rkl-grid thead th {
    position: sticky;
    top: 0;
    background: #f6f9f7;
    color: #0d3020;
    font-weight: 700;
    font-size: 0.78rem;
    text-align: center;
    padding: 0.6rem 0.4rem;
    z-index: 2;
}

.rkl-th-actions { width: 88px; }

.rkl-th-level {
    text-align: left !important;
    padding-left: 1rem !important;
    min-width: 170px;
    position: sticky;
    left: 0;
    z-index: 3;
    background: #f6f9f7;
}

.rkl-th-pos { min-width: 64px; }

.rkl-grid tbody td {
    padding: 0.35rem 0.4rem;
    background: #ffffff;
    border-top: 1px solid #eef2f0;
    vertical-align: middle;
}

.rkl-td-level {
    position: sticky;
    left: 0;
    z-index: 1;
    background: #ffffff;
    padding-left: 1rem;
}

.rkl-name-input,
.rkl-pts-input {
    width: 100%;
    border: 1px solid #dfe4e1;
    border-radius: 0.5rem;
    padding: 0.45rem 0.5rem;
    font-size: 0.85rem;
    color: #2b2f2e;
    background: #ffffff;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.rkl-name-input { font-weight: 600; }
.rkl-pts-input  { text-align: center; }

.rkl-name-input:focus,
.rkl-pts-input:focus {
    outline: none;
    border-color: #00693e;
    box-shadow: 0 0 0 2px rgba(0, 105, 62, 0.15);
}

/* hide number spinners for a cleaner grid */
.rkl-pts-input::-webkit-outer-spin-button,
.rkl-pts-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rkl-pts-input { -moz-appearance: textfield; }

.rkl-td-actions { text-align: center; }

.rkl-delete-btn {
    border: none;
    background: #fff0f0;
    color: #b91c1c;
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.03em;
    padding: 0.4rem 0.7rem;
    border-radius: 9999px;
    cursor: pointer;
    transition: background 0.15s;
}
.rkl-delete-btn:hover { background: #ffe0e0; }

.rkl-empty {
    text-align: center;
    color: #9aa5a1;
    padding: 2rem 1rem !important;
    font-style: italic;
}

.rkl-footer { margin-top: 1rem; }

.rkl-add-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border: 1.5px solid #00693e;
    background: #ffffff;
    color: #00693e;
    font-weight: 700;
    font-size: 0.82rem;
    padding: 0.55rem 1.1rem;
    border-radius: 9999px;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.rkl-add-btn:hover { background: #00693e; color: #ffffff; }


/* ═══════════════════════════════════════════════════════════════════════
   Player Hub — signed-in player area  (ph-)
   ═══════════════════════════════════════════════════════════════════════ */

.ph-shell {
    display: grid;
    grid-template-columns: 250px 1fr;
    gap: 0;
    min-height: 70vh;
    background: #f6f9f7;
}

/* ── Sidebar ── */
.ph-sidebar {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 32px 20px 24px;
    background: #eef3f0;
}
.ph-nav { display: flex; flex-direction: column; gap: 2px; }
.ph-nav-link {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    padding: 10px 14px;
    border: none;
    background: none;
    border-radius: 10px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.87rem;
    font-weight: 600;
    color: #2b2f2e;
    text-decoration: none;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s, color 0.15s;
}
.ph-nav-link:hover { background: #e2eae5; }
.ph-nav-link.active { background: #92febc; color: #0d3020; }
.ph-nav-link--danger { color: #c0392b; }
.ph-nav-link--danger:hover { background: #fbeae7; }
.ph-nav-icon { font-size: 18px !important; }
.ph-nav-section {
    margin: 22px 0 6px 14px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #8a9e96;
}
.ph-logout-form { margin: 0; }

.ph-usercard {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-top: 28px;
    padding: 12px;
    background: #e2eae5;
    border-radius: 12px;
}
.ph-usercard-img,
.ph-usercard-initials {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 10px;
    object-fit: cover;
}
.ph-usercard-initials {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #00693e;
    color: #ffffff;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.85rem;
}
.ph-usercard-text { display: flex; flex-direction: column; min-width: 0; }
.ph-usercard-name {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    color: #0d3020;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ph-usercard-role {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    color: #6b7c76;
}

/* ── Main column ── */
.ph-main { padding: 40px 48px 60px; min-width: 0; }
.ph-head { margin-bottom: 26px; }
.ph-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: 2.4rem;
    color: #0d3020;
    margin: 0 0 6px;
    text-transform: uppercase;
}
.ph-subtitle {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.92rem;
    color: #4a5a54;
    margin: 0;
    max-width: 60ch;
}
.ph-loading { display: flex; justify-content: center; padding: 60px 0; }

/* ── Cards ── */
.ph-grid {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(300px, 2fr);
    gap: 20px;
    align-items: start;
}
.ph-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 22px 24px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.ph-card--wide { grid-column: 1 / -1; }
.ph-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.ph-card-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    color: #0d3020;
    margin: 0;
}
.ph-card-title--spaced { margin-top: 26px; }
.ph-muted {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.87rem;
    color: #6b7c76;
    margin: 0 0 14px;
}
.ph-hint {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem;
    color: #8a9e96;
    margin: 8px 0 0;
}
.ph-link {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    color: #00693e;
    text-decoration: none;
}
.ph-link:hover { text-decoration: underline; }
.ph-badge {
    padding: 4px 11px;
    border-radius: 9999px;
    background: #f5c518;
    color: #0d3020;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
}
.ph-pill {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 9999px;
    background: #e8f5ee;
    color: #00693e;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
}

/* ── Status card ── */
.ph-card--status {
    background: linear-gradient(150deg, #00693e 0%, #0d3020 100%);
    color: #ffffff;
    display: flex;
    flex-direction: column;
    min-height: 230px;
}
.ph-chip {
    align-self: flex-start;
    padding: 5px 12px;
    border-radius: 9999px;
    background: rgba(146,254,188,0.22);
    color: #92febc;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.ph-status-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.9rem;
    margin: 16px 0 4px;
    letter-spacing: -0.02em;
}
.ph-status-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    color: rgba(255,255,255,0.75);
    margin: 0;
}
.ph-status-foot { margin-top: auto; display: flex; align-items: baseline; gap: 10px; }
.ph-status-no {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 2.1rem;
    color: #92febc;
    letter-spacing: -0.02em;
}
.ph-status-lbl {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    color: rgba(255,255,255,0.6);
}

/* ── Ranking bars ── */
.ph-bars { display: flex; flex-direction: column; gap: 10px; }
.ph-bar-row {
    display: grid;
    grid-template-columns: minmax(90px, 30%) 1fr auto;
    align-items: center;
    gap: 12px;
}
.ph-bar-label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 600;
    color: #2b2f2e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ph-bar-track { height: 10px; background: #eef3f0; border-radius: 9999px; overflow: hidden; }
.ph-bar-fill  { height: 100%; background: #00693e; border-radius: 9999px; }
.ph-bar-value {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    color: #0d3020;
    min-width: 44px;
    text-align: right;
}
.ph-stat-row {
    display: flex;
    gap: 26px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #f0f4f2;
    flex-wrap: wrap;
}
.ph-stat { display: flex; flex-direction: column; gap: 2px; }
.ph-stat-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.4rem;
    color: #0d3020;
    line-height: 1;
}
.ph-stat-lbl {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    color: #8a9e96;
}

/* ── Matches ── */
.ph-matches { display: flex; flex-direction: column; gap: 10px; }
.ph-match {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 14px;
    background: #f6f9f7;
    border-radius: 12px;
}
.ph-match-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    background: #d4ede2;
    border-radius: 10px;
}
.ph-match-mon {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.6rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    color: #00693e;
}
.ph-match-day {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.1rem;
    color: #0d3020;
    line-height: 1;
}
.ph-match-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ph-match-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.88rem;
    color: #0d3020;
}
.ph-match-sub {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    color: #6b7c76;
}

/* ── Completion ── */
.ph-progress { display: flex; align-items: center; gap: 12px; margin: 4px 0 16px; }
.ph-progress-track { flex: 1; height: 9px; background: #eef3f0; border-radius: 9999px; overflow: hidden; }
.ph-progress-fill  { height: 100%; background: #f5c518; border-radius: 9999px; transition: width 0.3s; }
.ph-progress-num {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 0.95rem;
    color: #0d3020;
}
.ph-checklist { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.ph-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    color: #8a9e96;
}
.ph-check--done { color: #00693e; font-weight: 600; }

/* ── Buttons ── */
.ph-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0.6rem 1.3rem;
    border: none;
    border-radius: 9999px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s, transform 0.15s;
}
.ph-btn--primary { background: #00693e; color: #ffffff; }
.ph-btn--primary:hover { background: #005432; }
.ph-btn--primary:disabled { opacity: 0.65; cursor: default; }
.ph-btn--outline { background: #eef3f0; color: #00693e; }
.ph-btn--outline:hover { background: #e2eae5; }
.ph-btn--full { width: 100%; }

/* ── Profile form ── */
.ph-form-grid {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 20px;
    align-items: start;
}
.ph-card--aside { display: flex; flex-direction: column; }
.ph-photo-wrap { display: flex; justify-content: center; margin-bottom: 16px; }
.ph-photo {
    width: 150px;
    height: 150px;
    object-fit: cover;
    border-radius: 16px;
    background: #eef3f0;
}
.ph-photo--empty { display: flex; align-items: center; justify-content: center; }
.ph-file-hidden { display: none; }
.ph-readonly { margin-top: 22px; padding-top: 18px; border-top: 1px solid #f0f4f2; }
.ph-readonly-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.64rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #8a9e96;
    margin: 0 0 10px;
}
.ph-readonly-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    color: #6b7c76;
}
.ph-readonly-row strong { color: #0d3020; text-align: right; word-break: break-word; }
.ph-fields {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 14px;
    margin-top: 12px;
}
.ph-field-full { grid-column: 1 / -1; }
.ph-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid #f0f4f2;
}

/* ── Events table ── */
.ph-table-scroll { overflow-x: auto; }
.ph-table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem;
}
.ph-table th {
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #8a9e96;
    text-align: left;
    padding: 6px 12px 10px;
    white-space: nowrap;
}
.ph-table td { padding: 11px 12px; color: #2b2f2e; }
.ph-table tbody tr { border-top: 1px solid #f0f4f2; }
.ph-table tbody tr:hover { background: #fafcfb; }
.ph-td-right { text-align: right; }
.ph-nowrap { white-space: nowrap; }

/* ── Empty state ── */
.ph-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
    padding: 70px 24px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.ph-empty-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.2rem;
    color: #0d3020;
    margin: 0;
}
.ph-empty-text {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    color: #6b7c76;
    margin: 0;
    max-width: 46ch;
}

/* ── Nav account dropdown ── */
.public-nav-account { position: relative; flex-shrink: 0; }
.public-nav-cta--account {
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
}
.public-nav-account-menu {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 60;
    min-width: 232px;
    padding: 8px;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(13,48,32,0.16);
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.public-nav-account-email {
    padding: 8px 12px 10px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.74rem;
    color: #8a9e96;
    word-break: break-all;
    border-bottom: 1px solid #f0f4f2;
    margin-bottom: 5px;
}
.public-nav-account-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 12px;
    border: none;
    background: none;
    border-radius: 9px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.84rem;
    font-weight: 600;
    color: #2b2f2e;
    text-decoration: none;
    text-align: left;
    cursor: pointer;
}
.public-nav-account-item:hover { background: #f6f9f7; }
.public-nav-account-item--danger { color: #c0392b; }
.public-nav-account-item--danger:hover { background: #fbeae7; }
.public-nav-account-form { margin: 0; }

@media (max-width: 900px) {
    .ph-shell { grid-template-columns: 1fr; }
    .ph-sidebar { flex-direction: row; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; overflow-x: auto; }
    .ph-nav { flex-direction: row; gap: 4px; }
    .ph-nav-section { display: none; }
    .ph-usercard { margin-top: 0; }
    .ph-main { padding: 26px 20px 44px; }
    .ph-grid, .ph-form-grid { grid-template-columns: 1fr; }
    .ph-title { font-size: 1.8rem; }
}
.ph-pill--muted { background: #eef3f0; color: #6b7c76; }

/* ── Player hub: events toolbar, sortable headers, pagination ── */
.ph-toolbar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 16px;
    flex-wrap: wrap;
}
.ph-search-input { max-width: 420px; flex: 1 1 260px; }
.ph-muted-inline {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    color: #8a9e96;
    margin-left: 6px;
}
.ph-sort {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    text-transform: inherit;
    transition: color 0.15s;
}
.ph-sort:hover { color: #00693e; }
.ph-sort--active { color: #00693e; }
.ph-sort--right { justify-content: flex-end; width: 100%; }
.ph-sort-arrow { font-size: 0.7rem; line-height: 1; }
.ph-pagination {
    display: flex;
    justify-content: center;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #f0f4f2;
}

/* ── Account & Security (static SSR forms, so plain inputs styled to match) ── */
.ph-security { display: flex; flex-direction: column; gap: 20px; max-width: 780px; }
.ph-form { margin-top: 4px; }
.ph-input {
    width: 100%;
    box-sizing: border-box;
    padding: 13px 14px;
    background: #eef2f0;
    border: 1px solid transparent;
    border-radius: 10px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.9rem;
    color: #2b2f2e;
    transition: border-color 0.15s, background 0.15s;
}
.ph-input:focus {
    outline: none;
    background: #ffffff;
    border-color: #00693e;
}
.ph-input.invalid { border-color: #ba1a1a; }
.ph-validation {
    display: block;
    margin-top: 5px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.74rem;
    color: #ba1a1a;
}
.ph-readonly-row--plain {
    padding: 10px 0 14px;
    border-bottom: 1px solid #f0f4f2;
    margin-bottom: 16px;
    font-size: 0.88rem;
}
.ph-readonly-row--plain strong { display: inline-flex; align-items: center; gap: 8px; }
.ph-pill--warn { background: #fff4d6; color: #8a6d00; }
.ph-logins { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.ph-login-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 14px;
    background: #f6f9f7;
    border-radius: 10px;
}
.ph-login-name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.88rem;
    font-weight: 600;
    color: #0d3020;
}
.ph-login-add { display: flex; flex-wrap: wrap; gap: 10px; }
.ph-btn--danger-outline { background: #fbeae7; color: #c0392b; }
.ph-btn--danger-outline:hover { background: #f7d9d4; }

/* ── Admin: possible duplicate-registration warning (apf-dupe) ── */
.apf-dupe {
    margin: 0 0 20px;
    padding: 18px 20px;
    background: #fffbf0;
    border-left: 4px solid #f5c518;
    border-radius: 12px;
}
.apf-dupe--strong { background: #fdf1ee; border-left-color: #c0392b; }
.apf-dupe-head { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.apf-dupe-icon { font-size: 22px !important; color: #b8860b; flex-shrink: 0; }
.apf-dupe--strong .apf-dupe-icon { color: #c0392b; }
.apf-dupe-title {
    margin: 0 0 3px;
    font-family: 'Lexend', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    color: #0d3020;
}
.apf-dupe-sub {
    margin: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.82rem;
    color: #6b7c76;
}
.apf-dupe-list { display: flex; flex-direction: column; gap: 6px; }
.apf-dupe-row {
    display: grid;
    grid-template-columns: 32px 1fr auto auto;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    background: #ffffff;
    border-radius: 9px;
    text-decoration: none;
    transition: box-shadow 0.15s;
}
.apf-dupe-row:hover { box-shadow: 0 2px 8px rgba(13,48,32,0.10); }
.apf-dupe-photo {
    width: 32px; height: 32px; border-radius: 7px; object-fit: cover; background: #eef3f0;
}
.apf-dupe-photo--empty { display: flex; align-items: center; justify-content: center; color: #8a9e96; }
.apf-dupe-main { display: flex; flex-direction: column; min-width: 0; }
.apf-dupe-name {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.85rem; font-weight: 700; color: #0d3020;
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.apf-dupe-flag {
    padding: 2px 8px; border-radius: 9999px;
    background: #c0392b; color: #ffffff;
    font-size: 0.62rem; font-weight: 800; letter-spacing: 0.04em;
}
.apf-dupe-meta {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem; color: #8a9e96;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.apf-dupe-dob { display: flex; flex-direction: column; text-align: right; }
.apf-dupe-dob-lbl {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.58rem; font-weight: 800; letter-spacing: 0.12em; color: #8a9e96;
}
.apf-dupe-dob-val {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8rem; font-weight: 700; color: #2b2f2e; white-space: nowrap;
}
.apf-dupe-dob--differs .apf-dupe-dob-val { color: #c0392b; }
.apf-dupe-status {
    padding: 3px 10px; border-radius: 9999px;
    background: #eef3f0; color: #4a5a54;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem; font-weight: 700; white-space: nowrap;
}
@media (max-width: 780px) {
    .apf-dupe-row { grid-template-columns: 32px 1fr; }
    .apf-dupe-dob, .apf-dupe-status { grid-column: 2; text-align: left; }
    .apf-dupe-dob { flex-direction: row; gap: 6px; align-items: baseline; }
}

/* ── Admin: decline action + dialog ── */
.apl-decline-btn {
    padding: 5px 12px;
    border: none;
    border-radius: 9999px;
    background: #fbeae7;
    color: #c0392b;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}
.apl-decline-btn:hover:not(:disabled) { background: #f7d9d4; }
.apl-decline-btn:disabled { opacity: 0.5; cursor: default; }
.apl-status-chip--declined { background: #fbeae7; color: #c0392b; }

.apl-modal-backdrop {
    position: fixed; inset: 0; z-index: 1200;
    background: rgba(13,48,32,0.45);
}
.apl-modal {
    position: fixed; z-index: 1201;
    top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: min(520px, calc(100vw - 32px));
    background: #ffffff;
    border-radius: 16px;
    padding: 26px 28px 22px;
    box-shadow: 0 20px 60px rgba(13,48,32,0.28);
}
.apl-modal-title {
    margin: 0 0 8px;
    font-family: 'Lexend', sans-serif;
    font-weight: 800;
    font-size: 1.15rem;
    color: #0d3020;
}
.apl-modal-sub {
    margin: 0 0 18px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.86rem;
    line-height: 1.6;
    color: #4a5a54;
}
.apl-modal-textarea { resize: vertical; min-height: 92px; margin-top: 6px; }
.apl-modal-actions {
    display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px;
}
.ph-btn--danger { background: #c0392b; color: #ffffff; }
.ph-btn--danger:hover:not(:disabled) { background: #a53224; }
.ph-btn--danger:disabled { opacity: 0.55; cursor: default; }

/* ═══════════════════════════════════════════════════════════════════
   ADMIN — ERROR LOG  (/admin/errors)               prefix: aerr-
   Reuses adm-page-*, apl-stats-row, apl-filters-bar and apl-chip.
   Only the log list and its expanded detail are page-specific.
   ═══════════════════════════════════════════════════════════════════ */

.aerr-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #e5e9e7;
    color: #2b2f2e;
    border-radius: 0.75rem;
    padding: 14px 18px;
    margin-bottom: 20px;
    font-size: 0.875rem;
}

.aerr-notice--warn { background: #fdf3d3; color: #5c4a08; }

.aerr-notice code {
    background: rgba(13,48,32,0.08);
    border-radius: 4px;
    padding: 1px 5px;
    font-size: 0.8125rem;
}

/* ── List ─────────────────────────────────────────────────────────── */

.aerr-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 20px;
}

.aerr-row {
    background: #f6f9f7;
    border-radius: 0.75rem;
    overflow: hidden;
    transition: background 0.15s ease;
}

.aerr-row:hover { background: #eef3f0; }
.aerr-row--open { background: #e5e9e7; }

.aerr-row-head {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    width: 100%;
    padding: 14px 18px;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    font-family: 'Plus Jakarta Sans', sans-serif;
}

/* Fixed width keeps every message starting on the same line. */
.aerr-row-when {
    display: flex;
    flex-direction: column;
    flex: 0 0 96px;
    padding-top: 2px;
}

.aerr-row-ago {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #2b2f2e;
}

.aerr-row-exact {
    font-size: 0.6875rem;
    color: #6b7a72;
    margin-top: 2px;
}

.aerr-row-main { flex: 1 1 auto; min-width: 0; }

.aerr-row-title {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: #2b2f2e;
    line-height: 1.45;
}

.aerr-type {
    display: inline-block;
    background: #c0392b;
    color: #ffffff;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    border-radius: 4px;
    padding: 2px 7px;
    margin-right: 8px;
    vertical-align: 1px;
}

.aerr-row-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 6px;
}

.aerr-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.75rem;
    color: #4d5c54;
}

.aerr-meta-item--dim { color: #8a968f; }

.aerr-row-chevron {
    flex: 0 0 auto;
    color: #6b7a72;
    font-size: 20px;
    margin-top: 2px;
}

/* ── Expanded detail ──────────────────────────────────────────────── */

.aerr-detail {
    padding: 4px 18px 18px;
    background: #dfe4e1;
}

.aerr-detail-section { margin-bottom: 18px; }

.aerr-detail-label {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b7a72;
    margin: 0 0 8px;
}

.aerr-detail-message {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.6;
    color: #2b2f2e;
    word-break: break-word;
}

.aerr-props {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 8px 20px;
    margin: 0;
}

.aerr-prop { display: flex; gap: 8px; min-width: 0; }

.aerr-prop dt {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 700;
    color: #4d5c54;
}

.aerr-prop dd {
    margin: 0;
    font-size: 0.75rem;
    color: #2b2f2e;
    word-break: break-all;
}

/* The trace is the one place a monospace face earns its keep. */
.aerr-trace {
    margin: 0;
    background: #0d3020;
    color: #cfe9db;
    border-radius: 0.5rem;
    padding: 14px 16px;
    font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
    font-size: 0.75rem;
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 420px;
    overflow-y: auto;
}

.aerr-detail-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.aerr-detail-id { font-size: 0.75rem; color: #6b7a72; }

.aerr-detail-close {
    background: #0d3020;
    color: #ffffff;
    border: none;
    border-radius: 9999px;
    padding: 7px 20px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: pointer;
}

.aerr-detail-close:hover { background: #00693e; }

/* ── Empty + pager ────────────────────────────────────────────────── */

.aerr-empty {
    text-align: center;
    padding: 64px 24px;
    background: #f6f9f7;
    border-radius: 0.75rem;
    margin-top: 20px;
}

.aerr-empty-icon { font-size: 44px !important; color: #00693e; }

.aerr-empty-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: 1.375rem;
    color: #0d3020;
    margin: 12px 0 6px;
}

.aerr-empty-sub { margin: 0; font-size: 0.875rem; color: #4d5c54; }

.aerr-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 20px;
}

.aerr-pager-count { font-size: 0.8125rem; color: #4d5c54; }

@media (max-width: 720px) {
    .aerr-row-head { flex-wrap: wrap; gap: 10px; }
    .aerr-row-when { flex: 0 0 100%; flex-direction: row; gap: 8px; align-items: baseline; }
}

/* ═══════════════════════════════════════════════════════════════════
   DOUBLES — team entries list + pair registration    prefix: dbl- / reg-pair-
   A doubles entry is a pair, so the row is the team and the two players
   sit inside it. The old site listed partners as unrelated rows.
   ═══════════════════════════════════════════════════════════════════ */

.dbl-section { margin-top: 32px; }

.dbl-section-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 12px;
}

.dbl-section-title {
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: 1.25rem;
    color: #0d3020;
    margin: 0;
}

.dbl-section-count {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #4d5c54;
}

.dbl-teams { display: flex; flex-direction: column; gap: 8px; }

.dbl-team {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #f6f9f7;
    border-radius: 0.75rem;
    padding: 14px 18px;
}

.dbl-team:hover { background: #eef3f0; }

.dbl-team-rank { flex: 0 0 34px; }

.dbl-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9999px;
    background: #e5e9e7;
    color: #4d5c54;
    font-size: 0.8125rem;
    font-weight: 700;
}

/* A seed is a ranking decision, so it reads differently from a row number. */
.dbl-seed {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9999px;
    background: #f5c518;
    color: #0d3020;
    font-size: 0.8125rem;
    font-weight: 800;
}

/* Two equal columns so the pair reads as one unit, not a list. */
.dbl-team-players {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 24px;
    min-width: 0;
    position: relative;
}

/* The hairline between partners is a background shift, not a border. */
.dbl-team-players::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 4px;
    bottom: 4px;
    width: 2px;
    background: #e5e9e7;
    border-radius: 2px;
}

.dbl-player { display: flex; align-items: center; gap: 10px; min-width: 0; }

.dbl-player-avatar {
    width: 34px;
    height: 34px;
    border-radius: 9999px;
    object-fit: cover;
    flex: 0 0 auto;
    background: #e5e9e7;
}

.dbl-player-avatar--empty {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #8a968f;
}

.dbl-player-name {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: #2b2f2e;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dbl-player-meta {
    display: block;
    font-size: 0.75rem;
    color: #6b7a72;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dbl-player--missing .dbl-player-name { color: #c0392b; }

.dbl-team-side {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}

.dbl-team-date { font-size: 0.75rem; color: #6b7a72; }

.dbl-empty { text-align: center; padding: 40px; color: #888; margin: 0; }

/* ── Registration: the pair ──────────────────────────────────────── */

.reg-pair-badge {
    margin-left: auto;
    background: #e5e9e7;
    color: #4d5c54;
    border-radius: 9999px;
    padding: 4px 12px;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.reg-pair-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #f6f9f7;
    border-radius: 0.75rem;
    padding: 14px 18px;
    margin-bottom: 16px;
}

.reg-pair-side {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.reg-pair-amp {
    flex: 0 0 auto;
    font-family: 'Lexend', sans-serif;
    font-weight: 900;
    font-size: 1.125rem;
    color: #00693e;
}

.reg-mixed-note {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fdf3d3;
    color: #5c4a08;
    border-radius: 0.5rem;
    padding: 10px 14px;
    font-size: 0.8125rem;
    margin-bottom: 16px;
}

.reg-result--disabled { opacity: 0.55; cursor: default; }
.reg-result--disabled:hover { background: inherit; }

.reg-result-warn {
    display: block;
    font-size: 0.75rem;
    color: #c0392b;
    margin-top: 2px;
}

@media (max-width: 780px) {
    .dbl-team { flex-wrap: wrap; }
    .dbl-team-players { grid-template-columns: 1fr; }
    .dbl-team-players::before { display: none; }
    .dbl-team-side { flex-direction: row; align-items: center; width: 100%; justify-content: space-between; }
    .reg-pair-banner { flex-direction: column; align-items: stretch; }
    .reg-pair-amp { text-align: center; }
}

/* ── Doubles on the tournament players tab ─────────────────────────── */

/* Two equal columns so a pair reads as one team, not two stacked rows. */
.tlist-pair {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 20px;
    align-items: baseline;
}

.tlist-pair-side { min-width: 0; }

.tlist-pair-side--missing { color: #c0392b; font-style: italic; }

/* Marks a seed that came from the pair's own record rather than from adding
   two individual histories together. */
.tlist-pairseed {
    display: inline-block;
    margin-left: 6px;
    background: #f5c518;
    color: #0d3020;
    border-radius: 9999px;
    padding: 1px 7px;
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    vertical-align: 1px;
}

@media (max-width: 720px) {
    .tlist-pair { grid-template-columns: 1fr; }
}

/* ── Doubles inside the bracket ─────────────────────────────────────── */

/* Every competitor — one player or a pair — is a stack of name lines. Each line
   keeps the singles treatment (small forename over bold surname), so a pair is
   simply two of them and nothing has to shrink to fit. */
.bv-name-line {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* The seed belongs to the competitor, so it rides beside the first forename. */
.bv-name-top {
    display: flex;
    align-items: baseline;
    gap: 4px;
    min-width: 0;
}

.bv-name-top .bv-name-first { min-width: 0; }

/* Two partners in the height singles uses for one, so the card stays compact. */
.bv-player-name--pair {
    gap: 5px;
}

.bv-player-name--pair .bv-name-first {
    font-size: 10px;
    line-height: 1.2;
}

.bv-player-name--pair .bv-name-last {
    font-size: 12.5px;
    line-height: 1.2;
}

.bv-menu-note {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 12px;
    color: #4a6358;
}

/* A bracket name that leads to a player's profile. The draws pane sets a grab
   cursor for drag-scrolling, so the link has to say plainly that it is a link. */
.bv-name-line--link {
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

.bv-name-line--link:hover .bv-name-last {
    color: #00693e;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bv-name-line--link:hover .bv-name-first { color: #00693e; }

.bv-name-line--link:focus-visible {
    outline: 2px solid #00693e;
    outline-offset: 2px;
    border-radius: 3px;
}

/* Turnstile challenge — sits above the submit on the forms that create things. */
.nsf-turnstile {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin: 16px 0;
}

.nsf-turnstile-msg {
    margin: 0;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.8125rem;
    color: #c0392b;
    text-align: center;
}
