/*
 * 202ch shared screen palette — 2026-10-02.
 * Explicit light / dark selection; the original light rules are preserved.
 * Theme-specific boards and rule colours are in theme-tools.css.
 */
@media screen {
  body.site-theme {
    color-scheme: light;
    --site-canvas: #f1f5f8;
    --site-surface: #fbfcfd;
    --site-raised: #ffffff;
    --site-soft: #e8eff4;
    --site-selected: #dce8f1;
    --site-ink: #293e50;
    --site-muted: #4b6375;
    --site-line: #becedb;
    --site-accent: #456b87;
    --site-on-accent: #ffffff;
    --site-link: #355f80;
    --site-focus: #9b6528;
    --site-danger: #963b48;
    --site-danger-soft: #f7e8e8;
    --site-warning: #795519;
    --site-warning-soft: #f6edcf;
    --site-success: #286645;
    --site-success-soft: #e0eee4;
    --site-blue: #315e81;
    --site-blue-soft: #e3edf3;
    --site-purple: #685583;
    --site-purple-soft: #ede7f1;
    --site-shadow: 0 12px 32px rgb(33 58 46 / 8%);

    /* Existing component variables use the same palette. */
    --bg: var(--site-canvas);
    --background: var(--site-canvas);
    --canvas: var(--site-canvas);
    --coal: var(--site-canvas);
    --foreground: var(--site-ink);
    --ink: var(--site-ink);
    --slate: var(--site-ink);
    --cream: var(--site-ink);
    --blue-dark: var(--site-ink);
    --muted: var(--site-muted);
    --line: var(--site-line);
    --panel: var(--site-surface);
    --panel-2: var(--site-soft);
    --card: var(--site-surface);
    --surface: var(--site-surface);
    --soft: var(--site-soft);
    --blue2: var(--site-blue-soft);
    --brand: var(--site-accent);
    --brand-dark: var(--site-link);
    --brand-soft: var(--site-selected);
    --blue: var(--site-link);
    --gold: var(--site-link);
    --shadow: var(--site-shadow);
    min-height: 100vh;
    background: var(--site-canvas);
    color: var(--site-ink);
  }

  .site-theme :is(button, input, select, textarea) {
    color-scheme: inherit;
    accent-color: var(--site-accent);
  }

  .site-theme
    :is(
      input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),
      select,
      textarea
    ) {
    border-color: var(--site-line);
    background-color: var(--site-raised);
    color: var(--site-ink);
  }

  .site-theme :is(input, textarea)::placeholder {
    color: var(--site-muted);
    opacity: 1;
  }

  .site-theme
    :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--site-focus);
    outline-offset: 3px;
  }

  .site-theme :is(button, input, select, textarea):disabled {
    cursor: not-allowed;
    opacity: 0.55;
  }

  /* Shared navigation, titles and legal/consent panels. */
  .site-theme
    :is(
      .site-global-header,
      .site-header,
      .policy-header,
      .policy-footer,
      .site-footer,
      .header-nav.is-open,
      .site-language-menu,
      .home-language
    ) {
    color-scheme: inherit;
    background: var(--site-surface);
    border-color: var(--site-line);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .site-global-brand,
      .site-brand,
      .brand,
      .guide-brand,
      .policy-brand,
      .site-tool-title,
      .tool-title,
      .menu-button
    ) {
    color: var(--site-ink);
  }

  .site-theme .site-global-brand .site-brand-wordmark .site-brand-accent,
  .site-theme
    :is(.brand em, .site-tool-eyebrow, .section-kicker, .policy-eyebrow) {
    color: var(--site-link);
  }

  .site-theme
    :is(
      .site-tool-description,
      .tool-intro,
      .tool-lead,
      .tool-summary,
      .guide-note,
      .guide-meta,
      .breadcrumbs,
      .system-breadcrumb,
      .policy-lead,
      .policy-date,
      .policy-small,
      .external-note,
      .version,
      .legal,
      .small-note,
      .source-line,
      .method-note,
      .footer-inner,
      .footer-policy-links,
      .comparison-note,
      .source-card .source-summary,
      .source-details dd
    ) {
    color: var(--site-muted);
  }

  .site-theme
    :is(
      .site-tool-nav > a,
      .site-language-menu > :is(button, a),
      .site-language-select,
      .home-language,
      .home-guide-links a,
      .outline-link,
      .guide-launch,
      .related-links a,
      .footer-tool-links a,
      .top-tool-nav a,
      .tool-guide-link,
      .training-guide-link,
      .guide-button.secondary
    ) {
    border-color: var(--site-line);
    background: var(--site-surface);
    color: var(--site-link);
  }

  .site-theme
    :is(
      .site-tool-nav > a,
      .home-guide-links a,
      .outline-link,
      .related-links a,
      .tool-entry,
      .system-link-card
    ):hover {
    border-color: var(--site-accent);
    background: var(--site-soft);
    color: var(--site-ink);
  }

  .site-theme .site-tool-nav > a[aria-current],
  .site-theme .site-language-menu > :is([aria-current], [aria-pressed="true"]),
  .site-theme
    :is(
      .primary-link,
      .guide-button:not(.secondary),
      .usage-primary,
      .usage-languages button[aria-pressed="true"]
    ) {
    border-color: var(--site-accent);
    background: var(--site-accent);
    color: var(--site-on-accent);
  }

  .site-theme
    :is(
      .usage-consent,
      .usage-policy,
      .usage-notice,
      .policy-hero,
      .policy-section,
      .policy-nav,
      .darts-shared-error,
      .legacy-candidate-backup
    ) {
    border-color: var(--site-line);
    background: var(--site-surface);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .usage-consent,
      .usage-policy,
      .usage-notice,
      .policy-section,
      .policy-nav,
      .darts-shared-error
    )
    a,
  .site-theme .usage-consent summary {
    color: var(--site-link);
  }

  .site-theme
    :is(
      .usage-consent details,
      .usage-consent button,
      .darts-shared-error button,
      .darts-shared-error a
    ) {
    border-color: var(--site-line);
    background-color: var(--site-raised);
    color: var(--site-link);
  }

  .site-theme
    :is(
      .usage-check,
      .policy-notice,
      .lead,
      .tip,
      .example,
      .guide-summary,
      .guide-side,
      .note-box,
      .disclaimer
    ) {
    border-color: var(--site-line);
    background: var(--site-soft);
    color: var(--site-ink);
  }

  .site-theme :is(.notice-chip, .data-source-status.warning) {
    border-color: var(--site-warning);
    background: var(--site-warning-soft);
    color: var(--site-warning);
  }

  /* Home and explanatory pages. */
  .site-theme :is(.sys, .home-guide, .news-section, .guide-page, .system-page) {
    background-color: var(--site-canvas);
  }

  .site-theme
    :is(
      .tool-entry,
      .system-link-card,
      .guide-article,
      .guide-cards article,
      .rule-pair > div,
      .hub-tools,
      .guide-figure,
      .table-scroll,
      .example.alternate,
      .news-window
    ) {
    border-color: var(--site-line);
    background: var(--site-surface);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .tool-label,
      .tool-arrow,
      .home-guide-arrow,
      .system-link-card .sys-label,
      .system-link-card .sys-arrow,
      .all-guides-link,
      .section-no,
      .note-box strong,
      .side-kicker,
      .guide-figure figcaption strong
    ) {
    color: var(--site-link);
  }

  .site-theme
    :is(
      .home-guide p:not(.section-kicker),
      .system-links-head p,
      .system-link-card small,
      .source-box p,
      .source-box li,
      .related-links span,
      .home-tools-first .news-window time
    ) {
    color: var(--site-muted);
  }

  .site-theme :is(.tool-hero, .guide-hero, .system-header, .system-footer) {
    background: #24475f;
    color: #f1f6fa;
  }

  .site-theme
    :is(
      .tool-hero .tool-lead,
      .tool-hero .tool-shortcuts > span,
      .guide-hero .guide-kicker,
      .guide-hero .guide-meta,
      .guide-hero .guide-lead,
      .system-header a,
      .system-footer a,
      .system-footer .footer-brand
    ) {
    color: #dbe9f3;
  }

  .site-theme .hero-wordmark {
    color: #9dbacf;
  }

  .site-theme
    :is(.guide-page, .system-page, .site-policy)
    a:not(.primary-link):not(.guide-button) {
    text-underline-offset: 0.2em;
  }

  .site-theme.site-policy > main,
  .site-theme.site-error main {
    border-color: var(--site-line);
    background: var(--site-surface);
    color: var(--site-ink);
  }

  .site-theme.site-policy a,
  .site-theme.site-error a {
    color: var(--site-link);
  }

  .site-theme :is(th, td, caption) {
    border-color: var(--site-line);
  }

  .site-theme
    :is(
      .policy-table th,
      .guide-page thead,
      .system-page thead th,
      .system-page tbody th,
      caption
    ) {
    background: var(--site-soft);
    color: var(--site-ink);
  }

  /* Tool surfaces; no drawing paths or SVG presentation attributes are selected. */
  .site-theme :is(.app-shell, #app > .min-h-svh) {
    background: var(--site-canvas);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .calculator,
      .mode-card,
      .result-card,
      .arrangement-card,
      .score-overview,
      .score-card,
      .throws-card,
      .arrange-card,
      .history-card,
      .current-score-block,
      .candidate,
      .candidate-card,
      .route-option,
      .card,
      .score-player,
      .throw,
      .round-record,
      .result-player,
      .settings-panel,
      .reset-panel,
      .settings-content,
      .player-card,
      .input-card,
      .comparator,
      .rating-input,
      .rule-card,
      .table-shell,
      .mobile-card,
      .source-card,
      .empty-table,
      .editor-filter,
      .editor-card,
      .arrangement-table tr,
      .legacy-candidate-backup
    ) {
    border-color: var(--site-line);
    background: var(--site-surface);
    color: var(--site-ink);
    box-shadow: none;
  }

  .site-theme
    :is(
      .game-selector,
      .manual,
      .score-summary,
      .score-summary-meta,
      .remaining-editor,
      .rule-settings,
      .random-setup,
      .score-setup,
      .darts-left,
      .round-start,
      .mobile-round-start,
      .view-tabs,
      .external-tabs,
      .standard-route,
      .mode,
      .segmented,
      .turn-darts li,
      .match-toolbar summary,
      .history summary,
      .tool-guide,
      .how-to,
      .vs-guide,
      .series-summary,
      .comparator-title,
      .device-picker,
      .rule-card-head,
      .comparison-note,
      .mobile-card-side,
      .result-metric,
      .compare-axis
    ) {
    border-color: var(--site-line);
    background: var(--site-soft);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .numbers button,
      .number-grid button,
      .zero-one-buttons button,
      .rule-buttons button,
      .countup-button,
      .compact-mode,
      .language-buttons button,
      .actions button,
      .dart-actions button,
      .remaining-cancel,
      .rule-options,
      .secondary-button,
      .manual-start,
      .chart-view-toolbar button,
      .quick-settings,
      .quick-top,
      .swap-button,
      .bull-setting
    ) {
    border-color: var(--site-line);
    background: var(--site-raised);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .score-number,
      .score-edit-button,
      .remaining-score strong,
      .game-head strong,
      .score-summary-round strong,
      .score-summary-meta .total strong,
      .throws strong,
      .history-row strong,
      .table-standard strong,
      .vs-score,
      .result-row > strong,
      .candidate-body strong,
      .disclaimer strong,
      .rule-summary,
      .tool-guide h2,
      .vs-guide h2,
      .site-brand > span:last-child
    ),
  .site-theme #round-current {
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .score-summary-round span,
      .score-summary-main > span,
      .score-summary-meta span,
      .score-button-line small,
      .remaining-editor small,
      .throws span,
      .throws small,
      .result-throws,
      .candidate-help,
      .candidate > p,
      .history-row,
      .how-to p,
      .editor-intro p,
      .candidate-context,
      .rule-settings > small,
      .game-message,
      .random-setup label,
      .score-setup label,
      .direct-score-form p,
      .route-option small,
      .route-note,
      .round-row,
      .turn-darts small,
      .storage-message,
      .pending-label,
      .input-card #turn-message,
      .rating-sub,
      .result-metric span,
      .result-metric small,
      .rule-list li,
      .system-picker,
      .rating-select-row label,
      .manual-label,
      .mobile-card-side small
    ),
  .site-theme #round-limit {
    color: var(--site-muted);
  }

  .site-theme :is(.candidate-head, .candidate-foot) {
    color: var(--site-muted) !important;
  }

  .site-theme
    :is(
      .current-ppd strong,
      .score-summary-meta .current-ppd strong,
      .score-summary-round,
      .mode-title span,
      .mode-line > span,
      .language-line > span,
      .mode-line > strong,
      .rule-group > span,
      .random-label,
      .start-jump,
      .candidate-meta,
      .candidate.selected .candidate-name,
      .text-button,
      .page-language-links a,
      .remaining-editor label,
      .bull-setting::before
    ),
  .site-theme #score-edit-hint {
    color: var(--site-link);
  }

  .site-theme
    :is(
      .candidate.selected,
      .candidate.best,
      .candidate-card.selected,
      .route-option.selected,
      .throws > div.filled,
      .throws > div.pending,
      .throw-slot.filled,
      .throw.filled,
      .score-player.active,
      .zero-one-buttons button.active,
      .rule-buttons button.active,
      .countup-button.active,
      .compact-mode.active,
      .language-buttons button.active,
      .rule-options button.active,
      .view-tabs button.active,
      .bull-setting button.active,
      .numbers button.pending,
      .mode button.active,
      .segmented button.active,
      .chart-view-switch button[aria-pressed="true"]
    ) {
    border-color: var(--site-accent);
    background: var(--site-selected);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .confirm,
      .reset,
      .remaining-apply,
      .manual button:not(.game-reset),
      .random-button,
      .next-round-button,
      .primary-button,
      .candidate-rank,
      .candidate-head b,
      .usage-consent button.usage-primary
    ) {
    border-color: var(--site-accent);
    background: var(--site-accent);
    color: var(--site-on-accent);
  }

  .site-theme
    :is(
      .finish-message,
      .candidate .route-result,
      .game-message.checkout,
      .custom-chip,
      .finish,
      .empty-candidate.success
    ) {
    border-color: var(--site-success);
    background: var(--site-success-soft);
    color: var(--site-success);
  }

  .site-theme
    :is(
      .throw-slot.bust,
      .dart-actions #manual-bust,
      .direct-score-form .score-entry-error,
      .result-row.bust > strong,
      .text-button.danger
    ) {
    color: var(--site-danger);
  }

  .site-theme
    :is(
      .dart-theme .recommendation-panel .current-score-block,
      .dart-theme .current-dart
    ) {
    border-color: var(--site-line);
    background: var(--site-blue-soft);
    color: var(--site-blue);
  }

  .site-theme .score-input-wrap small {
    color: var(--site-blue);
  }

  .site-theme
    :is(.start-panel .score-setup, .board-score-editing .board-disabled) {
    border-color: var(--site-purple);
    background: var(--site-purple-soft);
    color: var(--site-purple);
  }

  .site-theme .start-panel .score-setup label {
    color: var(--site-purple);
  }

  /* Screen arrangement tables retain their five chart identities. */
  .site-theme :is(.chart-sheet, .quick-view, .quick-settings) {
    border-color: var(--site-line);
    background: var(--site-surface);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .chart-tabs button,
      .chart-view-switch,
      .chart-view-toolbar .shortcut-side
    ) {
    border-color: var(--site-line);
    background: var(--site-soft);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .screen-controls p:last-child,
      .chart-tabs button small,
      .setup-lead,
      .setup-foot,
      .chart-footer,
      .quick-hint,
      .quick-legend,
      .quick-bull-legend,
      .quick-description span
    ) {
    color: var(--site-muted);
  }

  .site-theme :is(.score-block tbody td, .setup-panel, .setup-examples div) {
    background: var(--site-surface);
    color: var(--site-ink);
    border-color: var(--site-line);
  }

  .site-theme .score-block tbody tr:nth-child(even) td {
    background: var(--site-soft);
  }

  .site-theme
    :is(.quick-row h3, .quick-description, .quick-row.no-checkout h3) {
    color: var(--site-ink);
  }

  /* The advertisement artwork and iframe contents are not recolored. */
  .site-theme
    :is(
      .ad-slot,
      .ad-slot-calculator,
      .advert-space,
      .ad-placement,
      .ad-space,
      .guide-ad,
      .vs-ad,
      .ad-slot-top,
      .ad-slot-finish
    ) {
    border-color: var(--site-line);
    background-color: var(--site-soft);
    color: var(--site-muted);
  }

  .site-theme
    :is(
      .ad-label,
      .guide-ad .ad-label,
      .ad-placement > span,
      .advert-space > span,
      .ad-slot > span
    ) {
    color: var(--site-muted);
  }
}

