/* ==========================================================
   v178.5 — FINAL GENERIC TOKEN AUDIT
   Generic inherits v177.1 Default geometry. This file is loaded LAST and
   only replaces legacy Default-blue identity states with the active palette.
   Baseball-semantic colors (Ball/Strike, outs/runs, warnings, danger) stay independent.
   ========================================================== */
body.theme-default.theme-generic{
  --generic-tint:color-mix(in srgb,var(--accent) 9%,var(--panel));
  --generic-tint-strong:color-mix(in srgb,var(--accent) 17%,var(--panel));
  --generic-border:color-mix(in srgb,var(--accent) 40%,var(--line));
}
body.theme-default.theme-generic.dark-mode{
  --generic-tint:color-mix(in srgb,var(--accent) 10%,#1a1b1e);
  --generic-tint-strong:color-mix(in srgb,var(--accent) 18%,#1a1b1e);
  --generic-border:color-mix(in srgb,var(--accent) 44%,#484c52);
}

/* Score grid: current batter and active inning must never fall back to Default blue. */
body.theme-default.theme-generic:not(.home-page) .unified-score-table .score-head-inning.active-inning-col,
body.theme-default.theme-generic.dark-mode:not(.home-page) .unified-score-table .score-head-inning.active-inning-col{
  color:var(--accent)!important;
  background:var(--generic-tint)!important;
  box-shadow:inset 0 -2px 0 var(--accent)!important;
  text-shadow:0 0 8px color-mix(in srgb,var(--accent) 26%,transparent)!important;
}
body.theme-default.theme-generic:not(.home-page) .unified-score-table .play-cell.active-inning-col,
body.theme-default.theme-generic:not(.home-page) .unified-score-table td.active-inning-col:not(.score-head-inning),
body.theme-default.theme-generic.dark-mode:not(.home-page) .unified-score-table .play-cell.active-inning-col,
body.theme-default.theme-generic.dark-mode:not(.home-page) .unified-score-table td.active-inning-col:not(.score-head-inning){
  background:color-mix(in srgb,var(--accent) 5%,var(--panel))!important;
}
body.theme-default.theme-generic:not(.home-page) .v118-mobile-score-table .batter-row.current-batter>.sticky-player,
body.theme-default.theme-generic.dark-mode:not(.home-page) .v118-mobile-score-table .batter-row.current-batter>.sticky-player,
body.theme-default.theme-generic:not(.home-page) .unified-score-table .batter-row.current-batter>.sticky-ord,
body.theme-default.theme-generic:not(.home-page) .unified-score-table .batter-row.current-batter>.sticky-pos{
  background:var(--generic-tint-strong)!important;
  color:var(--text)!important;
}
body.theme-default.theme-generic:not(.home-page) .v118-mobile-score-table .batter-row.current-batter>.sticky-player{
  box-shadow:inset 4px 0 0 var(--accent),inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent)!important;
}
body.theme-default.theme-generic:not(.home-page) .v118-mobile-score-table .current-batter .mobile-lineup-rail{
  background:transparent!important;
}
body.theme-default.theme-generic:not(.home-page) .v118-mobile-score-table .current-batter .mobile-rail-order,
body.theme-default.theme-generic.dark-mode:not(.home-page) .v118-mobile-score-table .current-batter .mobile-rail-order{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:var(--generic-accent-ink,#fff)!important;
}
body.theme-default.theme-generic:not(.home-page) .v118-mobile-score-table .mobile-rail-meta>b,
body.theme-default.theme-generic:not(.home-page) .unified-score-table .sticky-lineup-banner .title-glyph{
  color:var(--accent)!important;
}

/* Library / Personal team identity. Manage remains secondary and neutral. */
body.theme-default.theme-generic .v176-saved-team-card{
  border-color:color-mix(in srgb,var(--accent) 32%,var(--line))!important;
  box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 5%,transparent)!important;
}
body.theme-default.theme-generic .v176-saved-team-card small,
body.theme-default.theme-generic .v174-history-source.personal,
body.theme-default.theme-generic .v175-compact-source.personal,
body.theme-default.theme-generic .v176-team-template-bar small{
  color:var(--accent)!important;
}
body.theme-default.theme-generic .v174-history-source.personal,
body.theme-default.theme-generic .v175-compact-source.personal{
  background:var(--generic-tint)!important;
  border-color:var(--generic-border)!important;
}
body.theme-default.theme-generic .v175-team-mark.personal{
  color:var(--accent)!important;
  background:var(--generic-tint)!important;
  border-color:var(--generic-border)!important;
}
body.theme-default.theme-generic .v176-team-template-bar{
  border-color:var(--generic-border)!important;
  background:color-mix(in srgb,var(--accent) 4%,var(--panel))!important;
}
body.theme-default.theme-generic .v175-source-empty button,
body.theme-default.theme-generic .v176-team-template-bar button.primary,
body.theme-default.theme-generic .v176-team-manager-actions button.primary{
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff 12%),var(--accent))!important;
  border-color:var(--accent)!important;
  color:var(--generic-accent-ink,#fff)!important;
}

/* Play Editor decorative/interactive chrome. Ball/Strike outcome buttons are intentionally untouched. */
body.theme-default.theme-generic #playModal .v138-strike-zone,
body.theme-default.theme-generic #pitchHistoryModal .v138-strike-zone,
body.theme-default.theme-generic #playModal .v137-zone:before{
  border-color:var(--accent)!important;
  background-color:color-mix(in srgb,var(--accent) 5%,transparent)!important;
}
body.theme-default.theme-generic #playModal .v138-live-location>button,
body.theme-default.theme-generic #playModal .v137-zone-head button,
body.theme-default.theme-generic #playModal #runnerOutCode,
body.theme-default.theme-generic #playModal [data-runner-out]{color:var(--accent)!important}
body.theme-default.theme-generic #playModal .v138-zone>i:not(.is-ball):not(.is-strike):not(.is-play):not(.is-hbp):not(.is-event),
body.theme-default.theme-generic #playModal .v137-zone>i,
body.theme-default.theme-generic #playModal .v137-mini-zone>i{
  background:var(--accent)!important;
}
body.theme-default.theme-generic #playModal .v151-pitch-events-head em{
  color:var(--accent)!important;
  background:var(--generic-tint)!important;
}
body.theme-default.theme-generic #playModal .v151-pitch-event-buttons button.selected{
  color:var(--accent)!important;
  border-color:var(--generic-border)!important;
  background:var(--generic-tint-strong)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 58%,transparent)!important;
}
body.theme-default.theme-generic #playModal .play-card.pitch-mode-editor .record-pitch-btn{
  border-color:var(--generic-border)!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,var(--panel)),color-mix(in srgb,var(--accent) 13%,var(--panel)))!important;
  color:var(--accent)!important;
  box-shadow:0 3px 9px color-mix(in srgb,var(--accent) 9%,transparent)!important;
}
body.theme-default.theme-generic #playModal .play-card.pitch-mode-editor .record-pitch-btn>span,
body.theme-default.theme-generic #playModal .play-card.pitch-mode-editor .record-pitch-btn>strong{color:var(--accent)!important}
body.theme-default.theme-generic #playModal #applyPlayBtn:not(:disabled),
body.theme-default.theme-generic.dark-mode #playModal #applyPlayBtn:not(:disabled),
body.theme-default.theme-generic:not(.dark-mode) #playModal #applyPlayBtn:not(:disabled),
body.theme-default.theme-generic.play-editor-open #playModal>.play-card>.modal-actions #applyPlayBtn:not(:disabled){
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff 12%),var(--accent))!important;
  border-color:var(--accent)!important;
  color:var(--generic-accent-ink,#fff)!important;
  box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 22%,transparent)!important;
}
body.theme-default.theme-generic.editor-pitch-v110 #playModal .complete-pa-heading{
  background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--panel)),var(--panel))!important;
}
body.theme-default.theme-generic.editor-pitch-v110 #playModal .complete-pa-heading span::before{
  background:var(--accent)!important;color:var(--generic-accent-ink,#fff)!important;
}

