/* Musical rewards stay in the same quiet practice room. */
.rewards-mount { min-width: 0; }
.rewards-card { padding: 22px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.rewards-heading { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 16px; }
.rewards-eyebrow, .rewards-next-label { font-size: 10px; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.rewards-earned { font-size: 10px; color: var(--match); }
.rewards-card h3 { margin: 0; font: 400 clamp(24px, 3.7vw, 31px)/1.16 var(--serif); letter-spacing: -.035em; color: var(--paper); }
.rewards-card h3 + .rewards-tabs, .rewards-card h3 + .rewards-score { margin-top: 18px; }
.rewards-description { margin: 10px 0 19px; color: var(--muted); font-size: 12px; line-height: 1.65; max-width: 52ch; }
.rewards-tabs { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.rewards-tabs button { min-height: 44px; border: 1px solid var(--line); border-radius: 7px; background: transparent; color: var(--muted); padding: 9px 12px; font-size: 12px; cursor: pointer; }
.rewards-tabs button[aria-pressed="true"] { color: var(--match); background: #a5d8b908; border-color: #a5d8b94d; }
.rewards-score { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-bottom: 19px; }
.rewards-note { min-width: 0; min-height: 108px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; border: 1px solid #a5d8b922; border-radius: 8px; background: #10242270; transition: background .18s, border-color .18s, color .18s; }
.rewards-degree { font-size: 10px; color: var(--muted); letter-spacing: .05em; }
.rewards-chord { font: 400 31px/1 var(--serif); color: var(--paper); letter-spacing: -.025em; }
.rewards-note-foot { font-size: 10px; color: var(--muted); }
.rewards-note.is-playing { background: #a5d8b91c; border-color: var(--match); }
.rewards-note.is-playing .rewards-chord { color: var(--match); }
.rewards-card-locked { background: transparent; }
.rewards-card-locked .rewards-note { background: #a5d8b904; border-color: var(--line); }
.rewards-card-locked .rewards-chord { color: #c1cabe; }
.rewards-requirement { margin: 0; font-size: 12px; line-height: 1.7; color: var(--muted); }
.rewards-actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; column-gap: 16px; row-gap: 8px; }
.rewards-play { min-height: 44px; padding: 10px 15px; border: 1px solid #a5d8b959; border-radius: 8px; background: #a5d8b910; color: var(--match); font-size: 12px; font-weight: 500; cursor: pointer; }
.rewards-play[aria-pressed="true"] { background: #a5d8b91f; }
.rewards-text-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; padding: 8px 0; border: 0; background: transparent; color: var(--muted); font-size: 11px; cursor: pointer; }
.rewards-text-button span { font-size: 17px; color: var(--match); }
.rewards-play:hover, .rewards-tabs button:hover, .rewards-option button:hover, .rewards-choices button:hover { border-color: var(--match); background: #a5d8b918; }
.rewards-text-button:hover { color: var(--paper); }
.rewards-options { margin-top: 17px; padding-top: 2px; border-top: 1px solid var(--line); }
.rewards-options[hidden] { display: none; }
.rewards-option { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 0; }
.rewards-option + .rewards-option { border-top: 1px solid var(--line); }
.rewards-option strong { color: var(--paper); font-size: 12px; font-weight: 500; }
.rewards-option p { margin: 5px 0 0; max-width: 43ch; font-size: 11px; line-height: 1.6; color: var(--muted); }
.rewards-option button { flex: 0 0 auto; min-height: 44px; min-width: 60px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; background: transparent; color: var(--muted); font-size: 11px; cursor: pointer; }
.rewards-option button[aria-pressed="true"] { border-color: #a5d8b969; background: #a5d8b915; color: var(--match); }
.rewards-status { margin: 12px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.rewards-status:empty { margin: 0; }
.rewards-next { display: grid; grid-template-columns: 50px minmax(0, 1fr); align-items: start; gap: 11px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.rewards-next-label { margin-top: 2px; font-size: 9px; }
.rewards-next strong { font-size: 12px; font-weight: 500; color: var(--paper); }
.rewards-next p { margin: 5px 0 0; font-size: 11px; line-height: 1.65; color: var(--muted); }
.rewards-challenge { margin-top: 16px; }
.rewards-note-missing { border-style: dashed; background: transparent; }
.rewards-note-missing .rewards-chord { color: var(--gold); }
.rewards-choices { display: flex; gap: 8px; }
.rewards-choices button { flex: 1; min-height: 48px; min-width: 44px; padding: 9px; border: 1px solid #a5d8b944; border-radius: 8px; background: transparent; color: var(--paper); font: 400 22px/1 var(--serif); cursor: pointer; }
.rewards-solved { margin: 0; color: var(--match); font-size: 12px; line-height: 1.6; }
.rewards-card button:focus-visible { outline: 2px solid var(--match); outline-offset: 3px; }
@media (max-width: 380px) {
  .rewards-card { padding: 18px 16px; }
  .rewards-earned { font-size: 9px; }
  .rewards-note { min-height: 96px; gap: 7px; }
  .rewards-chord { font-size: 28px; }
  .rewards-actions { column-gap: 10px; }
  .rewards-next { grid-template-columns: minmax(0, 1fr); gap: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .rewards-note { transition: none; }
}
