/* KCP 2.0.4 accessibility contrast layer.
   Loaded after the legacy theme so persisted light-mode settings cannot leave
   dark K-Games panels with near-black text. */
:root {
  --kg-text: #f8fbff;
  --kg-muted: #d4def7;
  --kg-panel: #101f4d;
  --kg-panel-deep: #0a1638;
  --kg-line: #5674c5;
}

body,
body * { text-shadow: none; }

body { color: var(--kg-text); }
h1, h2, h3, h4, h5, h6,
.brand, .brand span, .brand b,
.page-title h1, .dashboard-head h1,
.hero-copy h1, .hero-copy h2,
.panel h1, .panel h2, .panel h3,
.game-card h1, .game-card h2, .game-card h3,
.metric span, .game-hud strong { color: var(--kg-text) !important; }

p, li, label, dt, dd,
.hero-copy p, .game-hud p,
.muted, small, time, em,
.metric, .game-card p, .game-card small,
.schedule span, .notice span { color: var(--kg-muted) !important; }

.topbar, .nav a, .nav-group > a,
.player-nav-links a, .admin-nav-links a { color: var(--kg-text) !important; }
.nav a:hover, .nav a.active, .nav-group:hover > a,
.player-nav-links a:hover, .player-nav-links a.active,
.admin-nav-links a:hover, .admin-nav-links a.active { color: #fff !important; }

.hero, .panel, .game-card, .metric, .dashboard-head,
.feature-grid article, .schedule, .notice,
.chat-log article, .mail-item, .inline-row,
.player-sidebar, .admin-sidebar, .admin-action {
  color: var(--kg-text);
  background: linear-gradient(145deg, var(--kg-panel), var(--kg-panel-deep));
  border-color: var(--kg-line);
}

input, select, textarea,
.button.ghost, .nav-toggle, .theme-toggle {
  color: var(--kg-text) !important;
  background: #142657 !important;
  border-color: var(--kg-line) !important;
}
input::placeholder, textarea::placeholder { color: #b9c8ee !important; opacity: 1; }
.button, button.button { color: #fff !important; }
.table-wrap th { color: #fff !important; background: #1b3477 !important; }
.table-wrap td, .table-wrap td * { color: var(--kg-text) !important; }
.kcp-portal-footer, footer { color: var(--kg-text) !important; }
.kcp-portal-footer a, footer a { color: #e1e9ff !important; }

/* If the user has selected light mode, switch the complete surface together
   so text and background never become a mixed dark/light combination. */
html[data-theme="light"] body {
  color: #172033;
  background: #f4f7ff;
}
html[data-theme="light"] .topbar { background: rgba(255,255,255,.96); }
html[data-theme="light"] h1, html[data-theme="light"] h2,
html[data-theme="light"] h3, html[data-theme="light"] h4,
html[data-theme="light"] h5, html[data-theme="light"] h6,
html[data-theme="light"] .brand,
html[data-theme="light"] .page-title h1,
html[data-theme="light"] .dashboard-head h1 { color: #172033 !important; }
html[data-theme="light"] p, html[data-theme="light"] li,
html[data-theme="light"] label, html[data-theme="light"] .muted,
html[data-theme="light"] small, html[data-theme="light"] time,
html[data-theme="light"] .hero-copy p,
html[data-theme="light"] .game-card p { color: #475873 !important; }
html[data-theme="light"] .hero,
html[data-theme="light"] .panel,
html[data-theme="light"] .game-card,
html[data-theme="light"] .metric,
html[data-theme="light"] .dashboard-head,
html[data-theme="light"] .feature-grid article,
html[data-theme="light"] .schedule,
html[data-theme="light"] .notice,
html[data-theme="light"] .mail-item {
  color: #172033;
  background: #fff;
  border-color: #d6dfef;
}
html[data-theme="light"] input,
html[data-theme="light"] select,
html[data-theme="light"] textarea,
html[data-theme="light"] .button.ghost,
html[data-theme="light"] .nav-toggle,
html[data-theme="light"] .theme-toggle {
  color: #172033 !important;
  background: #fff !important;
  border-color: #c8d3e6 !important;
}
