:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#173331;background:#f4f8f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.app-shell{display:grid;grid-template-columns:300px 1fr;min-height:100vh}.sidebar{background:#0e3b37;color:#e7fffb;padding:24px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px}.brand-mark{width:42px;height:42px;border-radius:13px;background:#2dd4bf;color:#07322e;font-weight:900;font-size:23px;display:grid;place-items:center}.brand strong,.brand span{display:block}.brand span{font-size:12px;color:#9dd8d0;margin-top:2px}.side-stat{display:flex;align-items:center;gap:14px;padding:16px 8px;border-top:1px solid #285750;border-bottom:1px solid #285750}.side-stat p{font-size:13px;color:#a8d5cf}.progress-ring{--p:0deg;width:78px;height:78px;border-radius:50%;background:conic-gradient(#2dd4bf var(--p),#285750 0);display:grid;place-items:center;flex:none}.progress-ring>div{width:62px;height:62px;border-radius:50%;background:#0e3b37;display:grid;place-content:center;text-align:center}.progress-ring strong{font-size:17px}.progress-ring span{font-size:9px;color:#9dd8d0}.filter-block{display:grid;gap:8px;padding:16px 4px}.search{display:flex;align-items:center;gap:7px;background:#173f3b;border:1px solid #35655e;border-radius:10px;padding:0 10px}.search input,.filter-block select{width:100%;background:#173f3b;color:#eafffb;border:1px solid #35655e;border-radius:10px;padding:10px;font-size:13px}.search input{border:0;outline:0;padding-left:0}.lesson-list{overflow:auto;padding-right:3px}.lesson-link{width:100%;display:flex;gap:10px;text-align:left;background:transparent;color:#d9f2ee;border:0;border-radius:11px;padding:9px;cursor:pointer}.lesson-link:hover,.lesson-link.active{background:#1b514b}.lesson-link small,.lesson-link strong{display:block}.lesson-link small{font-size:11px;color:#94c8c0;margin-top:2px}.day-dot{width:29px;height:29px;border-radius:9px;background:#255d56;display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}.day-dot.done{background:#2dd4bf;color:#083b36}main{padding:32px 40px 20px;max-width:1500px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.11em;font-weight:800;color:#0f766e}.topbar h1{margin:5px 0 0;font-size:30px;line-height:1.15}.duration-toggle{display:flex;background:#fff;border:1px solid #d7e6e3;border-radius:12px;padding:4px;align-items:center;gap:2px;box-shadow:0 5px 18px #1733310d}.duration-toggle svg{margin:0 6px;color:#6f8d88}.duration-toggle button{border:0;background:transparent;border-radius:8px;padding:8px 10px;color:#5e7773;font-weight:700;cursor:pointer}.duration-toggle button.on{background:#dff7f3;color:#0f766e}.hero-card{background:linear-gradient(135deg,#fff,#e7f7f4);border:1px solid #d1e9e5;border-radius:20px;padding:24px 26px;display:flex;justify-content:space-between;gap:20px;align-items:center;box-shadow:0 12px 35px #1f48430f}.hero-card h2{font-size:20px;margin:6px 0 12px;max-width:800px}.icon-bubble{float:left;margin-right:15px;width:46px;height:46px;border-radius:14px;background:#ccfbf1;color:#0f766e;display:grid;place-items:center}.meta{display:flex;gap:16px;color:#65807c;font-size:13px}.meta span{display:flex;align-items:center;gap:6px}.complete-btn{display:flex;align-items:center;gap:8px;background:#0f766e;color:#fff;border:0;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer;white-space:nowrap}.complete-btn.done{background:#dff7f3;color:#0f766e}.content-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px;margin-top:18px}.right-col{display:grid;gap:18px;align-content:start}.panel{background:#fff;border:1px solid #dfeae8;border-radius:17px;padding:20px;box-shadow:0 8px 26px #1f48430a}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel-head h3{margin:0;font-size:16px}.panel-head span{font-size:11px;font-weight:800;color:#0f766e;background:#e7f7f4;padding:5px 8px;border-radius:999px}.timeline{display:grid}.task{display:grid;grid-template-columns:55px 1fr;gap:14px;padding:15px 0;border-top:1px solid #edf2f1}.task:first-child{border-top:0;padding-top:3px}.task-time{width:48px;height:48px;border-radius:13px;background:#eef8f6;display:grid;place-content:center;text-align:center;color:#0f766e;font-size:17px;font-weight:900}.task-time small{font-size:9px;text-transform:uppercase}.task-type{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#728c87;font-weight:800}.task p{margin:5px 0 7px;line-height:1.5;color:#334f4b}.task a{display:inline-flex;align-items:center;gap:5px;color:#0f766e;text-decoration:none;font-size:12px;font-weight:800}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{background:#f1f7f6;border:1px solid #dce9e6;border-radius:999px;padding:7px 10px;font-size:12px}.checks{display:grid;gap:11px}.checks label{display:flex;gap:8px;font-size:13px;line-height:1.4;color:#46635f}.week-days{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.week-days button{border:1px solid #dce9e6;background:#f7fbfa;border-radius:9px;padding:8px 3px;color:#55706c;font-size:11px;cursor:pointer}.week-days button.done{background:#ccfbf1;border-color:#99e9dc;color:#0f766e;font-weight:800}.nav-footer{display:flex;justify-content:space-between;align-items:center;padding:23px 3px 0;color:#738985;font-size:12px}.nav-footer button{display:flex;align-items:center;gap:4px;border:1px solid #d7e5e2;background:#fff;border-radius:10px;padding:9px 12px;color:#244843;font-weight:800;cursor:pointer}.nav-footer button:disabled{opacity:.4;cursor:not-allowed}@media (max-width:900px){.app-shell{display:block}.sidebar{position:relative;height:auto}.side-stat,.filter-block,.lesson-list{display:none}main{padding:20px 14px 18px}.topbar{align-items:flex-start;flex-direction:column}.topbar h1{font-size:24px}.content-grid{grid-template-columns:1fr}.hero-card{align-items:flex-start;flex-direction:column}.complete-btn{width:100%;justify-content:center}.duration-toggle{align-self:stretch}.duration-toggle button{flex:1}.week-progress{display:none}}@media (max-width:520px){.hero-card,.panel{padding:16px}.meta{flex-wrap:wrap}.task{grid-template-columns:44px 1fr}.task-time{width:40px;height:40px;font-size:14px}.nav-footer span{display:none}}.top-controls{display:flex;gap:10px;align-items:center}.view-toggle{display:flex;background:#fff;border:1px solid #d7e6e3;border-radius:12px;padding:4px;box-shadow:0 5px 18px #1733310d}.view-toggle button{border:0;background:transparent;border-radius:8px;padding:8px 10px;color:#5e7773;font-weight:800;cursor:pointer}.view-toggle button.on{background:#173f3b;color:#eafffb}.main-col{display:grid;gap:18px;align-content:start}.speaking-stack{display:grid;gap:18px}.media-card,.practice-card{background:#fff;border:1px solid #dfeae8;border-radius:17px;padding:20px;box-shadow:0 8px 26px #1f48430a}.media-head,.practice-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.media-head span,.step-count{font-size:11px;font-weight:900;color:#0f766e;background:#e7f7f4;padding:6px 9px;border-radius:999px}.practice-top h3{margin:4px 0 0;font-size:17px}.video-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#0b1f1d}.video-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.video-caption{font-size:12px;color:#65807c;margin-top:10px}.sentence-box{background:#f1f8f7;border:1px solid #dceae7;border-radius:14px;padding:16px;margin-bottom:14px}.sentence-box p{font-size:18px;line-height:1.55;font-weight:750;color:#183d38;margin:0 0 13px}.listen-btn{border:0;background:#dff7f3;color:#0f766e;border-radius:10px;padding:10px 13px;font-weight:850;cursor:pointer}.recorder{display:grid;gap:12px}.record-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.record-btn,.stop-btn{border:0;border-radius:12px;padding:12px 16px;font-weight:900;cursor:pointer;display:flex;align-items:center;gap:8px}.record-btn{background:#0f766e;color:#fff}.stop-btn{background:#fee2e2;color:#b91c1c}.timer{font-variant-numeric:tabular-nums;font-size:13px;font-weight:900;color:#66827d;background:#f3f7f6;border-radius:999px;padding:8px 11px}.timer.live{color:#b91c1c;background:#fff0f0}.playback-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center}.playback-row audio{width:100%;height:40px}.icon-action{width:40px;height:40px;border-radius:10px;border:1px solid #dce8e6;background:#fff;cursor:pointer}.icon-action.danger{color:#b91c1c}.transcript{background:#fbfdfd;border-left:3px solid #2dd4bf;border-radius:8px;padding:10px 12px}.transcript strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#0f766e}.transcript p{margin:5px 0 0;line-height:1.5;color:#405f5a;font-size:13px}.permission-note{font-size:13px;color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:11px}.sentence-nav{display:flex;justify-content:space-between;gap:10px;margin-top:14px}.sentence-nav button{border:1px solid #d7e5e2;background:#fff;border-radius:10px;padding:10px 12px;color:#244843;font-weight:800;cursor:pointer}.sentence-nav button:disabled{opacity:.35}.prompt-text{font-size:15px;line-height:1.6;background:#f7fbfa;border-radius:12px;padding:14px;margin:0 0 14px;color:#304e49}.mobile-bottom-nav{display:none}.mode-mobile{display:block;max-width:540px;margin:0 auto;background:#f4f8f7;box-shadow:0 0 50px #1437321f}.mode-mobile .sidebar{position:relative;height:auto;padding:14px 14px 8px}.mode-mobile .sidebar .side-stat,.mode-mobile .sidebar .filter-block,.mode-mobile .sidebar .lesson-list{display:none}.mode-mobile main{padding:14px 12px 88px}.mode-mobile .topbar{align-items:flex-start;flex-direction:column;margin-bottom:14px}.mode-mobile .topbar h1{font-size:22px}.mode-mobile .top-controls{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-mobile .view-toggle,.mode-mobile .duration-toggle{width:100%}.mode-mobile .view-toggle button,.mode-mobile .duration-toggle button{flex:1}.mode-mobile .content-grid{grid-template-columns:1fr}.mode-mobile .hero-card{align-items:flex-start;flex-direction:column;padding:16px}.mode-mobile .complete-btn{width:100%;justify-content:center;min-height:46px}.mode-mobile .panel,.mode-mobile .media-card,.mode-mobile .practice-card{padding:15px;border-radius:15px}.mode-mobile .week-progress,.mode-mobile .nav-footer{display:none}.mode-mobile .mobile-bottom-nav{display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(540px,100%);grid-template-columns:1fr 1fr 1fr;z-index:50;background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #dce9e6;padding:max(8px,env(safe-area-inset-bottom)) 12px calc(8px + env(safe-area-inset-bottom))}.mobile-bottom-nav button{border:0;background:transparent;color:#31534e;font-weight:900;display:grid;place-items:center;font-size:22px;min-height:48px}.mobile-bottom-nav button small{font-size:9px;text-transform:uppercase;letter-spacing:.06em}.mobile-bottom-nav .today-pill{background:#e5f7f3;border-radius:13px;font-size:13px}.mode-mobile .sentence-box p{font-size:17px}.mode-mobile .listen-btn,.mode-mobile .record-btn,.mode-mobile .stop-btn{min-height:46px}.mode-mobile .record-row{align-items:stretch}.mode-mobile .record-btn,.mode-mobile .stop-btn{flex:1;justify-content:center}.mode-mobile .timer{display:grid;place-items:center;min-width:78px}.mode-mobile .video-frame{border-radius:11px}@media (max-width:900px){.mode-pc{min-width:900px}.mode-pc .sidebar{display:flex}.mode-pc main{padding:24px}.app-shell:not(.mode-pc){display:block}.top-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.view-toggle,.duration-toggle{width:100%}.view-toggle button,.duration-toggle button{flex:1}}@media (max-width:600px){.app-shell.mode-mobile{max-width:none;box-shadow:none}.mode-mobile .brand{padding-bottom:8px}.mode-mobile .brand-mark{width:38px;height:38px}.mode-mobile .meta{gap:8px}.mode-mobile .task{grid-template-columns:42px 1fr}.mode-mobile .task-time{width:40px;height:40px}.mode-mobile .sentence-nav button{flex:1;min-height:44px}.mode-mobile .playback-row{grid-template-columns:1fr}.mode-mobile .icon-action{width:100%}}.lesson-content-stack{display:grid;gap:18px}.readalong{background:#fff;border:1px solid #dfeae8;border-radius:17px;padding:20px;box-shadow:0 8px 26px #1f48430a}.readalong.listening{background:linear-gradient(180deg,#fff,#f2fbf9)}.readalong-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.readalong-head h4{font-size:18px;margin:4px 0 0}.player-actions{display:flex;gap:8px;align-items:center}.player-actions select,.player-actions button{border:1px solid #d7e5e2;background:#fff;border-radius:10px;padding:9px 10px;color:#244843;font-weight:800;cursor:pointer}.player-actions button{background:#0f766e;color:#fff;border-color:#0f766e}.player-actions .stop-mini{background:#fff0f0;color:#b91c1c;border-color:#fecaca}.readalong-text{display:grid;gap:7px}.readalong-text p{margin:0;padding:10px 12px;border-radius:10px;line-height:1.7;color:#37534f;transition:.18s ease}.readalong-text p.active-line{background:#e8f8f5;color:#173b36;box-shadow:inset 3px 0 #2dd4bf}.readalong-text mark,.vocab-sentence mark{background:#fde68a;color:#173331;border-radius:4px;padding:1px 2px}.panel-note{font-size:12px;color:#6a827e;line-height:1.5;margin:-4px 0 14px}.vocab-practice-panel{margin-top:0}.vocab-sentence-list{display:grid;gap:12px}.vocab-sentence{border:1px solid #e2ecea;background:#fbfdfc;border-radius:13px;padding:12px}.vocab-line{display:grid;grid-template-columns:28px 1fr 42px;gap:9px;align-items:start}.vocab-line p{margin:1px 0 10px;line-height:1.55;font-size:14px;color:#35534e}.vocab-index{width:26px;height:26px;border-radius:8px;background:#e7f7f4;color:#0f766e;display:grid;place-items:center;font-size:11px;font-weight:900}.listen-icon{width:40px;height:38px;border-radius:10px;border:1px solid #d8e7e4;background:#fff;cursor:pointer}.recorder.compact{gap:8px}.recorder.compact .record-row{justify-content:flex-start}.recorder.compact .record-btn,.recorder.compact .stop-btn{padding:8px 11px;border-radius:9px;font-size:12px}.recorder.compact .timer{padding:6px 9px;font-size:11px}.recorder.compact .playback-row audio{height:34px}.recorder.compact .icon-action{height:34px;width:34px}.mode-mobile .readalong{padding:15px}.mode-mobile .readalong-head{display:grid}.mode-mobile .player-actions{display:grid;grid-template-columns:90px 1fr}.mode-mobile .player-actions button{min-height:44px}.mode-mobile .readalong-text p{font-size:15px;padding:11px 10px}.mode-mobile .vocab-sentence{padding:11px}.mode-mobile .vocab-line{grid-template-columns:26px 1fr 40px}.mode-mobile .recorder.compact .record-row{display:grid;grid-template-columns:1fr 76px}.mode-mobile .recorder.compact .record-btn,.mode-mobile .recorder.compact .stop-btn{min-height:40px}.mode-mobile .recorder.compact .playback-row{grid-template-columns:1fr auto}.mode-mobile .vocab-practice-panel{order:5}@media (max-width:600px){.readalong-head{display:grid}.player-actions{width:100%;display:grid;grid-template-columns:90px 1fr}.vocab-line p{font-size:15px}.vocab-sentence-list{gap:10px}}.speech-score{margin-top:10px;border:1px solid #dce9e6;background:#f8fcfb;border-radius:12px;padding:12px}.score-summary{display:flex;align-items:center;gap:11px}.score-summary>div:last-child{display:grid;gap:2px}.score-summary strong{font-size:13px;color:#254b45}.score-summary span{font-size:11px;color:#6c8580}.score-number{width:58px;height:44px;border-radius:11px;display:grid;place-content:center;text-align:center;font-size:19px;font-weight:950;font-variant-numeric:tabular-nums;background:#e5f7f3;color:#0f766e}.score-number small{font-size:8px;display:block;margin-top:-2px}.score-number.score-mid{background:#fff7dc;color:#9a6700}.score-number.score-low{background:#fff0f0;color:#b42318}.score-meter{height:6px;background:#e7efed;border-radius:999px;overflow:hidden;margin:10px 0}.score-meter span{display:block;height:100%;background:#14b8a6;border-radius:999px;transition:width .25s ease}.match-text{display:flex;flex-wrap:wrap;gap:5px;line-height:1.8;margin-top:8px}.match-word{font-size:13px;padding:2px 5px;border-radius:5px;background:#edf4f2;color:#49625e}.match-word.match{background:#dcfce7;color:#166534}.match-word.missing{background:#fff1f2;color:#be123c;text-decoration:line-through;text-decoration-thickness:1px}.match-word.wrong{background:#fef3c7;color:#92400e}.score-stats{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.score-stats span{font-size:10px;font-weight:750;color:#637b77;background:#fff;border:1px solid #e0e9e7;border-radius:999px;padding:4px 7px}.extra-words{font-size:11px;color:#785b20;margin:8px 0 0}.score-unavailable{font-size:11px;line-height:1.45;color:#8a5a12;background:#fff8e6;border:1px solid #f5dda0;border-radius:9px;padding:8px 9px}.speech-score.compact{padding:9px 10px;margin-top:7px}.speech-score.compact .score-summary{gap:8px}.speech-score.compact .score-number{width:49px;height:37px;font-size:16px;border-radius:9px}.speech-score.compact .score-summary strong{font-size:12px}.speech-score.compact .score-summary span{font-size:10px}.speech-score.compact .score-meter{margin:7px 0 0;height:5px}.mode-mobile .speech-score{padding:10px}.mode-mobile .score-number{flex:none}.app-menu{display:grid;gap:8px;padding:14px 4px 4px}.app-menu button{border:0;background:transparent;color:#cce7e3;border-radius:10px;padding:11px 12px;text-align:left;font-weight:800;cursor:pointer;display:flex;gap:10px;align-items:center}.app-menu button:hover,.app-menu button.active{background:#1b514b;color:#fff}.app-menu button.active{box-shadow:inset 3px 0 #2dd4bf}.pronunciation-topbar{align-items:center}.pronounce-page{display:grid;gap:18px}.pronounce-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px}.pronounce-hero h2{margin:4px 0 8px;font-size:28px}.pronounce-hero p{margin:0;color:#607775;max-width:760px;line-height:1.6}.pronounce-count{width:92px;height:92px;border-radius:24px;background:#e8f8f5;display:grid;place-content:center;text-align:center;color:#0f6258;flex:none}.pronounce-count strong{font-size:30px;line-height:1}.pronounce-count span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-top:5px}.pronounce-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}.pronounce-index{padding:14px;position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:hidden;display:flex;flex-direction:column;gap:8px}.light-search{background:#f5f8f7;border-color:#dce8e6;margin-bottom:0;flex:0 0 auto}.light-search input{background:transparent!important;color:#173331!important}.category-scroll{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding:2px 0 4px;flex:0 0 auto;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain}.category-scroll::-webkit-scrollbar{display:none}.category-scroll button{white-space:nowrap;border:1px solid #d7e7e4;background:#fff;color:#48635f;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;cursor:pointer}.category-scroll button.active{background:#0f6258;color:#fff;border-color:#0f6258}.pronounce-list{overflow-y:auto;overflow-x:hidden;display:grid;gap:5px;padding-right:2px;min-height:0;flex:1 1 auto;scrollbar-gutter:stable}.pronounce-list>button{border:0;background:#f8fbfa;border-radius:11px;padding:9px;text-align:left;display:flex;gap:9px;align-items:flex-start;cursor:pointer;color:#264743}.pronounce-list>button>span{font-size:10px;background:#e8f4f2;border-radius:7px;padding:5px;color:#58817b}.pronounce-list>button strong,.pronounce-list>button small{display:block}.pronounce-list>button strong{font-size:12px}.pronounce-list>button small{font-size:10px;color:#7c918e;margin-top:2px}.pronounce-list>button.active{background:#e0f5f1;box-shadow:inset 3px 0 #14b8a6}.pronounce-detail{display:grid;gap:16px}.pronunciation-rule{padding:24px}.pronunciation-rule h2{font-size:30px;margin:5px 0 20px}.rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rule-grid>div{background:#f5faf9;border:1px solid #e0ecea;border-radius:14px;padding:16px}.rule-grid small{display:block;color:#168678;font-weight:900;letter-spacing:.08em;font-size:10px;margin-bottom:7px}.rule-grid p{margin:0;line-height:1.6;color:#334f4b}.sound-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sound-example-grid button,.related-vocab button{border:1px solid #dbe9e6;background:#fff;border-radius:11px;padding:11px;text-align:left;cursor:pointer;color:#254a45}.sound-example-grid button:hover,.related-vocab button:hover{background:#eef9f7;border-color:#9bd7cd}.pronounce-record{margin:0}.related-vocab{display:flex;gap:8px;flex-wrap:wrap}.related-vocab button{padding:8px 10px}.related-vocab button span{margin-right:6px}.app-mobile-nav .nav-active{color:#0e665c!important;background:#dff6f1!important}@media (max-width:900px){.app-menu{display:none}.pronounce-layout{grid-template-columns:1fr}.pronounce-index{position:static;max-height:none}.pronounce-list{display:flex;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;flex:0 0 auto;scrollbar-width:none;-ms-overflow-style:none}.pronounce-list::-webkit-scrollbar{display:none}.pronounce-list>button{min-width:185px}.pronounce-hero{padding:18px}.pronounce-hero h2{font-size:23px}.pronounce-count{width:72px;height:72px;border-radius:20px}.pronounce-count strong{font-size:24px}.rule-grid{grid-template-columns:1fr}.pronunciation-rule{padding:18px}.pronunciation-rule h2{font-size:25px}.sound-example-grid{grid-template-columns:1fr 1fr}.pronounce-detail .readalong,.pronounce-detail .practice-card,.pronounce-detail>.panel{border-radius:16px}.app-mobile-nav{grid-template-columns:repeat(4,1fr)}.app-mobile-nav:has(button:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}}@media (max-width:540px){.pronounce-hero p{font-size:13px}.pronounce-count{display:none}.sound-example-grid{grid-template-columns:1fr}.category-scroll,.pronounce-list{margin-right:-12px}.pronunciation-topbar h1{font-size:24px}}.daily-practice-page{padding:0 24px 96px;max-width:1440px;margin:0 auto}.daily-hero{position:relative;overflow:hidden;padding:24px;margin-bottom:16px}.daily-hero h2{margin:4px 0 8px;font-size:30px}.daily-hero p{max-width:760px;color:var(--muted,#61706f);margin:0;line-height:1.6}.daily-stats{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}.daily-stats>div{min-width:120px;background:#0d948812;border:1px solid rgba(13,148,136,.14);border-radius:14px;padding:12px 16px}.daily-stats strong{font-size:24px;display:block}.daily-stats strong small,.daily-stats span{font-size:12px;color:#71807e}.daily-progress{height:7px;background:#e8efee;border-radius:99px;margin-top:18px;overflow:hidden}.daily-progress span{height:100%;display:block;background:#0f8f83;border-radius:inherit;transition:width .25s}.daily-tabs{display:flex;gap:8px;overflow:auto;padding:4px 0 14px}.daily-tabs button{white-space:nowrap;border:1px solid #dce5e4;background:#fff;border-radius:999px;padding:9px 14px;font-weight:700}.daily-tabs button.active{background:#123d3a;color:#fff;border-color:#123d3a}.daily-tabs small{margin-left:5px;opacity:.7}.daily-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px}.daily-list{padding:8px;max-height:710px;overflow:auto;align-self:start;position:sticky;top:82px}.daily-list button{width:100%;display:flex;gap:10px;align-items:center;text-align:left;padding:10px;border:0;background:transparent;border-radius:12px}.daily-list button:hover,.daily-list button.active{background:#edf7f5}.daily-list button>div{min-width:0}.daily-list strong,.daily-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-list small{font-size:11px;color:#71807e;margin-top:3px}.practice-dot{width:30px;height:30px;border-radius:50%;background:#edf1f0;display:grid;place-items:center;flex:none;font-size:12px}.practice-dot.done{background:#d8f3ea;color:#08765e;font-weight:800}.daily-practice-card{padding:24px}.daily-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.daily-card-head h2{margin:5px 0 0;font-size:25px}.daily-best{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;text-align:center;background:#fff5dc;border:4px solid #f0bf54}.daily-best.good{background:#e5f8ef;border-color:#46b98b}.daily-best strong,.daily-best span{display:block;line-height:1}.daily-best span{font-size:9px;text-transform:uppercase;margin-top:-9px}.daily-rule,.daily-tip{margin-top:18px;padding:14px 16px;border-radius:13px;background:#f6faf9}.daily-rule small,.daily-tip small{font-weight:800;letter-spacing:.08em;color:#52706c}.daily-rule p,.daily-tip p{margin:5px 0 0;line-height:1.5}.daily-target{margin-top:18px}.daily-target .secondary{margin-left:8px;background:#eef4f3;color:#244f4b}.daily-result-note{margin-top:12px;padding:11px 13px;border-radius:10px;background:#f5f8f7;font-weight:650;color:#345b56}.daily-card-nav{display:flex;justify-content:space-between;margin-top:20px;border-top:1px solid #e7eceb;padding-top:16px}.daily-card-nav button{border:1px solid #d8e2e0;background:#fff;border-radius:10px;padding:10px 14px;font-weight:700}.daily-card-nav button:disabled{opacity:.35}.app-menu button:nth-child(2){margin-top:4px}@media (max-width:899px){.daily-practice-page{padding:0 12px 92px}.daily-hero{padding:18px}.daily-hero h2{font-size:25px}.daily-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.daily-stats>div{min-width:0;padding:10px}.daily-stats strong{font-size:19px}.daily-layout{display:block}.daily-list{position:static;display:flex;overflow-x:auto;max-height:none;margin-bottom:12px;padding:7px}.daily-list button{min-width:170px}.daily-practice-card{padding:16px}.daily-card-head h2{font-size:21px}.daily-target .listen-btn{width:100%;margin:6px 0 0!important}.daily-card-nav{position:sticky;bottom:72px;background:#fff;padding-bottom:2px;z-index:4}.app-mobile-nav{grid-template-columns:repeat(5,1fr)!important}}.skill-library-page{display:grid;gap:18px;padding-bottom:96px}.skill-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px}.skill-hero h2{margin:4px 0 8px;font-size:28px}.skill-hero p{margin:0;max-width:760px;color:#607775;line-height:1.6}.skill-count{width:88px;height:88px;border-radius:22px;background:#e8f8f5;color:#0f6258;display:grid;place-content:center;text-align:center;flex:none}.skill-count strong{font-size:28px}.skill-count span{font-size:10px;text-transform:uppercase}.skill-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}.skill-index{padding:14px;position:sticky;top:18px;height:calc(100vh - 36px);display:flex;flex-direction:column;gap:8px;overflow:hidden}.skill-list{min-height:0;overflow:auto;display:grid;gap:5px}.skill-list>button{border:0;background:#f8fbfa;border-radius:11px;padding:9px;text-align:left;display:flex;gap:9px;cursor:pointer;color:#264743}.skill-list>button>span{font-size:10px;background:#e8f4f2;border-radius:7px;padding:5px;height:max-content}.skill-list strong,.skill-list small{display:block}.skill-list strong{font-size:12px}.skill-list small{font-size:10px;color:#7c918e;margin-top:2px}.skill-list>button.active{background:#e0f5f1;box-shadow:inset 3px 0 #14b8a6}.skill-detail{display:grid;gap:16px}.skill-title h2{margin:4px 0 8px;font-size:27px}.skill-title p{color:#536e69;line-height:1.55}.practice-instruction{background:#f2f8f7;border-radius:12px;padding:12px 14px;color:#49625e;font-size:13px;line-height:1.5}.blind-listen{text-align:center;padding:36px}.blind-listen h3{margin-top:0}.primary-skill-btn,.secondary-skill-btn{border:0;border-radius:11px;padding:12px 16px;font-weight:800;cursor:pointer}.primary-skill-btn{background:#0f766e;color:#fff}.secondary-skill-btn{background:#edf6f4;color:#0f6258;margin-left:8px}.listen-question{padding:13px 0;border-top:1px solid #edf2f1}.listen-question:first-of-type{border-top:0}.listen-question button{float:right;border:1px solid #d9e7e4;background:#fff;border-radius:8px;padding:6px 9px;color:#0f6258;font-weight:700}.listen-question p{margin:9px 0 0;color:#536e69;background:#f4f9f8;padding:10px;border-radius:9px}.mode-mobile .skill-layout{grid-template-columns:1fr}.mode-mobile .skill-index{position:static;height:auto}.mode-mobile .skill-list{display:flex;overflow-x:auto}.mode-mobile .skill-list>button{min-width:190px}.mode-mobile .skill-count{display:none}@media (max-width:900px){.skill-layout{grid-template-columns:1fr}.skill-index{position:static;height:auto}.skill-list{display:flex;overflow-x:auto;scrollbar-width:none}.skill-list::-webkit-scrollbar{display:none}.skill-list>button{min-width:190px}.skill-hero{padding:18px}.skill-count{display:none}.blind-listen{padding:22px 14px}.primary-skill-btn,.secondary-skill-btn{width:100%;margin:6px 0}.app-mobile-nav{grid-template-columns:repeat(7,1fr)!important;overflow-x:auto}.app-mobile-nav button{min-width:62px}}.level-sample-practice{display:flex;flex-direction:column;gap:14px}.level-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:none}.level-tabs::-webkit-scrollbar{display:none}.level-tabs button{white-space:nowrap;border:1px solid #d6e3e3;background:#fff;color:#456;border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer}.level-tabs button.active{background:#0f8f83;color:#fff;border-color:#0f8f83}.level-guidance{background:#f2fbf9;border:1px solid #d6eee9;border-radius:12px;padding:10px 12px;color:#365f5b;font-size:.92rem}.full-sample-record{border-top:1px solid #e8efef;padding-top:14px}.full-sample-record>p{margin:5px 0 12px;color:#667}.recovery-tip{margin:10px 0 14px;background:#fff8e9;border:1px solid #f2dfaa;border-radius:12px;padding:11px 13px;color:#65552b;line-height:1.55}@media (max-width:720px){.level-tabs{margin-right:-8px;padding-right:8px}.level-tabs button{padding:9px 12px}.level-guidance{font-size:.9rem}}.library-level-tabs{margin:14px 0 10px;flex-wrap:wrap}.library-level-tabs button{min-width:108px;text-align:center}.skill-title .level-guidance{margin-bottom:12px}.blind-listen p{color:#6b7f7b;font-size:13px}@media (max-width:540px){.library-level-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px}.library-level-tabs button{min-width:0;width:100%;padding:10px 8px}.skill-list>button{min-width:220px}}.domain-vocab-page{display:grid;gap:18px}.domain-filter{display:grid;gap:12px;padding:14px 16px}.domain-vocab-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:18px;min-height:620px}.domain-word-list{padding:8px;overflow:auto;max-height:72vh}.domain-word-list button{width:100%;border:0;background:transparent;display:grid;grid-template-columns:34px 1fr;gap:9px;text-align:left;padding:10px;border-radius:10px;color:#284c47;cursor:pointer}.domain-word-list button:hover,.domain-word-list button.active{background:#e6f7f3}.domain-word-list button>span{width:30px;height:30px;border-radius:8px;background:#edf6f4;display:grid;place-items:center;font-size:10px;font-weight:800}.domain-word-list strong,.domain-word-list small{display:block}.domain-word-list small{margin-top:3px;color:#718984;font-size:11px}.domain-word-detail{display:grid;gap:16px;align-content:start}.vocab-title-row{display:flex;justify-content:space-between;gap:15px;align-items:center}.vocab-title-row h2{font-size:34px;margin:8px 0}.vn-meaning{font-size:18px;color:#0f766e;margin:4px 0 10px}.definition{font-size:15px;line-height:1.65;color:#46635f}.big-practice-word{font-size:27px;font-weight:850;margin:12px 0}.domain-word-detail .secondary-skill-btn{margin-right:8px;margin-bottom:10px}@media (max-width:900px){.domain-vocab-layout{grid-template-columns:1fr;min-height:0}.domain-word-list{display:flex;overflow-x:auto;max-height:none;padding:8px;gap:6px}.domain-word-list button{min-width:170px;grid-template-columns:28px 1fr}.domain-filter{position:sticky;top:0;z-index:4}.vocab-title-row{align-items:flex-start;flex-direction:column}.vocab-title-row h2{font-size:28px}.domain-word-detail{padding-bottom:80px}}.role-cues{display:grid;gap:8px;margin:14px 0}.role-cues p{margin:0;background:#f4f9f8;border-left:3px solid #14b8a6;border-radius:8px;padding:10px 12px;color:#46635f;line-height:1.5}.category-scroll button small{opacity:.72;margin-left:4px;font-size:9px}.domain-filter .category-scroll button{display:inline-flex;align-items:center;gap:3px}@media (max-width:900px){.app-mobile-nav{grid-template-columns:repeat(9,1fr)!important}.app-mobile-nav button{min-width:64px}}.library-search-filter{display:grid;gap:12px;padding:14px 16px;margin-bottom:18px}.library-search-filter .light-search{width:100%;min-height:42px}.library-search-filter .category-scroll{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding:1px 0 2px}.library-search-filter .category-scroll::-webkit-scrollbar{display:none}.library-search-filter .category-scroll button{white-space:nowrap;display:inline-flex;align-items:center;gap:5px;border:1px solid #d6e5e2;background:#fff;color:#46635f;border-radius:999px;padding:8px 11px;font-weight:800;cursor:pointer}.library-search-filter .category-scroll button.active{background:#0f766e;color:#fff;border-color:#0f766e}.library-search-filter .category-scroll button small{font-size:9px;opacity:.72}@media (max-width:900px){.library-search-filter{position:sticky;top:0;z-index:8;margin-bottom:12px;padding:10px 12px}.library-search-filter .category-scroll{margin-right:-4px;padding-right:4px}}.translate-wrap{margin-top:12px}.translate-btn{border:1px solid #bfe2dc;background:#effaf8;color:#0f766e;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}.translate-btn:hover{background:#dff7f3}.vi-translation{margin-top:9px;border-left:3px solid #14b8a6;background:#f4fbfa;border-radius:8px;padding:11px 13px;color:#294d48;line-height:1.65;font-size:14px}.vi-translation p{margin:5px 0}.translate-error{color:#a54d36}.word-translate-popup{position:fixed;z-index:9999;width:245px;background:#123e3a;color:#effffb;border:1px solid #2e645d;border-radius:13px;padding:13px 34px 12px 14px;box-shadow:0 16px 45px #0a262347;display:grid;gap:5px}.word-translate-popup strong{font-size:17px;color:#fff}.word-translate-popup span{font-size:14px;color:#c9f6ef;line-height:1.4}.word-translate-popup small{font-size:10px;color:#91c8c0;margin-top:3px}.popup-close{position:absolute;right:7px;top:6px;width:25px;height:25px;border:0;border-radius:8px;background:#285b55;color:#fff;font-size:18px;cursor:pointer}@media (max-width:899px){.translate-btn{width:100%;min-height:42px}.vi-translation{font-size:15px}.word-translate-popup{width:min(270px,calc(100vw - 16px))}}.learning-dashboard{display:grid;gap:16px}.learning-hero{display:flex;justify-content:space-between;gap:20px;align-items:center}.learning-kpis,.weekly-row{display:flex;gap:10px}.learning-kpis>div,.weekly-row>div{min-width:105px;background:#f5faf9;border:1px solid #e0eeeb;border-radius:12px;padding:12px;text-align:center}.learning-kpis strong,.weekly-row strong{display:block;font-size:24px;color:#123e3a}.learning-kpis span,.weekly-row span{font-size:11px;color:#71827f}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head h3{margin:3px 0}.weak-badge{background:#fff3dc;color:#8b5c11;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.skill-score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.skill-score-grid>div{border:1px solid #e1ecea;border-radius:12px;padding:12px}.skill-score-grid>div>div:first-child{display:flex;justify-content:space-between;gap:8px}.skill-score-grid span{font-size:12px;color:#667b77}.mini-meter{height:6px;background:#eaf2f0;border-radius:99px;margin-top:9px;overflow:hidden}.mini-meter i{display:block;height:100%;background:#14b8a6;border-radius:99px}.mistake-list{display:grid;gap:7px;margin-top:13px}.mistake-list>div{display:flex;gap:10px;align-items:center;padding:9px;border-bottom:1px solid #edf2f1}.mistake-list>div>span{width:27px;height:27px;display:grid;place-items:center;border-radius:8px;background:#fff1e8;color:#a94f26;font-weight:800}.mistake-list strong,.mistake-list small{display:block}.mistake-list small{color:#7a8986;margin-top:2px}.empty-learning{color:#70817e}.weekly-check p{color:#60736f}@media (max-width:899px){.learning-hero,.section-head{align-items:stretch;flex-direction:column}.learning-kpis,.weekly-row{display:grid;grid-template-columns:repeat(3,1fr)}.learning-kpis>div,.weekly-row>div{min-width:0;padding:9px 5px}.skill-score-grid{grid-template-columns:1fr 1fr}.learning-kpis strong,.weekly-row strong{font-size:20px}}.mock-test-page{display:grid;gap:16px}.mock-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.mock-head h2,.mock-result h2{margin:5px 0 8px}.mock-head>button{border:0;background:#edf5f3;width:36px;height:36px;border-radius:10px;font-size:22px;color:#365d58;cursor:pointer}.mock-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.mock-stepper button{border:1px solid #dbe9e6;background:#fff;border-radius:11px;padding:10px;color:#637b77;font-weight:800}.mock-stepper button span{display:inline-grid;place-items:center;width:23px;height:23px;border-radius:7px;background:#edf5f3;margin-right:5px}.mock-stepper button.active{background:#e0f7f3;color:#0f766e;border-color:#9dded4}.mock-stepper button.done{color:#0f766e}.mock-section{display:grid;gap:15px}.mock-passage{background:#f7faf9;border:1px solid #e2ecea;border-radius:13px;padding:18px;line-height:1.8;font-size:15px;color:#344e4a}.mock-questions{display:grid;gap:14px}.mock-q{border-top:1px solid #e8efed;padding-top:14px;display:grid;gap:8px}.mock-q>strong{margin-bottom:3px}.mock-q label{display:flex;gap:9px;align-items:flex-start;background:#f8fbfa;border:1px solid #edf2f1;padding:9px 11px;border-radius:9px;cursor:pointer}.mock-next{text-align:right}.mock-next button:disabled,.finish-mock:disabled{opacity:.45}.mock-tip{background:#fff8e8;border:1px solid #f0deb1;border-radius:10px;padding:10px 12px;color:#67582f}.mock-model{background:#f7faf9;border-radius:10px;padding:11px 13px}.mock-model p{line-height:1.65}.mock-model button{border:0;background:#e4f5f2;color:#0f766e;border-radius:8px;padding:8px 10px;font-weight:800}.self-score{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.self-score strong{width:100%}.self-score button{border:1px solid #d9e7e4;background:#fff;border-radius:9px;padding:8px 10px;color:#48645f;font-weight:700}.self-score button.active{background:#0f766e;color:#fff;border-color:#0f766e}.mock-writing{min-height:230px;width:100%;resize:vertical;border:1px solid #d8e6e3;border-radius:12px;padding:14px;font:inherit;line-height:1.6;color:#264743}.writing-meta{text-align:right;color:#71837f;font-size:12px}.writing-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.writing-checks label{display:flex;gap:8px;background:#f7faf9;border-radius:9px;padding:10px}.mock-result{text-align:center;padding:28px}.mock-equivalent{font-size:16px}.mock-section-scores{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.mock-section-scores>div{background:#f4faf8;border:1px solid #dfedea;border-radius:13px;padding:13px}.mock-section-scores span,.mock-section-scores strong,.mock-section-scores small{display:block}.mock-section-scores strong{font-size:25px;color:#0f766e}.mock-section-scores small{color:#788b87}.mock-disclaimer{max-width:720px;margin:0 auto 18px;background:#fff7e8;border-radius:10px;padding:11px;color:#675c3a;font-size:12px}.latest-mock{display:flex;gap:20px;align-items:center;margin-top:14px}.mock-big-score{min-width:145px;background:#e9f8f5;border-radius:15px;padding:13px;text-align:center}.mock-big-score strong{display:block;font-size:35px;color:#0f766e}.mock-big-score span,.mock-big-score small{display:block;color:#6b807c}.mock-mini-sections{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;flex:1}.mock-mini-sections span{background:#f7faf9;border:1px solid #e2ecea;border-radius:10px;padding:10px;text-align:center}.mock-mini-sections b{display:block;font-size:10px;color:#71827f}.mock-note{font-size:11px;color:#81908d}@media (max-width:700px){.mock-stepper{grid-template-columns:1fr 1fr}.writing-checks{grid-template-columns:1fr}.mock-section-scores{grid-template-columns:1fr 1fr}.latest-mock{align-items:stretch;flex-direction:column}.mock-mini-sections{grid-template-columns:1fr 1fr}.mock-next .primary-skill-btn,.finish-mock{width:100%}}.status-filter{display:flex;gap:7px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.status-filter::-webkit-scrollbar{display:none}.status-filter button{white-space:nowrap;border:1px solid #dbe7e4;background:#fff;color:#506d68;border-radius:999px;padding:8px 11px;font-weight:800;cursor:pointer}.status-filter button small{margin-left:5px;opacity:.7}.status-filter button.active{background:#153f3b;color:#effffb;border-color:#153f3b}.lesson-complete-control{display:inline-flex;align-items:center;gap:7px;border:1px solid #cfe2de;background:#f7fbfa;color:#496864;border-radius:10px;padding:8px 11px;font-weight:800;cursor:pointer;margin:4px 0 10px}.lesson-complete-control.done{background:#dff7ee;color:#087b57;border-color:#a7e2ce}.lesson-complete-control.review{background:#fff3dc;color:#9a6110;border-color:#efd59f}.content-status-dot.done{background:#d9f8ec!important;color:#087b57!important}.content-status-dot.review{background:#fff0d8!important;color:#a76008!important}.skill-list small,.pronounce-list small,.domain-word-list small{line-height:1.35}.progress-status-note{font-size:12px;color:#6e817d}@media (max-width:899px){.status-filter{margin-right:-10px;padding-right:10px}.lesson-complete-control{width:100%;justify-content:center;min-height:42px}}.status-filter button:disabled{opacity:.35;cursor:not-allowed}.library-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:14px}.library-progress-grid>div{border:1px solid #e0ece9;background:#f9fcfb;border-radius:12px;padding:12px}.library-progress-top{display:flex;justify-content:space-between;gap:8px}.library-progress-top span{font-weight:900;color:#0f766e}.library-progress-grid small{display:block;margin-top:7px;color:#758783;font-size:10px}@media (max-width:899px){.library-progress-grid{grid-template-columns:1fr 1fr}}@media (max-width:480px){.library-progress-grid{grid-template-columns:1fr}}
