@font-face { font-family: "Bravura"; src: url("../assets/fonts/bravura/Bravura.woff2") format("woff2"); font-display: swap; }
body { min-width: 320px; }
h1 { font-size: 2.8rem; line-height: 1.1; overflow-wrap: anywhere; }
h2 { font-size: 1.8rem; }
.eyebrow, .kicker { letter-spacing: 0; }
.exercise-meta { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 16px; }
#scale-name { font-size: 1.8rem; }
.accidental-tools { margin: 0; }
.accidental-tool { font-size: 2rem; }
.accidental-tool.is-selected, .erase-tool.is-selected { border-color: var(--accent); background: var(--accent-soft); }
.erase-tool { width: 44px; height: 44px; border: 1px solid var(--line); border-bottom: 3px solid #b8c6bf; border-radius: 7px; color: var(--ink); background: var(--surface); font-size: 1.8rem; cursor: pointer; }
.erase-tool:focus-visible { outline: 3px solid rgba(231,104,67,.25); }
.staff-scroll { overflow-x: auto; border-block: 1px solid var(--line); background: rgba(255,253,248,.86); }
.staff-labels { display: grid; grid-template-columns: 29% 71%; min-width: 900px; padding: 12px 0 0; color: var(--teal-dark); text-align: center; font-size: .85rem; font-weight: 700; }
.staff-wrap { position: relative; min-width: 900px; }
#notation-stage svg { display: block; }
.notation-target { position: absolute; top: 7%; height: 85%; padding: 0; border: 1px dashed var(--line); border-radius: 4px; background: transparent; cursor: crosshair; }
.notation-target.is-filled { border-color: transparent; }
.notation-target:hover, .notation-target:focus-visible, .notation-target.is-dragover { border-color: var(--teal); background: rgba(27,119,108,.05); outline: none; }
.notation-target.note-slot { border-color: #d8e3df; }
.notation-target.note-slot.is-filled { border-color: transparent; }
.staff-divider { position: absolute; top: 14%; bottom: 10%; left: 29%; border-left: 1px solid var(--line); pointer-events: none; }
.result-item { grid-template-columns: 36px minmax(0,1fr); }
.result-body { min-width: 0; }
.result-heading { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; }
.result-detail { line-height: 1.5; }
.result-detail.correct { color: var(--teal-dark); }
.result-detail.wrong { color: var(--accent-dark); }
.result-notation { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 14px; }
.result-notation > div { min-width: 0; }
.result-notation-canvas { overflow-x: auto; }
.result-notation-canvas svg { min-width: 760px; }
@media (max-width: 600px) {
  h1 { font-size: 2rem; } h2 { font-size: 1.4rem; }
  .app-header { margin-bottom: 28px; }
  .exercise-meta { flex-wrap: wrap; gap: 12px; }
  .result-item { padding: 12px; grid-template-columns: 24px minmax(0,1fr); gap: 8px; }
  .result-number { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }