/* Final theme normalization layer.
   Older components still contain fixed indigo/black/white washes; these rules
   pull shared UI chrome back onto the active theme palette. */
:root {
  --on-accent: #fff;
  --theme-shadow-soft: 0 12px 32px rgba(0,0,0,.18);
  --theme-shadow-panel: 0 18px 58px rgba(0,0,0,.22);
  --theme-line-glow: linear-gradient(90deg, transparent, var(--flame), var(--cyan), transparent);
  --theme-accent-gradient: linear-gradient(135deg, var(--flame), var(--cyan));
  --theme-panel-gradient:
    radial-gradient(circle at 12% 0%, var(--glow-accent), transparent 34%),
    linear-gradient(180deg, var(--glass-lite), var(--glass));
  --theme-card-gradient:
    radial-gradient(circle at 14% 0%, var(--glow-accent), transparent 34%),
    linear-gradient(180deg, var(--glass-lite), var(--surface));
}

:root[data-theme="contrast"] {
  --on-accent: #000;
  --theme-shadow-soft: 0 0 0 1px var(--border);
  --theme-shadow-panel: 0 0 0 1px var(--border-lit), 0 0 28px var(--glow-accent);
}

:root[data-theme="white"] {
  --on-accent: #fff;
  --theme-shadow-soft: 0 12px 34px rgba(15,23,42,.08);
  --theme-shadow-panel: 0 20px 56px rgba(15,23,42,.12);
}

::-webkit-scrollbar-track { background: var(--deep); }
::-webkit-scrollbar-thumb { background: var(--border-lit); }
::-webkit-scrollbar-thumb:hover { background: var(--flame); }
::selection { background: var(--glow-accent); color: var(--text-primary); }

.ambient-orb { opacity: .11; }
.orb-1 { background: var(--flame); }
.orb-2 { background: var(--cyan); }
.orb-3 { background: var(--violet); }
.hex-grid {
  background-image: radial-gradient(circle, var(--border) 1px, transparent 1px);
}

.nav-rail {
  background: var(--glass) !important;
  border-right-color: var(--border) !important;
}
.nav-rail::after { opacity: .28; }
.nav-brand,
.nav-user,
#btn-enter,
.t-rank,
.report-head-btn:hover,
.opt-key-save:hover {
  background: var(--theme-accent-gradient) !important;
  color: var(--on-accent) !important;
  box-shadow: 0 8px 20px var(--glow-accent) !important;
}
.nav-brand svg,
.nav-brand svg * {
  stroke: var(--on-accent) !important;
}
.nav-brand::after {
  background: linear-gradient(180deg, rgba(255,255,255,.24), transparent 65%) !important;
}
.nav-btn:hover,
.nav-btn.active,
.report-tab.active,
.wk-tab.active,
.mob-tab.active,
.members-tab-btn.active,
.ff-filter-btn.active,
.status-filter-btn.active,
.yi-range-btn.active,
.week-tab.active,
.mode-card.active,
.stat-cell.mode-card.active {
  background: var(--glow-accent) !important;
  border-color: var(--border-lit) !important;
}
.nav-sep { background: var(--theme-line-glow) !important; opacity: .38; }

.dashboard,
.hud,
#page-your-info,
#page-training,
#page-bloodbags,
#page-nerve,
#page-bleeding,
#page-leaderboards,
#page-dev {
  background: var(--void) !important;
}
.stat-strip,
.report-bar,
.status-foot,
#mob-panel-tabs {
  background: linear-gradient(180deg, var(--glass-lite), var(--deep)) !important;
  border-color: var(--border) !important;
}
.stat-cell:hover,
.report-tab:hover,
.wk-tab:hover,
.member-card:hover,
.t-card:hover,
.atk-entry:hover,
.atk:hover,
.leaderboard-category-toggle:hover,
.leaderboard-subcategory:hover {
  background: var(--glass-lite) !important;
}

.login-box,
#options-panel,
.chain-mode-panel,
#stats-panel,
#confirm-box,
#confirm-bb-overlay > div,
#confirm-nerve-overlay > div,
.site-tooltip,
.col,
.yt-card,
.dev-card,
.leaderboard-card,
.leaderboards-empty,
.leaderboard-accordion-group,
.leaderboard-row,
.leaderboard-my-table-wrap,
.report-table-wrap {
  background: var(--theme-card-gradient) !important;
  border-color: var(--border) !important;
  box-shadow: var(--theme-shadow-panel) !important;
}

#opts-overlay,
#stats-overlay,
#confirm-overlay,
#confirm-bb-overlay,
#confirm-nerve-overlay,
.chain-mode-overlay {
  background: color-mix(in srgb, var(--void) 72%, transparent) !important;
}

input,
select,
textarea,
.field input,
.opt-select,
.opt-key-input,
.opt-key-save,
.wk-tab,
.yi-range-btn,
.yi-cal-nav,
.ff-filter-range,
.ff-filter-input,
.ff-sort-select,
.ff-filter-btn,
.status-filter-btn,
.mode-card-btn,
.report-head-btn,
#btn-your-stats,
#mob-refresh-btn {
  background: var(--raised) !important;
  border-color: var(--border) !important;
  color: var(--text-primary) !important;
}
input:focus,
select:focus,
textarea:focus,
.field input:focus,
.opt-select:focus,
.opt-key-input:focus,
.yi-range-field input:focus,
.ff-filter-input:focus,
.ff-sort-select:focus {
  border-color: var(--flame) !important;
  box-shadow: 0 0 0 3px var(--glow-accent) !important;
}
.opt-slider { accent-color: var(--flame) !important; }

.spinner {
  border-color: var(--border) !important;
  border-top-color: var(--flame) !important;
}
.sf-sep { color: var(--border) !important; }

