.app-shell.is-practice{background:#fbf9f4;--dictation-green:#215b43}.dictation-save-status{font-size:12px;color:#a44b3a;margin:8px 0}.dictation-save-status:empty{display:none}.dictation-usage-details:not([open]) summary>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.is-practice .site-main{max-width:1440px;padding:16px 28px 28px}
.dictation-shell{min-width:0}.dictation-top{display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:13px}.dictation-top>div{display:flex;align-items:center;gap:18px;color:var(--muted)}.dictation-top strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:16px}.dictation-progress{height:5px;background:#e9e9e5;border-radius:9px;overflow:hidden;margin:8px 0 24px}.dictation-progress span{display:block;height:100%;background:var(--dictation-green);border-radius:inherit}
.dictation-layout{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr) minmax(180px,260px);gap:24px;align-items:start}.dictation-usage{grid-column:1;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;font-size:13px;line-height:1.6;min-width:0;overflow-wrap:anywhere}.dictation-usage.is-empty{visibility:hidden}.dictation-caption{font-size:12px;color:var(--muted);margin:0 0 12px}.dictation-previous-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.dictation-previous-title strong{font:700 20px/1.4 Arial,sans-serif}.dictation-previous-title span{color:var(--muted);font-size:12px}.dictation-usage summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;list-style:none;font-size:13px;color:var(--dictation-green)}.dictation-usage summary::-webkit-details-marker{display:none}.dictation-usage summary span:first-child{max-width:100%}.usage-toggle{font-size:11px;white-space:nowrap;color:var(--muted)}.dictation-usage-body{border-top:1px solid var(--line);margin-top:10px;padding-top:12px}.dictation-usage-body p{margin:4px 0 12px}.dictation-usage>button{margin-top:12px}
.dictation-main{max-width:740px;width:100%;justify-self:center;text-align:center;padding:clamp(6px,3vh,30px) 8px 0;min-width:0}.dictation-question{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.dictation-question h1{font:700 clamp(24px,3vw,36px)/1.4 "Microsoft YaHei",system-ui,sans-serif;margin:0;overflow-wrap:anywhere;letter-spacing:0}.dictation-feedback{min-height:44px;display:grid;place-items:center;margin:10px 0}.dictation-feedback p{margin:0;font-size:14px;font-weight:650}.dictation-cheer{color:#387944}.dictation-error{color:#a44b3a}.dictation-input-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.dictation-input{display:block;width:100%;height:94px;min-height:76px;border:0;border-bottom:2px solid #89998e;resize:none;background:transparent;border-radius:0;color:var(--ink);padding:18px 8px;font:500 clamp(27px,3vw,38px)/1.4 Arial,sans-serif;text-align:center;outline:none;scroll-margin:30px}.dictation-input:focus{border-color:var(--dictation-green)}.dictation-input::placeholder{font:400 16px/1.4 system-ui;color:#9a9b95}.dictation-input[readonly]{color:#68766c}.dictation-controls{display:flex;justify-content:center;gap:26px;margin:18px 0 0}.dictation-controls button{background:transparent;border:0;color:var(--ink);display:grid;justify-items:center;gap:5px;min-width:65px;min-height:64px;padding:6px;border-radius:9px;font-size:12px}.dictation-controls button:hover{background:#eaf0e6}.dictation-controls svg{width:28px;height:28px}.dictation-controls [aria-pressed=true]{color:var(--dictation-green);background:#eaf0e6}.dictation-audio-status{min-height:18px;margin:8px 0;color:#796833;font-size:12px}.dictation-submit .btn{background:var(--dictation-green);min-height:44px;min-width:120px}.dictation-submit .btn.secondary{background:white;color:var(--dictation-green)}.dictation-help,.dictation-schedule{font-size:12px;color:var(--muted);margin:12px 0}.dictation-diff{background:white;border:1px solid var(--line);border-radius:10px;margin:12px 0 0;padding:10px 14px;text-align:left;font-size:16px;overflow-wrap:anywhere}.dictation-diff p{display:flex;align-items:baseline;gap:15px;margin:4px 0}.dictation-diff small{font-size:12px;flex-shrink:0}.dictation-diff span{font-family:Arial,sans-serif;white-space:pre-wrap}.dictation-diff del{background:#fcebe8;color:#a44b3a;text-decoration:none;border-bottom:2px solid #d48777}.dictation-diff mark{background:#dce5c8;color:#215b43;border-bottom:2px solid #82986b}
@media(max-width:900px){.dictation-layout{grid-template-columns:1fr;gap:12px}.dictation-usage{padding:10px 14px}.dictation-usage.is-empty{display:none}.dictation-caption{margin-bottom:6px}.dictation-previous-title{margin:0 0 3px}.dictation-previous-title strong{font-size:17px}.dictation-usage-details summary{justify-content:flex-start}.dictation-usage-body{font-size:12px}.dictation-main{padding-top:8px;max-width:670px}.dictation-progress{margin-bottom:14px}.is-practice .site-main{padding:12px 24px 24px}}
@media(max-height:650px){.dictation-main{padding-top:2px}.dictation-input{height:72px;min-height:60px;padding:10px 6px}.dictation-feedback{margin:4px 0;min-height:28px}.dictation-controls{margin-top:8px}.dictation-controls button{min-height:54px}.dictation-help{margin:8px 0}.dictation-progress{margin-bottom:12px}.dictation-question h1{font-size:25px}}
@media(max-width:600px){.is-practice .site-main{padding:10px 16px 90px}.dictation-top .btn{font-size:12px}.dictation-question h1{font-size:24px}.dictation-input{height:80px}.dictation-controls{gap:18px}.dictation-main{padding:4px 0 0}}

/* Session context stays separate from the centered question. */
.dictation-top .dictation-context{display:grid;gap:5px;text-align:right;max-width:70%;min-width:0}.dictation-context>b{font-size:13px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}.dictation-context>div{display:flex;justify-content:flex-end;align-items:center;gap:12px;font-size:12px}.dictation-end{display:flex;justify-content:flex-end;margin:18px 0 0;position:fixed;right:28px;bottom:24px;z-index:4}.dictation-end .btn{background:#fbf9f4;color:#79544b;border-color:#cdb5a7}.dictation-summary{max-width:860px;margin:24px auto;padding:22px 18px;text-align:center}.dictation-summary h1{font-size:clamp(25px,4vw,38px)}.dictation-summary .result-numbers{max-width:580px;margin:22px auto}.dictation-summary-actions{justify-content:center;flex-wrap:wrap;margin:22px 0}.dictation-summary .round-word-summary{text-align:left;max-width:740px;margin:24px auto}.dictation-summary .round-word-summary>div{flex-wrap:wrap;gap:8px}.dictation-summary .round-word-summary strong{overflow-wrap:anywhere}
@media(max-width:900px){.dictation-top .dictation-context{max-width:66%}.dictation-context>b{font-size:12px}.dictation-context>div{flex-wrap:wrap;gap:4px 10px}.dictation-end{right:18px}}
@media(max-width:700px){.dictation-end{bottom:78px;right:16px}.dictation-top{align-items:flex-start}.dictation-top .dictation-context{max-width:60%}.dictation-summary{padding:8px 0}.dictation-summary-actions>.btn{min-height:44px}.dictation-summary .result-numbers{gap:10px}.dictation-context>div>span{font-size:10px}}

/* A quiet writing surface; colour belongs to the answer feedback. */
.app-shell.is-practice{background:#f6f7f8;--dictation-green:#237647}
.practice-workbench{padding-bottom:24px}
.practice-workbench-top{display:flex;align-items:center;gap:12px;padding:14px 0;position:sticky;top:0;background:#f6f7f8;z-index:8;border-bottom:1px solid #dfe4e6}
.practice-round-title{flex:1;min-width:0;display:grid;gap:5px}.practice-round-title b{font-size:15px;overflow-wrap:anywhere}.practice-round-title small{font-size:12px;color:#61716e}
.practice-view-switch{display:flex;padding:3px;background:#e9eded;border-radius:9px}.practice-view-switch button{border:0;background:transparent;min-height:38px;padding:0 12px;border-radius:7px;color:#52645d}.practice-view-switch [aria-pressed=true]{background:#fff;color:#215b43;box-shadow:0 1px 3px #17261e12}
.practice-round-stats{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:15px;font-size:13px}.practice-round-stats>span{padding:7px 10px;background:#e8ecec;border-radius:7px;font-variant-numeric:tabular-nums}.practice-round-stats .practice-correct-count{background:#dceee1;color:#215b43}.practice-round-stats small{margin-left:auto;color:#61716e;font-size:12px}.practice-workbench .dictation-progress{margin:12px 0 22px}
.dictation-exercise-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}
.dictation-exercise{min-width:0;position:relative;display:flex;flex-direction:column;min-height:230px;background:#fff;border:1px solid #e3e8e8;border-radius:12px;padding:16px 20px 12px;transition:background-color .18s,border-color .18s;scroll-margin-top:145px;overflow-wrap:anywhere}
.dictation-exercise.is-correct{background:#eaf5ee;border-color:#cce5d5}.dictation-exercise.is-wrong{background:#fff0f2;border-color:#f0cfd4}.dictation-exercise.is-active{box-shadow:0 0 0 2px #23764725}
.exercise-card-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.exercise-number{color:#77867e;font-size:12px;font-variant-numeric:tabular-nums}.exercise-tools{display:flex;gap:6px}.exercise-tools button{display:grid;place-items:center;min-width:42px;min-height:42px;border:0;border-radius:8px;color:#45564d;background:transparent}.exercise-tools button:hover{background:#e4ece7}.exercise-tools svg{width:22px;height:22px}
.exercise-prompt{font:600 17px/1.65 "Microsoft YaHei",system-ui,sans-serif;margin:8px 0 12px;min-height:30px}.hidden-chinese{font-size:13px;font-weight:400;color:#738078}.exercise-revealed{color:#ad552c;font:600 18px/1.5 Arial,sans-serif;margin:0 0 6px}
.dictation-exercise textarea{width:100%;min-height:60px;height:64px;resize:none;border:0;border-bottom:1px solid #b8c5bf;background:transparent;border-radius:0;outline:none;padding:12px 0;font:400 20px/1.55 Arial,sans-serif;color:#172d22;overflow-y:auto}.dictation-exercise textarea:focus{border-bottom:2px solid #237647}.dictation-exercise textarea::placeholder{font-size:15px;color:#9aa79f}.dictation-exercise.is-wrong textarea{border-color:#d44e63}
.exercise-status{min-height:20px;font-size:12px;color:#237647;line-height:1.5;margin:7px 0 0}.is-wrong .exercise-status{color:#a33144}.exercise-submit{display:flex;justify-content:flex-end;margin-top:auto;padding-top:3px}.exercise-submit .tool-button{min-height:36px;padding:4px 7px;border:0;background:transparent;color:#52645d;font-size:12px}.exercise-difference{font-size:13px;color:#a33144;margin-top:6px}.exercise-difference summary{cursor:pointer;padding:6px 0}.exercise-difference .dictation-diff{font-size:16px}
.dictation-celebration{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:12px;padding:20px;border-radius:inherit;background:radial-gradient(ellipse at 45% 45%,#61cb87,#25834c);color:white;pointer-events:none;animation:practice-feedback-in .18s ease-out;z-index:2}.dictation-celebration.is-error{background:#cf3e54}.dictation-celebration strong{font-size:20px;line-height:1.5;display:block;overflow-wrap:anywhere}.dictation-celebration small{display:block;font-size:13px;opacity:.9;margin-bottom:7px}.success-check{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:50%;background:white;color:#237647;font-size:27px;font-weight:700}.is-error .success-check{color:#cf3e54}
.practice-pagination,.practice-single-navigation{display:flex;justify-content:center;align-items:center;gap:18px;margin:22px 0;color:#61716e;font-size:13px}.practice-single-stage{max-width:780px;margin:45px auto 22px}.practice-single-stage .dictation-exercise{min-height:330px;padding:24px 32px}.practice-single-stage .exercise-prompt{font-size:25px}.practice-single-stage textarea{font-size:28px;min-height:90px}
.practice-settings-modal{width:min(100%,560px);max-height:calc(100dvh - 40px);overflow-y:auto}.practice-setting-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid #e3e8e8}.practice-setting-row>span{display:grid;gap:7px}.practice-setting-row strong{font-size:16px}.practice-setting-row small{font-size:13px;line-height:1.6;color:#61716e}.practice-setting-row input{appearance:none;flex:0 0 44px;width:44px;height:26px;position:relative;cursor:pointer;background:#cbd5d0;border-radius:20px;border:0}.practice-setting-row input::after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;transition:transform .15s}.practice-setting-row input:checked{background:#237647}.practice-setting-row input:checked::after{transform:translateX(18px)}.practice-setting-row select{width:135px;flex-shrink:0;font-size:14px;padding:10px 8px;border:1px solid #cbd5d0;border-radius:8px;background:white}.practice-setting-row input:focus-visible,.practice-workbench button:focus-visible{outline:3px solid #63a979;outline-offset:3px}
.dictation-summary{position:relative;overflow:hidden}.practice-confetti{position:absolute;inset:0;pointer-events:none}.practice-confetti i{position:absolute;left:calc(var(--i)*5.5%);top:-12px;width:8px;height:15px;background:#3c996a;animation:practice-confetti-fall 1.8s ease-in forwards;animation-delay:calc(var(--i)*.025s)}.practice-confetti i:nth-child(3n){background:#eeb646}.practice-confetti i:nth-child(3n + 1){background:#e48c9c}
@keyframes practice-feedback-in{from{transform:scale(.97)}to{transform:scale(1)}}@keyframes practice-confetti-fall{to{transform:translateY(460px) rotate(280deg);opacity:0}}
@media(max-width:1199px){.dictation-exercise-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-workbench-top{flex-wrap:wrap}.practice-round-title{flex-basis:40%}}
@media(max-width:600px){.dictation-exercise-grid{grid-template-columns:1fr;gap:14px}.practice-workbench-top{gap:8px;padding:10px 0}.practice-round-title{order:-1;flex-basis:100%}.practice-workbench-top .btn{font-size:12px;padding:8px;min-height:40px}.practice-view-switch{margin-left:auto}.practice-view-switch button{padding:0 9px}.practice-workbench .dictation-exercise{padding:12px 16px;scroll-margin-top:160px;min-height:215px}.practice-round-stats{gap:7px}.practice-round-stats small{margin-left:0;flex-basis:100%}.practice-single-stage{margin-top:20px}.practice-single-stage .exercise-prompt{font-size:21px}.practice-single-stage textarea{font-size:24px}.practice-settings-modal{padding:24px 18px}.practice-setting-row{gap:12px}.practice-setting-row select{width:120px}.dictation-celebration strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){.dictation-celebration,.practice-confetti i{animation:none}.practice-confetti{display:none}.dictation-exercise{transition:none}}

.practice-sticky-bar{position:sticky;top:74px;z-index:8;background:#f6f7f8;padding-bottom:1px}.practice-sticky-bar .practice-workbench-top{position:static}.practice-sticky-bar .dictation-progress{margin-bottom:18px}.practice-workbench .dictation-exercise{scroll-margin-top:240px}@media(max-width:700px){.practice-sticky-bar{top:61px}}@media(max-width:600px){.practice-workbench .dictation-exercise{scroll-margin-top:300px}}

.exercise-tools [aria-pressed=true]{background:#d7eadf;color:#215b43}

@media(max-width:600px){.practice-workbench-top .btn{padding:6px;font-size:11px}.practice-view-switch button{font-size:12px;padding:0 7px}.practice-workbench-top{gap:6px}.practice-workbench .dictation-exercise{scroll-margin-top:265px}}
