/* Isolated oral practice overlay; inherits the app's light/dark text tokens. */
.oral-overlay[hidden],.oral-overlay [hidden]{display:none!important}
.oral-overlay{--oral-surface:#0d1c33;--oral-inset:#09213f;--oral-border:#46617f;--oral-yellow:#ffd31a;position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:rgba(3,12,27,.78);color:var(--tx,#eaf2ff);overflow:auto;overscroll-behavior:contain}
[data-theme="light"] .oral-overlay{--oral-surface:#fff;--oral-inset:#edf3fa;--oral-border:#a5b9cf;--oral-yellow:#765900}
.oral-panel{box-sizing:border-box;width:min(860px,100%);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;padding:24px;border:1px solid var(--oral-border);border-radius:22px;background:var(--oral-surface);box-shadow:0 24px 100px #0007;line-height:1.65}
.oral-head{display:flex;justify-content:space-between;align-items:center;gap:16px}
.oral-head h2{margin:0;font-size:24px;color:var(--tx,#eaf2ff)}
.oral-overlay button{min-height:44px;min-width:44px;padding:9px 15px;border:1px solid var(--oral-border);border-radius:12px;background:var(--oral-inset);color:var(--tx,#eaf2ff);font:inherit;font-size:15px;cursor:pointer;line-height:1.5;white-space:normal}
.oral-overlay button:hover:not(:disabled){border-color:#42b7ff}
.oral-overlay button:disabled{opacity:.5;cursor:not-allowed}
.oral-overlay button:focus-visible,.oral-overlay input:focus-visible,.oral-overlay audio:focus-visible{outline:3px solid #42b7ff;outline-offset:3px}
#oralRecord{background:#0877ff;color:#fff;border-color:#0877ff;font-weight:700}
#oralAssess{background:#ffd31a;color:#09213f;border-color:#ffd31a;font-weight:700}
.oral-reference{margin:20px 0 12px;padding:18px 20px;border-left:4px solid #0877ff;background:var(--oral-inset);border-radius:12px;font-size:clamp(20px,3vw,28px);font-weight:650;line-height:1.55;overflow-wrap:anywhere}
.oral-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.oral-muted{color:var(--tx2,#9fb2cc);font-size:14px}
.oral-warning{color:var(--oral-yellow);font-size:15px}
.oral-capture{margin:20px 0;padding:16px;border:1px solid var(--oral-border);border-radius:14px;background:var(--oral-inset)}
.oral-capture label{display:inline-block;margin-right:12px}
#oralMeter{width:min(220px,48%);height:18px;vertical-align:middle;accent-color:#0877ff}
#oralTime{display:inline-block;margin-left:12px;font-variant-numeric:tabular-nums;font-size:14px}
#oralPlayer{width:100%;min-height:48px;margin:8px 0;color-scheme:dark}
[data-theme="light"] #oralPlayer{color-scheme:light}
#oralMessage{min-height:1.65em;margin:12px 0;overflow-wrap:anywhere}
.oral-cloud{padding-top:12px;border-top:1px solid var(--oral-border)}
.oral-consent{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer}
.oral-consent input{flex:0 0 24px;width:24px;height:24px;margin:0;accent-color:#0877ff}
.oral-consent span{font-size:15px}
.oral-scores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}
.oral-score{padding:12px;border:1px solid var(--oral-border);border-radius:12px;background:var(--oral-inset);font-size:15px;font-weight:650;overflow-wrap:anywhere}
.oral-words{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.oral-word{padding:16px;border:1px solid var(--oral-border);border-radius:14px;background:var(--oral-inset);overflow-wrap:anywhere;min-width:0}
.oral-word h3{margin:0;font-size:21px}.oral-word p{margin:8px 0}
.oral-needs{border-left:4px solid var(--oral-yellow)}
.oral-phone{font-size:14px;border-top:1px solid var(--oral-border);padding-top:8px}
.oral-disclaimer{border-top:1px solid var(--oral-border);padding-top:16px;margin-top:24px}
@media(max-width:600px){.oral-overlay{padding:8px;align-items:start}.oral-panel{max-height:calc(100dvh - 16px);padding:16px;border-radius:16px}.oral-head h2{font-size:21px}.oral-head{gap:8px}.oral-scores{grid-template-columns:repeat(2,minmax(0,1fr))}.oral-words{grid-template-columns:minmax(0,1fr)}.oral-actions button{flex:1 1 140px}.oral-reference{padding:14px}#oralTime{display:block;margin:8px 0 0}}
@media(prefers-reduced-motion:reduce){.oral-overlay *{scroll-behavior:auto!important;transition:none!important}}