/* Explicit component selectors resolve legacy styles that used IDs or !important. */
@media screen {
  .site-theme h1.site-tool-title,
  .site-theme .site-tool-title > span,
  .site-theme.site-error h1 {
    color: var(--site-ink);
  }

  .site-theme.home-tools-first :is(.system-links-section, .about) {
    background: var(--site-soft);
    color: var(--site-ink);
  }

  .site-theme
    :is(
      .about p,
      .news-note,
      .site-legal-links,
      .out-help,
      .usage-secondary,
      .compare-axis span,
      .status-dot,
      .note
    ),
  .site-theme .rule-options button,
  .site-theme .throw-slot:not(.filled) {
    color: var(--site-muted);
  }

  .site-theme
    :is(
      .news-link,
      .site-legal-links a,
      .game-settings summary,
      .guide-page .eyebrow,
      .system-page a,
      .system-links-head .section-kicker
    ),
  .site-theme #stats-ppd {
    color: var(--site-link);
  }

  .site-theme :is(.best-label, .side-tag) {
    border-color: var(--site-line);
    background: var(--site-soft);
    color: var(--site-link);
  }

  .site-theme.site-error :is(.header, .footer) {
    background: #24475f;
    color: #dbe9f3;
  }

  .site-theme.site-error :is(.header a, .footer a, .header .brand) {
    color: #e8f0f6;
  }

  .site-theme.site-error .tool-link {
    border-color: var(--site-line);
    background: var(--site-raised);
    color: var(--site-link);
  }

  .site-theme.site-error .btn.primary {
    border-color: var(--site-accent);
    background: var(--site-accent);
    color: var(--site-on-accent);
  }

  .site-theme .score-block tbody tr.unavailable :is(th, td) {
    color: var(--site-muted);
  }

  /* The throw order sits outside the one-piece token/score text. */
  .site-theme .darts-route-chip {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
  }

  .site-theme .route-step.darts-route-chip {
    padding: 5px 3px 5px 17px;
  }

  [data-site-tool="search"] .site-theme .darts-route-chip {
    padding-inline: 20px 5px;
  }

  .site-theme .darts-route-chip .route-target {
    white-space: nowrap;
  }

  .site-theme .candidate-route {
    flex-wrap: wrap;
    align-content: center;
    gap: 4px;
  }

  .site-theme .candidate-route .darts-term {
    flex: 0 0 auto;
  }

  .site-theme :is(.candidate-route, .route-option) .darts-chip {
    color: var(--darts-chip-foreground) !important;
    background: var(--darts-chip-background);
    border-color: var(--darts-chip-border);
    letter-spacing: 0 !important;
    font-size: 11px !important;
  }

  @media (max-width: 480px) {
    .site-theme .darts-route-chip .route-target,
    [data-site-tool="search"] .site-theme .darts-route-chip > span:last-child {
      font-size: 14px;
      letter-spacing: 0;
    }
  }
}

