.speech-tools { display:inline-flex; align-items:center; flex-wrap:wrap; gap:6px; vertical-align:middle; }
.speech-action { padding:6px 9px; min-height:34px; border:1px solid #b9d4da; border-radius:8px; color:#00546f; background:#f2fafb; font:750 13px/1.25 system-ui,sans-serif; white-space:nowrap; cursor:pointer; }
.speech-action:hover:not(:disabled) { border-color:#00546f; background:#dff4f6; }
.speech-action:disabled { opacity:.55; cursor:not-allowed; }
.speech-action:focus-visible { outline:3px solid #e5a937; outline-offset:2px; }
.speech-feedback { display:block; width:100%; max-width:350px; color:#536b70; font:14px/1.45 system-ui,sans-serif; }
.speech-feedback:empty { display:none; }
.speech-recording { display:block; width:100%; }
.speech-recording:empty { display:none; }
.speech-recording audio { max-width:100%; width:290px; height:38px; margin-top:5px; }
.speech-playback { display:block; width:100%; }
.speech-playback:empty { display:none; }
.speech-playback audio { max-width:100%; width:290px; height:38px; margin-top:5px; }
.speech-feedback[data-state="match"] { color:#176448; }
.speech-feedback[data-state="error"] { color:#9b3338; }
.speech-feedback[data-state="review"] { color:#7d5b19; }
.vocab-audio-cell { min-width:155px; }
.dialogue-speech { margin:9px 0 0; }
.reading-line { padding:12px 0; border-bottom:1px solid #e0e9e9; }
.reading-line:last-child { border-bottom:0; }
.reading-line-text { display:block; font-size:19px; line-height:1.75; font-family:"Noto Sans SC",system-ui,sans-serif; }
.reading-line .speech-tools { margin-top:7px; }
.speech-note { color:#60767b; font-size:14px; line-height:1.5; }
[data-theme="dark"] .speech-action { background:#173c47; color:#d9f3f7; border-color:#3b6973; }
[data-theme="dark"] .speech-action:hover:not(:disabled) { background:#255466; }
[data-theme="dark"] .speech-feedback { color:#cfdee1; }
[data-theme="dark"] .speech-feedback[data-state="match"] { color:#9ce7bd; }
[data-theme="dark"] .speech-feedback[data-state="error"] { color:#ffadad; }
[data-theme="dark"] .reading-line { border-color:#38535d; }
