.speak-label{font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--ls-mono-sm);color:var(--text-muted);text-transform:uppercase}.speak-state{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:var(--r-sm);flex:none;font-family:var(--font-mono);font-size:12px;line-height:1;white-space:nowrap;background:color-mix(in srgb,var(--tone) var(--mix-tint),transparent);border:1px solid color-mix(in srgb,var(--tone) var(--mix-edge),transparent);color:var(--tone-text)}.speak-state[data-tone=neutral]{background:var(--overlay-hover);border-color:var(--border-strong);color:var(--text-muted)}.speak-prompt{display:flex;flex-direction:column}.speak-tasks{margin:0 0 var(--sp-5);padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.speak-tasks__item{display:flex;align-items:center;gap:var(--sp-2);padding:8px 12px;border-radius:var(--r-sm);background:var(--bg-elev);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-muted)}.speak-tasks__item[data-state=current]{border-color:var(--primary);color:var(--text);font-weight:var(--fw-semi)}.speak-tasks__item[data-state=recorded]{border-color:color-mix(in srgb,var(--success) var(--mix-line),transparent)}.speak-tasks__state{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-mono-sm);font-weight:var(--fw-regular);color:var(--text-muted);text-transform:uppercase}.speak-times{margin:var(--sp-5) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-sm)}.speak-times__value{font-family:var(--font-mono);color:var(--text)}.speak-panel{padding:28px var(--sp-8);overflow:auto;min-width:0}.speak-rec{max-width:var(--measure-reading);margin-inline:auto;display:flex;flex-direction:column;gap:var(--sp-4)}.speak-rec__head{display:flex;flex-direction:column;gap:var(--sp-3)}.speak-rec__privacy{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-muted)}.speak-rec__notice-body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3);min-width:0}.speak-rec__stage{padding:var(--sp-6);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border)}.speak-rec[data-phase=recording] .speak-rec__stage{border-color:color-mix(in srgb,var(--error) var(--mix-line),transparent)}.speak-rec[data-phase=saved] .speak-rec__stage{border-color:color-mix(in srgb,var(--success) var(--mix-line),transparent)}.speak-stage{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-4)}.speak-stage[aria-busy=true]{flex-direction:row;align-items:center}.speak-stage--intro{align-items:center;text-align:center;padding-block:var(--sp-4)}.speak-stage__icon{width:88px;height:88px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--error) var(--mix-tint),transparent);color:var(--text)}.speak-stage__text{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-soft);max-width:56ch}.speak-stage--live{flex-direction:row;align-items:center;gap:var(--sp-8)}.speak-stage__side{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-4)}.speak-stage__actions{display:flex;flex-wrap:wrap;gap:10px}.speak-stage--review,.speak-stage--problem{align-items:stretch}.speak-stage--problem>.btn{align-self:flex-start}.speak-stage--saved{align-items:stretch}.speak-stage--saved>.btn{align-self:flex-start}.speak-clock{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);flex:none;--ring-hole: var(--bg-elev)}.speak-clock__label{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--ls-mono-sm);color:var(--text-muted)}.speak-clock__label--rec{color:var(--error-ink)}.speak-level{display:flex;align-items:center;gap:var(--sp-3);width:100%}.speak-level__bar{flex:1;height:10px;border-radius:var(--r-sm);background:var(--bg-elev-2);overflow:hidden}.speak-level__bar>span{display:block;height:100%;width:var(--pct, 0%);background:var(--success)}.speak-followup{display:flex;flex-direction:column;gap:var(--sp-2)}.speak-followup__question{font-family:var(--font-display);font-size:22px;font-weight:var(--fw-medium);line-height:1.4}.speak-transcript{padding:var(--sp-4);border-radius:var(--r-sm);background:var(--bg-sunken);border:1px solid var(--border)}.speak-transcript p[lang]{margin-top:var(--sp-2);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text-soft)}.speak-steps{margin:0;padding-left:var(--sp-5);display:flex;flex-direction:column;gap:4px}.speak-fb__dims{margin:var(--sp-4) 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;font-size:var(--fs-sm)}.speak-fb__value{font-family:var(--font-mono);color:var(--text)}.speak-fb__facts{margin:var(--sp-3) 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}.speak-fb__facts li{padding:4px 10px;border-radius:var(--r-sm);background:var(--bg-elev-2);font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--text-muted)}.speak-fb__feedback{margin-top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-sm);line-height:1.6;color:var(--text-soft)}.speak-fb__fixes{margin:var(--sp-4) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}.speak-fb__fixes li{padding:12px 14px;border-radius:var(--r-sm);background:var(--bg-elev-2);display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm)}.speak-fb__said{color:var(--text-muted);text-decoration:line-through;text-decoration-color:var(--error)}.speak-fb__better{display:flex;align-items:center;gap:6px;color:var(--text)}.speak-fb__fixes p{color:var(--text-muted)}.speak-fb__tags{margin:var(--sp-4) 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-3)}.speak-fb__tags li{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:var(--fs-sm);color:var(--text-muted)}.speak-fb__quote{font-style:italic;color:var(--text)}.speak-fb__transcript{margin-top:var(--sp-4);font-size:var(--fs-sm)}.speak-fb__transcript summary{cursor:pointer;color:var(--text-muted);min-height:var(--hit-min);display:flex;align-items:center}.speak-fb__transcript summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-xs)}.speak-fb__transcript p{margin-top:var(--sp-2);line-height:1.7;color:var(--text-soft)}.speak-lesson__task{margin-top:var(--sp-4);padding:var(--sp-5);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border)}.speak-lesson__title{margin-top:var(--sp-2);font-family:var(--font-display);font-size:var(--fs-h4);font-weight:var(--fw-semi);line-height:var(--lh-h4)}.speak-lesson__prompt{margin-top:var(--sp-2);font-size:var(--fs-reading);line-height:1.75;color:var(--text-soft)}.speak-lesson__meta{margin-top:var(--sp-3);font-size:var(--fs-xs);line-height:1.6;color:var(--text-muted)}.speak-lesson__start{margin-top:var(--sp-4);display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2)}.lesson-section--speaking .speak-rec{margin-top:var(--sp-4);max-width:none}.speak-lesson__last{margin-top:var(--sp-5);padding:var(--sp-5);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border);display:flex;flex-direction:column;gap:var(--sp-2)}.speak-lesson__last-head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3)}.speak-lesson__last-title{font-size:var(--fs-body);font-weight:var(--fw-semi)}.speak-lesson__wait{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted)}.speak-own{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-2)}.speak-own__error{font-size:var(--fs-xs)}.device-check{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.device-check__verdict{align-items:flex-start}.device-check__verdict .spinner{margin-top:2px;flex:none}.device-check__verdict-body{display:flex;flex-direction:column;gap:2px;min-width:0}.device-check__title{font-family:var(--font-text);font-size:var(--fs-body);font-weight:var(--fw-semi);line-height:1.4;color:var(--text)}.device-check__verdict-body p{color:var(--text-soft);line-height:1.55}.device-check__steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}.device-check__step{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-3);padding:12px 14px;border-radius:var(--r-sm);background:var(--bg-elev-2);border:1px solid transparent}.device-check__step[data-tone=ok]{border-color:color-mix(in srgb,var(--success) var(--mix-line),transparent)}.device-check__step[data-tone=todo]{border-color:color-mix(in srgb,var(--warning) var(--mix-line),transparent)}.device-check__step[data-tone=problem]{border-color:color-mix(in srgb,var(--error) var(--mix-line),transparent)}.device-check__icon{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--r-sm);background:var(--bg-elev);color:var(--text)}.device-check__body{display:flex;flex-direction:column;gap:4px;min-width:0}.device-check__name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text)}.device-check__status{font-size:var(--fs-xs);line-height:1.5;color:var(--text-muted)}.device-check__level{height:6px;margin-top:4px}.device-check__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3)}.device-check__privacy{font-size:var(--fs-xs);line-height:1.55;color:var(--text-muted);max-width:62ch}.device-check--compact .device-check__foot{justify-content:flex-end}.speak-gate{width:min(var(--measure-reading),calc(100% - 58px))}.speak-gate__ready{margin-top:var(--sp-3);font-size:var(--fs-sm)}.speak-gate__warning{margin-top:var(--sp-4)}.exam-dialog__lead .spinner{display:inline-block;vertical-align:middle;margin-right:var(--sp-2)}.speak-gate__check{margin-top:var(--sp-4)}.speak-gate__actions{margin-top:var(--sp-5);display:flex;flex-wrap:wrap;gap:10px}.speak-ready{margin-top:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.speak-ready__prepare{padding:var(--sp-5);border-radius:var(--r-md);background:var(--bg-elev);border:1px solid color-mix(in srgb,var(--warning) var(--mix-line),transparent);display:flex;flex-direction:column;gap:var(--sp-3)}.speak-ready__title{font-size:var(--fs-body);font-weight:var(--fw-semi)}.speak-ready__lead{font-size:var(--fs-sm);line-height:1.6;color:var(--text-muted)}.speech-status{position:fixed;z-index:40;right:var(--sp-5);bottom:var(--sp-5);width:min(360px,calc(100vw - 2 * var(--sp-4)));display:flex;gap:var(--sp-3);align-items:flex-start;padding:14px 16px;border-radius:var(--r-md);background:var(--bg-elev);border:1px solid var(--border-strong);box-shadow:var(--sh-float);font-size:var(--fs-sm)}.speech-status[data-tone=error]{border-color:color-mix(in srgb,var(--error) var(--mix-line),transparent)}.speech-status[data-tone=success]{border-color:color-mix(in srgb,var(--success) var(--mix-line),transparent)}.speech-status .spinner{flex:none;margin-top:2px}.speech-status__body{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.speech-status__title{font-weight:var(--fw-semi);color:var(--text);line-height:1.4}.speech-status__detail{font-size:var(--fs-xs);line-height:1.5;color:var(--text-muted)}.speech-status__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.profile-device__intro{margin:var(--sp-2) 0 var(--sp-4)}.speak-rec__check{display:flex;flex-direction:column;gap:var(--sp-3);width:100%;text-align:left}@media(max-width:900px){.speak-panel{overflow:visible;padding:var(--sp-5) var(--sp-4)}.speak-rec__stage{padding:var(--sp-5) var(--sp-4)}}@media(max-width:760px){.speak-fb__dims{grid-template-columns:minmax(0,1fr)}.device-check__step{grid-template-columns:auto minmax(0,1fr)}.device-check__step>.btn{grid-column:1 / -1;width:100%}.speech-status{left:var(--sp-4);right:var(--sp-4);width:auto;bottom:var(--sp-4);padding:12px 14px}.speech-status--tabs{bottom:calc(var(--tabbar-h) + var(--sp-3))}body.has-speech-status{padding-bottom:calc(var(--speech-status-space, 0px) + var(--sp-8))}.speech-status[data-kind=working] .speech-status__detail{display:none}.speak-stage--live{flex-direction:column;align-items:stretch;gap:var(--sp-5)}.speak-stage__side .btn,.speak-stage--problem>.btn,.speak-stage--saved>.btn{align-self:stretch;width:100%}.speak-stage--intro .btn{width:100%}.speak-stage__actions .btn{flex:1 1 auto}.speak-gate__actions .btn{flex:1 1 100%}.speak-followup__question{font-size:20px}}
