/* Persistent color preference for the responsive Focus presentation. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) {
  color-scheme: dark;
  --bg: #101411;
  --text: #f2ede4;
  --muted: #b0a99e;
  --panel: #171c19;
  --border: #3d473f;
  --surface: #1d231f;
  --soft-surface: rgba(29, 35, 31, 0.9);
  --soft-hover: rgba(143, 185, 120, 0.13);
  --focus-accent: #9ac982;
  --focus-on-accent: #101411;
  --focus-raised: #242b26;
  --focus-elevated: #2b332d;
  --focus-hover: #313b33;
  --focus-active: #3b604a;
  --focus-disabled: #202622;
  --focus-disabled-text: #777f78;
  --focus-success: #92cf8a;
  --focus-success-bg: #193321;
  --focus-danger: #ff9a92;
  --focus-danger-bg: #3a1e1d;
  --focus-warning: #f0c66b;
  --focus-warning-bg: #382e18;
  --focus-info: #84b6dc;
  --focus-info-bg: #172c39;
  --focus-shadow: rgba(0, 0, 0, 0.42);
  --line: var(--border);
  --border-strong: #59655b;
  --ink: var(--text);
  background: var(--bg);
  color: var(--text);
}

body:is(.illustrated-home-mode, .illustrated-feature-mode) .focus-color-scheme-control {
  display: none;
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .boot-screen,
  .experience-boundary-screen,
  #mode-screen:not([data-home-experience="illustrated"]),
  #resources-screen,
  #danya-speedruns-screen,
  #opponent-screen,
  #app-shell,
  .review-screen,
  .learning-screen,
  .opening-practice-screen,
  .puzzles-screen,
  .placement-tournament-screen,
  .career-screen,
  .career-stats-screen,
  .stats-screen,
  .settings-screen
) {
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .app-header {
  border-bottom-color: var(--border);
  background: rgba(23, 28, 25, 0.96);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

@media screen and (min-width: 1280px) and (max-height: calc(100vw - 512px)) {
  :root[data-focus-color-scheme="dark"] body.live-match-rail-mode:not(.illustrated-home-mode):not(.illustrated-feature-mode) .app-header {
    border-right-color: var(--border);
    border-bottom-color: transparent;
    box-shadow: 6px 0 24px rgba(0, 0, 0, 0.24);
  }
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-dashboard,
  .resources-screen
) {
  background:
    radial-gradient(circle at 16% 8%, rgba(154, 201, 130, 0.08), transparent 34%),
    linear-gradient(140deg, rgba(29, 35, 31, 0.98), rgba(16, 20, 17, 0.98)),
    var(--bg);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .danya-speedruns-screen {
  background: var(--bg);
}

/* Main panels, cards, tables, dialogs, and board-side surfaces. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .experience-boundary-panel,
  .header-menu-panel,
  .mode-panel,
  .home-experience-switch,
  .home-continue,
  .home-tip,
  .home-card-stack.mode-actions button,
  .resources-checklist,
  .resources-quick-actions,
  .resources-footer,
  .resources-tip,
  .resources-toolkit-grid button,
  .danya-speedruns-watch-heading,
  .danya-speedruns-library-grid > *,
  .danya-speedruns-analysis-panel,
  .danya-speedruns-series-tabs,
  .danya-speedruns-series-tabs span,
  .danya-speedruns-progress-pill,
  .danya-speedruns-video-row,
  .danya-speedruns-strip-item span,
  .danya-speedruns-next-card,
  .danya-speedruns-move-panel,
  .opponent-time-setup,
  .opponent-engine-tabs,
  .opponent-card,
  .opponent-columns section,
  .scout-note,
  .settings-screen,
  .settings-engine-picker,
  .shell.live-match-frame .player-strip,
  .shell.live-match-frame #status,
  .shell.live-match-frame .side,
  .shell.live-match-frame .top-lines,
  .shell.live-match-frame .opponent-game-panel,
  .shell.live-match-frame .controls,
  .shell.live-match-frame .moves-panel,
  .shell.live-match-frame .automatic-review-status,
  .shell.live-match-frame .opponent-result-panel,
  .shell.live-match-frame .play-tips-panel,
  .shell.live-match-frame .opponent-practice-panel,
  .shell.live-match-frame .opponent-debug-panel,
  .opponent-game-panel,
  .play-tips-panel,
  .opponent-vision-drill,
  .opponent-result-panel,
  .opponent-debug-panel,
  .blindfold-play-panel,
  .blindfold-settings,
  .learning-classroom-toolbar,
  .learning-library-panel,
  .learning-source-panel,
  .learning-board-panel,
  .learning-side-panel,
  .learning-book-overview,
  .learning-item,
  .learning-question-choice,
  .learning-engine-panel,
  .learning-answer-body,
  .learning-text-lead-in,
  .opening-practice-setup-side,
  .opening-practice-panel,
  .opening-practice-source-panel,
  .opening-practice-board-panel,
  .opening-practice-side-panel,
  .opening-practice-setup-tabs,
  .opening-practice-danya-overview,
  .opening-practice-danya-setup-panel,
  .opening-practice-danya-panel,
  .opening-practice-danya-stat,
  .opening-practice-danya-setup-video,
  .opening-practice-danya-video,
  .opening-practice-mobile-selected-action,
  .opening-practice-today-task,
  .opening-practice-repertoire-card,
  .opening-practice-option,
  .endgame-practice-engine-panel,
  .endgame-practice-line-panel,
  .endgame-practice-progress-panel,
  .opening-practice-chip,
  .opening-practice-result,
  .puzzles-timer,
  .puzzles-board-panel,
  .puzzles-solve-panel,
  .puzzles-feedback,
  .puzzles-catalog-panel,
  .learning-source-viewer,
  .placement-tournament-setup,
  .placement-tournament-recovery,
  .placement-tournament-summary-card,
  .placement-tournament-panel,
  .placement-tournament-command,
  .placement-tournament-command-stats div,
  .placement-tournament-certificate-item,
  .placement-tournament-review-card,
  .placement-tournament-review-table-wrap,
  .placement-tournament-review-table,
  .placement-tournament-table-wrap,
  .placement-tournament-rounds details,
  .career-summary-card,
  .career-panel,
  .career-next-focus,
  .career-chart,
  .career-table-wrap,
  .career-opening-item,
  .career-review-item,
  .career-stats-phase-card,
  .career-stats-history-card,
  .career-stats-classification-card,
  .career-stats-table,
  .stats-summary-card,
  .stats-panel,
  .stats-item,
  .stats-recent-item,
  .ai-debug-section pre,
  .review-input-panel-heading,
  .review-setup-draft-prompt,
  .review-position-setup,
  .review-scoresheet-scan,
  .review-progress,
  .review-saved,
  .review-saved-collection,
  .review-analysis-import-input,
  .review-screen.review-board-active .review-move-panel,
  .review-move-insight,
  .review-summary-stage .review-board-played-games,
  .review-label-legend,
  .review-mode-switch,
  .review-guided-card,
  .review-guided-story,
  .review-screen.review-board-active .review-final-report,
  .review-full-report-paper,
  .review-debug,
  .review-screen.review-board-active .review-analysis,
  .review-analysis-board-live,
  .review-screen.review-board-active .review-ai-comment,
  .review-screen.review-board-active .review-side-panel,
  .modal-panel
) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .danya-speedruns-strip-item span {
  background: color-mix(in srgb, var(--focus-raised) 92%, transparent);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .danya-speedruns-series-tabs span,
  .danya-speedruns-progress-pill
) {
  background: var(--focus-raised);
  color: var(--muted);
}

/* Neutral controls and raised items. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .app-section-back,
  .header-menu-button,
  .mode-actions button,
  .home-settings-button,
  .home-tip button,
  .resources-footer button,
  .resources-icon,
  .home-icon,
  .home-tip-icon,
  .opponent-step-heading span,
  .opponent-rating,
  .opponent-screen-actions button,
  .opponent-pagination button,
  .settings-screen-header button,
  .settings-engine-picker select,
  .shell.live-match-frame .player-clock,
  .player-clock,
  .promotion-picker,
  .promotion-picker-option,
  .promotion-picker-cancel,
  .shell.live-match-frame .side button,
  .opponent-game-heading strong,
  .opponent-assist-actions button,
  .play-tips-actions button,
  .opponent-vision-heading select,
  .opponent-vision-shortcut,
  .opponent-vision-controls input,
  .opponent-vision-controls button,
  .opponent-vision-reveal,
  .opponent-fide-actions button,
  .maia3-play-action-buttons button:not(.active),
  .blindfold-move-row button,
  .blindfold-play-action-buttons button,
  .blindfold-switch,
  .danya-speedruns-next-actions button,
  .danya-speedruns-video-actions button,
  .danya-speedruns-video-actions a,
  .danya-speedruns-watch-heading button,
  .danya-speedruns-board-room button:not(.square),
  .learning-header button,
  .learning-node-actions button,
  .learning-panel-heading button,
  .learning-position-controls button,
  .learning-progress-actions button,
  #learning-next-module,
  #learning-toggle-library,
  #learning-reset-progress,
  #learning-save-notes,
  .learning-lesson-jump select,
  .opening-practice-header button,
  .opening-practice-quick-start button,
  .opening-practice-settings button,
  .opening-practice-side-toggle button,
  .opening-practice-result-actions button,
  .opening-practice-board-panel .learning-node-actions button,
  .opening-practice-board-panel .learning-position-controls button,
  .opening-practice-source-panel button,
  .opening-practice-custom-board-toolbar button,
  .opening-practice-custom-start-actions button,
  .opening-practice-custom-start-panel > button,
  .opening-practice-repair-list span,
  .opening-practice-settings select,
  .opening-practice-danya-move-chips span,
  .puzzles-header button,
  .puzzles-board-panel .learning-node-actions button,
  .puzzles-board-panel .learning-position-controls button,
  .puzzles-catalog-button,
  #danya-speedruns-mark-next-viewed,
  .learning-tts-button,
  .placement-tournament-actions button,
  .placement-tournament-recovery-actions button,
  .placement-tournament-primary-actions button,
  .placement-tournament-panel-heading button,
  .placement-tournament-list-button,
  .placement-tournament-table button,
  .placement-tournament-review-table button,
  .placement-pairings-table button,
  .placement-title-modal-heading button,
  .placement-title-option,
  .placement-name-picker,
  .placement-time-options label,
  .placement-rating-options label,
  .placement-fide-option,
  .placement-time-control-chip,
  .placement-tournament-certificate-actions button,
  #tournament-recovery-import-submit,
  .career-header-actions button,
  .career-filter-row button,
  .career-tabs button,
  .career-next-focus button,
  .career-review-item button,
  .stats-header-actions button,
  .stats-recent-item button,
  .ai-debug-heading button,
  .learning-reading-controls button,
  .learning-badge,
  #learning-source-status,
  .learning-move-list button,
  .review-header button,
  .review-input-panel-heading button,
  .review-setup-draft-actions button.secondary,
  .review-position-setup-toolbar button,
  .review-setup-action-row button,
  .review-position-setup-controls > button,
  .review-scoresheet-scan-actions button,
  .review-actions button.secondary,
  .review-saved-heading button,
  .review-saved-heading-actions button,
  .review-collection-form button,
  .review-saved-button,
  .review-played-games-modal-heading button,
  .review-saved-delete,
  .modal-secondary,
  .review-export-actions button,
  .review-training-heading button,
  .review-panel-heading button,
  .review-view-controls button,
  .review-mode-switch-buttons button,
  .review-guided-choice,
  .review-guided-actions button,
  .review-training-tag,
  .review-final-heading-actions button,
  .review-final-heading-actions a,
  .review-full-report-toolbar button,
  .review-back-main-line,
  .review-position-controls button,
  .review-move-button,
  .review-analysis-board-actions button,
  .review-analysis-board-live-actions button,
  #review-analysis-depth-analyze,
  #review-move-insight-eval,
  .review-analysis-heading button,
  .review-ai-comment-heading button,
  .review-ai-tags span,
  :is(.top-moves, .learning-engine-top-moves, .review-top-lines) .engine-eval-badge,
  .engine-actions button:nth-child(n + 2),
  .copy-moves
) {
  border-color: var(--border);
  background: var(--focus-raised);
  color: var(--text);
  box-shadow: none;
}

/* Forms stay scoped to authenticated Focus surfaces. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  #mode-screen:not([data-home-experience="illustrated"]),
  #resources-screen,
  #danya-speedruns-screen,
  #opponent-screen,
  #app-shell,
  .modal-backdrop
) :is(
  select,
  textarea,
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"])
) {
  border-color: var(--border);
  background: var(--focus-raised);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  #mode-screen:not([data-home-experience="illustrated"]),
  #resources-screen,
  #danya-speedruns-screen,
  #opponent-screen,
  #app-shell,
  .modal-backdrop
) :is(
  select,
  textarea,
  input
)::placeholder {
  color: var(--muted);
}

/* Active controls have visible contrast without a white flash. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .app-section-back:hover,
  .app-section-back:focus,
  .header-menu-button:hover,
  .header-menu-button:focus,
  .header-menu-button[aria-expanded="true"],
  .header-menu-panel button:hover,
  .header-menu-panel button:focus,
  .header-menu-panel a:hover,
  .header-menu-panel a:focus,
  .language-menu-panel button.active,
  .language-menu-panel button[aria-pressed="true"],
  .mode-actions button:hover,
  .mode-actions button.selected-mode,
  .home-experience-switch button:hover,
  .home-experience-switch button:focus-visible,
  .home-experience-switch button.active,
  .home-settings-button:hover,
  .home-tip button:hover,
  .opponent-engine-tabs button.active,
  .opponent-assist-actions button.active,
  .opponent-vision-shortcut.active,
  .opponent-vision-shortcut:not(:disabled):hover,
  .learning-item:hover,
  .learning-item.selected,
  .opening-practice-setup-tab.selected,
  .opening-practice-setup-tab:hover,
  .opening-practice-option:hover,
  .opening-practice-option.selected,
  button.opening-practice-repertoire-row:hover,
  button.opening-practice-repertoire-row.selected
) {
  border-color: var(--border-strong);
  background: var(--focus-active);
  color: var(--text);
}

/* Segmented selection stays stronger than the generic menu focus state. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .header-menu-panel .focus-color-scheme-options button:is(.active, [aria-pressed="true"]),
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .header-menu-panel .kids-theme-options button:is(.active, [aria-pressed="true"]) {
  color: var(--focus-on-accent);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .header-menu-panel .focus-color-scheme-options button:is(.active, [aria-pressed="true"]) {
  background: var(--focus-accent);
}

:root[data-focus-color-scheme="dark"][data-kids-theme="blue"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .header-menu-panel .kids-theme-options button:is(.active, [aria-pressed="true"]) {
  background: #4e9edb;
  color: #101411;
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .opponent-actions button,
  .opponent-game-actions button,
  .opponent-result-actions button,
  .opponent-card-actions button,
  .play-tips-actions button:first-child,
  .opponent-vision-controls button:not(:disabled),
  .learning-progress-actions button:first-child,
  .opening-practice-quick-start button,
  .opening-practice-result-actions #opening-practice-next-line
) {
  border-color: var(--focus-active);
  background: var(--focus-active);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  #mode-screen:not([data-home-experience="illustrated"]),
  #resources-screen,
  #danya-speedruns-screen,
  #opponent-screen,
  #app-shell,
  .modal-backdrop
) :is(
  button:disabled,
  [role="button"][aria-disabled="true"]
) {
  border-color: var(--border);
  color: var(--focus-disabled-text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .shell.live-match-frame .side button:is(:hover, .active, [aria-pressed="true"]):not(:disabled) {
  border-color: #5d8d6a;
  background: var(--focus-active);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .shell.live-match-frame .side button:disabled {
  background: var(--focus-disabled);
  color: var(--focus-disabled-text);
}

/* Keep captured pieces legible without recoloring their original side. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .shell.live-match-frame .player-strip[data-color="w"] .captured-piece img {
  filter:
    drop-shadow(1px 0 0 rgba(242, 237, 228, 0.78))
    drop-shadow(-1px 0 0 rgba(242, 237, 228, 0.78))
    drop-shadow(0 1px 0 rgba(242, 237, 228, 0.78))
    drop-shadow(0 -1px 0 rgba(242, 237, 228, 0.78));
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .shell.live-match-frame .player-strip[data-color="b"] .captured-piece img {
  filter:
    drop-shadow(0 1px 1px rgba(0, 0, 0, 0.9))
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.72));
}

/* Home and Resources use dark-safe type and icon treatments. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-hero p,
  .home-continue-item span span,
  .home-card-stack span span,
  .home-tip span span,
  .home-progress::before,
  .resources-header p,
  .resources-checklist-grid label,
  .resources-tip p,
  .resources-quick-actions small,
  .resources-toolkit-grid span span,
  .resources-footer p,
  .resources-footer button
) {
  color: var(--muted);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-icon,
  .home-tip-icon,
  .resources-icon
) {
  border-color: var(--border);
  background: linear-gradient(150deg, var(--focus-elevated), var(--surface));
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .home-section-heading > span {
  color: var(--focus-accent);
}

/* Kids accents can decorate the dark Focus surface without replacing it. */
:root[data-focus-color-scheme="dark"][data-kids-theme] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-icon,
  .home-tip-icon
) {
  border-color: color-mix(in srgb, var(--kids-accent) 42%, var(--border));
  background: linear-gradient(
    145deg,
    var(--surface),
    color-mix(in srgb, var(--kids-accent) 16%, var(--surface))
  );
  color: var(--kids-accent);
}

