/* 发音教练面板：声调轨迹 + 口型。所有课共用这一份。 */
.coach{
  display:none; align-items:center; gap:12px;
  margin-top:9px; padding-top:9px; border-top:1px solid var(--line);
}
.coach.show{display:flex;}
.coach-mouth{flex:0 0 62px; height:62px;}
.coach-mouth svg{width:100%; height:100%; display:block;}
.coach-hole{fill:#191413;}
.coach-teeth{fill:#fffdfa;}
.coach-tongue{fill:var(--accent);opacity:.9;}
.coach-lip{fill:none;stroke:var(--ink);stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round;}
.coach-face{fill:none;stroke:var(--muted);stroke-width:1.7;opacity:.5;stroke-linecap:round;}
.coach-mid{flex:0 0 auto; min-width:52px;}
.coach-hz{font-size:22px; font-weight:700; line-height:1.1;}
.coach-py .was{opacity:.42; font-weight:500;}
.coach-py{font-size:13px; color:var(--accent); font-weight:600; margin-top:1px; white-space:nowrap;}
.coach-tone{font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-top:1px;}
.coach-curve{flex:1 1 auto; height:62px; min-width:0;}
.coach-curve svg{width:100%; height:100%; display:block; overflow:visible;}
.coach-grid{stroke:var(--line); stroke-width:1;}
.coach-grid.mid{stroke-dasharray:3 4;}
.coach-path{fill:none; stroke:var(--accent); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round;}
.coach-ghost{fill:none; stroke:var(--muted); stroke-width:1.4; opacity:.3; stroke-dasharray:2 3;}
.coach-dot{fill:var(--accent);}
.coach-none{font-size:11px; color:var(--muted); align-self:center;}
@media (max-width:360px){
  .coach-mouth{flex-basis:52px; height:52px;} .coach-curve{height:52px;}
  .coach-hz{font-size:19px;}
}
