/* One playback control for all six training apps. */
.training-app :is(.listen-panel,.sidebar-play,.settings-card>.listening-stage){position:relative!important;isolation:isolate;min-height:184px!important;flex-shrink:0!important;padding:22px 0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:8px!important;overflow:hidden;border-top:1px solid #dedbd3;background:linear-gradient(#fffefa,#faf7ef)}
.training-app :is(.listen-panel .play,.sidebar-play .play-button,.settings-card .play-button){box-sizing:border-box!important;position:relative!important;z-index:2;width:116px!important;height:116px!important;min-height:116px!important;flex:0 0 116px!important;padding:14px 6px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important;border:0!important;border-radius:50%!important;background:#122620;color:#fff!important;text-align:center!important;font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif!important;box-shadow:0 15px 35px #12262040!important;transition:transform .18s ease,box-shadow .18s ease!important}
.training-app :is(.listen-panel .play b,.sidebar-play .play-button>span,.settings-card .play-button>span){font-size:13px!important;font-weight:700!important;line-height:18px!important;margin:0!important}
.training-app :is(.listen-panel .play small,.sidebar-play .play-button small,.settings-card .play-button small){display:block!important;font-size:11px!important;line-height:15px!important;font-weight:400!important;margin-top:5px!important;color:#b8cbc4!important}
.training-app .listen-panel .play>span{display:block!important;background:transparent!important;width:24px!important;height:24px!important;line-height:24px!important;font-size:24px!important;margin:0 0 7px!important}
.training-app :is(.sidebar-play,.settings-card) .play-button>svg{width:24px!important;height:24px!important;flex:none!important;margin:0 0 7px!important}
.training-app :is(.listen-panel,.sidebar-play,.settings-card>.listening-stage) .sound-rings{position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;pointer-events:none}
.training-app :is(.listen-panel,.sidebar-play,.settings-card>.listening-stage) .sound-rings i{position:absolute!important;left:calc(50% - 66px)!important;top:calc(50% - 66px)!important;width:132px!important;height:132px!important;border:1px solid #236b621f!important;border-radius:50%;transform:none;animation:none}
.training-app :is(.listen-panel,.sidebar-play,.settings-card>.listening-stage) .sound-rings i:nth-child(2){left:calc(50% - 79px)!important;top:calc(50% - 79px)!important;width:158px!important;height:158px!important}
.training-app :is(.listen-panel,.sidebar-play,.settings-card>.listening-stage) .sound-rings i:nth-child(3){left:calc(50% - 92px)!important;top:calc(50% - 92px)!important;width:184px!important;height:184px!important}
.training-app :is(.listen-panel.is-playing,.settings-card>.listening-stage.playing,.training-layout:has(.practice-card .listening-stage.playing) .sidebar-play) .sound-rings i{animation:shared-sound-pulse 1.8s ease-out infinite!important}
.training-app :is(.listen-panel.is-playing,.settings-card>.listening-stage.playing,.training-layout:has(.practice-card .listening-stage.playing) .sidebar-play) .sound-rings i:nth-child(2){animation-delay:.35s!important}
.training-app :is(.listen-panel.is-playing,.settings-card>.listening-stage.playing,.training-layout:has(.practice-card .listening-stage.playing) .sidebar-play) .sound-rings i:nth-child(3){animation-delay:.7s!important}
@keyframes shared-sound-pulse{0%{opacity:.15;transform:scale(.72)}35%{opacity:.72}100%{opacity:0;transform:scale(1.12)}}
@media(hover:hover){.training-app :is(.listen-panel .play,.sidebar-play .play-button,.settings-card .play-button):not(:disabled):hover{transform:scale(1.025)}}
.training-app :is(.listen-panel .play,.sidebar-play .play-button,.settings-card .play-button):not(:disabled):active{transform:scale(.955);transition-duration:.07s!important}
.training-app .listen-panel[hidden],.training-app .listen-panel .play[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){.training-app .sound-rings i{animation:none!important}.training-app :is(.play,.play-button){transition:none!important}}