/* Defense picker is UI selection, not baseball-semantic color. */
body.theme-default.theme-generic #v140DefensePicker .v1696-defense-field button.selected,
body.theme-default.theme-generic.dark-mode #v140DefensePicker .v1696-defense-field button.selected,
body.theme-default.theme-generic #v140DefensePicker .v1697-defense-field button.selected,
body.theme-default.theme-generic.dark-mode #v140DefensePicker .v1697-defense-field button.selected{
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff 12%),var(--accent))!important;
  border-color:color-mix(in srgb,var(--accent) 72%,#fff)!important;
  color:var(--generic-accent-ink,#fff)!important;
  box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 26%,transparent)!important;
}

/* New Game / Assist themeable identity. Freeform warning colors remain amber. */
body.theme-default.theme-generic #modeModal .setup-actions :is(#setupContinue,#setupStart):not(:disabled),
body.theme-default.theme-generic.dark-mode #modeModal .setup-actions :is(#setupContinue,#setupStart):not(:disabled){
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff 12%),var(--accent))!important;
  border-color:var(--accent)!important;
  color:var(--generic-accent-ink,#fff)!important;
  box-shadow:0 6px 15px color-mix(in srgb,var(--accent) 21%,transparent)!important;
}
body.theme-default.theme-generic .v171-setup-assist input{accent-color:var(--accent)!important}
body.theme-default.theme-generic .v171-assist-badge,
body.theme-default.theme-generic .v171-runner-assist button{background:var(--accent)!important;color:var(--generic-accent-ink,#fff)!important}
body.theme-default.theme-generic .v171-assist-strip>button,
body.theme-default.theme-generic .v171-runner-assist>span{color:var(--accent)!important}
body.theme-default.theme-generic .v171-assist-strip>button{border-color:var(--generic-border)!important}
body.theme-default.theme-generic .v149-runner-card.v171-assist-prefilled{box-shadow:inset 3px 0 0 var(--accent)!important}
body.theme-default.theme-generic #modeModal .v1722-assist-row #setupAssistMode:checked{background:var(--accent)!important;border-color:var(--accent)!important}
body.theme-default.theme-generic #modeModal .v1722-ready-card,
body.theme-default.theme-generic #modeModal .v174-lineup-note{background:var(--generic-tint)!important;border-color:var(--generic-border)!important}
body.theme-default.theme-generic #modeModal .v1722-ready-card span{color:var(--accent)!important}
body.theme-default.theme-generic #modeModal .v1767-team-source-toggle button.selected{
  color:var(--accent)!important;
  background:var(--generic-tint-strong)!important;
  border-color:var(--generic-border)!important;
}

/* Protect semantic states from the generic identity palette. */
body.theme-default.theme-generic .danger,
body.theme-default.theme-generic #confirmModal #confirmOk{color:#c62828!important}
body.theme-default.theme-generic .standalone-out,
body.theme-default.theme-generic .play-entry.out:not(.runner-out) .play-code{color:var(--score-out,#d94a43)!important}
body.theme-default.theme-generic .play-entry .runner-out-path,
body.theme-default.theme-generic .play-entry .runner-out-mark{stroke:var(--score-out,#d94a43)!important}
body.theme-default.theme-generic .rbi-code{color:var(--score-run,#45bb69)!important}
body.theme-default.theme-generic .play-entry.scored .diamond-fill{fill:var(--score-run,#45bb69)!important}