:root[data-focus-color-scheme="dark"][data-kids-theme] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-section-heading > span,
  .home-card-arrow,
  .material-advantage
) {
  color: var(--kids-accent);
}

:root[data-focus-color-scheme="dark"][data-kids-theme] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .home-progress span {
  background: linear-gradient(90deg, var(--kids-accent), var(--kids-accent-2));
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-piece-icon img,
  .resources-icon img
) {
  filter:
    brightness(0)
    invert(0.93)
    drop-shadow(0 0 7px var(--kids-piece-glow));
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .home-progress {
  background: var(--focus-elevated);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .home-card-arrow {
  color: var(--focus-accent);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .resources-footer p > span:first-child {
  color: var(--focus-accent);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .resources-status {
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .resources-status.error {
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .review-player-row {
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .danya-speedruns-video-row-index {
  background: var(--focus-elevated);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .danya-speedruns-video-row.viewed .danya-speedruns-video-row-index {
  background: color-mix(in srgb, var(--kids-accent) 26%, var(--focus-elevated));
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .learning-question-description {
  color: var(--muted);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-card-stack small,
  .resources-toolkit-grid small
) {
  background: var(--focus-success-bg);
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .home-card-stack small.status-analysis,
  .home-card-stack small.status-practice
) {
  background: var(--focus-warning-bg);
  color: var(--focus-warning);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .home-card-stack small.status-experimental {
  background: var(--focus-info-bg);
  color: var(--focus-info);
}

/* Dark semantic states keep their meaning and contrast. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .play-result-banner {
  border-color: var(--focus-success);
  background: var(--focus-success-bg);
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .play-result-banner[data-outcome="loss"] {
  border-color: var(--focus-danger);
  background: var(--focus-danger-bg);
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .play-result-banner:is([data-outcome="draw"], [data-outcome="finished"]) {
  border-color: var(--focus-warning);
  background: var(--focus-warning-bg);
  color: var(--focus-warning);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .play-tips-card {
  border-color: color-mix(in srgb, var(--focus-warning) 55%, var(--border));
  background: var(--focus-warning-bg);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .play-tips-idea {
  color: var(--focus-success) !important;
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .opening-practice-custom-turn-summary {
  border-color: var(--border);
  border-left-color: var(--focus-success);
  background: var(--focus-success-bg);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .opening-practice-custom-turn-summary strong {
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .opening-practice-custom-turn-summary strong.stockfish-first {
  color: var(--focus-warning);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-journey-round-complete {
  border-color: color-mix(in srgb, var(--focus-success) 55%, var(--border));
  background: var(--focus-success-bg);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-journey-round-current {
  border-color: var(--focus-accent);
  outline-color: color-mix(in srgb, var(--focus-accent) 36%, transparent);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-journey-round-current .placement-journey-round-marker {
  border-color: var(--focus-accent);
  background: var(--focus-accent);
  color: var(--focus-on-accent);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .opponent-vision-feedback.correct,
  .career-stats-delta.positive,
  .career-stats-history-card small.positive
) {
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .opponent-vision-feedback.incorrect,
  .career-stats-delta.negative,
  .career-stats-history-card small.negative
) {
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .automatic-review-status-heading .eyebrow,
  .automatic-review-status-heading > span,
  .review-analysis-modal-heading .eyebrow,
  .review-analysis-progress-heading span
) {
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .opening-practice-custom-start-help.error {
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .opening-practice-setup-tab.selected span,
  .opening-practice-setup-tab:hover span
) {
  background: var(--focus-elevated);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .opening-practice-danya-move-group.danya {
  background: var(--focus-success-bg);
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .opening-practice-danya-move-group.opponent {
  background: var(--focus-danger-bg);
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .opening-practice-danya-move-chips span {
  background: var(--focus-raised);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-tournament-list-status {
  background: var(--focus-success-bg);
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-tournament-recovery {
  border-color: color-mix(in srgb, var(--focus-warning) 62%, var(--border));
  background: var(--focus-warning-bg);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-tournament-recovery .eyebrow {
  color: var(--focus-warning);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-tournament-recovery-actions button:first-child,
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) #tournament-recovery-import-submit {
  border-color: var(--focus-active);
  background: var(--focus-active);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-tournament-recovery-actions .placement-tournament-danger {
  border-color: var(--focus-danger);
  background: var(--focus-danger-bg);
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  #placement-tournament-recovery-status.error,
  #tournament-recovery-import-status.error
) {
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .review-saved-button.last-saved,
  .review-played-game-button.reviewed
) {
  border-color: color-mix(in srgb, var(--focus-success) 55%, var(--border));
  background: var(--focus-success-bg);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .review-played-game-category {
  border-color: color-mix(in srgb, var(--focus-warning) 55%, var(--border));
  background: var(--focus-warning-bg);
  color: var(--focus-warning);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .review-played-game-status {
  color: var(--muted);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .placement-tournament-certificate,
  .placement-tournament-list-button.active
) {
  border-color: color-mix(in srgb, var(--focus-warning) 55%, var(--border));
  background: var(--focus-warning-bg);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .placement-tournament-certificate div {
  border-left-color: color-mix(in srgb, var(--focus-warning) 55%, var(--border));
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .status.error,
  .danya-speedruns-status.error,
  .learning-status.error,
  .opening-practice-status.error,
  .puzzles-status.error,
  .placement-tournament-status.error,
  .career-status.error,
  .career-stats-status.error,
  .stats-status.error,
  .review-status.error,
  .header-menu-panel .profile-menu-danger,
  .player-clock.low,
  .shell.live-match-frame .player-clock.low
) {
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .learning-item.completed,
  .learning-question-feedback.correct,
  .opening-practice-result.passed,
  .opening-practice-danya-match,
  .opening-practice-danya-setup-video-summary strong,
  .placement-tournament-user-row,
  .placement-tournament-review-user-row
) {
  border-color: color-mix(in srgb, var(--focus-success) 55%, var(--border));
  background: var(--focus-success-bg);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .learning-question-feedback.incorrect,
  .opening-practice-result.failed,
  .review-analysis[data-classification="blunder"],
  .review-analysis[data-classification="missed-win"],
  .review-full-critical-card[data-classification="blunder"],
  .review-full-critical-card[data-classification="missed-win"]
) {
  border-color: color-mix(in srgb, var(--focus-danger) 55%, var(--border));
  background: var(--focus-danger-bg);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode)
  .placement-tournament-game-result[data-outcome="win"] .placement-tournament-game-result-marker {
  border-color: var(--focus-success);
  background: var(--focus-success-bg);
  color: var(--focus-success);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode)
  .placement-tournament-game-result[data-outcome="draw"] .placement-tournament-game-result-marker {
  border-color: var(--focus-warning);
  background: var(--focus-warning-bg);
  color: var(--focus-warning);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode)
  .placement-tournament-game-result[data-outcome="loss"] .placement-tournament-game-result-marker {
  border-color: var(--focus-danger);
  background: var(--focus-danger-bg);
  color: var(--focus-danger);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .review-analysis[data-classification="inaccuracy"],
  .review-analysis[data-classification="mistake"],
  .review-full-critical-card[data-classification="mistake"]
) {
  border-color: color-mix(in srgb, var(--focus-warning) 55%, var(--border));
  background: var(--focus-warning-bg);
  color: var(--text);
}

/* Local palettes used by the dense statistics and review workspaces. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .career-stats-screen {
  --career-stats-green: #92cfaa;
  --career-stats-green-soft: #193229;
  --career-stats-gold: #e0bd80;
  --career-stats-gold-soft: #382f20;
  --career-stats-ink: var(--text);
  --career-stats-paper: var(--surface);
  background:
    radial-gradient(circle at 88% 0%, rgba(224, 189, 128, 0.08), transparent 30%),
    var(--bg);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .review-screen.review-board-active {
  --review-canvas: var(--bg);
  --review-surface: var(--surface);
  --review-ink: var(--text);
  --review-muted: var(--muted);
  --review-line: var(--border);
  --review-accent: #6fa887;
  --review-accent-hover: #82bd99;
  --review-accent-soft: #1b3428;
  --review-warm: #d0ad78;
  background:
    radial-gradient(circle at 80% 0%, rgba(154, 201, 130, 0.06), transparent 32%),
    var(--review-canvas);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .review-summary-eval-graph svg {
  border-color: var(--border);
  background: var(--focus-raised);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .career-stats-phase-card,
  .career-stats-table,
  .career-stats-table th,
  .career-stats-history-card,
  .career-stats-classification-card
) {
  border-color: var(--border);
  background: var(--surface);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .career-stats-tabs button.active,
  .career-stats-tabs button[aria-pressed="true"]
) {
  background: var(--focus-active);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .career-stats-next-focus button,
  .career-stats-empty-state button
) {
  border-color: var(--focus-accent);
  background: var(--focus-accent);
  color: var(--focus-on-accent);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .placement-tournament-table th,
  .placement-tournament-review-table th,
  .placement-pairings-table th,
  .career-table th,
  .career-stats-table th,
  .stats-table th
) {
  border-color: var(--border);
  background: var(--focus-elevated);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .placement-tournament-table td,
  .placement-tournament-review-table td,
  .placement-pairings-table td,
  .career-table td,
  .career-stats-table td,
  .stats-table td
) {
  border-color: var(--border);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .career-chart-grid line,
  .career-stats-chart-grid line,
  .career-stats-chart-baseline
) {
  stroke: var(--border);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  .career-chart-point,
  .career-stats-chart-point
) {
  stroke: var(--surface);
}

/* The full report is dark on screen but remains a white paper document when printed. */
:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) :is(
  #review-full-report-meta,
  #review-full-report-summary,
  .review-full-section h2,
  .review-full-section p,
  .review-full-list li,
  .review-full-list strong,
  .review-full-critical-body h3,
  .review-full-critical-meta,
  .review-full-critical-details,
  .review-full-critical-details dt
) {
  border-color: var(--border);
  color: var(--text);
}

:root[data-focus-color-scheme="dark"] body:not(.illustrated-home-mode):not(.illustrated-feature-mode) .review-full-critical-card {
  border-color: var(--border);
  background: var(--focus-raised);
  color: var(--text);
}

@media print {
  :root[data-focus-color-scheme="dark"] body {
    --text: #171717;
    --muted: #5f574f;
    --panel: #ffffff;
    --surface: #ffffff;
    --border: #c7d2d9;
    color-scheme: light;
    background: #ffffff !important;
    color: #171717 !important;
  }

  :root[data-focus-color-scheme="dark"] :is(
    .review-full-report-paper,
    .review-full-critical-card
  ) {
    background: #ffffff !important;
    color: #171717 !important;
  }

  :root[data-focus-color-scheme="dark"] :is(
    #review-full-report-meta,
    #review-full-report-summary,
    .review-full-section h2,
    .review-full-section p,
    .review-full-list li,
    .review-full-list strong,
    .review-full-critical-body h3,
    .review-full-critical-meta,
    .review-full-critical-details,
    .review-full-critical-details dt
  ) {
    color: #24323b !important;
  }
}
