:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#17233b;background:#f4f7fb;line-height:1.5;--blue:#2864dc;--navy:#17233b;--line:#dce4f0;--green:#15803d;--red:#b42318;--amber:#a15c00}*{box-sizing:border-box}body{margin:0}header{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1500px)/2));gap:30px;position:sticky;top:0;z-index:5}.brand{font-weight:800;font-size:20px;color:var(--navy);text-decoration:none}nav{display:flex;gap:8px;color:#60708e;font-size:14px}nav a{color:var(--blue);text-decoration:none}main{max-width:1500px;margin:auto;padding:34px 24px 60px}h1{font-size:clamp(28px,4vw,44px);margin:0 0 10px;line-height:1.15}h2{margin:0 0 18px}.subtitle{color:#60708e;font-size:18px;margin:0 0 28px}.cards,.chapter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;min-height:170px;text-decoration:none;color:inherit;box-shadow:0 6px 22px #16233b0a;transition:.15s}.card:not(.disabled):hover{transform:translateY(-2px);border-color:#90afea}.card h2{font-size:26px}.card .icon{font-size:36px}.disabled{opacity:.65}.chapter-card{min-height:110px;padding:22px}.chapter-layout{display:grid;grid-template-columns:minmax(390px,48%) minmax(450px,1fr);gap:22px;align-items:start}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.book-panel{position:sticky;top:86px}.page-frame{height:calc(100vh - 205px);min-height:500px;background:#e9eef6;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:auto}.page-frame img{max-width:100%;max-height:100%;object-fit:contain}.pager{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:10px}button,.button{border:0;border-radius:9px;padding:10px 16px;font:inherit;font-weight:700;cursor:pointer;background:var(--blue);color:#fff;text-decoration:none}button.secondary{background:#e8eef9;color:#244169}button:disabled{opacity:.45;cursor:not-allowed}.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:18px}.attempts{display:flex;gap:8px;flex-wrap:wrap}.attempts button{font-size:13px;padding:7px 10px}.attempts .active{outline:3px solid #9dbaf1}.question{border:1px solid var(--line);border-radius:13px;padding:18px;margin-bottom:16px}.question-title{font-size:18px;font-weight:750;margin:0 0 7px}.meta{font-size:13px;color:#64748b;margin-bottom:12px}.source-note{background:#f0f5ff;border-left:3px solid var(--blue);padding:8px 10px;margin:8px 0;font-size:13px}textarea,input[type=text],input[type=number],select{width:100%;border:1px solid #b9c6d9;border-radius:8px;padding:10px;font:inherit;background:#fff}textarea{min-height:100px;resize:vertical}.options{display:grid;gap:8px;margin:12px 0}.option{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);padding:10px;border-radius:8px}.option input{margin-top:5px}.field-grid{display:grid;gap:10px;margin:12px 0}.field label,.match-row label{font-size:14px;font-weight:650}.match-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:center}.answer-actions{display:flex;align-items:center;gap:12px;margin-top:12px}.error{color:var(--red);background:#fff0ef;padding:10px;border-radius:8px}.evaluation{margin-top:14px;border-radius:10px;padding:14px;background:#f5f8fc}.status{font-weight:800;text-transform:capitalize}.correct{color:var(--green)}.incorrect{color:var(--red)}.partially_correct{color:var(--amber)}.eval-block{padding:8px 0;border-bottom:1px solid var(--line)}.eval-block:last-child{border:0}.eval-block h4{margin:0 0 5px}.eval-block p{margin:4px 0}.saved-answer{background:#edf4ff;border-radius:8px;padding:10px;margin:10px 0;white-space:pre-wrap}.hidden-answer{color:#64748b;font-style:italic;padding:10px}.word-bank{display:flex;gap:7px;flex-wrap:wrap;padding:10px;background:#f1f5f9;border-radius:8px}.chip{background:#fff;border:1px solid #cbd5e1;padding:4px 8px;border-radius:20px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;margin:10px 0}th,td{border:1px solid var(--line);padding:8px;text-align:left}canvas{width:100%;height:280px;border:2px dashed #9fb0c8;border-radius:8px;background:#fff;touch-action:none}.canvas-actions{display:flex;gap:8px;margin-top:8px}.question-image{width:100%;max-height:260px;object-fit:contain;object-position:center;border-radius:8px;background:#eef2f7}.empty{text-align:center;color:#64748b;padding:30px}.loading{text-align:center;padding:80px;font-size:20px}.under-construction{max-width:600px;margin:80px auto;text-align:center}.history-note{font-size:13px;color:#64748b}
@media(max-width:900px){.chapter-layout{grid-template-columns:1fr}.book-panel{position:static}.page-frame{height:70vh;min-height:400px}header{padding:0 16px}.brand{font-size:17px}main{padding:24px 14px}.match-row{grid-template-columns:1fr}}

