/* Shared appearance layer, loaded last on trainer, sign-in, admin and error pages. */
:root {
  --button-bg: #b6f7cf;
  --button-text: #172c21;
  --button-hover: #cffcde;
  --button-shadow: #74ae89;
  --table-text: #f3f8f5;
  --table-muted: #b8c8be;
  --table-accent: #b6f7cf;
  --tag-best-bg: #b6f7cf;
  --tag-correct-bg: #a9e6b8;
  --tag-inaccuracy-bg: #f3c779;
  --tag-mistake-bg: #f28289;
  --chrome: #14151b;
  --control-bg: #252833;
  --control-hover: #30333f;
  --selected-bg: #b6f7cf10;
  --selected-border: #b6f7cf35;
  --success-soft: #b6f7cf13;
  --success-border: #b6f7cf35;
  --lavender-soft: #c4b8fd16;
  --lavender-border: #c4b8fd30;
  --error-soft: #f2828910;
  --error-border: #f2828930;
  --danger: #f6a8ad;
  --track: #2a2d38;
  --ring-track: #3b3c48;
  --ring-inner: #1f212b;
  --hero-start: #232330;
  --hero-end: #1a1c26;
  --hero-border: #c4b8fd36;
  --hover-border: #727787;
  --focus: #88cfff;
}
:root[data-theme='dark'] { color-scheme: dark; }
:root[data-theme='light'] {
  color-scheme: light;
  --bg: #f6f7fb;
  --surface: #ffffff;
  --surface-2: #edf0f5;
  --border: #d4dae4;
  --text: #202838;
  --muted: #586477;
  --accent: #176b46;
  --best: #176b46;
  --correct: #366c2d;
  --inaccuracy: #7b5017;
  --mistake: #ad3242;
  --lavender: #6450a5;
  --chrome: #ffffff;
  --control-bg: #eef1f6;
  --control-hover: #e1e6ee;
  --selected-bg: #e6f5ec;
  --selected-border: #a8cfb8;
  --success-soft: #e6f5ec;
  --success-border: #a8cfb8;
  --lavender-soft: #efebfc;
  --lavender-border: #d4c9ef;
  --error-soft: #fff0f2;
  --error-border: #eac0c7;
  --danger: #ad3242;
  --track: #e2e7ed;
  --ring-track: #dce5df;
  --ring-inner: #f3f8f5;
  --hero-start: #f2efff;
  --hero-end: #edf9f1;
  --hero-border: #d8d0ee;
  --hover-border: #7b899d;
  --focus: #286fc4;
}

/* Own text colors explicitly rather than inheriting browser or host defaults. */
body { background: var(--bg); color: var(--text); }
h1, h2, h3, h4 { color: var(--text); }
strong, b { color: inherit; }
button, input, select, textarea, option, optgroup { color: var(--text); }
input, select, textarea { color-scheme: inherit; }
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }
option, optgroup { background: var(--surface); }
a { color: var(--accent); }
code, kbd { color: inherit; }
.theme-toggle { display: inline-flex; align-items: center; gap: 7px; }
.theme-toggle [data-theme-icon] { display: inline-block; width: 18px; font-size: 17px; line-height: 1; text-align: center; }
.login-theme-toggle { margin: -10px auto 22px; font-size: 12px; }
.primary-btn, .study-primary, .club-app .act.next { background: var(--button-bg); color: var(--button-text); box-shadow: 0 3px 0 var(--button-shadow); }
.primary-btn:hover:not(:disabled), .study-primary:hover:not(:disabled) { background: var(--button-hover); }
.primary-btn:active:not(:disabled), .study-primary:active:not(:disabled) { box-shadow: 0 1px 0 var(--button-shadow); }
.club-mark, .club-skip { background: var(--button-bg); color: var(--button-text) !important; }
.chip-btn[aria-pressed='true'] { background: var(--button-bg); color: var(--button-text); }
.ghost:hover { border-color: var(--hover-border); }
.study-secondary { background: var(--control-bg); color: var(--text); }
.study-secondary:hover:not(:disabled) { background: var(--control-hover); }
.club-app { background: var(--bg); }
.club-app .club-rail, .admin .topbar { background: var(--chrome); }
.club-app #section { background: var(--bg); border-color: var(--border); }
.club-app #section a[aria-current='page'] { background: var(--surface-2); color: var(--accent); }
.club-app #mode button:hover { background: var(--surface-2); }
.club-app #mode button[aria-checked='true'] { background: var(--selected-bg); border-color: var(--selected-border); }
.club-avatar, .study-quest-icon { background: var(--lavender-soft); }
.club-app .empty { background: var(--surface); border-color: var(--border); }
.club-app .side > .panel, .club-app .act { background: var(--surface); }
.club-app .act-group { background: var(--surface-2); }
.study-hero { background: linear-gradient(110deg, var(--hero-start), var(--hero-end)); border-color: var(--hero-border); }
.study-progress { background: var(--track); }
progress.study-progress::-webkit-progress-bar { background: var(--track); }
.bars .track, .pf-bar, .br-row .bar.mix { background: var(--track); }
.study-quest { border-top-color: var(--border); }
.study-pill, .study-status { color: var(--accent); background: var(--success-soft); border-color: var(--success-border); }
.study-pill.lavender, .study-level .study-level-badge { background: var(--lavender-soft); border-color: var(--lavender-border); }
.study-quest.complete .study-quest-icon { background: var(--success-soft); }
.study-goal-ring { background: conic-gradient(var(--accent) var(--progress, 0%), var(--ring-track) 0); }
.study-goal-ring-inner { background: var(--ring-inner); }
.study-league-table .is-me td, .study-rank.me, .lb-table tr.me td { background: var(--selected-bg); }
.club-app .lb-me { background: var(--success-soft); border-color: var(--success-border); }
.study-error { color: var(--danger); background: var(--error-soft); border-color: var(--error-border); }
.ev-neg { color: var(--danger) !important; }
td.bad, .stat-card.bad span, .ev.bad, .rank-col.weak h4, .ghost.danger, .pill.off, .up-list .err, .form-msg.err, .login-error, table.health td .bad, #tab-site td .bad { color: var(--danger); }
.tag { color: var(--button-text); }
.tag.best { background: var(--tag-best-bg); }
.tag.correct { background: var(--tag-correct-bg); }
.tag.inaccuracy, .demo-badge { background: var(--tag-inaccuracy-bg); }
.tag.mistake { background: var(--tag-mistake-bg); }
.club-app .act.good, .act-size.good { background: var(--success-soft); }
.club-app .act.wrong, .act-size.wrong { background: var(--error-soft); opacity: 1; }
.br-row:nth-child(even) { background: var(--bg); }
.login-page { background: var(--bg); }
:focus-visible { outline-color: var(--focus); }

/* Poker surfaces and four-color card faces remain dark with readable light lettering in both modes. */
.felt, .mini-table, .plate, .mt-seat, .mt-pot { color: var(--table-text); }
.plate .stack, .mt-seat .stack { color: var(--table-muted); }
.seat.acting .plate, .mt-seat.acting { border-color: var(--table-accent); }
.pot-label, .mt-street { color: var(--table-muted); opacity: 1; }
.card.face, .mini { color: #ffffff; }
:root[data-theme='light'] .lb-table td.rank.top1 { color: #825807; }
:root[data-theme='light'] .lb-table td.rank.top2 { color: #536273; }
:root[data-theme='light'] .lb-table td.rank.top3 { color: #92511b; }
@media (pointer: coarse) { .theme-toggle { min-height: 44px; } }
