:root{--paper:#f6f7f2;--white:#fff;--ink:#253d34;--muted:#8b9289;--green:#284f40;--mint:#e7eee5;--lime:#dce9bc;--line:#e4e7de;--sand:#f5efdf;--orange:#c58f50;--font:'DM Sans','Noto Sans SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.65 var(--font)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b8c88e;outline-offset:3px}button{border:0;background:none;color:inherit}svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.shell{display:grid;grid-template-columns:228px 1fr;min-height:100vh}.sidebar{background:#f1f3ec;border-right:1px solid var(--line);padding:34px 22px 25px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:228px;z-index:20}.brand{display:flex;gap:12px;align-items:center;padding:0 9px;margin-bottom:42px}.brand-mark{width:39px;height:39px;background:var(--green);color:#e1edc7;border-radius:13px;display:grid;place-items:center}.brand-mark svg{width:26px;height:26px}.brand-name{font-size:25px;font-weight:700;letter-spacing:3px;line-height:1.15}.brand small{font-size:9px;letter-spacing:2px;color:#84917f}.nav-label{font-size:10px;letter-spacing:2px;color:#9ba294;margin:0 12px 14px}.nav{display:grid;gap:7px}.nav button{display:flex;align-items:center;gap:13px;padding:13px 16px;text-align:left;border-radius:9px;color:#7e897d}.nav button.active{background:var(--green);color:white}.nav button:not(.active):hover{background:#e7ebe0}.nav button span{flex:1}.nav-count{font-size:10px;padding:1px 6px;background:#ffffff20;border-radius:4px}.sidebar-note{margin-top:auto;background:#e5ebda;border:1px solid #dce3cd;border-radius:12px;padding:17px 15px}.sidebar-note .mini-wave{display:flex;height:29px;gap:4px;align-items:center;color:var(--green);margin-bottom:10px}.mini-wave i{width:3px;border-radius:4px;background:currentColor}.sidebar-note strong{font-size:13px}.sidebar-note p{font-size:11px;color:#7f8b71;margin:7px 0 0}.sidebar-footer{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);margin-top:22px;padding:20px 6px 0}.avatar{background:#dce4ce;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-size:12px}.sidebar-footer small{display:block;font-size:9px;color:var(--muted)}.sidebar-footer button{margin-left:auto}.main{grid-column:2;min-width:0}.topbar{height:87px;display:flex;justify-content:space-between;align-items:center;padding:0 42px;border-bottom:1px solid var(--line);background:#f9faf6}.breadcrumb{color:#90988b;font-size:11px;display:flex;align-items:center;gap:10px}.breadcrumb strong{color:#4f6052;font-weight:500}.top-tools{display:flex;align-items:center;gap:18px;font-size:11px;color:#7e8979}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#7c9c66;margin-right:6px}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:7px}.icon-btn:hover{background:var(--mint)}.page{max-width:1510px;margin:auto;padding:32px 42px 36px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#99a18b;margin:0 0 7px}.page-heading h1{font-size:27px;font-weight:600;letter-spacing:.5px;margin:0}.page-heading p{font-size:12px;color:#8c9485;margin:8px 0 0}.date-pill{font-size:11px;border:1px solid #dfe5d7;background:#f0f3e9;border-radius:20px;padding:8px 15px;white-space:nowrap}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:25px;align-items:start}.content{min-width:0}.course-banner{border-radius:14px;background:var(--green);color:#fff;padding:26px 28px;position:relative;overflow:hidden;min-height:159px;display:flex;align-items:center;justify-content:space-between;gap:18px}.course-banner:after{content:'';position:absolute;right:-40px;bottom:-108px;width:260px;height:260px;border:1px solid #ffffff14;border-radius:50%;pointer-events:none}.tag{font-size:9px;letter-spacing:1.4px;color:#d0dec3;border:1px solid #ffffff25;border-radius:4px;padding:4px 8px;display:inline-block}.course-banner h2{font-size:24px;font-weight:500;margin:11px 0 3px;letter-spacing:1px}.course-banner p{margin:0;font-size:11px;color:#aebfaf}.banner-icon{color:#cad8b8;position:relative;z-index:1;flex-shrink:0;width:95px;height:100px;margin-right:16px}.banner-icon svg{width:95px;height:100px;stroke-width:1}.lesson-meta{display:flex;gap:17px;font-size:10px;color:#bccdb9;margin-top:14px}.section-label{display:flex;justify-content:space-between;align-items:center;margin:25px 0 12px;font-size:12px;font-weight:600}.section-label small{font-size:10px;font-weight:400;color:var(--muted)}.dialogue-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.dialogue-tab{background:#fff;border:1px solid var(--line);border-radius:8px;text-align:left;padding:11px 9px;min-height:70px}.dialogue-tab small{display:block;font-size:9px;color:#9ca394;margin-bottom:5px}.dialogue-tab strong{font-size:10px;font-weight:500;line-height:1.4;display:block}.dialogue-tab.active{background:#edf1e3;border-color:#9dad85}.dialogue-tab.active small{color:#798f53}.dialogue-tab .check{float:right;color:#708e48}.practice-box{margin-top:23px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.practice-top{padding:18px 21px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eff0eb}.practice-top h3{margin:0;font-size:13px;font-weight:600}.practice-top h3 small{color:#a5ac9c;font-size:10px;font-weight:400;margin-left:9px}.subtle{font-size:10px;color:var(--muted)}.stage-strip{padding:18px 20px 15px;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:2px;border-bottom:1px solid #eff0eb;background:#fdfefb}.stage{position:relative;text-align:center;padding:0 0 3px;font-size:9px;color:#a0a897}.stage:before{content:'';height:1px;position:absolute;left:65%;right:-35%;top:12px;background:#e1e6d9}.stage:last-child:before{display:none}.stage b{display:flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:50%;border:1px solid #e2e7dc;margin:0 auto 6px;font-size:9px;background:white;font-weight:500;position:relative;z-index:1}.stage.active{color:var(--green);font-weight:600}.stage.active b{background:var(--green);border-color:var(--green);color:#fff}.stage.done b{background:#edf2e2;border-color:#c8d7ac;color:#637d3e}.stage-head{padding:20px 23px 15px;display:flex;justify-content:space-between;align-items:center;gap:14px}.stage-head h3{font-size:16px;font-weight:500;margin:0 0 4px}.stage-head p{font-size:10px;color:#98a08e;margin:0}.stage-num{font-size:9px;letter-spacing:1px;color:#a4ad96;white-space:nowrap}.text-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 22px;background:#f7f8f2;border-top:1px solid #eff1e9;border-bottom:1px solid #eff1e9;gap:10px}.text-toolbar span{font-size:10px;color:#839078}.toggle-group{display:flex;gap:7px}.toggle{font-size:10px;background:white;border:1px solid #e3e8dc;padding:5px 9px;border-radius:5px}.toggle.on{background:#edf2e4;color:#5c7445;border-color:#d4dfc5}.transcript{padding:4px 23px 12px;max-height:490px;overflow:auto;scrollbar-width:thin}.speech-row{padding:18px 0 14px;border-bottom:1px solid #edf0e8;display:flex;gap:13px}.speech-row:last-child{border-bottom:0}.speaker-avatar{border-radius:50%;width:28px;height:28px;flex-shrink:0;background:#edf0e7;color:#819070;display:grid;place-items:center;font-size:9px;margin-top:2px}.speaker-avatar.staff{background:#f2ede2;color:#a6906a}.line-body{flex:1;min-width:0}.line-speaker{font-size:9px;color:#99a28e;margin-bottom:7px;display:flex;align-items:center;gap:7px}.line-speaker button{color:#8e9f7e;padding:0}.line-speaker svg{width:12px;height:12px}.chunks{display:flex;flex-wrap:wrap;gap:10px 7px;align-items:flex-start}.chunk{padding:0;text-align:left;display:flex;flex-direction:column;align-items:center;min-height:40px;border-radius:2px}.chunk:hover{background:#f3f6e9}.chunk .en{font-family:'DM Sans','Segoe UI',sans-serif;font-size:15px;line-height:1.65;border-bottom:1px solid #cbd5b6;padding:0 1px 3px;color:#344a39}.chunk .zh{font-size:9px;color:#9ca68f;padding-top:3px;max-width:240px}.sentence-zh{font-size:11px;color:#9ca58e;margin:10px 0 0;line-height:1.8}.en-only{font-size:16px;line-height:1.8;padding:0;text-align:left}.practice-footer{padding:14px 21px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px}.primary{background:var(--green);color:white;border-radius:7px;padding:9px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:11px}.primary:hover{background:#35624e}.primary svg{width:14px;height:14px}.secondary{border:1px solid #dce3d3;background:#fbfcf8;border-radius:7px;padding:8px 14px;font-size:11px;display:inline-flex;align-items:center;gap:7px}.secondary svg{width:14px;height:14px}.muted-link{font-size:10px;color:#859276;padding:5px 0}.right-column{display:grid;gap:19px}.panel{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;padding:19px}.panel h3{font-size:12px;font-weight:600;margin:0}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel-head span{font-size:9px;color:#a0a88f}.week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day{padding:4px 0 7px;text-align:center;font-size:9px;color:#a4ac98;border-radius:20px}.day b{display:block;font-size:11px;font-weight:400;margin-top:5px;color:#849374}.day.active{background:var(--green);color:#c9d9b8}.day.active b{color:white}.day i{display:block;width:3px;height:3px;background:#c6d1b6;border-radius:50%;margin:6px auto 0}.day.active i{background:#d7e6b9}.week-summary{border-top:1px solid #eff1e8;margin-top:16px;padding-top:13px;font-size:10px;color:#a1aa94;display:flex;justify-content:space-between}.week-summary strong{color:#6f8658;font-weight:500}.review-card{display:flex;gap:11px;align-items:center;padding:12px 0;border-bottom:1px solid #eff1e9}.review-card:last-child{border-bottom:0;padding-bottom:0}.offset{font-family:'DM Sans',sans-serif;font-size:10px;color:#859b66;background:#eef3e4;border-radius:6px;width:29px;height:29px;display:grid;place-items:center;flex-shrink:0}.review-card .details{flex:1}.review-card h4{font-size:10px;font-weight:500;margin:0 0 3px}.review-card small{font-size:9px;color:#a8ae9d}.review-card svg{width:12px;height:12px;color:#a9b29b}.panel-footnote{font-size:9px;color:#a1aa96;border-top:1px solid #eff1e9;margin-top:15px;padding-top:12px;line-height:1.8}.weekend-card{background:#eef1e4;border:1px solid #e0e6d1;border-radius:12px;padding:19px;position:relative;overflow:hidden}.weekend-card .eyebrow{font-size:8px;color:#8c9b71}.weekend-card h3{font-size:14px;font-weight:500;margin:7px 0}.weekend-card p{color:#95a180;font-size:10px;line-height:1.9;max-width:190px;margin:0 0 15px}.weekend-card button{font-size:10px;color:#68804c;display:flex;gap:8px;align-items:center;padding:0}.weekend-card svg{width:13px;height:13px}.player{margin-top:22px;border:1px solid var(--line);background:#fff;border-radius:11px;display:flex;align-items:center;gap:14px;padding:16px 20px}.play-big{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:white;flex-shrink:0}.play-big svg{width:16px;height:16px}.player-track{flex:1;min-width:0}.player-title{display:flex;justify-content:space-between;font-size:10px;margin-bottom:7px;gap:10px}.player-title small{font-size:9px;color:#9ea894}.player input[type=range]{width:100%;accent-color:#698152;height:3px;display:block;cursor:pointer}.speed-select{font-size:10px;border:1px solid #e1e6d9;border-radius:5px;background:#f7f9f1;padding:5px 4px;max-width:64px;color:#73865d}.player-time{font-size:9px;color:#99a38d;min-width:65px}.bottom-note{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.3px;color:#a1a88e;margin-top:20px;gap:10px}.listen-hero{padding:24px 23px 28px;text-align:center}.listen-hero h4{font-size:20px;font-weight:500;margin:13px 0 5px}.listen-hero p{font-size:11px;color:#909d7f;max-width:440px;margin:8px auto 18px}.audio-art{background:#eef2e5;width:70px;height:70px;border-radius:50%;display:flex;justify-content:center;align-items:center;margin:auto;gap:4px}.audio-art i{width:4px;border-radius:3px;background:#7d9660}.audio-art.playing i{animation:pulse .8s alternate infinite}.audio-art.playing i:nth-child(even){animation-delay:.3s}@keyframes pulse{to{height:8px}}.speed-ladder{display:flex;justify-content:center;gap:10px;margin:20px 0}.speed-ladder button{font-size:12px;padding:9px 17px;border:1px solid #dfe5d5;border-radius:7px}.speed-ladder button.active{background:var(--green);color:white;border-color:var(--green)}.noise-control{margin:18px auto;width:260px;text-align:left;font-size:11px}.noise-control input{width:100%;accent-color:#69834b}.recorder{padding:18px 23px 22px}.sentence-nav{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#99a48d;margin-bottom:13px}.prompt-card{background:#f6f8ef;border:1px solid #e6ebdc;border-radius:9px;padding:22px;min-height:115px}.prompt-card .prompt-en{font-size:18px;line-height:1.8;margin:7px 0 3px}.prompt-card .prompt-zh{font-size:14px;line-height:1.9;margin:7px 0;color:#789065}.recorder-actions{display:flex;gap:10px;flex-wrap:wrap;margin:17px 0}.record-button{background:#f3e8e1;border:1px solid #e7d3c5;color:#a77353;border-radius:7px;font-size:11px;padding:8px 13px;display:flex;align-items:center;gap:6px}.record-button.recording{background:#bb7257;color:#fff}.record-button svg{width:14px;height:14px}.recognition-note{font-size:10px;color:#99a48d}.transcript-input{width:100%;border:1px solid #dde5d1;border-radius:7px;padding:11px;resize:vertical;min-height:72px;background:#fdfefb;margin-top:11px;font-size:12px;color:var(--ink)}.comparison{padding:14px;margin-top:13px;background:#f1f5e9;border-radius:7px;font-size:12px;line-height:2}.comparison .missing{color:#ac684d;background:#f6e6dc;text-decoration:underline;padding:1px 2px}.comparison .extra{color:#9b7249;background:#f7f0df;padding:1px 2px}.comparison small{font-size:10px;display:block;color:#8a9c74}.recording-audio{width:100%;height:34px;margin-top:10px}.wide-layout{display:grid;grid-template-columns:1fr 310px;gap:25px}.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.review-large{border:1px solid var(--line);border-radius:12px;background:#fff;padding:23px}.review-large h3{font-size:16px;margin:0 0 8px}.review-large p{font-size:11px;color:#97a28c}.review-large .offset{margin-bottom:17px;width:36px;height:36px;font-size:13px}.date-control{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:22px;font-size:11px;color:#879878}.date-control input,select.field,input.field{border:1px solid #dbe3cf;background:white;padding:7px 10px;border-radius:6px;color:var(--ink)}.empty-line{font-size:12px;line-height:2;color:#9aa58d;padding:12px 0}.catalog{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.course-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:21px;text-align:left;min-height:150px}.course-card.available{background:#eaf0e0;border-color:#bacba2}.course-card small{font-size:10px;color:#9da68f;letter-spacing:1px}.course-card h3{font-size:15px;font-weight:500;margin:17px 0 10px}.course-card p{font-size:10px;color:#9ca68f;margin:0}.catalog-note{margin-top:24px;font-size:11px;color:#98a18c}.plan-intro{background:var(--green);color:white;border-radius:13px;padding:25px 29px;margin-bottom:22px;display:flex;justify-content:space-between;gap:20px}.plan-intro h2{font-size:23px;font-weight:500;margin:0 0 6px}.plan-intro p{color:#bdcdb5;font-size:12px;margin:0}.plan-doc{padding:24px 28px;border:1px solid var(--line);border-radius:12px;background:white;margin-bottom:20px}.plan-doc h3{font-size:15px;font-weight:500;margin:0 0 15px}.plan-doc p,.plan-doc li{font-size:12px;color:#8c9a7d;line-height:2.1}.plan-doc ol{padding-left:20px;margin:0}.flow{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;margin:20px 0;color:#8a9a78}.flow b{padding:12px;background:#f0f4e8;border:1px solid #e1e8d5;border-radius:6px;font-weight:500;color:#647d50}.plan-month{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.plan-cell{border:1px solid #e3e9db;border-radius:6px;padding:10px;font-size:10px}.plan-cell strong{display:block;font-weight:500;margin-top:3px}.plan-cell small{color:#9eaa90;font-size:9px}.chat-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px}.scenario{border:1px solid var(--line);border-radius:10px;padding:19px;background:white;text-align:left;width:100%;margin-bottom:12px}.scenario.active{background:#eaf0df;border-color:#bdcba9}.scenario h3{font-size:13px;margin:0 0 6px;font-weight:500}.scenario p{font-size:10px;color:#9aa78a;margin:0}.chat-box{border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden}.chat-head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.chat-head h3{font-size:13px;margin:0}.chat-messages{padding:24px;height:360px;overflow:auto;display:flex;flex-direction:column;gap:18px}.bubble{max-width:85%;padding:14px 17px;border-radius:11px;background:#f1f4ea;font-size:13px;align-self:flex-start}.bubble.user{background:#335a47;color:#fff;align-self:flex-end}.bubble small{display:block;font-size:9px;color:#9cac89;margin-top:6px}.chat-form{display:flex;gap:10px;padding:18px;border-top:1px solid var(--line)}.chat-form input{flex:1;min-width:0;border:1px solid #e0e6d5;background:#fcfdf9;border-radius:7px;padding:10px;font-size:12px;color:var(--ink)}.notice{border:1px solid #e6e0cd;background:#f8f4e8;color:#a3916e;border-radius:8px;padding:12px 15px;font-size:10px;line-height:1.9;margin-bottom:18px}.objective{font-size:11px;color:#8c9b7c;padding:5px 0;line-height:2}.objective.completed{color:#587b3c}.notice a{text-decoration:underline}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:#284b3d;color:#fff;padding:11px 22px;border-radius:8px;font-size:12px;opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:90vw}#toast.show{opacity:1;transform:translateX(-50%)}dialog{border:1px solid #dbe3cf;border-radius:13px;width:480px;padding:26px;color:var(--ink);background:#fbfcf7}dialog::backdrop{background:#233d3066}dialog h2{font-size:20px;font-weight:500;margin:0 0 20px}dialog label{display:block;font-size:12px;margin:15px 0 6px}dialog p{font-size:11px;color:#91a080;line-height:1.9}dialog .field{width:100%}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.form-inline{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.review-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;font-size:11px}.review-item .secondary{font-size:10px;padding:6px 10px}.help-note{font-size:10px;color:#97a48a;line-height:1.9;margin:12px 0}.mobile-brand{display:none}
@media(min-width:1550px){.page{padding-top:38px}.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:30px}.course-banner{min-height:175px}.transcript{max-height:550px}.stage-head{padding-top:23px;padding-bottom:19px}.chunk .en{font-size:16px}}
@media(max-width:1200px){.shell{grid-template-columns:190px 1fr}.sidebar{width:190px;padding-left:15px;padding-right:15px}.brand{padding:0 4px;gap:9px}.page{padding:25px}.topbar{padding:0 25px}.workspace{grid-template-columns:minmax(0,1fr) 238px;gap:18px}.panel{padding:15px}.dialogue-tab{padding:9px 7px}.dialogue-tab strong{font-size:9px}.stage{font-size:8px}.practice-top{padding-left:16px;padding-right:16px}.course-banner{padding:22px}.catalog{grid-template-columns:repeat(3,1fr)}.wide-layout{grid-template-columns:1fr 250px}}
@media(max-width:1000px){.workspace{grid-template-columns:1fr}.right-column{grid-template-columns:repeat(3,1fr);gap:12px}.right-column .panel{min-width:0}.panel-head{margin-bottom:12px}.review-card{padding:8px 0}.weekend-card{display:none}.right-column>.panel:nth-child(2){grid-column:span 2}.wide-layout{grid-template-columns:1fr}.wide-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.catalog{grid-template-columns:repeat(3,1fr)}.chat-layout{grid-template-columns:220px 1fr}.stage{font-size:9px}.transcript{max-height:480px}}
@media(max-width:740px){.shell{display:block}.sidebar{position:sticky;width:100%;height:auto;inset:0;display:block;padding:10px 14px;background:#f2f5ebee;backdrop-filter:blur(10px)}.brand,.nav-label,.sidebar-note,.sidebar-footer{display:none}.nav{display:flex;justify-content:space-between;gap:4px}.nav button{padding:9px 10px;font-size:11px;gap:5px;flex:1;justify-content:center}.nav button svg{width:16px;height:16px}.nav button .nav-count{display:none}.main{display:block}.topbar{height:54px;padding:0 18px}.top-tools{gap:10px}.breadcrumb{font-size:9px}.top-tools>span{display:none}.page{padding:22px 16px}.page-heading{margin-bottom:20px;align-items:flex-start}.page-heading h1{font-size:23px}.page-heading p{font-size:10px;max-width:240px}.date-pill{font-size:9px;padding:7px 10px}.course-banner h2{font-size:22px}.banner-icon{width:68px;margin-right:0}.banner-icon svg{width:68px}.lesson-meta{gap:10px;font-size:9px}.course-banner{padding:21px;min-height:160px}.dialogue-tabs{gap:5px}.dialogue-tab{min-height:75px;padding:9px 6px}.dialogue-tab strong{font-size:9px;line-height:1.65}.dialogue-tab small{font-size:8px}.stage-strip{padding:15px 10px}.stage{font-size:8px;line-height:1.4}.stage b{width:23px;height:23px}.stage-head{padding:17px}.stage-head h3{font-size:15px}.text-toolbar{padding:10px 15px;flex-wrap:wrap}.text-toolbar>span{font-size:9px}.toggle{padding:4px 7px;font-size:9px}.transcript{padding:0 16px 10px}.speech-row{gap:9px}.chunk .en{font-size:14px}.chunk .zh{font-size:8px}.chunks{gap:9px 6px}.speaker-avatar{width:24px;height:24px}.practice-footer{padding:13px 15px}.practice-footer .subtle{font-size:9px}.primary{padding:9px 11px;font-size:10px}.player{padding:13px 12px;gap:10px}.player-time{display:none}.player-title{font-size:9px}.player-title small{font-size:8px}.right-column{display:block}.right-column>.panel{margin-top:3px;margin-bottom:16px}.right-column>.panel:first-child{display:none}.bottom-note{font-size:8px}.catalog{grid-template-columns:repeat(2,1fr);gap:12px}.course-card{padding:16px;min-height:135px}.course-card h3{font-size:13px}.review-grid{gap:12px}.review-large{padding:18px}.review-large h3{font-size:14px}.review-large p{font-size:10px}.wide-layout>aside{display:block}.wide-layout .panel{margin-bottom:15px}.plan-intro{padding:21px}.plan-intro h2{font-size:20px}.plan-doc{padding:21px 19px}.flow{flex-wrap:wrap;justify-content:flex-start}.plan-month{gap:4px}.plan-cell{padding:7px 4px;font-size:8px}.plan-cell small{font-size:8px}.chat-layout{display:block}.chat-layout>aside{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.scenario{padding:12px}.scenario h3{font-size:10px}.scenario p{font-size:9px}.chat-layout aside .plan-doc{grid-column:1/-1}.chat-messages{height:330px;padding:18px}.bubble{font-size:12px;max-width:92%}.chat-form{padding:12px;gap:7px}.speed-ladder{gap:6px}.speed-ladder button{padding:9px 13px}.listen-hero{padding:21px 17px}.recorder{padding:15px}.recorder-actions{gap:7px}.recorder-actions .secondary{padding:8px 10px;font-size:10px}.record-button{font-size:10px;padding:8px 11px}}
/* Learning content stays comfortably readable at every breakpoint. */
.chunk .en{font-size:16px}.chunk .zh{font-size:11px;color:#7a896a}.sentence-zh{font-size:12px;color:#839175}.dialogue-tab strong{font-size:11px}.line-speaker{font-size:10px;color:#849571}.stage-head p{font-size:11px;color:#8a977e}.review-card h4{font-size:11px}.review-card small{font-size:10px}.help-note,.recognition-note{font-size:11px;color:#88997a}.dialogue-tab small{font-size:10px}.plan-doc p,.plan-doc li{color:#788b68}.sidebar-footer small{font-size:9px}.text-toolbar{font-size:11px}
.word-chips{display:flex;flex-wrap:wrap;gap:7px;margin:19px 0}.word-chips button{padding:6px 11px;font-size:13px;border:1px solid #dce5cf;background:#f2f6e9;border-radius:6px}.word-chips button:hover{background:#e5eed8}
.chunk .zh{font-size:12px}.sentence-zh{font-size:13px}
@media(max-width:740px){.dialogue-tab strong{font-size:10px}.chunk .en{font-size:15px}.chunk .zh{font-size:10px}.stage-head p{font-size:10px}.sentence-zh{font-size:11px}}
@media(max-width:740px){.nav button{flex-direction:column;gap:3px;padding:7px 3px;font-size:10px}.nav button span{flex:0;white-space:nowrap}.stage-strip{display:flex;overflow-x:auto;gap:8px;scrollbar-width:thin;padding-bottom:14px}.stage{flex:0 0 60px;font-size:10px}.stage b{width:28px;height:28px;margin-bottom:7px}.stage:before{top:14px;left:75%;right:-35%}.dialogue-tabs{display:flex;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}.dialogue-tab{flex:0 0 112px;min-height:67px}.dialogue-tab strong{font-size:11px}.stage-num{display:none}}
/* Full application: fixed frame, focused training and a voice-first conversation. */
html,body,#app{height:100%;overflow:hidden}.shell{height:100dvh;min-height:0;overflow:hidden}.sidebar{height:100dvh}.brand{margin-bottom:30px}.main{height:100dvh;display:flex;flex-direction:column;min-height:0}.topbar{height:70px;min-height:70px;flex-shrink:0}.page{overflow:auto;min-height:0;width:100%;padding-top:25px;scrollbar-width:thin}.page-heading h1{font-size:24px}.page-heading{margin-bottom:21px}.top-tools{gap:12px}.checkin-button{display:flex;align-items:center;gap:7px;font-size:12px;border:1px solid #cbd8b7;border-radius:7px;padding:7px 12px;background:#f0f5e6;color:#647f48}.checkin-button svg{width:15px;height:15px}.checkin-button.checked{background:#e4eed5}.practice-box{margin-top:18px}.practice-top h3{font-size:14px}.stage-head{padding:16px 23px}.stage-head h3{font-size:17px}.stage-strip{padding-top:15px;padding-bottom:12px}.transcript{max-height:420px}.speech-row{padding-top:16px;padding-bottom:16px}.chunk{max-width:100%}.chunk .en{font-size:16px;overflow-wrap:anywhere}.chunk .zh{font-size:11px;max-width:100%;white-space:normal;line-height:1.7;text-align:center}.sentence-zh{font-size:12px}.listen-hero{padding:18px 22px 20px}.listen-hero p{margin-bottom:13px}.listen-hero h4{font-size:19px}.audio-art{width:62px;height:62px}.speed-ladder{margin:16px 0}.speed-ladder button{font-size:14px;padding:9px 19px;min-height:43px}.practice-footer{padding:12px 20px}.player{margin-top:16px;padding:14px 17px}.player-time{display:block;font-size:10px;min-width:76px}.primary,.secondary,.record-button{font-size:12px;min-height:38px}.record-button{padding:10px 15px}.record-button svg,.secondary svg{width:16px;height:16px}.recorder{padding:17px 22px 23px}.large-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-bottom:19px}.large-nav>span{text-align:center;min-width:105px}.large-nav strong{font-size:14px;font-weight:600;color:#48613e;display:block}.large-nav small{font-size:10px;display:block;margin-top:4px;color:#97a58d}.sentence-step{border:1px solid #cbd8bc;background:#f2f6e9;border-radius:8px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;color:#567044;font-size:13px}.sentence-step svg{width:17px;height:17px}.prompt-card{padding:23px;min-height:145px;display:flex;flex-direction:column;justify-content:center}.prompt-card .prompt-en{font-size:19px;margin-top:15px}.prompt-card .prompt-zh{font-size:16px}.listen-sentence{font-size:15px;background:#e6eed9;border:1px solid #cfddba;border-radius:8px;padding:12px 20px;align-self:center;display:flex;gap:10px;align-items:center;color:#58773c;min-height:48px}.listen-sentence svg{width:20px;height:20px}.recorder-actions{margin:18px 0 0;gap:10px}.ambience-controls{display:grid;grid-template-columns:auto 1fr;gap:12px 14px;align-items:center;margin:20px auto;max-width:380px;text-align:left;font-size:12px}.ambience-controls select{min-width:0}.ambience-controls input{width:100%;accent-color:#688849}.field{border:1px solid #d7e1ca;background:#fff;border-radius:7px;padding:9px 11px;color:#3d5834;width:100%;font-size:12px}.field-label{display:block;font-size:11px;color:#8a9c7b;margin-top:16px;margin-bottom:8px}.month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;font-size:10px;color:#96a487;margin-bottom:7px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-day{border-radius:7px;color:#8c9b7d;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.calendar-day span{position:relative;z-index:1}.calendar-day svg{color:#8ba656;fill:#d7e7b7;stroke-width:1.3}.calendar-day.today{border:1px solid #b0c68d;background:#f1f6e7;color:#56723c}.calendar-day.checked{color:#516e37;background:#edf4e0}.compact .calendar-day{min-height:32px;font-size:10px;gap:1px}.compact .calendar-day svg{width:13px;height:13px;position:absolute;right:0;top:-1px;opacity:.8}.checkin-wide{width:100%;font-size:10px;gap:7px;margin-top:15px;min-height:33px;padding:6px}.calendar-full{max-width:1040px;background:white;border:1px solid var(--line);padding:27px;border-radius:13px;margin:0 auto}.calendar-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.calendar-title h2{font-size:20px;font-weight:500;margin:0}.full{gap:9px}.full .calendar-day{min-height:95px;border:1px solid #e7ecdf;justify-content:flex-start;align-items:flex-start;padding:12px 15px;font-size:14px}.full .calendar-day svg{position:absolute;right:15px;top:17px;width:26px;height:26px}.full .calendar-day small{font-size:10px;margin-top:15px}.full .calendar-day.other-month{background:#f8faf4;color:#c0c9b7}.full .calendar-day:disabled{opacity:.65}.calendar-footer{display:flex;justify-content:space-between;align-items:center;margin-top:24px;font-size:12px;color:#8c9c7c}.checkin-question{display:flex!important;align-items:center;gap:12px;border:1px solid #dbe5cd;border-radius:8px;background:#f3f7ec;padding:17px;font-size:15px!important;cursor:pointer}.checkin-question input{width:19px;height:19px;accent-color:#5c7c3e}.checkin-question input:checked+span{color:#5b7943}#checkin-error,#settings-result{color:#a16f51;font-size:12px;margin-top:14px}.word-title{font-family:'Segoe UI',sans-serif;font-size:23px;line-height:1.7;overflow-wrap:anywhere}.accent-buttons{display:flex;gap:13px;margin-top:20px}.accent-buttons button{font-size:14px;flex:1;padding:13px}.voice-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:23px;align-items:start}.voice-chat{min-height:570px;display:flex;flex-direction:column}.voice-chat .chat-messages{height:390px;flex:1}.voice-message{display:flex;gap:11px;align-items:flex-start;align-self:flex-start;max-width:92%}.voice-message.user{align-self:flex-end;flex-direction:row-reverse}.voice-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#edf1e5;font-size:10px;color:#7b9063;flex-shrink:0}.voice-message.user .voice-avatar{background:#dae7c8}.voice-message-body{min-width:0}.voice-bubble{background:#edf2e3;border-radius:10px;display:flex;align-items:center;gap:15px;padding:15px 19px;min-width:175px;max-width:100%;font-size:11px;color:#668249}.voice-bubble svg{width:19px;height:19px}.voice-message.user .voice-bubble{background:#345b45;color:white}.voice-wave{font-size:14px;letter-spacing:1px}.voice-bubble.playing .voice-wave{animation:voice-breathe .7s alternate infinite}@keyframes voice-breathe{to{opacity:.35}}.voice-message-actions{font-size:10px;color:#93a17e;display:flex;justify-content:space-between;gap:10px;margin-top:5px}.voice-message-actions button{font-size:10px;padding:2px 0}.voice-transcript{font-size:13px;line-height:1.9;border:1px solid #e4eadb;border-radius:7px;padding:9px 13px;background:#fcfdf9;margin-top:8px}.voice-transcript p{margin:2px 0}.voice-controls{border-top:1px solid var(--line);padding:17px 19px}.voice-buttons{display:flex;gap:9px;justify-content:center;flex-wrap:wrap}.voice-record{min-width:155px;min-height:45px}.voice-record.recording{background:#a66b4b}.voice-status{text-align:center;color:#8c9c7b;font-size:11px;margin-bottom:9px}.voice-status:empty{display:none}.voice-empty{margin:auto;text-align:center;color:#94a282}.voice-empty>svg{width:40px;height:40px;color:#b5c79c}.voice-empty h3{font-size:17px;font-weight:500;color:#738b58;margin:14px 0}.voice-empty p{font-size:11px}.api-status{font-size:11px;color:#8a9d76;margin:20px 0 13px}.course-card.selected{border-color:#87a85b;background:#e5eed6}.load-error{padding:40px;color:#617a4c}.load-error h1{font-size:22px}.load-error button{background:#345b45;color:white;border-radius:7px;padding:10px 16px}dialog{max-height:90dvh;overflow:auto;scrollbar-width:thin}dialog h3{font-size:15px;font-weight:500}dialog hr{border:0;border-top:1px solid #e3e9da;margin:23px 0}
@media(max-width:1100px){.page{padding:22px}.workspace{grid-template-columns:minmax(0,1fr) 235px;gap:17px}.right-column{display:grid;grid-template-columns:1fr}.right-column>.panel:nth-child(2){grid-column:auto}.right-column>.panel:first-child{display:block}.transcript{max-height:400px}.voice-layout{grid-template-columns:210px minmax(0,1fr)}.sentence-step{font-size:12px}.large-nav{gap:8px}}
@media(max-width:920px){.workspace{grid-template-columns:1fr}.right-column{display:none}.voice-layout{grid-template-columns:1fr}.voice-layout>aside{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.voice-layout>aside h3{grid-column:1/-1}.voice-layout>aside .help-note,.voice-layout>aside .panel-footnote{display:none}.voice-layout .field-label{margin:0}.voice-layout .api-status{margin:0}.voice-layout>aside>.secondary{min-height:31px}.transcript{max-height:430px}.voice-chat{min-height:490px}.voice-chat .chat-messages{height:320px}.full .calendar-day{min-height:80px;padding:9px}}
@media(max-width:740px){.shell{display:flex;flex-direction:column;height:100dvh}.sidebar{position:static;height:auto;min-height:61px;padding:5px 9px;flex-shrink:0}.nav{gap:2px}.nav button{font-size:9px;padding:6px 2px;gap:2px}.nav button svg{width:16px;height:16px}.main{height:auto;min-height:0;flex:1}.topbar{height:52px;min-height:52px;padding:0 16px}.page{padding:18px 14px 24px}.page-heading{margin-bottom:17px}.page-heading h1{font-size:20px}.page-heading p{font-size:10px;max-width:260px}.page-heading>.date-pill{display:none}.checkin-button{font-size:10px;padding:5px 8px}.top-tools{gap:5px}.breadcrumb{font-size:10px}.dialogue-tab{flex-basis:126px;padding:10px;min-height:65px}.practice-top{padding:14px}.practice-top h3{font-size:12px}.stage-strip{padding-top:13px;padding-left:12px;padding-right:12px}.stage-head{padding:16px}.stage-head h3{font-size:16px}.stage-head p{font-size:11px}.transcript{max-height:360px;padding:0 14px 8px}.chunk .en{font-size:16px}.chunk .zh{font-size:11px}.sentence-zh{font-size:12px}.listen-hero{padding:17px 15px 21px}.listen-hero h4{font-size:17px}.speed-ladder{gap:7px}.speed-ladder button{font-size:13px;padding:10px 12px}.practice-footer{padding:11px 14px}.practice-footer .secondary,.practice-footer .primary{font-size:11px;min-height:37px}.player{gap:9px;padding:12px}.player-time{font-size:9px;min-width:69px}.player-title{font-size:10px}.player-title small{display:none}.play-big{width:33px;height:33px}.recorder{padding:15px 13px 21px}.large-nav{grid-template-columns:1fr 89px 1fr;gap:7px}.large-nav>span{min-width:0}.large-nav strong{font-size:12px}.large-nav small{font-size:9px}.sentence-step{min-height:48px;gap:3px;font-size:12px}.sentence-step svg{width:14px;height:14px}.prompt-card{padding:20px 17px;min-height:150px}.prompt-card .prompt-en{font-size:18px}.prompt-card .prompt-zh{font-size:15px}.recorder-actions{gap:7px;margin-top:15px}.recorder-actions .secondary,.recorder-actions .record-button{font-size:11px;min-height:40px;padding:9px 11px}.ambience-controls{font-size:11px;gap:11px;max-width:300px}.calendar-full{padding:15px}.calendar-title{gap:8px;margin-bottom:20px}.calendar-title h2{font-size:16px}.calendar-title .secondary{font-size:10px;min-height:32px;padding:6px 8px;gap:3px}.calendar-title svg{width:11px;height:11px}.full{gap:4px}.full .calendar-day{min-height:68px;padding:6px;font-size:12px;border-radius:5px}.full .calendar-day svg{width:15px;height:15px;right:4px;top:25px}.full .calendar-day small{font-size:8px;margin-top:20px}.calendar-footer{font-size:11px;gap:10px}.calendar-footer .primary{font-size:11px;padding:8px 10px}.voice-layout{gap:13px}.voice-layout>aside{padding:15px;gap:8px;grid-template-columns:1fr 1fr}.voice-layout>aside h3{font-size:12px}.voice-layout>aside .field{font-size:11px;padding:8px}.voice-chat{min-height:460px}.voice-chat .chat-messages{height:280px;padding:18px 13px}.voice-controls{padding:13px 11px}.voice-buttons{gap:6px}.voice-buttons .secondary{font-size:10px;padding:8px;min-height:38px}.voice-record{min-width:120px;font-size:11px;min-height:40px}.voice-bubble{min-width:150px;padding:13px 14px;gap:10px}.voice-wave{font-size:12px;letter-spacing:0}.voice-avatar{width:27px;height:27px;font-size:9px}.voice-message{gap:8px;max-width:95%}.voice-transcript{font-size:12px}.voice-empty p{max-width:230px;line-height:1.8}.review-large{padding:17px}.review-item{flex-wrap:wrap}.review-item>span{width:100%;font-size:11px}.month-weekdays{font-size:9px}.checkin-question{font-size:14px!important;padding:16px 12px}.dialog-actions{flex-wrap:wrap}dialog{width:calc(100vw - 28px);padding:22px}}

.chunk .zh{font-size:12px}.sentence-zh{font-size:13px}
@media(max-width:740px){.chunk .zh{font-size:11px}.sentence-zh{font-size:12px}}
.source-variation{font-size:12px;line-height:1.8;color:#9b754d;background:#fbf7ed;border-left:3px solid #d8bb85;margin:0 22px 16px;padding:9px 12px}
@media(min-width:741px) and (max-height:850px){
  .page{padding-top:20px}.page-heading{margin-bottom:17px}.page-heading h1{font-size:22px;line-height:1.4}.page-heading p{margin-top:6px}
  .dialogue-tab{min-height:60px;padding-top:9px;padding-bottom:9px}.practice-box{margin-top:14px}.practice-top{padding:11px 20px}.stage-strip{padding-top:11px;padding-bottom:9px}.stage-head{padding:12px 20px}.stage-head h3{margin-bottom:0}
  .recorder{padding:14px 20px 16px}.large-nav{margin-bottom:12px}.prompt-card{padding:12px 18px;min-height:130px}.prompt-card .prompt-en{font-size:18px;line-height:1.5;margin:10px 0 0}.prompt-card .prompt-zh{font-size:15px;line-height:1.5;margin:7px 0 0}.recorder-actions{margin-top:12px}
}
/* Keep the current lesson and its progress visible together. */
.topbar{height:48px;min-height:48px;justify-content:flex-end}.top-tools{margin-left:auto}
.home-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.95fr);align-items:center;gap:24px;margin-bottom:18px}
.home-title{min-width:0}.home-heading h1{font-size:23px;line-height:1.4}.home-heading p{font-size:11px;line-height:1.7;margin-top:7px}
.course-progress{padding:12px 16px;border:1px solid #d9e4cb;background:#f0f5e8;border-radius:10px;min-width:0}
.course-progress-title{display:flex;align-items:center;gap:13px;font-size:11px;color:#7e906c}.course-progress-title strong{font-size:12px;color:#4e6c3b}.course-progress-title b{color:#345b45;font-size:15px}.course-progress-title small{margin-left:auto;white-space:nowrap;font-size:10px}
.course-progress-track{height:7px;border-radius:9px;background:#dfe8d2;margin-top:9px;overflow:hidden}.course-progress-track>span{display:block;background:#6f8e4f;height:100%;border-radius:inherit}
.course-progress-task{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}.course-progress-task .help-note{margin:0;font-size:10px;line-height:1.6;min-width:0}.course-progress-task .secondary{font-size:10px;min-height:25px;padding:3px 8px;white-space:nowrap;flex-shrink:0}
.dialogue-tabs{gap:7px}.dialogue-tab{min-height:43px;padding:8px 10px;display:flex;align-items:center;justify-content:center;gap:7px}.dialogue-tab small{font-size:9px;white-space:nowrap;margin:0}.dialogue-tab strong{font-size:11px;line-height:1.6}
@media(max-width:1100px){.home-heading{grid-template-columns:minmax(0,1fr) minmax(315px,1fr);gap:16px}.home-heading h1{font-size:21px}.course-progress{padding:11px 13px}.course-progress-title{gap:10px}}
@media(max-width:920px){.home-heading{grid-template-columns:1fr;gap:13px}.home-heading .course-progress{width:100%}.course-progress-task .help-note{font-size:11px}}
@media(max-width:740px){.topbar{height:43px;min-height:43px}.home-heading{gap:12px}.home-heading h1{font-size:20px}.home-heading p{max-width:none}.course-progress{padding:11px 13px}.course-progress-title{font-size:11px;gap:12px}.dialogue-tab{min-height:42px;flex-basis:116px;padding:8px}.dialogue-tab small{font-size:9px}.dialogue-tab strong{font-size:11px}}
.voice-message-error{font-size:11px;line-height:1.8;color:#a17452;margin:6px 0 0;max-width:390px}.voice-message.failed .voice-bubble{outline:1px solid #d3b792}.voice-message-actions button[data-chat-retry],.voice-message-actions button[data-chat-retry-audio]{color:#8b673e;text-decoration:underline}
.service-connection{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #dbe5ce;background:#f2f6eb;border-radius:7px;font-size:11px;line-height:1.8}.service-connection .secondary{font-size:10px;min-height:29px;padding:4px 8px;white-space:nowrap}#local-service-status[data-state="online"]{color:#57763c}#local-service-status[data-state="offline"]{color:#a16f51}
/* Reserve the playback dock; long learning content scrolls inside its own card. */
.topbar{height:36px;min-height:36px}.page{flex:1;min-height:0;padding:14px 24px}.page-heading{margin-bottom:14px}
.player-dock{flex:0 0 auto;min-width:0;padding:8px 24px;background:#f6f8f1;border-top:1px solid #e1e8d9;z-index:5}.player-dock .player{margin:0;min-height:56px;height:56px;padding:6px 12px;box-sizing:border-box}.player-dock .play-big{width:42px;height:42px;flex-shrink:0}.player-dock .player-time{font-size:11px}.player-dock .player-title{font-size:12px}
.page-home{display:flex;flex-direction:column;overflow:hidden}.page-home .home-heading{flex:0 0 auto;margin-bottom:12px;gap:18px}.course-progress{padding:8px 12px}.course-progress-track{margin-top:6px}.course-progress-task{margin-top:6px}.course-progress-task .secondary{min-height:24px}
.page-home .workspace{flex:1;min-height:0;align-items:stretch;overflow:hidden;gap:18px}.page-home .content{min-height:0;display:flex;flex-direction:column}.page-home .dialogue-tabs{flex:0 0 auto}.dialogue-tab{min-height:40px;padding:6px 9px}
.page-home .practice-box{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;margin-top:8px}.page-home .practice-top{display:none}.stage-strip{flex:0 0 auto;padding:9px 14px 8px}.stage-head{flex:0 0 auto;padding:8px 18px}.stage-head h3{margin-bottom:0}.stage-head p{margin:4px 0 0}.practice-footer{flex:0 0 auto;padding:6px 16px}.stage-body{flex:1;min-height:0;overflow:auto;scrollbar-width:thin}.stage-body>.transcript{max-height:none;overflow:visible}
.stage-body .listen-hero{padding:12px 18px;min-height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center}.stage-body .listen-hero .audio-art{width:48px;height:48px;margin:0 0 10px}.stage-body .listen-hero h4{margin:0 0 6px}.stage-body .listen-hero>p{margin:0 0 8px}.stage-body .speed-ladder{margin:10px 0}.stage-body .listen-hero .recorder-actions{margin:10px 0}.stage-body .listen-hero+.text-toolbar{margin-top:0}
.stage-body .recorder{height:100%;min-height:0;box-sizing:border-box;display:flex;flex-direction:column;padding:8px 16px 10px}.stage-body .large-nav{flex:0 0 auto;margin-bottom:8px}.stage-body .prompt-card{flex:1;min-height:0;overflow:auto;justify-content:flex-start;padding:10px 16px}.stage-body .recorder-actions{flex:0 0 auto;margin-top:10px}.stage-body .prompt-card .prompt-en{margin-top:10px}.stage-body .source-variation{margin:0 16px 8px}
.page-home .right-column{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}.page-home .right-column .panel{padding:13px;flex-shrink:0}.page-home .right-column .panel-head{margin-bottom:10px}.compact .calendar-day{min-height:27px}
.catalog{gap:12px}.course-card{padding:14px 16px;min-height:105px}.calendar-full{padding:16px}.calendar-title{margin-bottom:14px}.full{gap:6px}.full .calendar-day{min-height:57px;padding:7px 10px}.full .calendar-day svg{width:22px;height:22px;right:10px;top:10px}.full .calendar-day small{margin-top:9px}.calendar-footer{margin-top:14px}.plan-doc{padding:18px 20px;margin-bottom:14px}.review-large{padding:16px 19px}
.page-practice{display:flex;flex-direction:column;overflow:hidden}.page-practice>.page-heading{flex:0 0 auto}.page-practice .voice-layout{flex:1;min-height:0;align-items:stretch;gap:18px}.page-practice .voice-layout>aside{align-self:start;max-height:100%;overflow:auto;padding:16px}.page-practice .voice-chat{height:100%;min-height:0}.page-practice .voice-chat .chat-messages{height:auto;min-height:0;flex:1;padding:18px}.voice-controls{padding:12px 16px}.voice-chat .chat-head{padding:12px 17px}
.stage-body.show-transcript>.listen-hero{min-height:0;padding:8px 14px}.stage-body.show-transcript>.listen-hero .audio-art,.stage-body.show-transcript>.listen-hero h4,.stage-body.show-transcript>.listen-hero>p{display:none}.stage-body.show-transcript>.listen-hero .speed-ladder{margin:5px 0}.course-card h3{margin:5px 0}.course-card p{margin:0}
@media(max-width:1000px){.page-home .right-column{display:none}.page-home .workspace{grid-template-columns:minmax(0,1fr)}.page-home .home-heading{grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:14px}.home-heading .course-progress-task .help-note{font-size:10px}.course-progress-title{gap:8px}}
@media(max-width:740px){.page{padding:10px 12px}.topbar{height:35px;min-height:35px}.player-dock{padding:6px 12px}.player-dock .player{min-height:56px;height:56px;padding:6px 9px;gap:9px}.player-dock .player-title{font-size:11px}.player-dock .player-time{font-size:10px;min-width:68px}.player-dock .play-big{width:38px;height:38px}.page-home .home-heading{grid-template-columns:1fr;gap:9px;margin-bottom:10px}.course-progress{padding:7px 11px}.course-progress-task .help-note{font-size:10px}.course-progress-task{margin-top:4px}.course-progress-task .secondary{min-height:22px}.home-heading p{margin-top:4px}.dialogue-tab{min-height:38px;padding:5px 8px}.stage-strip{padding:8px 10px}.stage-head{padding:7px 13px}.practice-footer{padding:5px 12px}.stage-body .recorder{padding:7px 12px 9px}.stage-body .prompt-card{padding:9px 13px}.stage-body .listen-hero{padding:10px 12px}.stage-body .large-nav{margin-bottom:7px}.stage-body .recorder-actions{margin-top:8px}.page-practice .voice-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:10px}.page-practice .voice-layout>aside{padding:11px;max-height:150px}.page-practice .voice-chat{min-height:0}.page-practice .voice-chat .chat-messages{padding:13px}.voice-controls{padding:10px}.full .calendar-day{min-height:56px;padding:6px}.calendar-full{padding:12px}}
.player-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-title>small{flex-shrink:0}
.learning-records{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.learning-records h3{margin:0}.record-tools{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.danger-button{border:1px solid #d9bdb5;color:#984d3d;background:#fff8f5;padding:7px 12px;border-radius:6px;font-size:11px;min-height:34px}.danger-button:hover{background:#faece7}.danger-solid{background:#9c4c3b;color:white;border-color:#9c4c3b}.danger-solid:hover{background:#853e30}#clear-records-result{font-size:12px;color:#984d3d}
.stage-navigation{display:flex;gap:8px;min-width:0}.practice-footer>.primary{white-space:nowrap}.dialogue-tab.dialogue-complete small{color:#537d48}.dialogue-tab.dialogue-complete{border-color:#a5b895}.review-item>span{min-width:0;overflow-wrap:anywhere}@media(max-width:740px){.stage-navigation{gap:5px}.practice-footer{gap:7px}.practice-footer .secondary,.practice-footer .primary{padding-left:9px;padding-right:9px}}
/* Keep the reset action visibly distinct from the left play/pause toggle. */
.player .player-stop{width:auto;min-width:60px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;font-size:11px}.player-stop svg{width:16px;height:16px}
@media(max-width:740px){.player .player-stop{min-width:52px;padding:0 6px;gap:4px}}