@media screen {
  html[data-theme="dark"] .site-theme .header-nav a {
    color: var(--site-link);
  }

  html[data-theme="dark"] .site-theme .dart-theme {
    --dart-bg: var(--site-blue-soft);
    --dart-border: #728fa4;
    --dart-ink: var(--site-blue);
  }

  html[data-theme="dark"] .site-theme .dart-theme #remaining-score {
    background: var(--site-blue-soft);
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme .dart-selector button[aria-pressed="true"] {
    background: var(--site-selected);
    color: var(--site-ink);
  }

  html[data-theme="dark"]:where([data-site-tool="cricket"]) .site-theme button {
    border-color: var(--site-line);
    background-color: var(--site-raised);
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme .p1 {
    --accent: #a5c8e1;
    --tint: #283e4d;
  }

  html[data-theme="dark"] .site-theme .p2 {
    --accent: #e0b1c5;
    --tint: #472f3c;
  }

  html[data-theme="dark"] .site-theme .markrow .mark.p1 {
    color: #a5c8e1;
  }

  html[data-theme="dark"] .site-theme .markrow .mark.p2 {
    color: #e0b1c5;
  }

  html[data-theme="dark"][data-site-tool="cricket"] .site-theme button.selected {
    color: #182b37 !important;
  }

  html[data-theme="dark"] .site-theme :is(.bull-target, .board-miss) {
    border-color: var(--site-line);
    background: var(--site-raised);
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme .aimbar .aim-full,
  html[data-theme="dark"] .site-theme .aimbar .aim-short {
    color: inherit;
  }

  html[data-theme="dark"] .site-theme :is(.primary, #vs-confirm) {
    color: #182b37;
  }

  html[data-theme="dark"] .site-theme .multipliers .triple,
  html[data-theme="dark"] .site-theme .multiplier-row button:nth-child(1) {
    border-color: var(--darts-t-border, #916e7d);
    background: var(--darts-t-background, #472e38);
    color: var(--darts-t-foreground, #efd0db);
  }
}

@media screen {
  html[data-theme="dark"]:has(> body.site-theme) {
    color-scheme: dark;
    background: #111b24;
  }

  html[data-theme="dark"] body.site-theme {
    color-scheme: dark;
    --site-canvas: #111b24;
    --site-surface: #1a2935;
    --site-raised: #223746;
    --site-soft: #233846;
    --site-selected: #304a5e;
    --site-ink: #e2eaf0;
    --site-muted: #b3c3d0;
    --site-line: #556e82;
    --site-accent: #91b3ce;
    --site-on-accent: #152838;
    --site-link: #accce4;
    --site-focus: #e6bf7f;
    --site-danger: #efb0ae;
    --site-danger-soft: #442a2c;
    --site-warning: #e8cc8d;
    --site-warning-soft: #423923;
    --site-success: #b6d6af;
    --site-success-soft: #294032;
    --site-blue: #b8ccdb;
    --site-blue-soft: #283c45;
    --site-purple: #d0bfdf;
    --site-purple-soft: #3c3244;
    --site-shadow: 0 12px 32px rgb(0 0 0 / 18%);
  }

  /* Compiled search UI: change UI utility colors, never SVG fill/stroke rules. */
  html[data-theme="dark"] .site-theme
    :is(
      .bg-white,
      [class~="bg-white/80"],
      [class~="bg-white/95"],
      [class~="bg-white/90"],
      [class~="bg-white/70"]
    ) {
    background-color: var(--site-surface);
  }

  html[data-theme="dark"] .site-theme
    :is(
      .bg-slate-50,
      .bg-slate-100,
      .bg-blue-50,
      .bg-emerald-50,
      .bg-rose-50,
      .bg-amber-50,
      .bg-orange-100
    ) {
    background-color: var(--site-soft);
  }

  html[data-theme="dark"] .site-theme
    :is(
      .text-slate-950,
      .text-slate-900,
      .text-slate-800,
      .text-slate-700,
      .text-blue-700,
      .text-emerald-800,
      .text-emerald-700
    ) {
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme
    :is(.text-slate-600, .text-slate-500, .text-slate-400, .text-slate-300) {
    color: var(--site-muted);
  }

  html[data-theme="dark"] .site-theme :is(.text-rose-700, .text-rose-600) {
    color: var(--site-danger);
  }

  html[data-theme="dark"] .site-theme :is(.text-amber-800, .text-orange-900) {
    color: var(--site-warning);
  }

  html[data-theme="dark"] .site-theme
    :is(
      .border-white,
      [class~="border-white/80"],
      .border-slate-100,
      .border-slate-200,
      .border-blue-100,
      .border-blue-200,
      .border-emerald-200,
      .border-emerald-300,
      .border-rose-200,
      .border-amber-200
    ) {
    border-color: var(--site-line);
  }

  html[data-theme="dark"] .site-theme :is(.bg-gradient-to-b, [class*="bg-[radial-gradient"]) {
    background-image: none;
    background-color: var(--site-canvas);
  }

  html[data-theme="dark"] .site-theme :is(.bg-blue-600, .bg-blue-700) {
    background-color: #365f7b;
    color: #f1f5f9;
  }

  html[data-theme="dark"] .site-theme
    :is(
      .best-label,
      .candidate:not(.best) .candidate-rank,
      .current-dart,
      .tool-guide-link,
      .training-guide-link,
      .related-tool a,
      .dart-actions .next-dart,
      .manual .game-reset
    ) {
    border-color: var(--site-line);
    background: var(--site-soft);
    color: var(--site-link);
  }

  html[data-theme="dark"] .site-theme
    :is(
      .game-head,
      .throws > div,
      .throw-slot,
      .candidate.unavailable,
      .rule-options button,
      .view-tabs button,
      .external-tabs a,
      .bull-setting button,
      .settings-panel fieldset,
      .first-options span,
      .result-player,
      .round-record,
      .recovery-row button,
      .match-toolbar summary,
      .history summary,
      .compare-axis,
      .rating-input,
      .source-status
    ) {
    border-color: var(--site-line);
    background-color: var(--site-surface);
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme
    :is(
      .cricket-placeholder,
      .markrow.locked,
      .hitgrid .locked,
      .hitgrid .hit.aimed-hit.locked
    ) {
    background: #303b34;
    color: #bac4b8;
  }

  html[data-theme="dark"] .site-theme
    :is(
      .markrow.locked .mark,
      .round-display,
      .round-display > span,
      .round-display small,
      .settings-button,
      .markrow small,
      .cover-rate
    ) {
    color: var(--site-muted);
  }

  html[data-theme="dark"] .site-theme :is(.score-player, .current-player, .other-player) {
    --accent: #a9ca9c;
    --tint: #2b4434;
  }

  html[data-theme="dark"] .site-theme :is(.player-card, .input-card) {
    --player: #accce4;
    --active: #accce4;
    --tint: #2b4054;
    --active-tint: #2b4054;
  }

  html[data-theme="dark"] .site-theme :is([data-player="b"], [data-player="2"], .player-b) {
    --accent: #d0bfdf;
    --player: #d0bfdf;
    --tint: #3c3244;
  }

  html[data-theme="dark"] .site-theme
    :is(.double, .multipliers .double, .multiplier-row button:nth-child(2)) {
    background: var(--site-blue-soft);
    border-color: #7594aa;
    color: var(--site-blue);
  }

  html[data-theme="dark"] .site-theme
    :is(.triple, .multipliers .triple, .multiplier-row button:nth-child(1)) {
    background: #443329;
    border-color: #b5977c;
    color: #ead4b9;
  }

  html[data-theme="dark"] .site-theme :is(.multipliers .single, .multiplier-row button:nth-child(3)) {
    background: var(--site-success-soft);
    border-color: #819f7a;
    color: var(--site-success);
  }

  html[data-theme="dark"] .site-theme :is(.bull button, .extra-row #vs-bull25) {
    background: var(--site-success-soft);
    border-color: var(--site-success);
    color: var(--site-success);
  }

  html[data-theme="dark"] .site-theme :is(.bull button:last-child, .extra-row #vs-bull50) {
    background: var(--site-danger-soft);
    border-color: var(--site-danger);
    color: var(--site-danger);
  }

  html[data-theme="dark"] .site-theme
    :is(
      .multipliers button.active,
      .multipliers button.selected,
      .multiplier-row button[aria-pressed="true"],
      .hitgrid .selected
    ) {
    outline: 2px solid var(--site-focus);
    outline-offset: 1px;
  }

  html[data-theme="dark"] .site-theme
    :is(
      .system-result,
      .mobile-card-side,
      .rule-card-head,
      .source-status,
      .side-tag
    ) {
    background: var(--site-soft);
    border-color: var(--site-line);
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme
    :is(.rating-select-row select, .system-picker select, .manual-field input) {
    color: var(--site-ink);
    background: var(--site-raised);
  }

  html[data-theme="dark"] .site-theme :is(.rating-input, .table-shell) :is(th, td) {
    background-color: var(--site-surface);
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme .table-shell tbody tr:nth-child(even) td,
  html[data-theme="dark"] .site-theme .table-shell tbody tr:hover td,
  html[data-theme="dark"] .site-theme .table-shell thead th {
    background-color: var(--site-soft);
  }

  html[data-theme="dark"] .site-theme .table-shell :is(.source-group, .target-group, .approx-head) {
    background: #345166 !important;
    color: var(--site-ink) !important;
  }

  

  

  

  

  

  

  

  html[data-theme="dark"] .site-theme
    :is(
      .score-summary-round,
      .score-summary-meta,
      .score-summary-meta > div + div
    ) {
    border-color: var(--site-line);
  }
}

/* Final contrast pass: small labels, popup actions and secondary page sections. */
@media screen {
  .site-theme
    :is(
      .text-slate-400,
      .text-slate-500,
      .empty-result,
      .score-player .player-label,
      .score-player .score-metrics span,
      .site-legal-links,
      .site-legal-links a,
      .site-legal-sep
    ) {
    color: var(--site-muted);
  }

  .site-theme
    :is(
      .game-selector > summary,
      .score-player .player-label > span,
      .stats span,
      .route span,
      .rule-link,
      .site-pr-note strong
    ) {
    color: var(--site-link);
  }

  .site-theme :is(.rule-badge, .site-pr-note) {
    background: var(--site-soft);
    color: var(--site-ink);
    border-color: var(--site-line);
  }

  .site-theme .rule-badge {
    border-left: 3px solid var(--system, var(--site-accent));
  }

  .site-theme :is(.system-header a, .system-footer a) {
    color: #e8f0f6;
  }

  .site-theme .app-shell > footer {
    background: var(--site-surface);
    color: var(--site-muted);
    border-color: var(--site-line);
  }

  .site-theme .app-shell > footer a {
    color: var(--site-link);
    background: transparent;
    border-color: var(--site-line);
  }

  .site-theme :is(.skip-link, .system-skip-link) {
    color: var(--site-link);
    background: var(--site-raised);
  }
}

@media screen {
  html[data-theme="dark"] .site-theme :is(.primary, #vs-confirm) {
    border-color: var(--site-accent);
    background: var(--site-accent);
    color: var(--site-on-accent);
  }

  html[data-theme="dark"] .site-theme #settingsOpen {
    border-color: var(--site-line);
    background: var(--site-raised);
    color: var(--site-ink);
  }

  html[data-theme="dark"] .site-theme .site-language-menu > button.selected {
    border-color: var(--site-accent) !important;
    background: var(--site-accent) !important;
    color: var(--site-on-accent) !important;
  }

  html[data-theme="dark"] .site-theme .dart-empty {
    background: var(--site-soft);
    color: var(--site-muted);
  }

  html[data-theme="dark"] .site-theme .hit-input-switch button {
    border-color: var(--site-line);
    background: var(--site-surface);
    color: var(--site-muted);
  }

  html[data-theme="dark"] .site-theme .hit-input-switch button[aria-pressed="true"] {
    border-color: var(--site-accent);
    background: var(--site-selected);
    color: var(--site-ink);
  }
}

@media screen {
  .site-theme #arrangement-route {
    color: var(--site-ink);
  }

  .site-theme :is(.news-note, .news-more) {
    background: var(--site-soft);
    color: var(--site-muted);
    border-color: var(--site-line);
  }

  .site-theme :is(.news-more span, .table-system-name small) {
    color: var(--site-muted);
  }

  .site-theme :is(.news-intro .eyebrow, .how-to a, .help a) {
    color: var(--site-link);
  }

  .site-theme .chart-header > p {
    color: var(--site-ink);
  }

  .site-theme.home-tools-first > footer {
    background: #24475f;
    color: #e8f0f6;
  }

  .site-theme.home-tools-first
    > footer
    :is(.site-legal-links, a, .site-legal-sep),
  body.site-theme .system-footer a,
  body.site-theme .system-header a,
  body.site-theme .guide-hero .guide-meta a {
    color: #e8f0f6;
  }
}

@media screen {
  html[data-theme="dark"] .site-theme .play-panel .board-status .status-dot {
    background: var(--site-surface);
    color: var(--site-muted);
  }
}
