/* ==========================================================
   v179.9.28 — Game Info + Generic accent consistency pass
   Targeted UI-only fixes. No scoring, storage, score-grid geometry,
   navigation, or modal stacking behavior changes.
   ========================================================== */

/* GAME INFORMATION
   v179.9.22 introduced generated empty marks for date/time inputs. Because
   the approved 3x2 card uses display:contents for .game-field-copy on mobile,
   Safari can position that generated mark in the neighboring Weather cell.
   This is the source of the apparent second Weather dash. Restore the earlier
   contract: text fields own their native placeholder; blank date/time fields
   simply show the icon with no synthetic mark. */
body[data-theme-family] .game-info .game-field.game-field-date .game-field-copy::after,
body[data-theme-family] .game-info .game-field.game-field-startTime .game-field-copy::after,
body .game-info .game-field.is-empty:has(input[type="date"],input[type="time"]) .game-field-copy::after,
body[data-theme-family] .game-info .game-field.is-empty:has(input[type="date"],input[type="time"]) .game-field-copy::after,
body #gameInfoManagerModal .v102-info-tile.is-empty:has(input[type="date"],input[type="time"])::after{
  content:none!important;
  display:none!important;
  opacity:0!important;
}

/* Weather has exactly one native placeholder and no generated marks. */
body[data-theme-family] .game-info.with-extras .game-field-weather::before,
body[data-theme-family] .game-info.with-extras .game-field-weather::after,
body[data-theme-family] .game-info.with-extras .game-field-weather .game-field-copy::before,
body[data-theme-family] .game-info.with-extras .game-field-weather .game-field-copy::after{
  content:none!important;
  display:none!important;
}
body[data-theme-family] .game-info.with-extras .game-field-weather input[data-game-key="weather"]::placeholder{
  opacity:1!important;
  color:var(--muted)!important;
  -webkit-text-fill-color:var(--muted)!important;
  text-shadow:none!important;
}
body[data-theme-family="wrigley"] .game-info.with-extras .game-field-weather input[data-game-key="weather"]::placeholder{
  color:var(--wr-cream-dim,#c9c1b1)!important;
  -webkit-text-fill-color:var(--wr-cream-dim,#c9c1b1)!important;
}

/* GENERIC — remove legacy Default-blue identity from Player/Substitutions. */
body[data-theme-family="generic"] #playerModal #savePlayerBtn,
body[data-theme-family="generic"].dark-mode #playerModal #savePlayerBtn{
  background:var(--accent)!important;
  background-color:var(--accent)!important;
  background-image:none!important;
  border-color:var(--accent)!important;
  color:var(--generic-accent-ink,#fff)!important;
  -webkit-text-fill-color:var(--generic-accent-ink,#fff)!important;
  box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 20%,transparent)!important;
}

/* GENERIC — Play Details filter selection must follow the selected palette,
   including Dark Mode where v162.10 had a higher-specificity blue rule. */
body[data-theme-family="generic"] #v162PlayDetailModal .v16210-map-filters .v16210-filter.active,
body[data-theme-family="generic"].dark-mode #v162PlayDetailModal .v16210-map-filters .v16210-filter.active{
  background:color-mix(in srgb,var(--accent) 20%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--accent) 68%,var(--line))!important;
  color:color-mix(in srgb,var(--accent) 78%,#fff 22%)!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)!important;
}
body[data-theme-family="generic"] #v162PlayDetailModal .v16210-map-filters .v16210-filter.active small,
body[data-theme-family="generic"].dark-mode #v162PlayDetailModal .v16210-map-filters .v16210-filter.active small{
  color:currentColor!important;
}

/* GENERIC — Assist Mode is identity UI, not a blue semantic state. */
body[data-theme-family="generic"] #playModal .v171-assist-strip:not(.is-off){
  background:color-mix(in srgb,var(--accent) 9%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--accent) 48%,var(--line))!important;
  box-shadow:none!important;
}
body[data-theme-family="generic"].dark-mode #playModal .v171-assist-strip:not(.is-off){
  background:color-mix(in srgb,var(--accent) 14%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--accent) 50%,var(--line))!important;
}
body[data-theme-family="generic"] #playModal .v171-assist-strip:not(.is-off) .v171-assist-badge{
  background:var(--accent)!important;
  color:var(--generic-accent-ink,#fff)!important;
}
body[data-theme-family="generic"] #playModal .v171-assist-strip:not(.is-off)>button{
  color:var(--accent)!important;
  border-color:color-mix(in srgb,var(--accent) 52%,var(--line))!important;
  background:transparent!important;
}
body[data-theme-family="generic"] #playModal .v171-runner-assist{
  background:color-mix(in srgb,var(--accent) 7%,var(--panel))!important;
  border-color:color-mix(in srgb,var(--accent) 36%,var(--line))!important;
}
body[data-theme-family="generic"].dark-mode #playModal .v171-runner-assist{
  background:color-mix(in srgb,var(--accent) 11%,var(--panel))!important;
}
body[data-theme-family="generic"] #playModal .v171-runner-assist>span{color:var(--accent)!important}
body[data-theme-family="generic"] #playModal .v171-runner-assist button{
  background:var(--accent)!important;
  color:var(--generic-accent-ink,#fff)!important;
}

/* GENERIC DARK — Guided card must stay on a dark neutral surface. The legacy
   light fallback was creating the white card visible inside the dark editor. */
body[data-theme-family="generic"].dark-mode #playModal .v172-guardrail-strip.is-guided{
  background:var(--panel2,#2a2a2a)!important;
  border-color:var(--line,#4a4a4a)!important;
  color:var(--text,#f5f5f5)!important;
  box-shadow:none!important;
}
body[data-theme-family="generic"].dark-mode #playModal .v172-guardrail-strip.is-guided p,
body[data-theme-family="generic"].dark-mode #playModal .v172-guardrail-strip.is-guided p b{
  color:var(--text,#f5f5f5)!important;
}
body[data-theme-family="generic"].dark-mode #playModal .v172-guardrail-strip.is-guided>button{
  background:transparent!important;
  color:var(--text,#f5f5f5)!important;
  border-color:var(--line,#4a4a4a)!important;
}

/* GENERIC PITCH ENTRY — preserve clear Ball/Strike distinction without
   importing Default blue into non-blue Generic palettes. Ball is neutral;
   Strike remains the baseball-semantic red. */
body[data-theme-family="generic"] #playModal .v140-pitch-inputs button.v143-ball,
body[data-theme-family="generic"].dark-mode #playModal .v140-pitch-inputs button.v143-ball{
  border-color:color-mix(in srgb,var(--muted) 72%,var(--line))!important;
  background:color-mix(in srgb,var(--muted) 7%,var(--panel2))!important;
  color:var(--text)!important;
  box-shadow:none!important;
}
body[data-theme-family="generic"] #playModal .v141-sequence article.is-ball>span,
body[data-theme-family="generic"] #playModal .v141-sequence article.is-ball>em,
body[data-theme-family="generic"] #pitchHistoryModal .pitch-history-row.tone-ball .pitch-history-no{
  border-color:color-mix(in srgb,var(--muted) 72%,var(--line))!important;
  color:var(--text)!important;
  background:var(--panel2)!important;
}
