/* Ear Lab: uses the course's theme tokens, so it follows light and dark mode. */
.ear-intro{display:grid;gap:8px;padding-block:24px 14px}
.ear-intro h1{font-family:var(--f-display);font-weight:800;font-size:clamp(44px,7vw,72px);line-height:.92;text-transform:uppercase}
.ear-intro p{max-width:72ch;color:var(--muted)}
.soundbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.soundbar .btn.primary{--mc:var(--foh)}
.soundbar .btn[disabled]{opacity:1;background:var(--good);border-color:var(--good);color:var(--on-accent)}
.hpv{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted)}
.hpv input{width:140px;accent-color:var(--foh)}
.cards{padding-bottom:12px}
.stage{display:grid;gap:12px;margin-bottom:16px;background:var(--panel);border:2px solid var(--stream);border-radius:14px;padding:clamp(14px,3vw,22px)}
.st-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.st-top b{font-size:20px}
.st-top .sp{flex:1}
.st-q{font-size:clamp(18px,2.2vw,22px);font-weight:700;max-width:65ch}
.st-btns{display:flex;gap:10px;flex-wrap:wrap}
.ab{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;justify-self:start}
.abbtn{border:0;background:var(--panel-2);padding:14px 26px;font-weight:700;font-size:17px;min-width:120px}
.abbtn+.abbtn{border-left:1px solid var(--line)}
.abbtn[aria-checked="true"]{background:var(--stream);color:var(--on-accent)}
.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.choices .opt{justify-content:center;text-align:center;font-weight:700}
.mfaders{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px}
.mf{display:grid;justify-items:center;gap:6px;width:84px}
.mfv{font-family:var(--f-mono);font-size:12px;font-variant-numeric:tabular-nums}
.mfn{font-size:13px;font-weight:700;text-align:center}
.mf small{font-size:11px;text-align:center;min-height:2.4em;color:var(--muted)}
.mf small.hot{color:var(--bad)}
.mf small.low{color:var(--warn)}
.mf small.okk{color:var(--good)}
.vfader{writing-mode:vertical-lr;direction:rtl;height:190px;width:28px;accent-color:var(--stream);cursor:ns-resize}
.mlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}
.mission{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.mission .ck{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-weight:700;font-size:14px;color:transparent}
.mission.done{border-color:var(--good)}
.mission.done .ck{background:var(--good);border-color:var(--good);color:var(--on-accent)}
.mission p{font-size:15px}
.mission .mn{font-family:var(--f-mono);font-size:11px;color:var(--muted);letter-spacing:.08em}