#your-info-header,
#training-header,
#bb-header,
#nerve-header,
#bleeding-header,
#leaderboards-header,
.report-header,
.dev-header,
#leaderboards-info,
#your-info-range-bar,
#enemy-ff-filter {
  background: var(--theme-panel-gradient) !important;
  border-color: var(--border) !important;
}

#leaderboards-sidebar,
#your-info-calendar-panel {
  background: var(--theme-panel-gradient) !important;
  border-color: var(--border) !important;
  box-shadow: var(--theme-shadow-soft) !important;
}
.leaderboard-accordion-group.open,
.leaderboard-accordion-group.has-selected,
.leaderboard-row.is-me,
.tr-self td,
.dtable tr.tr-me td,
.member-card.is-me {
  background: var(--glow-cyan) !important;
  border-color: var(--cyan) !important;
}
.leaderboard-subcategory.active {
  background: var(--glow-accent) !important;
  border-color: var(--flame) !important;
  color: var(--flame) !important;
}
.leaderboard-category-toggle strong,
.leaderboard-name em {
  background: var(--glow-cyan) !important;
  color: var(--cyan) !important;
}
.leaderboard-my-table th {
  background: var(--surface) !important;
  color: var(--text-secondary) !important;
}
.leaderboard-my-table td,
.leaderboard-row,
.leaderboard-subcategory,
.leaderboard-my-table-wrap {
  border-color: var(--border) !important;
}
.leaderboard-my-table tr.has-rank,
.leaderboard-my-table tr.has-rank:hover {
  background: var(--glow-cyan) !important;
}

#training-table tbody tr:nth-child(even) td,
#bb-table tbody tr:nth-child(even) td,
#nerve-table tbody tr:nth-child(even) td,
#bleeding-table tbody tr:nth-child(even) td,
.dtable tr:hover td,
#training-table tbody tr:hover td,
#bb-table tbody tr:hover td,
#nerve-table tbody tr:hover td,
#bleeding-table tbody tr:hover td {
  background: var(--glass-lite) !important;
}
.dtable th,
#training-table th,
#bb-table th,
#nerve-table th,
#bleeding-table th,
.th-total,
.td-total,
.td-bb-total {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
.report-bb .dtable th.th-total,
.report-bb .td-total,
.report-nerve .dtable th.th-total,
.report-nerve .td-total,
.th-total {
  background: var(--glow-accent) !important;
}
.report-bb .td-val.v-gold { color: var(--danger) !important; }
.report-nerve .td-val.v-gold { color: var(--violet) !important; }

.td-day,
.td-day-inner,
.yt-out-hero-box,
.yt-bk-row,
.yt-bal-row,
.yt-sb-bar,
.yi-cal-day,
.dev-member-row,
.member-card.top-turn {
  background: var(--raised) !important;
  border-color: var(--border) !important;
}
.yi-cal-day::before {
  background: linear-gradient(135deg, var(--glow-accent), var(--glow-cyan)) !important;
}
.yi-cal-day:hover:not(:disabled) {
  border-color: var(--border-lit) !important;
  box-shadow: var(--theme-shadow-soft) !important;
}
.yi-cal-day.selected {
  background: var(--glow-accent) !important;
  border-color: var(--flame) !important;
}
.yi-cal-day.range-start,
.yi-cal-day.range-end {
  color: var(--text-primary) !important;
  border-color: var(--flame) !important;
  box-shadow: 0 0 0 1px var(--flame), var(--theme-shadow-soft) !important;
}
.yi-cal-day.today { border-color: var(--cyan) !important; }

.yt-sb-fill,
.mf-energy {
  background: var(--theme-accent-gradient) !important;
}
.ff-green { background: var(--glow-success) !important; color: var(--success) !important; }
.ff-yellow { background: var(--glow-accent) !important; color: var(--warning) !important; }
.ff-red { background: var(--glow-danger) !important; color: var(--danger) !important; }
.ff-grey { background: var(--raised) !important; color: var(--text-ghost) !important; }

.opt-data-red,
#confirm-ok,
#confirm-bb-overlay button:last-child {
  background: var(--glow-danger) !important;
  border-color: var(--danger) !important;
  color: var(--danger) !important;
}
.opt-data-gold {
  background: var(--glow-accent) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important;
}
.opt-data-purple {
  background: var(--glow-accent) !important;
  border-color: var(--violet) !important;
  color: var(--violet) !important;
}
.opt-data-green {
  background: var(--glow-success) !important;
  border-color: var(--success) !important;
  color: var(--success) !important;
}

.clr-gold { color: var(--gold) !important; }
.clr-green { color: var(--success) !important; }
.clr-red { color: var(--danger) !important; }
.clr-cyan { color: var(--cyan) !important; }
.clr-violet { color: var(--violet) !important; }
.clr-flame { color: var(--flame) !important; }
.atk-body strong,
.leaderboard-subcategory.active,
.mode-card-btn.active,
.add-to-tracker-btn:hover,
.promote-watcher-btn:hover {
  color: var(--text-primary) !important;
}

:root[data-theme="white"] .ambient-orb { opacity: .16; }
:root[data-theme="white"] .hex-grid { opacity: .12; }
:root[data-theme="white"] .nav-rail,
:root[data-theme="white"] .status-foot,
:root[data-theme="white"] .stat-strip,
:root[data-theme="white"] #mob-panel-tabs {
  box-shadow: var(--theme-shadow-soft) !important;
}
:root[data-theme="white"] .leaderboard-subcategory.active,
:root[data-theme="white"] .report-head-btn:hover,
:root[data-theme="white"] .opt-key-save:hover {
  color: var(--on-accent) !important;
}
