:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1c2024;background:#f6f7f2;--ink: #1c2024;--muted: #667085;--line: #d6d9d2;--surface: #ffffff;--surface-2: #eef4f1;--green: #1d7a5f;--blue: #275d9f;--coral: #bd4b40;--amber: #9b6a16;--shadow: 0 16px 40px rgba(28, 32, 36, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,select,input{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh;padding:24px}.topbar{align-items:center;display:flex;justify-content:space-between;gap:16px;margin:0 auto 16px;max-width:1180px}.brand-kicker,.eyebrow{color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:0;margin:0 0 4px;text-transform:uppercase}.pack-name{color:var(--muted);font-size:.9rem;margin-top:8px}.target-text{text-align:start;unicode-bidi:isolate}.expected[dir=rtl]{line-height:1.15}h1,h2,p{margin:0}h1{color:var(--ink);font-size:clamp(2rem,5vw,4rem);line-height:1}h2{color:var(--ink);font-size:1.1rem;line-height:1.2}.session-state,.counter{background:var(--ink);border-radius:999px;color:#fff;font-weight:700;padding:8px 12px;white-space:nowrap}.toolbar{align-items:end;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:12px;margin:0 auto 18px;max-width:1180px;padding:14px}.toolbar label{color:var(--muted);display:grid;font-size:.8rem;font-weight:700;gap:6px;text-transform:uppercase}select{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:40px;min-width:140px;padding:0 10px}input{background:#fff;border:1px solid var(--line);border-radius:6px;color:var(--ink);min-height:40px;padding:0 10px}.iteration-control input{font-weight:900;max-width:84px}.segmented{background:#eaeee9;border-radius:8px;display:inline-flex;gap:4px;padding:4px}.segmented button{background:transparent;border-radius:6px;color:var(--muted);font-weight:800;min-height:36px;padding:0 12px}.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #1c20241f}.counter{margin-left:auto}.notice{background:#fff;border:1px solid var(--line);border-radius:8px;margin:0 auto 14px;max-width:1180px;padding:12px 14px}.notice.error{border-color:#e6b4ae;color:var(--coral)}.practice-grid{display:grid;gap:14px;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);margin:0 auto;max-width:1180px}.prompt-surface,.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:0;padding:18px}.prompt-surface{display:grid;gap:16px;grid-row:span 6}.prompt-header,.panel-heading{align-items:start;display:flex;justify-content:space-between;gap:16px}.panel-heading svg{color:var(--blue);flex:0 0 auto}.tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:end}.tags span{background:var(--surface-2);border-radius:999px;color:#31594d;font-size:.78rem;font-weight:700;padding:5px 8px}.cue{color:var(--muted);font-size:clamp(1.25rem,2.4vw,2rem);font-weight:700;line-height:1.15}.expected{color:var(--ink);font-size:clamp(2.2rem,6vw,5rem);font-weight:850;line-height:1.02;overflow-wrap:anywhere}.change-mark{background:#9b6a162e;border:1px solid rgba(155,106,22,.34);border-radius:6px;color:var(--ink);padding:0 .08em}.expected .change-mark{box-decoration-break:clone;-webkit-box-decoration-break:clone}.now-playing{align-items:center;background:#f7f8f4;border:1px solid #dfe4dc;border-radius:8px;display:grid;gap:8px;grid-template-columns:auto auto minmax(0,1fr);min-height:52px;padding:10px 12px}.now-playing svg{color:var(--blue)}.now-playing span{color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.now-playing strong{color:var(--ink);font-size:1.15rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-playing.active{border-color:#275d9f73;box-shadow:0 0 0 3px #275d9f14}.navigation-actions,.audio-controls,.recorder-controls,.rating-buttons{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.navigation-actions{justify-content:center}.primary-action-stack{display:grid;gap:10px;max-width:360px}.word-sequence{border-top:1px solid var(--line);display:grid;gap:10px;padding-top:14px}.word-sequence-heading{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto auto}.word-sequence-heading svg{color:var(--blue)}.word-sequence-heading>strong{background:var(--ink);border-radius:999px;color:#fff;font-size:.78rem;font-weight:900;padding:6px 9px}.word-list{display:grid;gap:7px}.word-row{align-items:center;background:#f7f8f4;border:1px solid #dfe4dc;border-radius:8px;color:var(--ink);display:grid;gap:10px;grid-template-columns:34px minmax(0,1fr) auto;min-height:58px;padding:8px 10px;text-align:left;width:100%}.word-row.active{border-color:#275d9f8c;box-shadow:0 0 0 3px #275d9f14}.word-row.complete{background:#eff7f4;border-color:#1d7a5f57}.word-index{align-items:center;background:#eef1ed;border-radius:999px;display:inline-flex;font-size:.82rem;font-weight:950;height:34px;justify-content:center;width:34px}.word-text{display:grid;gap:2px;min-width:0}.word-text strong{overflow:hidden;text-overflow:ellipsis;white-space:normal;overflow-wrap:anywhere}.word-text em{color:var(--muted);font-size:.82rem;font-style:normal;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.word-score{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:950}.big-action{align-items:center;border-radius:8px;color:#fff;display:inline-flex;font-size:1.05rem;font-weight:850;gap:10px;justify-content:flex-start;min-height:54px;padding:0 18px;width:100%}.big-action.speak{background:var(--ink)}.big-action.speak.running{background:var(--coral)}.big-action.listen{background:var(--blue)}.big-action.record{background:var(--green)}.icon-button,.command,.rating{align-items:center;border-radius:6px;display:inline-flex;font-weight:800;gap:8px;justify-content:center;min-height:42px}.icon-button{aspect-ratio:1;background:#eef1ed;color:var(--ink);width:42px}.icon-button.primary,.command.primary{background:var(--green);color:#fff}.command{background:var(--ink);color:#fff;padding:0 14px}.command.danger{background:var(--coral)}.time-readout{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:800}.timer-track{background:#e6e9e2;border-radius:999px;height:12px;margin-top:18px;overflow:hidden}.timer-fill{background:var(--green);height:100%;transition:width .1s linear}.status-pill{border-radius:999px;color:#fff;font-size:.78rem;font-weight:800;padding:6px 9px}.status-pill.idle,.status-pill.recorded{background:var(--blue)}.status-pill.requesting{background:var(--amber)}.status-pill.recording,.status-pill.error{background:var(--coral)}.recording-playback{margin-top:14px;width:100%}.recorder-panel{border-color:#1d7a5f52}.mic-scope{background:#f7f8f4;border:1px solid #dfe4dc;border-radius:6px;display:block;height:180px;margin:16px 0 14px;width:100%}.mic-scope.recording{border-color:#1d7a5f80;box-shadow:0 0 0 3px #1d7a5f14}.recording-proof{align-items:center;color:var(--muted);display:flex;font-size:.85rem;font-variant-numeric:tabular-nums;font-weight:850;justify-content:space-between;margin:-4px 0 12px}.recorder-status{color:var(--muted);font-size:.85rem;font-weight:800;margin-bottom:12px}.recording-result{background:#f7f8f4;border:1px solid #dfe4dc;border-radius:6px;margin-top:14px;padding:12px}.timer-panel{box-shadow:none;padding:12px}.timer-panel .panel-heading{align-items:center}.timer-panel h2{font-size:.95rem}.timer-panel .eyebrow{margin-bottom:2px}.timer-panel .timer-track{height:6px;margin-top:10px}.device-grid{display:grid;gap:12px}.device-grid label{display:grid;gap:6px}.device-grid label>span{align-items:center;color:var(--muted);display:inline-flex;font-size:.8rem;font-weight:800;gap:6px;text-transform:uppercase}.device-grid select{width:100%}.inline-note{color:var(--muted);font-size:.85rem;font-weight:700;margin-top:12px}.waveform-panel{display:grid;gap:14px}.scope{display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 18px}.scope-canvas{background:#f2f5f1;border:1px solid #dfe4dc;border-radius:6px;display:block;height:124px;width:100%}.live-level{align-items:end;background:#eef1ed;border:1px solid #dfe4dc;border-radius:6px;display:flex;height:124px;justify-content:center;overflow:hidden;padding:4px}.live-level span{background:var(--coral);border-radius:999px;display:block;min-height:8px;transition:height 80ms linear;width:100%}.live-level.active span{box-shadow:0 0 10px #bd4b4073}.waveform-meta{color:var(--muted);display:flex;font-size:.85rem;font-variant-numeric:tabular-nums;font-weight:800;justify-content:space-between}.waveform-empty{align-items:center;background:#f2f5f1;border:1px solid #dfe4dc;border-radius:6px;color:var(--muted);display:flex;font-weight:800;height:92px;justify-content:center}.inline-error{color:var(--coral);font-weight:700;margin-top:12px}.rating-panel{grid-column:2}.rating-panel.verdict-success{border-color:#1d7a5f52}.rating-panel.verdict-close{border-color:#9b6a1661}.rating-panel.verdict-try_again{border-color:#bd4b4061}.speak-pong-panel{border-color:#275d9f3d}.speak-pong-panel.phase-playing{border-color:#275d9f73}.speak-pong-panel.phase-recording{border-color:#1d7a5f73}.speak-pong-panel.phase-evaluating,.speak-pong-panel.phase-review{border-color:#9b6a1673}.session-score{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.session-score div{background:#f7f8f4;border:1px solid #dfe4dc;border-radius:6px;display:grid;gap:5px;min-width:0;padding:10px}.session-score span{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase}.session-score strong{color:var(--ink);font-size:1.25rem;line-height:1}.session-progress{background:#e6e9e2;border-radius:999px;height:9px;margin-top:12px;overflow:hidden}.session-progress span{background:linear-gradient(90deg,var(--blue),var(--green));display:block;height:100%;transition:width .18s ease}.list-verdict{color:var(--muted);display:flex;font-size:.84rem;font-weight:850;justify-content:space-between;margin-top:10px}.attempt-list{display:grid;gap:8px;margin-top:14px}.attempt-row{align-items:center;background:#f7f8f4;border:1px solid #dfe4dc;border-radius:6px;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto auto;padding:9px 10px}.attempt-row span{color:var(--ink);font-weight:850;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attempt-row strong{color:var(--muted);font-size:.78rem;text-transform:uppercase}.attempt-row em{color:var(--ink);font-style:normal;font-variant-numeric:tabular-nums;font-weight:900}.attempt-row.verdict-success{border-color:#1d7a5f57}.attempt-row.verdict-close{border-color:#9b6a1661}.attempt-row.verdict-try_again{border-color:#bd4b4061}.result-feedback{color:var(--ink);font-size:.98rem;font-weight:750;line-height:1.35;margin-top:14px}.score-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.score-grid span{background:#eef1ed;border-radius:6px;color:var(--ink);font-size:.84rem;font-weight:850;padding:9px 8px;text-align:center}.rank-readout{background:#f7f8f4;border:1px solid #dfe4dc;border-radius:6px;color:var(--muted);display:grid;font-size:.9rem;font-weight:850;gap:6px;margin:14px 0;padding:10px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media(max-width:820px){.app-shell{padding:14px}.topbar{align-items:start;flex-direction:column}.counter{margin-left:0}.practice-grid{grid-template-columns:1fr}.prompt-surface,.rating-panel{grid-column:auto;grid-row:auto}.session-score,.attempt-row,.word-row,.now-playing{grid-template-columns:1fr}.word-sequence-heading{grid-template-columns:minmax(0,1fr) auto}.expected{font-size:clamp(2rem,14vw,3.5rem)}}