/* Give Science book pages more room and scroll vertically when a page is tall. */
.science-chapter-layout{grid-template-columns:minmax(0,3fr) minmax(400px,2fr)}
.science-page-frame{display:block;height:calc(100vh - 270px);min-height:200px;overflow-x:hidden;overflow-y:auto}
.science-page-frame img{display:block;width:auto;height:auto;max-width:100%;max-height:none;margin:0 auto}
@media(max-width:900px){.science-chapter-layout{grid-template-columns:1fr}.science-page-frame{height:70vh;min-height:250px}}

/* ESL Writing */
.topic-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}.topic-filters button{font-size:14px}.topic-filters .active{background:var(--navy);color:#fff}.writing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.writing-card{min-height:190px;display:flex;flex-direction:column}.writing-card h2{font-size:23px;margin:7px 0}.writing-card p{color:#60708e;margin:0 0 14px}.writing-card .tags{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px}.topic-type,.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--blue);font-size:12px;font-weight:800}.preparation{max-width:700px;margin:45px auto;padding:clamp(28px,5vw,55px)}.preparation h1{margin-top:8px}.preparation>p{color:#51617e;font-size:17px}.prep-stats,.result-stats{display:flex;flex-wrap:wrap;gap:14px;margin:25px 0}.prep-stats>div,.result-stats>div{background:#f2f6fc;border-radius:12px;padding:14px 20px;min-width:125px}.prep-stats strong,.result-stats strong{display:block;font-size:24px}.prep-stats span,.result-stats span{display:block;color:#66758e;font-size:13px}.exam-mode{background:#edf2f8}.exam-mode header{display:none}.exam-mode main{max-width:none;padding:0;min-height:100vh}.start-countdown{min-height:100vh;display:grid;place-items:center;background:#10213f;color:#fff}.start-countdown span{font-size:clamp(90px,20vw,220px);font-weight:900;animation:count-pop .35s ease}@keyframes count-pop{from{transform:scale(.6);opacity:.2}to{transform:scale(1);opacity:1}}.exam-shell{display:grid;grid-template-columns:minmax(320px,40%) 1fr;min-height:100vh}.exam-task{background:#fff;padding:clamp(28px,5vw,70px);border-right:1px solid var(--line);overflow:auto}.exam-task h1{font-size:clamp(27px,3vw,40px);margin-top:8px}.exam-task li{margin-bottom:9px}.exam-prompt{font-size:17px;white-space:pre-wrap}.target-note{margin-top:25px;color:#60708e;font-weight:700}.exam-writing{padding:clamp(18px,3vw,40px);display:flex;flex-direction:column;min-height:100vh}.exam-status{display:flex;align-items:center;gap:22px;margin-bottom:14px;color:#53627c}.exam-status strong{color:var(--navy);font-size:18px}.exam-status #save-status{margin-left:auto;font-size:13px}.exam-status .urgent{color:var(--red)}#writing-answer{flex:1;min-height:500px;padding:25px;border:1px solid #aab9cf;border-radius:14px;font-size:18px;line-height:1.7;resize:none;box-shadow:0 6px 25px #17233b0a}.exam-actions{display:flex;justify-content:flex-end;margin-top:16px}.focus-overlay{position:fixed;inset:0;background:#0f1d35ed;color:#fff;z-index:100;place-items:center;text-align:center;padding:25px}.focus-overlay:not([hidden]){display:grid}.focus-overlay h2{font-size:clamp(25px,4vw,42px);margin-bottom:5px}.focus-overlay p{font-size:18px}.focus-overlay strong{font-size:90px}.result-wrap{max-width:950px;margin:0 auto;padding:40px 20px 80px}.result-card,.feedback-panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:clamp(22px,4vw,38px);margin-bottom:18px;box-shadow:0 6px 22px #16233b0a}.result-card>h1{text-align:center}.success-mark,.result-icon{margin:0 auto 12px;width:55px;height:55px;border-radius:50%;display:grid;place-items:center;background:#dcfce7;color:var(--green);font-size:31px;font-weight:900}.focus-failed{max-width:650px;margin:100px auto;text-align:center}.focus-failed .result-icon{background:#fee2e2;color:var(--red)}.result-stats{justify-content:center}.result-card h2{margin-top:30px}.submitted-writing{white-space:pre-wrap;background:#f5f8fc;border-radius:12px;padding:20px;font-size:16px;line-height:1.75}.result-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.button.secondary{background:#e8eef9;color:#244169}.feedback-panel h2{margin-bottom:10px}.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.score-card{border:1px solid var(--line);border-radius:12px;padding:14px}.score-card>div:first-child{display:flex;justify-content:space-between;gap:10px}.score-card p{font-size:14px;margin-bottom:0;color:#53627c}.score-track{height:7px;background:#e7edf6;border-radius:6px;margin-top:8px;overflow:hidden}.score-track i{display:block;height:100%;background:var(--blue)}.feedback-list{display:grid;gap:12px}.feedback-list article{border:1px solid var(--line);border-radius:11px;padding:15px}.feedback-list blockquote{margin:0 0 8px;border-left:3px solid var(--green);padding-left:12px;font-weight:650}.feedback-list p{margin:0}.error-category{font-size:12px;text-transform:uppercase;color:var(--red);font-weight:800}.feedback-list dl{display:grid;grid-template-columns:100px 1fr;margin:10px 0 0;gap:7px}.feedback-list dt{font-weight:800}.feedback-list dd{margin:0}.improved{border-top:4px solid var(--blue)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.timer-choice{border:0;padding:0;margin:25px 0}.timer-choice legend{font-size:17px;font-weight:800;margin-bottom:10px}.timer-choice label{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:9px;cursor:pointer}.timer-choice label:has(input:checked){border-color:var(--blue);background:#f0f5ff}.timer-choice input{width:auto;margin:0}
.writing-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}.topic-source{font-size:13px;color:#315b96;background:#eef5ff;border-radius:8px;padding:7px 9px;margin-bottom:12px}.book-source{background:#eef5ff;border-left:4px solid var(--blue);padding:12px 14px;border-radius:8px;margin:18px 0;color:#244169}.book-source small{display:block;margin-top:5px;line-height:1.45}.history-grid{display:grid;gap:14px}.history-card{min-height:auto;padding:22px}.history-card h2{font-size:22px;margin:7px 0}.history-card p{color:#60708e;margin:0 0 8px}.history-card span{color:var(--blue);font-weight:700}
@media(max-width:800px){.exam-shell{grid-template-columns:1fr}.exam-task{border-right:0;border-bottom:1px solid var(--line);padding:24px}.exam-writing{min-height:75vh;padding:16px}#writing-answer{min-height:55vh}.score-grid{grid-template-columns:1fr}.exam-status{gap:10px;flex-wrap:wrap}.exam-status #save-status{margin-left:0}.result-wrap{padding:20px 12px 50px}.feedback-list dl{grid-template-columns:1fr}.feedback-list dd{margin-bottom:6px}}

/* ESL Speaking */
.speaking-prep h2{font-size:20px;margin:24px 0 8px}.mission-box{background:#eef5ff;border-left:4px solid var(--blue);padding:16px 18px;border-radius:10px;margin:22px 0}.mission-box p{margin:5px 0 0;color:var(--navy)}.mic-note{background:#fff8e6;border-radius:10px;padding:14px!important;font-size:14px!important}.access-settings{max-width:620px;margin:30px 0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}.access-settings summary{cursor:pointer;font-weight:750}.access-settings input{margin:10px 8px 8px 0;max-width:350px}.live-shell{max-width:680px;min-height:620px;margin:25px auto;background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(28px,6vw,65px);text-align:center;box-shadow:0 18px 55px #17233b12}.live-shell h1{font-size:34px}.live-orb{width:150px;height:150px;border-radius:50%;background:linear-gradient(145deg,#dce9ff,#6c9cf6);display:grid;place-items:center;margin:42px auto 22px;box-shadow:0 0 0 18px #edf4ff}.live-orb i{display:block;width:58px;height:58px;border:4px solid #fff;border-radius:50%;animation:speak-pulse 1.7s ease-in-out infinite}.live-orb.thinking{width:100px;height:100px;margin:20px auto 40px}@keyframes speak-pulse{50%{transform:scale(1.25);opacity:.45}}.live-state{font-size:22px;font-weight:800;margin:0}.live-phase{color:var(--blue);font-size:14px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.agent-support{margin:22px auto 0}.agent-support-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.agent-support-actions button{min-width:132px;min-height:48px}.agent-caption{max-height:180px;overflow:auto;text-align:left;background:#f2f6fc;border:1px solid #d7e2f2;border-radius:13px;padding:15px 17px;margin-top:15px}.agent-caption strong{color:var(--blue);font-size:13px;text-transform:uppercase;letter-spacing:.06em}.agent-caption p{font-size:18px;line-height:1.65;margin:5px 0 0;white-space:pre-wrap}.live-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:32px}.danger{background:#b42318}.hint-box{text-align:left;background:#fff8e6;border:1px solid #f2d79b;border-radius:11px;padding:13px 16px;margin:24px 0}.hint-box p{margin:4px 0}.live-audio audio{width:100%;margin-top:12px}.analysis-wait{text-align:center;max-width:650px;margin:80px auto}.speaking-review{max-width:850px;margin:20px auto}.speaking-review>h1,.final-review>h1{text-align:center}.review-block,.retry-card,.evidence-details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin:16px 0}.review-block h2{font-size:21px}.review-list{display:grid;gap:10px}.review-list article{background:#f6f9fd;border-radius:10px;padding:13px}.review-list article p{margin:3px 0}.review-list .original{color:#8b3131;text-decoration:line-through}.retry-card{border-top:4px solid var(--blue);padding:28px}.retry-card h2{text-transform:capitalize;margin:7px 0}.evidence-details summary{font-weight:800;cursor:pointer}.final-review .success-mark{margin-top:20px}.final-review>.subtitle{text-align:center}.speaking-review>.eyebrow{text-align:center}
@media(max-width:700px){.live-shell{min-height:calc(100vh - 120px);margin:0;padding:28px 18px}.live-orb{width:120px;height:120px;margin-top:35px}.speaking-review{margin:0}.review-block,.retry-card{padding:18px}}
.speaking-unit-heading{margin-bottom:28px}.speaking-unit-heading h1{margin:5px 0}.activity-group{margin:28px 0}.activity-group>h2{font-size:19px;color:#42526e}.activity-list{display:grid;gap:12px}.activity-card{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;color:inherit;text-decoration:none;box-shadow:0 4px 14px #17233b08;transition:.15s ease}.activity-card:hover{border-color:#9bb8ec;transform:translateY(-1px)}.activity-card h3{font-size:20px;margin:0 0 5px}.activity-card p{color:#60708e;margin:0 0 6px}.source-line{font-size:13px!important;color:#315b96!important}.activity-status{white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:13px;font-weight:800;background:#eef2f7;color:#59677e}.activity-status.practised{background:#fff4d8;color:#855000}.activity-status.completed{background:#dcfce7;color:#166534}.finish-confirmation:not([hidden]){display:block;margin-top:24px;padding:18px;background:#fff4ed;border:1px solid #f2b8a2;border-radius:13px}.confirmation-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:14px}.paused-card{max-width:650px;margin:55px auto;text-align:center}.paused-card .result-icon{background:#e8eef9;color:#244169}.result-actions .button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.speaking-review .result-actions{flex-wrap:wrap}
@media(max-width:700px){.activity-card{align-items:flex-start;flex-direction:column}.activity-status{align-self:flex-start}.result-actions{justify-content:stretch;flex-direction:column}.result-actions>*{width:100%;text-align:center}}

/* Speaking learning evidence */
.speaking-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 28px;font-size:inherit}.speaking-tools a{display:flex;flex-direction:column;gap:3px;background:#13284c;color:#fff;border-radius:14px;padding:17px 18px;text-decoration:none}.speaking-tools a:hover{background:#1d3d72}.speaking-tools span{color:#c7d6f0;font-size:13px}.insight-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.metric-grid article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}.metric-grid strong{display:block;font-size:34px;line-height:1;color:#183b73}.metric-grid span{display:block;margin-top:9px;color:#60708e}.adaptive-card{display:grid;grid-template-columns:1fr minmax(180px,340px);align-items:center;gap:28px;background:linear-gradient(135deg,#10284e,#204f8f);color:#fff;border-radius:18px;padding:26px 30px;margin-bottom:20px}.adaptive-card h2{margin:5px 0}.adaptive-card p{margin:0;color:#d8e4f6}.adaptive-card .topic-type{color:#9fc2ff}.level-track{height:10px;background:#ffffff30;border-radius:8px;overflow:hidden}.level-track i{display:block;height:100%;border-radius:8px;background:#72d5a3}.level-track i.foundation{width:33%}.level-track i.developing{width:66%}.level-track i.stretch{width:100%}.dashboard-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;margin-bottom:20px}.insight-panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:20px}.insight-panel h2{font-size:21px}.unit-progress{margin:16px 0}.unit-progress>div:first-child{display:flex;justify-content:space-between;gap:12px}.unit-progress span,.evidence-row span,.recent-list span{color:#65748d;font-size:13px}.progress-line{height:7px!important;background:#e7edf6;border-radius:7px;margin-top:8px;overflow:hidden}.progress-line i{display:block;height:100%;background:#2864dc}.evidence-row{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:12px 0}.empty-note{color:#6b7890}.recent-list{display:grid;gap:9px}.recent-list>a,.recent-list>div{display:flex;justify-content:space-between;gap:15px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;text-decoration:none;color:inherit}.word-section{margin:30px 0}.word-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:13px}.word-grid article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.word-grid h3{font-size:22px;margin:8px 0 4px}.word-grid p{margin:0 0 14px;color:#52617a}.word-grid small{color:#6b7890}.word-status{display:inline-block;border-radius:999px;padding:4px 8px;font-size:12px;text-transform:uppercase;font-weight:800;background:#eef2f7}.word-status.owned{background:#dcfce7;color:#166534}.word-status.growing{background:#fff4d8;color:#855000}.pronunciation-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:20px;align-items:start}.pronunciation-practice{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(25px,5vw,48px)}.pronunciation-practice label{display:block;font-weight:800;margin:24px 0 7px}.target-word{font-size:clamp(38px,7vw,72px);font-weight:850;color:#173e79;margin:28px 0;line-height:1.1}.pronunciation-score{display:flex;align-items:center;gap:18px;background:#edf8f2;border-radius:14px;padding:18px;margin-top:22px}.pronunciation-score>strong{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:#15803d;color:#fff;font-size:26px}.pronunciation-score h2,.pronunciation-score p{margin:0 0 3px}.pronunciation-score.nearly_there{background:#fff8e6}.pronunciation-score.nearly_there>strong{background:#b66b00}.pronunciation-score.try_again{background:#fff0ef}.pronunciation-score.try_again>strong{background:#b42318}
@media(max-width:850px){.speaking-tools,.metric-grid{grid-template-columns:1fr 1fr}.dashboard-columns,.pronunciation-layout{grid-template-columns:1fr}.adaptive-card{grid-template-columns:1fr}.unit-progress>div:first-child,.recent-list>a,.recent-list>div{flex-direction:column;gap:2px}}
@media(max-width:480px){.speaking-tools,.metric-grid{grid-template-columns:1fr}.insight-heading{display:block}.insight-heading .button{margin-top:10px}.metric-grid article{padding:18px}}
.math-board{max-width:540px}.board-controls{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.board-controls button{padding:6px 10px;font-size:13px}.drawing-grid{display:block;width:100%;height:auto;aspect-ratio:1;border:1px solid #acbcd0;border-radius:8px;cursor:crosshair;background:#fff}.grid-label{font:11px system-ui,sans-serif;fill:#526275}.board-info{font-size:13px;color:#526275;margin:6px 0}.pie-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pie-fields label{font-size:13px;font-weight:650}.pie-fields input{margin-top:3px}.pie-preview{width:min(100%,320px);height:auto;display:block;margin:8px auto}
.shared-context{padding:8px 10px;margin-bottom:8px;background:#f1f5fb;border-left:3px solid #8aa6dc;color:#34445f;border-radius:4px;font-size:14px}.full-page-link{display:block;margin-top:8px;font-size:13px;color:var(--blue);text-align:right}
.shape-label{font:700 15px system-ui,sans-serif;fill:#0f3979;pointer-events:none}
.question.done .hidden-answer{display:none}.hide-answers .question.done .hidden-answer{display:block}.hide-answers .question.done .saved-answer,.hide-answers .question.done .evaluation{display:none}
.pie-preview{cursor:crosshair}.pie-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:#34445f}
.exam-shell.with-visual{grid-template-columns:minmax(360px,54%) 1fr}.exam-shell.with-visual .exam-task{padding:28px}.ielts-visual{margin:18px 0}.ielts-visual img{display:block;width:100%;max-width:960px;height:auto;background:#fff;border:1px solid var(--line);border-radius:8px}.ielts-visual figcaption{display:flex;justify-content:flex-end;margin-top:6px}.ielts-visual figcaption button{font-size:13px;padding:6px 12px}.ielts-guidance{background:#eef5ff;border-radius:8px;padding:8px 12px;color:#244169;font-size:15px}.ielts-note{background:#fff8e6;border-left:4px solid #d99a00;border-radius:8px;padding:10px 12px;color:#5c4400}.sub-filters{margin-top:-10px}.sub-filters button{font-size:13px;padding:7px 12px}.visual-zoom{position:fixed;inset:0;z-index:90;background:#0f1d35eb;overflow:auto;padding:16px}.visual-zoom img{display:block;width:min(1400px,100%);height:auto;margin:0 auto;background:#fff;border-radius:8px}.visual-zoom-bar{position:sticky;top:0;display:flex;justify-content:flex-end;margin-bottom:10px}.task-recap{margin:24px 0 0;border:1px solid var(--line);border-radius:12px;padding:12px 16px;background:#fbfcfe}.task-recap summary{cursor:pointer;font-weight:750}.task-recap .ielts-visual img{max-width:720px}
.score-grid.rich{grid-template-columns:1fr}.score-card.rich{padding:18px}.score-head{display:flex;justify-content:space-between;gap:10px}.score-head span{font-weight:800;font-size:18px}.bilingual{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px}.bilingual h4,.reach-five h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#53627c}.bilingual p{margin:0;font-size:15px;color:var(--navy)}.bilingual>[lang=vi]{background:#f6f9fd;border-radius:8px;padding:10px 12px}.reach-five{margin-top:14px;background:#effaf2;border-radius:10px;padding:12px 14px}.score-card.full .reach-five{background:#f5f8fc}.reach-five ol{margin:0;padding-left:20px}.reach-five li{margin:6px 0;font-size:15px}.before-after{display:grid;gap:3px;margin-top:6px;font-size:14px}.before-after span{display:inline-block;min-width:56px;margin-right:6px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#53627c}
.issue-group{border-top:1px solid var(--line);padding:10px 0}.issue-group>summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0 10px;cursor:pointer}.group-title{font-size:19px;font-weight:800}.group-count{font-size:13px;color:#60708e}.feedback-list .issue{border-left-width:6px}.issue.sev-important{border-left-color:#b42318}.issue.sev-moderate{border-left-color:#c26a00}.issue.sev-minor{border-left:3px dashed #94a3b8}.issue-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.severity-badge{display:inline-block;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800;letter-spacing:.08em}.severity-badge.important{background:#fde8e6;color:#9b1c1c;border:1px solid #f4b4ae}.severity-badge.moderate{background:#fff1dc;color:#8a4b00;border:1px solid #f3c98b}.severity-badge.minor{background:#f1f4f8;color:#475569;border:1px solid #d5dde8}.concept{border-radius:999px;padding:3px 9px;font-size:12px;color:#315b96;background:#eef5ff}.feedback-list .original-text{color:#7a2e2e}.feedback-list .correction-text{color:#14532d;font-weight:650}.feedback-list .examples{margin:0;padding-left:18px}.feedback-list .pattern{margin-top:10px;background:#fff8e6;border-radius:8px;padding:8px 10px;font-size:14px}
.model-paragraphs p{margin:0 0 14px}.model-paragraphs p:last-child{margin:0}.para-number{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;margin-right:8px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:800;line-height:1;vertical-align:1px}.paragraph-analysis{list-style:none;padding:0;margin:18px 0;display:grid;gap:14px}.paragraph-analysis>li{border:1px solid var(--line);border-radius:12px;padding:15px}.para-head{display:flex;gap:10px;align-items:flex-start}.para-head q{display:block;color:#60708e;font-style:italic;font-size:14px}.paragraph-analysis dl{display:grid;grid-template-columns:120px 1fr;gap:6px;margin:10px 0 0}.paragraph-analysis dt{font-weight:800}.paragraph-analysis dd{margin:0}.language-notes{margin:10px 0 0;padding:10px 14px 10px 30px;background:#f6f9fd;border-radius:8px;font-size:14px}.language-notes li{margin:4px 0}.type-notes li{margin:6px 0}.useful-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.useful-grid article{border:1px solid var(--line);border-radius:11px;padding:14px}.useful-grid h3{margin:0 0 6px;font-size:17px;color:#173e79}.useful-grid p{margin:4px 0;font-size:14px}
@media(max-width:800px){.exam-shell.with-visual{grid-template-columns:1fr}.exam-shell.with-visual .exam-task{padding:20px 14px}.bilingual{grid-template-columns:1fr}.paragraph-analysis dl{grid-template-columns:1fr}.paragraph-analysis dd{margin-bottom:6px}}

.pair-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#eef5ff,#fff);border:1px solid #bcd0f3;border-left:5px solid var(--blue);border-radius:16px;padding:22px 26px;margin:0 0 26px;color:inherit;text-decoration:none;box-shadow:0 6px 22px #16233b0a;transition:.15s}.pair-entry:hover{transform:translateY(-2px);border-color:#90afea}.pair-entry h2{margin:4px 0}.pair-entry p{margin:0;color:#51617e}
.section-heading{font-size:19px;color:#42526e;margin:10px 0 14px}
.pair-card{display:grid;gap:14px;text-align:left;background:#f7f9fd;border:1px solid var(--line);border-radius:13px;padding:16px 18px;margin:18px 0}.pair-card h2{font-size:15px!important;text-transform:uppercase;letter-spacing:.06em;color:var(--blue);margin:0 0 4px!important}.pair-card p,.pair-card ul{margin:0}.pair-card ul{padding-left:20px}
.pair-partner-note{background:#fff8e6;border:1px solid #f2d79b;border-radius:10px;padding:10px 14px;color:#6b4a00}
.useful-language{margin:14px 0}.useful-language summary{cursor:pointer;font-weight:700}.useful-language h3{font-size:15px;margin:12px 0 4px}
.pair-live{text-align:left;margin-top:18px}.pair-live .pair-card{margin:10px 0}
.pair-checklist{list-style:none;padding-left:0!important}.pair-checklist li{padding:3px 0}.pair-checklist li.done{color:var(--green);font-weight:700}
.pair-complete:not([hidden]){display:block;background:#dcfce7;border:1px solid #86efac;color:#166534;border-radius:10px;padding:10px 14px;font-weight:700}
.pair-dimensions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.pair-dimensions article{background:#f6f9fd;border-radius:10px;padding:13px}.pair-dimensions strong{display:block;margin:4px 0}.pair-dimensions p{margin:0}.level-strong{color:var(--green)}.level-developing{color:var(--amber)}.level-not_enough_evidence{color:#64748b}
.pair-missing{text-align:left;display:inline-block}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:640px){.pair-entry{flex-direction:column;align-items:flex-start}}
.evaluation .correct-answer{margin-top:8px}.evaluation .correct-board{margin-top:10px}

/* Math Exam Practice */
.exam-practice{margin-top:38px}.exam-section-title{margin-bottom:6px}.exam-card{display:flex;flex-direction:column;gap:6px;min-height:auto}.exam-card h2{font-size:23px;margin:4px 0}.exam-card h2 a{color:inherit;text-decoration:none}.exam-card p{margin:0}.exam-facts{color:#60708e}.exam-state{font-weight:700}.state-in_progress{color:var(--amber)}.state-completed{color:var(--green)}.state-not_started{color:#60708e}
.exam-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.exam-card-actions .button,.exam-card-actions button{min-height:44px;display:inline-flex;align-items:center}
.exam-overview{max-width:900px}.exam-rules li{margin-bottom:6px}.exam-history{max-width:900px;margin:0 auto}.exam-progress{display:grid;gap:8px;margin-bottom:18px}.exam-progress>div{display:grid;grid-template-columns:90px 1fr 70px;gap:12px;align-items:center}.exam-progress .score-track{margin:0;height:10px}.unit-scores{font-size:13px;color:#53627c}
.exam-bar{position:sticky;top:68px;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 18px;margin-bottom:18px;box-shadow:0 6px 22px #16233b14}.exam-bar>div:first-child{display:flex;flex-direction:column;margin-right:auto}.exam-bar>div:first-child span{font-size:13px;color:#60708e}.exam-timer{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--navy)}.exam-timer.warning{color:var(--amber)}.exam-timer.urgent{color:var(--red)}
.exam-paper{max-width:900px;margin:0 auto}.exam-question{background:#fff}.marks{font-size:14px;font-weight:600;color:#60708e;white-space:nowrap}.exam-stem{background:#f5f8fc;border-radius:8px;padding:10px 12px;margin:6px 0 10px;white-space:pre-wrap}.exam-part{padding:10px 0;border-top:1px dashed var(--line)}.exam-part:first-of-type{border-top:0}.part-text{font-weight:600;margin-bottom:8px;white-space:pre-wrap}.answer-hint{font-size:13px;color:#64748b;margin-top:6px}.exam-part input[type=text]{font-size:18px;min-height:46px}.exam-part .option{min-height:44px;align-items:center}.exam-end{text-align:center;padding:20px}
.exam-result .exam-score{font-size:clamp(44px,8vw,72px);text-align:center;margin:6px 0}.exam-result-status{text-align:center;color:#53627c}.status-time_expired{color:var(--amber)}.exam-breakdowns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.exam-breakdown .bar-cell{width:35%}.exam-breakdown .score-track{margin:0}
.exam-review{max-width:950px;margin:0 auto}.points-awarded{float:right;font-weight:800}.points-awarded.partial{color:var(--amber)}.points-awarded.correct{color:var(--green)}.points-awarded.incorrect,.points-awarded.unanswered{color:var(--red)}.explanation{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
@media(max-width:900px){.exam-breakdowns{grid-template-columns:1fr}.exam-bar{top:68px;gap:8px 14px}.exam-timer{font-size:19px}}
