main{max-width:940px;padding:16px 18px 36px}
h1{font-size:clamp(1.5rem,4vw,2.2rem);margin:8px 0}
main>p{margin:6px 0;font-size:15px}
nav{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0;font-size:14px}
.card{padding:16px;border:1px solid #d7d9d7;border-radius:12px;background:white;margin-top:12px}
.card h2{font-size:1.2rem;margin:0}
#prompt{margin:6px 0 12px}
.work-area{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
#notation{width:100%;max-width:400px;height:130px;margin:0 auto;font-size:14px;color:#52616b}
#notation svg{display:block;width:100%;height:130px}
fieldset{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
legend{padding:0;margin-bottom:6px;font-size:14px}
fieldset label{display:flex;align-items:center;gap:6px;padding:7px 8px;border:1px solid #d7d9d7;border-radius:8px;min-height:44px;cursor:pointer;font-size:15px;line-height:1.25}
input[type=radio]{flex:0 0 18px;width:18px;height:18px;margin:0}
button{min-height:44px;padding:7px 9px;font-size:14px}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #7ab2c9;outline-offset:3px}
.actions{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
#audio-status:empty{display:none}
#audio-status{font-size:14px;margin:6px 0}
#feedback{margin:8px 0;font-size:15px;line-height:1.4}
#feedback[data-result=wrong]{border-left:4px solid #8b2f44;padding-left:10px}
#feedback[data-result=correct]{border-left:4px solid #2d7375;padding-left:10px}
#help{font-size:14px}
[hidden]{display:none!important}
.muted{color:#52616b}
.round-picker{display:block;margin:14px 0 8px;font-size:15px}
.round-picker select{min-height:44px;max-width:100%;font:inherit;padding:6px 10px;border:1px solid #52616b;border-radius:6px;background:white;color:inherit}
.round-picker select:focus-visible{outline:3px solid #7ab2c9;outline-offset:3px}
body[data-mode=quiz] .work-area{display:block}
body[data-mode=quiz] .music-side{display:none}
body[data-mode=quiz].has-music .music-side{display:block}
body[data-mode=quiz].has-music .work-area{display:grid}
body[data-mode=quiz] .answer-side{max-width:680px}
/* Repeated written practice: a quiet identity and one stable workspace. */
body[data-mode=identify] main,body[data-mode=listen] main,body[data-mode=quiz] main{max-width:660px}
.practice-card{border-top:4px solid #8a6d2f;padding:20px;margin:24px auto}
.practice-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.practice-heading h1{font-size:1.55rem;margin:0}
.practice-label{color:#6d5728;font-size:.75rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.practice-card #progress{text-align:center;font-size:.75rem;color:#6d5728;letter-spacing:.06em;text-transform:uppercase;margin:18px 0 8px}
.practice-card #task-title{text-align:center;font-size:1.1rem}
.practice-card #prompt{display:none}
.practice-card .work-area{display:block}
.practice-card #notation{display:block!important;position:static!important;padding-bottom:0!important;overflow:visible!important;height:auto;max-width:360px;cursor:pointer;border-radius:8px}
.practice-card #notation svg{position:static!important;height:auto}
.practice-card #notation:focus-visible{outline:3px solid #7ab2c9;outline-offset:3px}
.practice-card fieldset{max-width:460px;margin:auto}
.practice-card legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.practice-card fieldset label:has(input:checked){background:#eef5f5;border-color:#2d7375}
.practice-card #feedback:empty{display:none}
.practice-card #feedback{max-width:460px;margin:12px auto}
.practice-card .primary-actions{justify-content:center;align-items:center;gap:16px;margin-bottom:0}
.practice-card .primary{background:#21465d;color:white;border-color:#21465d;min-width:90px}
.practice-card details{margin:0;font-size:.85rem}
.practice-card summary{min-height:44px;padding:10px 0}
.practice-card details[open]{flex-basis:100%}
.practice-card details p{margin:8px 0}
.practice-card #audio-actions{justify-content:center;margin:0}
.practice-card #audio-status{text-align:center}
.practice-card #audio-actions{min-height:44px;margin:0 0 12px}
body[data-mode=identify] .practice-card #audio-actions:has(button[hidden]),body[data-mode=quiz] .practice-card #audio-actions:has(button[hidden]){min-height:0;margin:0}
.practice-card #audio-actions button{min-width:92px}
.practice-card #practice-settings{font-size:.85rem;margin:6px 0}
.practice-card #practice-settings summary{padding:5px 0}
body[data-mode=quiz].has-music .practice-card .work-area{display:block}
body[data-mode=quiz] .practice-card #task-title{line-height:1.4;margin:14px auto 20px;max-width:48ch}
body[data-mode=quiz] .practice-card .practice-heading h1{font-size:1.4rem}
body[data-mode=quiz] .practice-card .music-side:has(#notation[hidden]){display:none}
@media(max-width:640px){main{padding:12px 12px 28px}.card{padding:12px}.work-area{grid-template-columns:minmax(0,1fr);gap:10px}#notation,#notation svg{height:110px}#prompt{font-size:15px;margin:4px 0 8px}.card h2{font-size:1.1rem}nav{font-size:13px}main>p{font-size:14px}}
@media(max-width:640px){.practice-card #notation,.practice-card #notation svg{height:auto}.practice-card{padding:16px}.practice-heading h1{font-size:1.3rem}}
