.dictation-listening-entry { margin: 0; }
.listening-frozen-sheet .tool-layout { display: block; }
.english-dictation-page .tool-page-actions { flex-wrap: wrap; justify-content: flex-end; flex-shrink: 1; }
.listening-page { max-width: 1080px; margin: 0 auto; }
.listening-heading { align-items: center; }
.listening-heading > .btn { flex-shrink: 0; }
.listening-setup, .listening-voice-panel, .listening-player, .listening-word-list { background: var(--card); border: 1px solid var(--line); border-radius: 16px; margin-bottom: 20px; }
.listening-setup > summary, .listening-word-list > summary { padding: 22px 26px; cursor: pointer; font-weight: 700; color: var(--ink-900); }
.listening-setup summary small { display: inline-block; margin-left: 18px; color: var(--ink-500); font-weight: 400; }
.listening-form { padding: 0 26px 26px; }
.listening-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.listening-page .form-row { margin-bottom: 16px; }
.listening-page label { display: block; margin-bottom: 7px; font-weight: 600; }
.listening-page input:not([type="checkbox"]), .listening-page select, .listening-page textarea { width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 11px 13px; background: var(--card); color: var(--ink-900); font: inherit; box-sizing: border-box; }
.listening-page :focus-visible { outline: 3px solid var(--blue-500); outline-offset: 3px; }
.listening-source { border: 1px solid var(--line); border-radius: 10px; padding: 18px; margin: 0 0 20px; min-width: 0; }
.listening-source[hidden], .listening-page [hidden] { display: none !important; }
.listening-source legend { font-weight: 700; padding: 0 8px; }
.listening-source > .form-hint { margin-bottom: 0; }
.listening-page .dictation-unit-picker label { font-weight: 400; }
.listening-inline-hint { display: inline-block; color: var(--ink-500); margin: 10px 12px; font-size: 13px; }
.listening-ready { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 4px 0 22px; }
.listening-ready strong { font-size: 18px; }
.listening-ready p { margin: 8px 0; color: var(--ink-700); }
.listening-ready > .btn { flex-shrink: 0; }
.listening-voice-panel { padding: 24px 26px; }
.listening-page h2 { font-size: 19px; margin: 0 0 20px; }
.listening-voice-grid { display: grid; grid-template-columns: minmax(200px, 2fr) repeat(3, 1fr); gap: 16px; }
.listening-voice-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
#listenVoiceStatus { color: var(--ink-700); font-size: 13px; }
.listening-voice-panel > .form-hint { line-height: 1.8; margin: 14px 0 0; }
.listening-player { padding: 24px 26px; background: linear-gradient(135deg, var(--card), var(--blue-50)); text-align: center; }
.listening-player-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.listening-player-top h2 { margin: 0; }
.listening-progress-label { margin: 28px 0 16px; font-size: 22px; color: var(--ink-700); }
.listening-progress-label strong { font-size: clamp(64px, 9vw, 100px); line-height: 1.1; color: var(--blue-800); font-variant-numeric: tabular-nums; margin: 0 12px; }
.listening-progress-label > span { font-size: 16px; color: var(--ink-500); }
.listening-player progress { width: min(100%, 560px); height: 8px; accent-color: var(--blue-600); border: none; border-radius: 10px; overflow: hidden; }
.listening-player progress::-webkit-progress-bar { background: var(--line); }
.listening-player progress::-webkit-progress-value { background: var(--blue-600); }
#listenStatus { min-height: 30px; margin: 22px 0; font-size: 18px; color: var(--ink-700); }
.listening-controls { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.listening-controls .btn { min-height: 46px; padding: 10px 20px; }
.listening-controls .btn-primary { min-width: 140px; }
.listening-player-hint { color: var(--ink-500); font-size: 13px; margin: 22px 0 0; }
.listening-page button:disabled { opacity: .48; cursor: not-allowed; }
.listening-word-list > p { padding: 0 26px; }
.listening-word-list ol { margin: 0 26px 24px 52px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 45px; }
.listening-word-list li { padding: 10px 6px; border-bottom: 1px solid var(--line-soft); overflow-wrap: anywhere; }
.listening-word-list li span { display: block; color: var(--ink-500); margin-top: 4px; }
.listening-session-note { text-align: center; }
body.listening-projecting { overflow: hidden; }
body.listening-projecting .listening-player { position: fixed; inset: 0; z-index: 10000; border: none; border-radius: 0; margin: 0; padding: clamp(20px, 4vw, 70px); display: flex; flex-direction: column; justify-content: center; overflow-y: auto; }
body.listening-projecting .listening-player-top { margin-bottom: auto; }
body.listening-projecting .listening-progress-label { margin-top: auto; }
body.listening-projecting .listening-progress-label strong { font-size: clamp(100px, 20vh, 220px); }
body.listening-projecting .listening-player progress { align-self: center; flex-shrink: 0; }
body.listening-projecting .listening-player-hint { margin-bottom: auto; padding-bottom: 20px; }
body.listening-projecting .listening-word-list, body.listening-projecting .listening-ready, body.listening-projecting .listening-setup, body.listening-projecting .listening-voice-panel { visibility: hidden; }
@media (max-width: 760px) {
  .listening-heading, .listening-ready { flex-direction: column; align-items: flex-start; }
  .listening-fields { grid-template-columns: 1fr; gap: 0; }
  .listening-voice-grid { grid-template-columns: 1fr 1fr; }
  .listening-voice-select { grid-column: 1 / -1; }
  .listening-setup > summary, .listening-word-list > summary, .listening-voice-panel, .listening-player { padding: 20px 16px; }
  .listening-form { padding: 0 16px 20px; }
  .listening-setup summary small { display: block; margin: 8px 0 0 20px; }
  .listening-word-list ol { grid-template-columns: 1fr; }
  .listening-controls { gap: 8px; }
  .listening-controls .btn { padding: 10px 14px; }
  .listening-inline-hint { margin-left: 0; }
}
@media print { .dictation-listening-entry { display: none; } }
