:root{--paper:#f7f7f2;--white:#fff;--ink:#243d33;--muted:#758071;--forest:#204b3d;--lime:#e1ecc3;--line:#dfe5d9;font-family:Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button[hidden]{display:none}button:disabled{cursor:default}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #a6854d;outline-offset:4px}button svg{width:22px;height:22px;flex-shrink:0}button{transition:background .15s,box-shadow .15s}.app-shell{max-width:1040px;margin:auto;padding:0 36px;min-height:100svh;display:flex;flex-direction:column}.topbar{height:87px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px}.brand{background:none;border:0;display:flex;align-items:center;gap:11px;padding:0;color:var(--ink);font-size:25px;font-weight:500}.brand-symbol{display:grid;grid-template-columns:repeat(2,8px);gap:4px}.brand-symbol i{width:8px;height:8px;border-radius:2px;background:var(--forest)}.brand-symbol i:last-child{border-radius:50%;background:#b18a55}.date-label{margin-right:auto;color:var(--muted);font-size:12px}main{flex:1;outline:none}.home-view{padding:48px 0 35px}h1{font-size:32px;font-weight:500;line-height:1.3;margin:0 0 28px;letter-spacing:-.5px}.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.subject-card{border-radius:18px;padding:28px;background:var(--forest);color:white;min-height:210px;display:flex;flex-direction:column}.subject-card h2{font-size:29px;font-weight:400;margin:0 0 12px;line-height:1.3}.subject-description{color:#ceddce;font-size:14px;margin:0;line-height:1.6}.subject-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #ffffff24;margin-top:28px;padding-top:20px}.subject-bottom>span{font-size:12px;color:#d1dfcd}.reading-subject{background:var(--white);color:var(--ink);border:1px solid var(--line)}.reading-subject .subject-description,.reading-subject .subject-bottom>span{color:var(--muted)}.reading-subject .subject-bottom{border-color:var(--line)}.button{border:0;border-radius:10px;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:11px 20px;font-size:14px;font-weight:600;white-space:nowrap}.button-light{background:var(--lime);color:var(--forest)}.button-light:hover{background:#edf3da}.button-primary{background:var(--forest);color:white}.button-primary:hover{background:#2d604e}.button-outline{background:transparent;border:1px solid #ced9c6;color:var(--forest)}.button-outline:hover{background:#eaf0e2}.about-details{margin-top:22px;color:var(--muted);font-size:13px}.about-details summary,.solution-details summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:10px;min-height:34px}.about-details summary::-webkit-details-marker,.solution-details summary::-webkit-details-marker{display:none}.about-details summary>span,.solution-details summary>span{font-size:16px}.about-details[open] summary>span,.solution-details[open] summary>span{transform:rotate(45deg)}.about-content{max-width:690px;line-height:1.85;color:#65725e;background:var(--white);border:1px solid var(--line);padding:17px 22px;border-radius:12px;margin-top:8px}.about-content p{margin:10px 0}.progress-table{border-collapse:collapse;width:100%;font-size:13px;margin-bottom:19px;text-align:right}.progress-table caption{text-align:right;font-size:15px;color:var(--ink);margin-bottom:8px}.progress-table th,.progress-table td{padding:10px 8px;border-bottom:1px solid var(--line);font-weight:400}.progress-table thead th{font-size:11px;color:var(--muted)}.progress-table td{font-variant-numeric:tabular-nums}.data-actions{display:flex;gap:24px;margin-top:15px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:none;border:0;padding:6px 0;min-height:34px;color:var(--forest);font-size:13px}.text-button:hover{color:#99805c}.muted{color:var(--muted)}.danger{color:#9c493d}.reset-box{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:14px;padding:12px;background:#f6eee8;border-radius:8px}.footer{font-size:12px;color:#94603f;text-align:center;padding:0 0 14px}.footer:empty{padding:0}.practice-view{max-width:736px;margin:30px auto}.practice-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}.back-button>span{font-size:19px}.question-count{font-size:18px;direction:ltr;color:var(--ink);font-variant-numeric:tabular-nums}.question-count>span{font-size:13px;color:var(--muted)}.step-track{display:flex;gap:7px;margin:17px 0 23px}.step-track>span{height:4px;background:#e0e6d8;flex:1;border-radius:3px}.step-track>span.current{background:#a5b789}.step-track>span.done{background:var(--forest)}.step-track>span.review{background:#c7ad88}.question-card{background:white;border:1px solid var(--line);border-radius:20px;padding:28px 36px}.topic-tag{display:inline-block;font-size:11px;color:#647953;border:1px solid #e5eadd;border-radius:20px;padding:6px 11px;background:#f8faf3}.question-prompt{font-size:23px;line-height:1.65;font-weight:400;letter-spacing:0;margin:22px 0 12px}.math-expression{font-size:54px;letter-spacing:-1px;text-align:center;padding:18px 0 30px;line-height:1.4;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.equals-mark{color:#99a38b;margin-left:17px}.ratio-expression{font-size:38px}.answer-label{display:block;font-size:12px;margin-bottom:10px;color:#75816f}.answer-row{display:flex;gap:12px}.input-wrap{position:relative;flex:1;min-width:0}.input-wrap input{width:100%;height:54px;border:1px solid #cfd9c5;background:white;border-radius:10px;outline:none;padding:9px 48px;text-align:center;font-size:26px;font-variant-numeric:tabular-nums;color:var(--ink)}.input-wrap input::placeholder{color:#aab59d}.input-wrap input:focus{border-color:#6d8c59;box-shadow:0 0 0 3px #76995514}.input-wrap input:disabled{opacity:1;-webkit-text-fill-color:var(--ink);background:#f9faf6}.input-wrap.input-correct input{border-color:#a9bd94;background:#f5f9ef}.input-wrap.input-wrong input{border-color:#d4c2a9;background:#fcfaf6}.input-unit{position:absolute;left:17px;top:18px;font-size:13px;color:#89917f}.answer-row .button{min-width:115px}.input-hint{font-size:11px;color:#8a947e;margin:10px 0 0;line-height:1.6}.input-hint:empty{display:none}.form-error{color:#9b5736;font-size:12px;line-height:1.5;margin:8px 0 0}.form-error:empty{display:none}.feedback-slot{border-top:1px solid #e9ede1;padding-top:17px;margin-top:20px}.feedback{display:flex;gap:10px;align-items:center}.feedback-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#edf3e5;color:#577344;font-size:21px;flex-shrink:0}.feedback-icon svg{width:17px;height:17px}.feedback>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.feedback strong{font-size:14px;font-weight:500}.feedback.correction .feedback-icon{background:#f4ede1;color:#ad8858}.correct-answer{font-size:15px;line-height:1.6}.solution-details{font-size:12px;color:var(--muted);margin-right:40px;margin-top:3px}.solution-content{padding:9px 14px;background:#f7f9f2;border-radius:9px;line-height:1.8;margin-top:5px;color:#65765d}.solution-content p{margin:5px 0;unicode-bidi:plaintext}.practice-bottom{display:flex;justify-content:flex-end;min-height:44px;padding:6px 3px}.keyboard-hint{color:#8b957e;font-size:11px;padding:9px 0}.reading-passage{font-size:24px;line-height:1.9;margin:22px 0 24px;padding-bottom:22px;border-bottom:1px solid var(--line);color:#24392e}.reading-question{font-size:19px;font-weight:500;line-height:1.65;letter-spacing:0;margin:0 0 16px}.choices{display:flex;flex-direction:column;gap:9px;border:0;padding:0;margin:0;min-width:0}.choice{position:relative;display:flex;align-items:center;gap:11px;min-height:49px;padding:11px 14px;border:1px solid #dfe5d9;border-radius:10px;font-size:15px;line-height:1.65;cursor:pointer;color:#354531}.choice input{margin:0;width:17px;height:17px;flex-shrink:0;accent-color:var(--forest)}.choice-marker{display:none}.choice:has(input:checked){border-color:#8ca17b;background:#f3f7ed}.choice:has(input:focus-visible){outline:2px solid #a6854d;outline-offset:2px}.choice:has(input:disabled){cursor:default}.choices:disabled .choice-correct{background:#eef5e7;border-color:#93ad7d}.choices:disabled .choice-wrong{background:#fbf1e8;border-color:#cbaa89}.reading-submit{display:flex;justify-content:flex-end;margin-top:19px}.reading-submit .button{min-width:116px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.summary-view{max-width:650px;margin:55px auto 35px;text-align:center}.summary-view h1{margin-bottom:10px}.summary-track{color:var(--muted);font-size:15px;margin:0}.summary-score{display:flex;flex-direction:column;align-items:center;gap:10px;margin:32px 0}.summary-score>strong{font-size:65px;line-height:1.1;font-weight:400;letter-spacing:-2px;direction:ltr}.summary-score>strong>span{font-size:30px;letter-spacing:0;color:#8f9c82}.summary-score>span{color:var(--muted);font-size:13px}.summary-actions{display:flex;gap:12px;justify-content:center}.saved-note{font-size:12px;color:#94603f}.summary-details{text-align:right;margin:28px auto 0;max-width:560px}.review-item{padding:13px 0;border-bottom:1px solid var(--line)}.review-item:last-child{border:0}.review-item p{margin:6px 0}.review-item strong{font-weight:500;color:var(--forest)}.view-enter{animation:enter .2s ease-out}@keyframes enter{from{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:700px){.app-shell{padding:0 22px}.home-view{padding-top:34px}.subject-grid{gap:15px}.subject-card{padding:23px}.subject-card h2{font-size:25px}.subject-description{font-size:13px}.subject-bottom{gap:10px}.button{gap:15px;padding:11px 16px}.question-card{padding:25px 27px}}
@media(max-width:560px){.app-shell{padding:0 18px}.topbar{height:71px}.brand{font-size:23px}.date-label{font-size:11px}.home-view{padding:30px 0}h1{font-size:28px;margin-bottom:23px}.subject-grid{grid-template-columns:1fr}.subject-card{padding:23px;min-height:180px}.subject-card h2{font-size:27px}.subject-bottom{margin-top:22px;padding-top:17px}.about-details{margin-top:17px}.about-content{padding:14px 16px}.practice-view{margin:22px auto}.practice-top{font-size:12px}.question-count{font-size:16px}.step-track{gap:5px;margin:14px 0 19px}.question-card{border-radius:16px;padding:22px 20px}.question-prompt{font-size:20px}.math-expression{font-size:42px;padding:17px 0 25px}.equals-mark{margin-left:10px}.ratio-expression{font-size:28px}.answer-row{gap:9px}.answer-row .button{min-width:95px;gap:12px;padding:10px 13px}.input-wrap input{font-size:25px;padding:9px 35px}.input-hint{font-size:10px}.reading-passage{font-size:22px;line-height:1.85;margin:18px 0 19px;padding-bottom:18px}.reading-question{font-size:18px;margin-bottom:14px}.choice{font-size:14px;min-height:49px;padding:10px 12px}.solution-details{margin-right:0}.summary-view{margin-top:39px}.summary-score>strong{font-size:58px}.progress-table th,.progress-table td{padding:9px 5px}.progress-table{font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.study-card{margin-top:24px}.study-actions{display:flex;justify-content:flex-end;margin-top:25px}.study-meaning{font-size:25px;margin:0 0 12px}.pronunciation{font-size:17px;color:#65725e;line-height:1.8}.language-passage{font-size:28px;line-height:1.8;letter-spacing:0}.text-answer input{font-size:20px;padding:10px 15px;text-align:start}.text-answer{flex-wrap:wrap}.text-answer .input-wrap{flex-basis:240px}.text-answer .button{margin-inline-start:auto}.distraction-feedback{font-size:14px}.speak-button{margin:0 0 15px}.about-content a{color:var(--forest);text-underline-offset:3px}.summary-details .review-item strong{display:block;unicode-bidi:plaintext}.subject-card{min-height:195px}.subject-bottom{margin-top:auto;padding-top:18px}.subject-description{margin-bottom:23px}
@media(min-width:960px){.subject-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.subject-card{padding:24px}.subject-card h2{font-size:27px}.subject-bottom .button{gap:12px;padding-inline:15px}}
@media(max-width:560px){.language-passage{font-size:24px}.text-answer .input-wrap{flex-basis:180px}.text-answer input{font-size:18px}.subject-card{min-height:175px}.subject-description{margin-bottom:18px}}
