.speech-assessment{position:relative;overflow:hidden;border:1px solid #b9d8d0;background:linear-gradient(145deg,#f7fffc 0%,#eef8f7 58%,#f8fbff 100%);box-shadow:0 14px 35px rgba(27,91,84,.1)}
.speech-assessment:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:linear-gradient(#1f8d77,#2d6b9d)}
.speech-assessment-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:10px}
.speech-assessment-heading h2{margin:3px 0 0;color:#173f53}
.speech-pilot-badge{flex:0 0 auto;padding:8px 12px;border-radius:999px;background:#173f53;color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.08em}
.speech-model{display:flex;width:100%;text-align:left;align-items:center;gap:14px;margin:18px 0;padding:15px 18px;border:1px solid #bddbd3;border-radius:16px;background:#fff;color:#173f53;cursor:pointer}
.speech-model strong{flex:0 0 auto;color:#207963}.speech-model .en{font-size:1.02rem;line-height:1.55;font-weight:700}
.speech-controls{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.speech-controls button,.speech-manual-check{border:0;border-radius:12px;padding:12px 16px;font:inherit;font-weight:800;cursor:pointer}
.speech-start{background:#167761;color:#fff}.speech-start.recording{background:#b32636;animation:speechPulse 1.2s infinite}.speech-stop{background:#263e50;color:#fff}.speech-retry,.speech-manual-check{background:#e3eef5;color:#173f53}
.speech-controls button:disabled{opacity:.46;cursor:not-allowed;animation:none}
.speech-live-status{min-height:24px;margin:12px 0;color:#365b69;font-weight:700}
.speech-playback{width:100%;margin:8px 0 18px}
.speech-results{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;padding:18px;border:1px solid #c9dfe0;border-radius:16px;background:rgba(255,255,255,.88)}
.speech-score-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border-radius:14px;background:#173f53;color:#fff;text-align:center}
.speech-score{font-size:2.25rem;line-height:1}.speech-verdict{margin-top:10px;font-size:.83rem;line-height:1.4}
.speech-transcript{padding:10px 12px;border-radius:10px;background:#eef4f7;color:#263e50;font-weight:700}.speech-transcript small{font-weight:500;color:#657d87}
.speech-word-comparison{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 15px;line-height:1.45}
.speech-word{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border-radius:9px;font-weight:800}
.word-correct{background:#dff5e7;color:#17663c}.word-missing{background:#ffe6e4;color:#a32727;border:1px dashed #cf6861}.word-substitution{background:#fff0c9;color:#7b5100}.word-substitution del{opacity:.75}.word-substitution ins{text-decoration:none;border-left:1px solid #d6a84d;padding-left:4px}.word-extra{background:#e5ebff;color:#4053a0}
.speech-error-summary{font-size:.92rem;color:#36515d}.speech-error-summary ul{margin:7px 0 0;padding-left:20px}
.speech-fallback{margin-top:16px;padding:13px 15px;border:1px solid #cee0e2;border-radius:12px;background:#fff}.speech-fallback summary{cursor:pointer;font-weight:800;color:#365b69}.speech-fallback label{display:block;margin-top:12px;font-weight:700}.speech-manual-transcript{display:block;width:100%;box-sizing:border-box;margin:8px 0 10px;padding:11px;border:1px solid #b9ccd2;border-radius:10px;font:inherit;resize:vertical}
.speech-privacy-note{margin:14px 0 0!important;font-size:.8rem;line-height:1.5;color:#68808a}
.speech-assessment[data-speech-state="excellent"] .speech-score-card{background:#17663c}.speech-assessment[data-speech-state="good"] .speech-score-card{background:#207963}.speech-assessment[data-speech-state="developing"] .speech-score-card{background:#8a6209}.speech-assessment[data-speech-state="retry"] .speech-score-card{background:#9b3038}
@keyframes speechPulse{50%{box-shadow:0 0 0 7px rgba(179,38,54,.16)}}
@media(max-width:680px){.speech-assessment-heading{display:block}.speech-pilot-badge{display:inline-block;margin-top:10px}.speech-model{align-items:flex-start;flex-direction:column}.speech-results{grid-template-columns:1fr}.speech-score-card{min-height:105px}.speech-controls button{flex:1 1 145px}}
@media(prefers-reduced-motion:reduce){.speech-start.recording{animation:none}}
