:root, [data-theme="dark"] {
    --color-scheme: dark;
    --font-family: 'Roboto', sans-serif;
    /* BRAND COLORS */
    --brand-green: #00A63C;
    --brand-gold: #FBC016;
    --bg-main-overlay: rgba(15, 15, 20, 0.85);
    --bg-glass: rgba(255, 255, 255, 0.08);
    --bg-input: #0f172a;
    /* RE-MAPPED CORE ACCENTS TO BRAND */
    --color-primary: var(--brand-green);
    --color-focus-ring: var(--brand-gold);
    --bg-input-focus: rgba(0, 166, 60, 0.15);
    --border-bg-glass: rgba(0, 166, 60, 0.2);
    --border-input: #334155;
    --text-bright: #fafafa;
    --text-muted: #94a3b8;
    --text-light: #f8fafc;
    /* WIN/LOSS STATES SYNCD TO BRAND */
    --color-success-text: var(--brand-green);
    --bg-success-transparent: rgba(0, 166, 60, 0.12);
    --border-success-transparent: rgba(0, 166, 60, 0.25);
    --color-loss-text: #ff5555;
    --bg-loss-transparent: rgba(255, 85, 85, 0.12);
    --border-loss-transparent: rgba(255, 85, 85, 0.25);
    --color-draw-text: #94a3b8;
    --bg-draw-transparent: rgba(148, 163, 184, 0.06);
    --border-draw-transparent: rgba(51, 65, 85, 0.15);
    --bg-unofficial-transparent: rgba(217, 119, 6, 0.12);
    --border-unofficial-transparent: rgba(217, 119, 6, 0.25);
    /* GENDER BADGE VARIATIONS */
    --color-text-girls: #ec4899;
    --bg-gender-girls: rgba(236, 72, 153, 0.25);
    --color-text-boys: #38bdf8;
    --bg-gender-boys: rgba(14, 165, 233, 0.15);
    --color-text-men: #60a5fa;
    --bg-gender-men: rgba(30, 64, 175, 0.4);
    --color-text-ladies: #d8b4fe;
    --bg-gender-ladies: rgba(126, 34, 206, 0.4);
    /* LEAGUE BADGE VARIATIONS */
    --color-text-league: var(--brand-gold);
    --bg-league-transparent: rgba(251, 192, 22, 0.08);
    --border-league-transparent: rgba(251, 192, 22, 0.3);
    --bg-surface-subtle: rgba(255, 255, 255, 0.02);
    --border-matrix-row: rgba(51, 65, 85, 0.15);
    --color-icon-dropdown: var(--text-light);
    /* MAP OVERLAY */
    --map-btn-bg: #000000;
    --map-btn-opacity: 0.7;
    /* AD SPACE - DARK THEME */
    --bg-ad-dark: #020804;
    --border-ad-dark: rgba(0, 166, 60, 0.15);
    --text-ad-dark-title: #fafafa;
    --text-ad-dark-body: #94a3b8;
}

[data-theme="light"] {
    --color-scheme: light;
    /* BRAND COLORS */
    --brand-green: #00A63C;
    --brand-gold: #FBC016;
    --bg-main-overlay: #f1f5f9;
    --bg-glass: #ffffff;
    --bg-input: #ffffff;
    /* RE-MAPPED ACCENTS */
    --color-primary: #00822f;
    --color-focus-ring: #d49e00;
    --bg-input-focus: rgba(0, 130, 47, 0.08);
    --border-bg-glass: #e2e8f0;
    --border-input: #cbd5e1;
    --text-bright: #0f172a;
    --text-muted: #64748b;
    --text-light: #334155;
    --color-success-text: #00822f;
    --bg-success-transparent: #e6f6ec;
    --border-success-transparent: #c2ebd1;
    --color-loss-text: #b91c1c;
    --bg-loss-transparent: #fee2e2;
    --border-loss-transparent: #fecaca;
    --color-draw-text: #334155;
    --bg-draw-transparent: #f1f5f9;
    --border-draw-transparent: #e2e8f0;
    --color-text-girls: #be185d;
    --bg-gender-girls: #fce7f3;
    --color-text-boys: #0369a1;
    --bg-gender-boys: #e0f2fe;
    --color-text-men: #1e40af;
    --bg-gender-men: #bfdbfe;
    --color-text-ladies: #6b21a8;
    --bg-gender-ladies: #e9d5ff;
    --color-text-league: #FBC016;
    --bg-league-transparent: rgba(251, 192, 22, 0.18);
    --border-league-transparent: rgba(251, 192, 22, 0.35);
    --bg-surface-subtle: #f8fafc;
    --border-matrix-row: #e2e8f0;
    --color-icon-dropdown: var(--text-muted);
    /* MAP OVERLAY */
    --map-btn-bg: #ffffff;
    --map-btn-opacity: 0.7;
    /* AD SPACE - LIGHT THEME */
    --bg-ad-light: #f1f7f3;
    --border-ad-light: rgba(0, 166, 60, 0.2);
    --text-ad-light-title: #0f172a;
    --text-ad-light-body: #475569;
}

/* FONT SIZES */
.font-small {
    font-size: 0.85rem;
}

/* --- BLAZOR CORE LIFECYCLE CONTROLS --- */
.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--color-success);
}

.invalid {
    outline: 1px solid var(--color-danger);
}

.validation-message {
    color: var(--color-danger);
}

.blazor-error-boundary {
    padding: 1rem 1rem;
}
