/* exerciseCard.css — the standalone exercise card's exclusive additions: the one-tap Too Easy /
   Too Hard / Notes action row the FOCUSED card adds under its head row.
   Shared deck-card chrome (compact/timer/counter/status/name) lives in exerciseDeckOfCards.css.
   Extracted from index.css 2026-07-27. Inherits design tokens,
   glass-card/button/flex foundations and color scheme from index.css, loaded first. */

/* One-tap outcome signals on the focus card — gym-floor tap targets */
.deck-card-actions {
  display: flex;
  gap: 6px;
  margin-top: 6px;
}
.deck-action-btn {
  flex: 1;
  gap: 6px;
  min-height: 40px;
  border-radius: 10px;
  border: 1px solid var(--border-color);
  background: rgba(255, 255, 255, 0.04);
  color: inherit;
  font-weight: 700;
  font-size: 12px;
  transition: transform 0.12s ease, background 0.2s, border-color 0.2s;
}
.deck-action-btn i {
  font-size: 12px;
}
.deck-action-btn:active {
  transform: scale(0.93);
}
.deck-action-easy {
  border-color: rgba(16, 185, 129, 0.4);
  color: var(--success);
}
.deck-action-easy:hover {
  background: rgba(16, 185, 129, 0.12);
}
/* Pressed state: the tap already registered, so the fill carries the same weight as a real toggle
   switch rather than a hover tint — a second tap here is what un-registers it. */
.deck-action-easy.active {
  background: var(--success);
  border-color: var(--success);
  color: var(--text-dark);
}
.deck-action-hard {
  border-color: rgba(245, 158, 11, 0.4);
  color: #f59e0b;
}
.deck-action-hard:hover {
  background: rgba(245, 158, 11, 0.12);
}
.deck-action-hard.active {
  background: #f59e0b;
  border-color: #f59e0b;
  color: var(--text-dark);
}
.deck-action-feedback {
  border-color: rgba(239, 68, 68, 0.35);
  color: var(--danger);
}
.deck-action-feedback:hover {
  background: rgba(239, 68, 68, 0.12);
}
/* "A note is attached here" — a SEPARATE mark from any signal: a card can carry a note,
   a signal, both or neither, so this must not reuse the pressed fill the toggles use or the two
   states become one. A corner dot rather than a fill, because unlike the toggles this button is not
   a toggle — tapping it opens the modal whether or not a note exists. */
.deck-action-feedback.has-note,
.circuit-sig.note.has-note {
  position: relative;
  border-color: var(--danger);
}
.deck-action-feedback.has-note::after,
.circuit-sig.note.has-note::after {
  content: "";
  position: absolute;
  top: -3px;
  right: -3px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--danger);
  /* Ringed in the card's own background so the dot stays legible against the button border it
     overlaps, at arm's length on a bright floor. */
  box-shadow: 0 0 0 2px var(--card-bg, #1b1f24);
}
.deck-card-past-summary {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--text-muted);
  flex-shrink: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 45%;
}

/* The name tinted by feedback logged for this exercise (exerciseCard.js's getExerciseSignalColor) —
   a colour only the running code knows, handed over as a custom property. */
.deck-card-name.has-signal-color,
.deck-card-name-inline.has-signal-color {
  color: var(--signal-color);
}
/* Chained to beat exerciseDeckOfCards.css's future-session tint (0,3,0 specificity): a signal from
   logged feedback always wins over the plain "this is a future plan" amber tint. */
.exercise-deck-card.future-session .deck-card-name.has-signal-color,
.exercise-deck-card.future-session .deck-card-name-inline.has-signal-color {
  color: var(--signal-color);
}
