:root{--ink:#153c37;--teal:#15534d;--teal-2:#2a8175;--paper:#f7f8f3;--white:#fff;--line:#dfe8e1;--muted:#617a71;--mint:#e7f2e9;--gold:#eec66f;--shadow:0 16px 38px rgba(32,65,49,.07);font-family:Inter,"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,a{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #e0ac45;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.46}.site-header{background:#fff;border-bottom:1px solid #e8eee8;position:sticky;top:0;z-index:10}.header-inner{max-width:1390px;margin:auto;min-height:74px;display:flex;align-items:center;gap:48px;padding:0 28px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;font-size:23px;white-space:nowrap;letter-spacing:-.05em}.brand small{display:block;color:#408578;font-size:10px;letter-spacing:.22em;line-height:1.1;margin-top:3px}.brand-mark{width:39px;height:39px;border-radius:11px;display:grid;place-items:center;background:var(--teal);color:var(--gold);font-size:29px;font-weight:900;line-height:1}.main-nav{display:flex;gap:9px;align-self:stretch;margin:auto}.nav-button{background:none;border:0;border-bottom:3px solid transparent;padding:4px 16px 0;color:#647971;font-weight:750;font-size:14px;white-space:nowrap}.nav-button:hover,.nav-button.active{color:var(--teal);border-color:var(--gold)}.local-pill{white-space:nowrap;border-radius:99px;background:#edf3eb;color:#5f7b6c;font-size:12px;font-weight:750;padding:8px 12px}.page{max-width:1390px;margin:auto;padding:27px 28px 72px}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 20px}.eyebrow{margin:0 0 7px;text-transform:uppercase;letter-spacing:.2em;color:#258477;font-size:12px;font-weight:900}.page-intro h1{font-size:clamp(25px,3vw,36px);line-height:1.25;letter-spacing:-.055em;margin:0 0 7px}.intro-copy{margin:0;color:var(--muted);font-size:15px}.date-chip{background:#e7efe8;color:#547363;padding:10px 14px;border-radius:999px;white-space:nowrap;font-size:13px;font-weight:750}.goal-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:27px}.goal-option{display:flex;align-items:center;gap:15px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:19px;min-height:87px;padding:16px 18px;box-shadow:var(--shadow);color:var(--ink)}.goal-option:hover{border-color:#7fb9a4}.goal-option.active{border-color:#2b9a79;background:#f2f9f3;box-shadow:0 0 0 2px #d8ebdf}.goal-option strong,.goal-option small{display:block}.goal-option strong{font-size:17px}.goal-option small{color:#6e857b;font-size:12px;margin-top:3px}.goal-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;color:#207d70;background:#dff1e8;font-size:23px;font-weight:800}.work-icon{color:#9a7533;background:#f3ecdc}.ielts-icon{color:#656ba5;background:#eaeaf7}.goal-check{margin-left:auto;color:white;border-radius:50%;background:var(--teal);width:22px;height:22px;display:none;place-items:center;font-size:14px}.goal-option.active .goal-check{display:grid}.view[hidden]{display:none}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:0 0 16px}.section-heading h2{font-size:25px;letter-spacing:-.04em;margin:0}.section-note{font-size:13px;color:#789083;margin:0 0 4px;text-align:right}.today-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(500px,1.22fr);gap:15px;align-items:start}.panel{background:#fff;border:1px solid #e5ebe5;border-radius:22px;box-shadow:var(--shadow)}.course-panel,.words-panel,.review-panel{padding:25px}.panel-head,.review-head,.vocab-main-head{display:flex;align-items:start;justify-content:space-between;gap:10px}.step-label{display:block;color:#208574;letter-spacing:.15em;font-size:12px;font-weight:900;text-transform:uppercase}.panel h3{font-size:20px;letter-spacing:-.04em;margin:7px 0 0}.badge{display:inline-block;background:#eff2e8;border:1px solid #dee8d6;border-radius:999px;color:#667756;font-size:12px;font-weight:800;padding:6px 10px;white-space:nowrap}.course-hero{margin-top:19px;background:linear-gradient(140deg,#164d48,#246d61);border-radius:18px;color:#fff;padding:27px;position:relative;overflow:hidden;min-height:214px}.course-hero:before,.course-hero:after{content:"";position:absolute;border:1px solid #ffffff24;border-radius:50%;width:290px;height:290px;right:-120px;top:-120px}.course-hero:after{width:210px;height:210px;right:-65px;top:-80px}.course-hero>*{position:relative;z-index:1}.course-number{color:#c5e3d1;font-size:13px;font-weight:850;letter-spacing:.08em}.course-hero h4{font-size:26px;line-height:1.3;margin:23px 0 8px;max-width:360px}.course-hero p{font-size:14px;line-height:1.65;color:#d7eae2;margin:0;max-width:420px}.course-action{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}.course-action a,.course-action button{border:0;border-radius:10px;text-decoration:none;padding:10px 14px;font-size:14px;font-weight:850}.course-action a{background:var(--gold);color:#193d35}.course-action button{background:#ffffff20;color:#fff;border:1px solid #ffffff3e}.course-caveat{margin:16px 1px 0;color:#6f8176;font-size:13px;line-height:1.6}.text-button{background:none;border:0;padding:0;color:#167d6a;font-weight:850;text-decoration:underline;text-underline-offset:3px}.panel-subtitle{font-size:14px;color:#6d8175;margin:8px 0 17px}.day-ring{min-width:52px;height:52px;padding:0 5px;border-radius:50%;display:grid;place-items:center;background:#e7f0e9;border:5px solid #cae4d5;color:var(--teal);font-size:13px;font-weight:900}.word-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.word-card{border:1px solid #e8eee7;border-radius:12px;padding:11px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 9px;background:#fff}.word-card.is-marked{background:#f5faf6;border-color:#cce6d5}.word-main{border:0;background:none;text-align:left;padding:0;min-width:0;color:var(--ink)}.word-main b{font-size:17px;margin-right:6px}.word-main span{font-size:12px;color:#98a99e;font-weight:800}.word-meaning{font-size:14px;color:#586f64;grid-column:1/-1;line-height:1.4}.listen-button{border:0;background:#eaf3ed;color:#1d6f63;width:29px;height:29px;border-radius:8px;font-size:14px}.mark-actions{grid-column:1/-1;display:flex;gap:6px;margin-top:5px}.mark-actions button{flex:1;border:1px solid #dbe7de;background:#fff;color:#557468;border-radius:8px;font-size:12px;font-weight:800;padding:6px 4px}.mark-actions button.selected{background:#1d6a5c;color:#fff;border-color:#1d6a5c}.mark-actions button.review-selected{background:#fff4dc;border-color:#d9b76c;color:#795b20}.daily-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.daily-actions span{font-size:13px;color:#6e8176}.primary-button{border:0;background:#145249;color:#fff;border-radius:10px;padding:11px 17px;font-size:14px;font-weight:850;white-space:nowrap}.primary-button:hover:not(:disabled){background:#0b3d37}.review-panel{margin-top:15px}.subtle-count{border-radius:99px;background:#eff5ed;color:#557667;font-size:12px;padding:7px 10px;font-weight:850;white-space:nowrap}.review-empty{margin:16px 0 0;color:#76897b;font-size:14px}.review-items{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.review-item{border:1px solid #dfebdf;border-radius:10px;padding:8px 11px;display:flex;align-items:center;gap:12px;font-size:14px}.review-item span{color:#789182;font-size:12px}.review-item button{border:0;background:#eaf4ed;color:#216958;border-radius:7px;padding:6px 8px;font-size:12px;font-weight:800}.path-message{border-radius:15px;background:#e9f2eb;border:1px solid #d2e4d5;padding:15px 19px;color:#315f50;font-size:14px;line-height:1.6;margin-bottom:15px}.course-path{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.path-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:21px 23px;box-shadow:var(--shadow);position:relative}.path-card.is-next{border-color:#62ae90;background:#fbfffb}.path-card.is-done{background:#f4f8f4}.path-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.path-step{color:#227a6c;font-size:12px;font-weight:900;letter-spacing:.1em}.path-card h3{font-size:21px;margin:12px 0 7px}.path-card p{font-size:14px;line-height:1.65;color:#5b7468;margin:0}.path-tags{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0 0}.path-tags span{background:#eef3ec;color:#587269;font-size:12px;padding:5px 8px;border-radius:7px}.path-actions{display:flex;gap:10px;align-items:center;margin-top:19px}.path-actions a{background:#15574c;color:white;text-decoration:none;border-radius:9px;padding:9px 12px;font-size:14px;font-weight:800}.path-actions button{background:#fff;border:1px solid #d1e2d6;color:#236e5e;border-radius:9px;padding:8px 11px;font-size:13px;font-weight:800}.path-card .fine-print{color:#809186;font-size:12px;margin-top:12px}.vocab-layout{display:grid;grid-template-columns:250px 1fr;gap:15px;align-items:start}.vocab-sidebar,.vocab-main{padding:23px}.vocab-sidebar h3{font-size:18px;margin:0 0 15px}.day-picker{display:grid;grid-template-columns:1fr 1fr;gap:7px}.day-picker button{border:1px solid #dce8de;background:#fff;border-radius:9px;padding:9px 4px;color:#4a6b5b;font-size:13px;font-weight:800}.day-picker button.active{background:#1d6a5c;border-color:#1d6a5c;color:#fff}.small-note{font-size:12px;line-height:1.5;color:#758a7c;margin:16px 0 0}.vocab-main-head{margin-bottom:14px}.vocab-row{display:grid;grid-template-columns:52px minmax(115px,.9fr) minmax(100px,1fr) minmax(105px,1fr) auto;gap:10px;align-items:center;padding:13px 5px;border-bottom:1px solid #e9eee8}.vocab-row:last-child{border-bottom:0}.vocab-row .number{color:#91a596;font-size:12px;font-weight:900}.vocab-row strong{font-size:16px}.vocab-row .meaning,.vocab-row .topic{font-size:14px;color:#547264}.vocab-row .topic{font-size:12px;color:#8aa092}.vocab-row button{background:#e9f3ec;border:0;border-radius:8px;color:#196f60;padding:7px 10px;font-size:12px;font-weight:850}.record-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.record-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.record-card h3{font-size:19px;margin:0 0 17px}.record-stat{font-size:37px;font-weight:900;color:#155e51;letter-spacing:-.05em}.record-card p{color:#687f70;font-size:14px;line-height:1.5;margin:6px 0}.progress-track{background:#e7efe6;border-radius:99px;height:8px;overflow:hidden;margin:17px 0 0}.progress-track i{display:block;height:100%;background:#2e9076;border-radius:99px}.record-note{background:#eaf3eb;border-radius:15px;padding:18px 20px;color:#526f60;margin-top:15px;font-size:14px;line-height:1.6}.site-footer{border-top:1px solid #e2e9e1;max-width:1334px;margin:auto;padding:25px 0 35px;color:#83a092;font-size:12px;display:flex;justify-content:space-between;gap:20px}.word-dialog{border:1px solid #d7e8da;border-radius:20px;padding:26px;width:min(490px,calc(100vw - 32px));box-shadow:0 30px 90px #163d3659;color:var(--ink)}.word-dialog::backdrop{background:#193c3988}.word-dialog h2{font-size:31px;margin:4px 0}.dialog-pos{font-size:14px;color:#8da394}.dialog-meaning{font-size:19px;color:#246758;font-weight:750;margin:12px 0 20px}.dialog-detail{border-top:1px solid #e4ece4;padding-top:13px;margin-top:13px}.dialog-detail b{font-size:13px;color:#739083}.dialog-detail p{font-size:16px;line-height:1.6;margin:5px 0}.dialog-tip{font-size:12px;color:#859a89;margin-top:16px}.secondary-button{border:1px solid #d6e3d7;background:#fff;color:#1c6b5b;border-radius:9px;padding:9px 14px;font-size:14px;font-weight:800}.close-dialog{margin-top:18px;width:100%}@media(max-width:1080px){.today-grid{grid-template-columns:1fr 1.2fr}.header-inner{gap:22px}.main-nav{gap:0}.nav-button{padding-left:10px;padding-right:10px}}@media(max-width:800px){.today-grid{grid-template-columns:1fr}.course-path{grid-template-columns:1fr}.vocab-layout{grid-template-columns:1fr}.vocab-sidebar{padding:18px}.day-picker{grid-template-columns:repeat(5,1fr)}.record-grid{grid-template-columns:1fr 1fr}.site-footer{padding-left:20px;padding-right:20px}}@media(max-width:620px){.header-inner{flex-wrap:wrap;padding:12px 16px 0;gap:6px;min-height:0}.brand{font-size:20px}.brand-mark{width:34px;height:34px}.local-pill{margin-left:auto}.main-nav{order:3;width:100%;overflow:auto;justify-content:space-between}.nav-button{padding:12px 8px;font-size:13px}.page{padding:22px 15px 48px}.page-intro{align-items:start}.date-chip{display:none}.goal-picker{grid-template-columns:1fr;gap:8px}.goal-option{min-height:67px;padding:10px 13px}.goal-icon{height:40px;width:40px}.goal-option strong{font-size:15px}.section-heading h2{font-size:22px}.section-note{display:none}.course-panel,.words-panel,.review-panel{padding:19px}.course-hero{min-height:0;padding:22px}.course-hero h4{font-size:23px}.word-cards{grid-template-columns:1fr 1fr}.word-main b{font-size:16px}.daily-actions{align-items:stretch;flex-direction:column}.daily-actions span{min-height:16px}.daily-actions button{width:100%}.vocab-row{grid-template-columns:30px 1fr 1fr auto}.vocab-row .topic{display:none}.record-grid{grid-template-columns:1fr}.site-footer{display:block;padding:20px 16px 30px}.site-footer span{display:block;margin-top:4px}}@media(max-width:390px){.word-cards{grid-template-columns:1fr}.vocab-row{grid-template-columns:25px 1fr 1fr auto}}
/* Pronunciation follows each English word in every vocabulary surface. */
.word-main .ipa,.vocab-word .ipa,.review-item .ipa,.dialog-ipa{font-family:Inter,"Noto Sans",system-ui,sans-serif;font-size:14px;font-weight:500;letter-spacing:0;color:#2d7869;line-height:1.35;overflow-wrap:anywhere}
.word-main .ipa{display:inline-block;margin-right:6px;vertical-align:baseline}
.word-main .word-order{white-space:nowrap}
.vocab-word{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 7px}
.review-item{flex-wrap:wrap}
.review-item .ipa{font-size:13px;color:#2d7869}
.dialog-ipa{font-size:18px;white-space:normal}
.day-picker{max-height:min(60vh,440px);overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
.vocab-day-label{display:block;margin:12px 0 6px;font-size:13px;font-weight:700;color:var(--muted)}
#vocab-day-select{width:100%;padding:9px 12px;margin-bottom:12px;border:1px solid #c6dccc;border-radius:9px;background:#fff;color:#1c4d3a;font:inherit}
.dialog-source{border-top:1px solid #e4ece4;padding-top:12px;margin:13px 0 0;font-size:13px;line-height:1.5;color:#617a71}
.account-controls{display:flex;align-items:center;gap:8px;margin-left:auto}.account-controls .local-pill{border:0}.account-button{border:1px solid #cfe2d7;border-radius:999px;background:#f2f8f3;color:#15574c;font-size:13px;font-weight:800;padding:8px 12px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-button:hover{background:#e4f2e8}.account-dialog{max-width:440px}.account-dialog-head{display:flex;justify-content:space-between;align-items:center}.account-close{border:0;background:none;color:#5e796b;font-size:26px;line-height:1}.account-dialog h2{font-size:25px;margin:10px 0 6px}.account-intro{font-size:14px;line-height:1.6;color:#587366;margin:0 0 16px}.account-tabs{display:flex;gap:8px;border-bottom:1px solid #dfe8e1;margin:0 0 18px}.account-tabs button{border:0;border-bottom:3px solid transparent;background:none;color:#647c6d;padding:9px 12px;font-size:14px;font-weight:800}.account-tabs button.active{border-color:#e6b550;color:#15574c}#account-form{display:grid;gap:7px}#account-form label{font-size:14px;font-weight:750;margin-top:4px}#account-form input{width:100%;border:1px solid #cadfd1;border-radius:9px;padding:11px 12px;color:#153c37;background:#fff;font:inherit;font-size:15px}#account-form input:focus{outline:2px solid #77b39a;outline-offset:1px}.account-submit{margin-top:10px;width:100%}.account-message{font-size:13px;line-height:1.5;color:#537767;min-height:20px;margin:12px 0 0}.account-message.is-error{color:#a13c35}.account-choice{display:flex;gap:9px;flex-wrap:wrap}.account-choice button{flex:1;min-width:150px}.account-dialog [hidden]{display:none!important}#account-sign-out{margin-top:13px}@media(max-width:620px){.account-controls{gap:5px}.account-button{max-width:130px;font-size:12px;padding:7px 9px}.account-controls .local-pill{font-size:11px;padding:7px 8px}.account-dialog{padding:20px}}
.account-controls .sync-error{background:#fff2ed;color:#9e4031}

/* Course lessons keep the publisher sequence visible while giving each step a Chinese guide. */
.path-card.is-open{grid-column:1/-1;border-color:#77b79c}
.path-progress{display:flex;align-items:center;gap:12px;margin-top:15px;color:#276c5c;font-size:13px;font-weight:800}
.path-progress-track{width:125px;height:7px;background:#e4eee5;border-radius:99px;overflow:hidden}
.path-progress-track i{display:block;height:100%;background:#339478;border-radius:99px}
.path-actions{flex-wrap:wrap}
.lesson-layout{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(300px,1.2fr);gap:17px;margin-top:23px;padding-top:21px;border-top:1px solid #dceadf}
.lesson-sidebar{border:1px solid #deebe1;border-radius:14px;background:#f8fbf7;padding:15px;min-width:0}
.lesson-sidebar>strong{display:block;font-size:13px;color:#296b5d;margin-bottom:10px}
.lesson-list{list-style:none;margin:0;padding:0;max-height:440px;overflow:auto;scrollbar-color:#b8d6c6 transparent}
.lesson-list li+li{margin-top:5px}
.lesson-list button{width:100%;display:flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:9px;background:transparent;text-align:left;padding:8px 9px;color:#3b6555}
.lesson-list button:hover{background:#eaf3ec}
.lesson-list button.active{background:#e5f3e9;border-color:#b8ddc7;color:#125849}
.lesson-index{font-size:12px;font-weight:900;color:#779989;min-width:22px}
.lesson-list-title{font-size:13px;font-weight:800;line-height:1.35;min-width:0;overflow-wrap:anywhere}
.lesson-list-title small{display:block;margin-top:2px;font-size:11px;font-weight:500;color:#789187}
.lesson-check{margin-left:auto;font-weight:900;color:#23856f}
.lesson-detail{border:1px solid #dfeae1;border-radius:14px;background:#fff;padding:23px;align-self:start;min-width:0}
.lesson-detail h4{margin:9px 0 4px;font-size:23px;letter-spacing:-.04em;overflow-wrap:anywhere}
.lesson-detail .lesson-original{color:#6b8376;font-size:14px;margin:2px 0 0}
.lesson-guide{margin:20px 0 0;border-left:4px solid #ddbc72;background:#fcf8ec;border-radius:0 9px 9px 0;padding:14px 16px}
.lesson-guide b{font-size:12px;color:#846b36}
.lesson-guide p{margin:6px 0 0;color:#425d50;font-size:15px;line-height:1.7}
.lesson-actions,.lesson-neighbors{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}
.lesson-actions a,.lesson-actions button,.lesson-neighbors button{border-radius:9px;padding:10px 13px;font-size:13px;font-weight:850;text-decoration:none}
.lesson-actions a{background:#15574c;color:#fff}
.lesson-actions button{background:#e9f3eb;color:#176652;border:1px solid #bfdcca}
.lesson-neighbors{justify-content:space-between;margin-top:13px}
.lesson-neighbors button{background:#fff;border:1px solid #d3e3d8;color:#316c5a}
.lesson-detail .lesson-note{font-size:12px;color:#83968a;margin-top:17px}
@media(max-width:800px){.lesson-layout{grid-template-columns:1fr}.lesson-list{max-height:250px}}
@media(max-width:620px){.path-card{padding:17px}.path-top{align-items:start}.path-step{line-height:1.5}.path-card h3{font-size:19px}.lesson-detail{padding:17px}.lesson-detail h4{font-size:20px}.lesson-actions a,.lesson-actions button{width:100%;text-align:center}}

/* Old words return on their own schedule and are tested without showing the answer first. */
.review-summary{margin:12px 0 0;color:#688074;font-size:13px;line-height:1.6}
.review-ready,.quiz-finish{margin-top:17px;padding:19px;border:1px solid #d8e9dc;border-radius:15px;background:#f6faf6}
.review-ready{display:flex;align-items:center;justify-content:space-between;gap:18px}
.review-ready strong,.quiz-finish strong{font-size:16px;color:#174f45}
.review-ready p,.quiz-finish p{margin:6px 0 0;font-size:13px;line-height:1.6;color:#60796a}
.review-topics{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.review-topics span{border-radius:999px;background:#e7f1e9;color:#3d6956;padding:5px 9px;font-size:12px}
.quiz-card{margin-top:17px;border:1px solid #d8e9dc;border-radius:15px;padding:21px;background:linear-gradient(155deg,#fbfdf9,#f2f8f3)}
.quiz-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#33826b;font-size:12px;font-weight:900;letter-spacing:.05em}
.quiz-head button{border:0;background:none;color:#678475;font-size:12px;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.quiz-label{margin:22px 0 6px;color:#627d6e;font-size:13px}
.quiz-meaning{font-size:clamp(23px,3vw,30px);line-height:1.35;font-weight:850;color:#174f45}
.quiz-hint{font-size:12px;color:#789183;line-height:1.6;margin:11px 0 19px}
.quiz-form label{display:block;color:#315f51;font-size:13px;font-weight:800;margin-bottom:8px}
.quiz-form>div{display:flex;gap:8px}
.quiz-form input{width:100%;min-width:0;border:1px solid #bdd8c6;border-radius:9px;background:#fff;color:#174f45;padding:10px 12px;font:inherit;font-size:16px}
.quiz-form input:focus{outline:2px solid #6fb190;outline-offset:1px}
.quiz-result{border-radius:12px;border:1px solid #b9ddc6;background:#e9f5eb;padding:13px 15px;color:#225d49}
.quiz-result.is-incorrect{border-color:#e2d2a7;background:#fff8e8;color:#74571d}
.quiz-result strong{font-size:15px}
.quiz-result p{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:7px 0 5px;font-size:14px;line-height:1.5}
.quiz-result p b{font-size:17px}
.quiz-result small{font-size:12px}
.quiz-next,.quiz-finish .primary-button{margin-top:15px}
@media(max-width:620px){.review-ready{align-items:stretch;flex-direction:column}.review-ready .primary-button,.quiz-form .primary-button{width:100%}.quiz-form>div{flex-direction:column}.quiz-card{padding:17px}}

/* Goal-specific scenarios extend the existing learning workspace. */
.practice-intro{margin-bottom:16px}
.practice-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:15px}
.practice-list{display:grid;gap:10px}
.practice-page-heading{font-size:13px;font-weight:800;color:#48715f;padding:4px 2px}
.practice-pages{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:800;color:#48715f}
.practice-pages button{border:1px solid #dbe8dc;border-radius:10px;background:#fff;color:#236451;padding:9px 13px;font:inherit;cursor:pointer}
.practice-pages button:disabled{opacity:.45;cursor:not-allowed}
.practice-item{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr);gap:4px 12px;text-align:left;padding:16px;border:1px solid #dde9df;border-radius:15px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}
.practice-item:hover,.practice-item.active{border-color:#70b494;background:#f4faf5}
.practice-index{grid-row:1/3;width:31px;height:31px;border-radius:9px;background:#e4f1e9;color:#277862;display:grid;place-items:center;font-size:13px;font-weight:900}
.practice-item strong,.practice-item small{display:block}
.practice-item strong{font-size:16px;line-height:1.45}
.practice-item small{margin-top:3px;font-size:12px;color:#6b8675;line-height:1.4}
.practice-score{grid-column:2;color:#3e816b;font-size:12px;font-weight:800}
.practice-stage{padding:25px;min-height:300px}
.practice-stage h3{margin:8px 0 10px;font-size:24px}
.practice-context{margin:0 0 18px;color:#526d5d;font-size:15px;line-height:1.7}
.practice-note{margin:13px 0 18px;color:#708679;font-size:13px;line-height:1.6}
.practice-stage-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.practice-stage-head button{border:0;background:none;color:#5c7968;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.practice-question{border-top:1px solid #e1ebe3;padding-top:20px;margin-top:19px;font-size:17px;line-height:1.55}
.practice-options{display:grid;gap:9px;margin-top:16px}
.practice-options button{display:flex;align-items:start;gap:13px;width:100%;padding:13px 14px;border:1px solid #dce8df;border-radius:11px;background:#fff;color:#244b3d;text-align:left;font-size:15px;line-height:1.55}
.practice-options button:hover:not(:disabled){border-color:#5da680;background:#f7fbf7}
.practice-options button span{flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;background:#e9f1e9;color:#326d55;font-size:12px;font-weight:900}
.practice-options button.is-correct{border-color:#71b38a;background:#e9f6ec}
.practice-options button.is-incorrect{border-color:#dfb9a2;background:#fff2eb}
.practice-options button:disabled{opacity:1;cursor:default}
.practice-feedback{margin-top:16px;border:1px solid #acd6ba;border-radius:12px;background:#edf8ef;padding:14px 16px;color:#245d40}
.practice-feedback.is-incorrect{border-color:#e1c2ac;background:#fff6ef;color:#83513b}
.practice-feedback strong{font-size:15px}
.practice-feedback p{font-size:14px;line-height:1.65;margin:6px 0}
.practice-feedback small{font-size:13px;line-height:1.5}
.practice-next{margin-top:15px}
.practice-final-score{font-size:56px;line-height:1.2;color:#1e725b;font-weight:900;margin:13px 0}
.practice-final-score span{font-size:19px;color:#648273;font-weight:700}
.practice-finish-actions{display:flex;flex-wrap:wrap;gap:9px}
@media(max-width:800px){.practice-layout{grid-template-columns:1fr}.practice-stage{order:-1}.practice-list{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-item{display:block}.practice-index{margin-bottom:10px}.practice-score{display:block;margin-top:7px}}
@media(max-width:800px){.practice-page-heading,.practice-pages{grid-column:1/-1}}
@media(max-width:620px){.practice-list{grid-template-columns:1fr}.practice-item{display:grid}.practice-stage{padding:19px}.practice-stage h3{font-size:22px}.practice-finish-actions>*{flex:1;min-width:140px}}
.lesson-output{margin-top:22px;padding:20px;border:1px solid #cfe4d6;border-radius:14px;background:#f5faf5}
.lesson-output-head{display:flex;align-items:start;justify-content:space-between;gap:12px}
.lesson-output h5{font-size:19px;line-height:1.35;margin:5px 0 0;color:#164f43}
.output-state{border-radius:99px;padding:5px 10px;background:#e6f1e9;color:#286755;font-size:12px;font-weight:800;white-space:nowrap}
.output-prompt{font-size:15px;line-height:1.7;color:#294f43;margin:15px 0 7px;font-weight:650}
.output-hint{font-size:13px;line-height:1.6;color:#657e70;margin:0 0 15px}
.output-label{display:block;font-size:14px;font-weight:800;margin-bottom:8px}
.lesson-output textarea{display:block;width:100%;resize:vertical;min-height:112px;border:1px solid #bed7c5;border-radius:10px;padding:12px;font:inherit;font-size:15px;line-height:1.6;color:#173e34;background:#fff}
.lesson-output textarea:focus-visible,.lesson-output input:focus-visible,.output-example summary:focus-visible{outline:3px solid #e0ac45;outline-offset:3px}
.output-checks{border:0;padding:0;margin:16px 0 0;display:grid;gap:8px}
.output-checks legend{font-size:13px;font-weight:800;color:#416c57;margin-bottom:8px}
.output-checks label{display:flex;align-items:start;gap:9px;font-size:13px;line-height:1.5;color:#446757}
.output-checks input{width:17px;height:17px;flex:none;margin:1px 0 0;accent-color:#176d57}
.output-save{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px}
.output-save span{font-size:12px;color:#718a79}
.output-example{border-top:1px solid #d9e9dc;margin-top:18px;padding-top:13px}
.output-example summary{cursor:pointer;color:#196b58;font-size:14px;font-weight:800}
.output-example p{margin:10px 0 0;color:#365a4b;font-size:15px;line-height:1.7;white-space:normal}
@media(max-width:620px){.lesson-output{padding:16px;margin-top:18px}.lesson-output h5{font-size:18px}.output-save{align-items:stretch;flex-direction:column}.output-save .primary-button{width:100%}}
.review-demo-ready{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding:17px;border:1px solid #d9e8dc;border-radius:14px;background:#f7fbf7}
.review-demo-ready .review-empty{flex:1 1 320px;margin:0;color:#516f5d;line-height:1.6}
.review-demo-ready small{flex-basis:100%;color:#718a79;font-size:12px;line-height:1.5}
@media(max-width:620px){.review-demo-ready{align-items:stretch;flex-direction:column}.review-demo-ready .review-empty{flex:auto}.review-demo-ready button{width:100%}.review-demo-ready small{flex:auto}}
.primary-icon{color:#b45b6a;background:#fae9ed}.junior-icon{color:#4373a6;background:#e8f1fa}.senior-icon{color:#805ca1;background:#f1eafa}
.school-lesson{margin-top:15px;padding:18px;border:1px solid #c9dfd0;border-radius:13px;background:#f6faf6}
.school-lesson h5{margin:8px 0;font-size:18px;color:#164f43}
.school-lesson>p{margin:8px 0;color:#365e4d;line-height:1.75;font-size:15px}
.school-example{margin-top:15px;padding:14px 16px;border-left:3px solid #d9ab4e;background:#fff;border-radius:0 10px 10px 0}
.school-example strong{font-size:12px;color:#907038}
.school-example p{margin:6px 0 3px;color:#174d40;font-size:17px;font-weight:800;line-height:1.6}
.school-example small{color:#668070;font-size:13px;line-height:1.6}
.school-lesson .school-direction{margin:14px 0 0;font-size:13px;color:#5e7868}
@media(max-width:620px){.goal-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.goal-option{gap:8px;min-width:0;padding:10px}.goal-option>span:nth-child(2){min-width:0}.goal-option small{line-height:1.25}.goal-check{display:none!important}.goal-icon{width:36px;height:36px;font-size:19px}}
.speaking-intro{margin-bottom:16px}
.speaking-stage{max-width:760px;padding:clamp(21px,4vw,36px)}
.speaking-progress{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#587a68;font-size:13px}
.speaking-progress>span:last-child{white-space:nowrap}
.speaking-stage .speaking-sentence{margin:28px 0 7px;color:#164f43;font-size:clamp(26px,4vw,38px);line-height:1.3;letter-spacing:-.02em}
.speaking-meaning{margin:0;color:#5b7466;font-size:16px;line-height:1.6}
.speaking-words{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:20px;color:#617a6b;font-size:13px}
.speaking-words span{border-radius:99px;background:#e8f3eb;color:#256b53;padding:5px 10px;font-weight:750}
.speaking-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:29px}
.speaking-actions button{min-width:148px}
.speaking-actions button:disabled{opacity:.55;cursor:not-allowed}
.speaking-feedback{margin:21px 0 0;padding:13px 15px;border-radius:11px;border:1px solid #d5e3d7;background:#f6faf6;color:#355b47;line-height:1.55}
.speaking-feedback.is-correct{border-color:#9dceb0;background:#e9f6ed;color:#206247}
.speaking-feedback.is-incorrect{border-color:#e1c7ac;background:#fff5ec;color:#805137}
.speaking-feedback p{margin:5px 0 0;font-size:14px;overflow-wrap:anywhere}
.speaking-hint,.speaking-limit{font-size:13px;color:#708678;line-height:1.65}
.speaking-hint{margin:20px 0 0}
.speaking-fallback{margin-top:18px;padding:16px;border:1px solid #dbe7df;border-radius:12px;background:#f8fbf8}
.speaking-fallback label{display:block;color:#315847;font-size:14px;font-weight:700;line-height:1.5}
.speaking-fallback-row{display:flex;gap:9px;margin-top:10px}
.speaking-fallback-row input{min-width:0;flex:1;padding:11px 12px;border:1px solid #cbded1;border-radius:9px;background:#fff;color:#214d3c;font:inherit}
.speaking-fallback p{margin:10px 0 0;color:#6b8071;font-size:12px;line-height:1.5}
.speaking-limit{max-width:760px;margin:13px 0}
.speaking-navigation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:26px;padding-top:20px;border-top:1px solid #e0ebe2}
.speaking-navigation button{min-width:135px}
.speaking-navigation button:disabled{opacity:.48;cursor:not-allowed}
.speaking-finish{margin-top:21px;padding:17px;border:1px solid #b8dcc5;border-radius:12px;background:#f0f8f1;color:#245f48}
.speaking-finish strong{font-size:17px}
.speaking-finish p{color:#5b7466;line-height:1.6}
.speaking-finish button{margin-top:12px}
@media(max-width:620px){.speaking-stage{padding:20px}.speaking-actions,.speaking-fallback-row{flex-direction:column}.speaking-actions button,.speaking-fallback-row button{width:100%}.speaking-navigation button{min-width:0;flex:1}}
.daily-speaking-panel,.daily-dictation-panel{padding:25px}
.daily-speaking-panel{margin-top:16px}
.daily-speaking-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:16px 0}
.daily-speaking-item{display:grid;grid-template-columns:28px 100px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-width:0;padding:12px;border:1px solid #dce9df;border-radius:11px;background:#fff;color:#234e3d;text-align:left;font:inherit}
.daily-speaking-item:hover,.daily-speaking-item:focus-visible{border-color:#72b18b;background:#f7fbf7}
.daily-speaking-item>span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eaf2e9;color:#3c795c;font-size:12px;font-weight:800}
.daily-speaking-item strong{font-size:14px;overflow-wrap:anywhere}
.daily-speaking-item small{font-size:13px;line-height:1.45;color:#567565;overflow-wrap:anywhere}
.daily-speaking-item em{font-size:12px;font-style:normal;color:#27745b;white-space:nowrap}
.daily-speaking-item.is-passed{border-color:#b6dac0;background:#f0f8f1}
.speaking-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:16px}
.speaking-layout .speaking-stage{max-width:none;scroll-margin-top:108px}
.speaking-library{padding:20px}
.speaking-library h3{margin:0 0 14px;color:#164f43;font-size:18px}
.speaking-days{box-sizing:border-box;width:100%;margin-bottom:14px;padding:10px 12px;border:1px solid #c6dccc;border-radius:9px;background:#fff;color:#1c4d3a;font:inherit;font-size:15px}
.speaking-days:focus{outline:2px solid #70b38d;outline-offset:2px}
.speaking-source{margin:12px 0 0;color:#6b8172;font-size:12px;line-height:1.55;overflow-wrap:anywhere}
.speaking-source a{color:#31745c;text-decoration:underline}
.audio-status{position:fixed;z-index:30;left:50%;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:min(520px,calc(100vw - 28px));padding:12px 16px;border:1px solid #b8dcc5;border-radius:12px;background:#f0f8f1;color:#245f48;box-shadow:0 12px 32px rgba(20,60,45,.18);font-size:14px;line-height:1.5;text-align:center;overflow-wrap:anywhere}
.audio-status.is-error{border-color:#e1c7ac;background:#fff5ec;color:#805137}
.speaking-list{display:grid;gap:7px}
.speaking-list button{display:grid;grid-template-columns:26px minmax(0,1fr) 16px;align-items:start;gap:9px;width:100%;padding:10px;border:1px solid #e0eae2;border-radius:9px;background:#fff;color:#254b3c;text-align:left;font:inherit}
.speaking-list button.active{border-color:#6eaf88;background:#f0f8f1}
.speaking-list button>span:first-child{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#eaf2e9;font-size:12px;font-weight:850;color:#42765b}
.speaking-list strong{display:block;font-size:13px;line-height:1.3}
.speaking-list small{display:block;margin-top:3px;color:#6d8173;font-size:11px;line-height:1.35;overflow-wrap:anywhere}
.speaking-list em{color:#22815a;font-size:14px;font-style:normal}
@media(max-width:1050px){.daily-speaking-list{grid-template-columns:1fr}.speaking-layout{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:760px){.speaking-layout{grid-template-columns:1fr}.speaking-list{max-height:none}}
@media(max-width:620px){.daily-speaking-panel,.daily-dictation-panel{padding:19px}.daily-speaking-item{grid-template-columns:26px 75px minmax(0,1fr)}.daily-speaking-item em{grid-column:3}.speaking-library{padding:18px}}
@media(max-width:620px){.speaking-progress{align-items:flex-start;flex-direction:column;gap:3px}}
.daily-dictation-panel{margin-top:16px}
.daily-dictation-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}
.daily-dictation-actions button{min-width:175px}
.daily-dictation-actions button:disabled{opacity:.55;cursor:not-allowed}
.dictation-intro{margin-bottom:16px}
.dictation-tabs{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:14px}
.dictation-tabs button{padding:11px 16px;border:1px solid #cfe2d4;border-radius:10px;background:#fff;color:#275a43;font:inherit;font-weight:750;cursor:pointer}
.dictation-tabs button.active{border-color:#66a784;background:#e8f4ec;color:#175b41}
.dictation-tabs button:disabled{opacity:.55;cursor:not-allowed}
.dictation-tabs span{margin-left:5px;font-size:13px}
.dictation-stage{max-width:780px;padding:28px}
.dictation-progress{display:flex;justify-content:space-between;gap:12px;color:#638070;font-size:14px}
.dictation-prompt-label{margin:25px 0 8px;color:#638070;font-size:14px}
.dictation-prompt{margin:0 0 14px;color:#164f43;font-size:26px;line-height:1.45;overflow-wrap:anywhere}
.dictation-listen{margin:0 0 22px;min-height:42px}
.dictation-listen:disabled{opacity:.55;cursor:not-allowed}
#dictation-form{display:grid;gap:10px}
#dictation-form label{color:#315a47;font-weight:750}
#dictation-form input,#dictation-form textarea{box-sizing:border-box;width:100%;padding:13px 14px;border:1px solid #b8d2c1;border-radius:10px;background:#fff;color:#173d30;font:inherit;font-size:17px;line-height:1.5}
#dictation-form textarea{resize:vertical;min-height:110px}
#dictation-form input:focus,#dictation-form textarea:focus{outline:2px solid #70b38d;outline-offset:2px}
#dictation-form button{justify-self:start;margin-top:5px}
.dictation-result{margin:16px 0 0;padding:14px 16px;border:1px solid #e1c7ac;border-radius:10px;background:#fff5ec;color:#805137;line-height:1.6}
.dictation-result.is-correct{border-color:#9dceb0;background:#e9f6ed;color:#206247}
.dictation-result p{margin:5px 0 0;overflow-wrap:anywhere}
.dictation-navigation{display:flex;justify-content:space-between;gap:12px;margin-top:25px;padding-top:20px;border-top:1px solid #e0ebe2}
.dictation-navigation button{min-width:135px}
.dictation-navigation button:disabled{opacity:.48;cursor:not-allowed}
.dictation-finish{margin-top:18px;padding:16px;border:1px solid #b8dcc5;border-radius:11px;background:#f0f8f1;color:#245f48}
.dictation-finish p{margin:5px 0 12px;color:#5b7466;line-height:1.6}
@media(max-width:620px){.daily-dictation-actions{flex-direction:column}.daily-dictation-actions button{width:100%}.dictation-stage{padding:20px}.dictation-progress{flex-direction:column;gap:3px}.dictation-prompt{font-size:22px}.dictation-navigation button{min-width:0;flex:1}}
.dictation-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:16px}
.dictation-layout .dictation-stage{max-width:none;min-width:0;scroll-margin-top:108px}
.dictation-library{min-width:0;padding:20px}
.dictation-library h3{margin:0 0 14px;color:#164f43;font-size:18px}
.dictation-library label{display:block;margin-bottom:7px;color:#426b57;font-size:14px;font-weight:750}
#dictation-day-picker{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid #c6dccc;border-radius:9px;background:#fff;color:#1c4d3a;font:inherit;font-size:15px}
#dictation-day-picker:focus{outline:2px solid #70b38d;outline-offset:2px}
.dictation-today-button{width:100%;margin-top:9px}
.dictation-today-button:disabled{opacity:.55;cursor:not-allowed}
.dictation-library-count{margin:18px 0 10px;color:#52715e;font-size:14px;line-height:1.5}
.dictation-list{display:grid;gap:7px}
.dictation-list button{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-width:0;padding:10px;border:1px solid #e0eae2;border-radius:9px;background:#fff;color:#254b3c;text-align:left;font:inherit;cursor:pointer}
.dictation-list button.active{border-color:#6eaf88;background:#f0f8f1}
.dictation-list button:hover,.dictation-list button:focus-visible{border-color:#72b18b}
.dictation-list button>span:first-child{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:#eaf2e9;color:#42765b;font-size:12px;font-weight:850}
.dictation-list button>span:nth-child(2){font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.dictation-list em{color:#668171;font-size:12px;font-style:normal;white-space:nowrap}
.dictation-list .is-passed em{color:#22815a}
@media(max-width:1050px){.dictation-layout{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:760px){.dictation-layout{grid-template-columns:1fr}.dictation-library{padding:18px}}
