:root{--green:#174b3c;--mint:#e8f0df;--ink:#253b32;--muted:#768178;--line:#e4e8df;--bg:#f7f8f2;--white:#fff;--gold:#b1bd65}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.7 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #8bba7c;outline-offset:3px}[hidden]{display:none!important}.brand{display:flex;gap:10px;align-items:center;font-size:21px;font-weight:750;letter-spacing:-.6px}.logo{display:grid;place-items:center;background:var(--green);color:#f3f7e5;width:38px;height:38px;border-radius:11px;font:italic bold 30px Georgia}.sidebar{position:fixed;inset:0 auto 0 0;width:235px;background:#fff;padding:32px 24px;display:flex;flex-direction:column;border-right:1px solid var(--line)}.nav-caption{margin:45px 12px 14px;color:#9aA096;font-size:11px;letter-spacing:2px}nav{display:grid;gap:9px}nav button{border:0;background:none;text-align:left;padding:12px 16px;border-radius:10px;color:#768178;font-size:19px}nav button span{font-size:14px;margin-left:12px}nav button.active{background:var(--green);color:#fff}.sidebar-note{margin-top:auto;padding:22px 12px}.sidebar-note span{font-size:13px;font-weight:650}.sidebar-note p{font-size:12px;color:var(--muted)}main{margin-left:235px;padding:0 48px;max-width:1600px}.topbar{height:91px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.user-badge{border:1px solid var(--line);padding:6px 14px;border-radius:30px;background:white;color:var(--green)}#page{min-height:calc(100vh - 165px);padding:35px 0 50px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:650;color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:32px;line-height:1.4;letter-spacing:-1px;margin-bottom:10px}h2{font-size:24px;line-height:1.4;margin-bottom:10px}h3{font-size:17px;margin-bottom:8px}.muted{color:var(--muted);font-size:14px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.pill{display:inline-block;font-size:11px;padding:4px 12px;border-radius:30px;background:var(--mint);color:var(--green)}.hero{position:relative;overflow:hidden;background:#1e4c3e;border-radius:18px;color:#fff;padding:36px 38px;display:flex;justify-content:space-between;gap:30px;margin-bottom:24px}.hero p{color:#c5d6ca;font-size:13px}.hero .eyebrow{color:#c5d3a0}.hero h2{font-size:29px;margin:10px 0}.hero-art{width:170px;flex-shrink:0;display:grid;place-items:center}.orbit{width:140px;height:140px;border:1px solid #66836b;border-radius:50%;display:grid;place-items:center;transform:rotate(-16deg)}.orbit span{font:italic 80px Georgia;color:#e1e9b0}.primary,.secondary{border:0;border-radius:9px;padding:11px 21px;font-size:14px;font-weight:600}.primary{background:var(--green);color:white}.hero .primary{background:#e7edc9;color:var(--green)}.secondary{background:#eef1e8;color:var(--green)}.text-btn{border:0;background:transparent;padding:10px 0;color:var(--green);font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.stat,.card{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:24px}.stat p{font-size:12px;color:var(--muted);margin-bottom:8px}.stat strong{font-size:30px;font-weight:550;line-height:1.3}.stat small{color:var(--muted);font-size:11px;margin-left:7px}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.task{display:flex;align-items:center;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.task:last-child{border:0}.task .number{background:#f2f4eb;border-radius:11px;padding:8px 13px;color:var(--green);font-size:13px}.task h3{font-size:14px;margin:0}.task p{font-size:12px;color:var(--muted);margin:3px 0}.task button{margin-left:auto;white-space:nowrap}.progress{height:5px;background:#edf0e6;border-radius:5px;overflow:hidden;margin:15px 0}.progress div{height:100%;background:#8b9c4c;width:0}.focus-item{border-radius:8px;background:#f5f6ef;padding:10px 14px;margin:10px 0;font-size:13px;display:flex;justify-content:space-between}.fine{font-size:11px;color:var(--muted);margin-top:20px}.main-footer{padding:18px 0;border-top:1px solid var(--line);font-size:11px;color:#8e968d;display:flex;justify-content:space-between}.banner{margin-top:16px;padding:12px 18px;background:#fcf1d9;border:1px solid #eddfb7;border-radius:9px;font-size:13px}.study{max-width:850px;margin:auto}.study-card{padding:30px}.question{font-size:23px;line-height:1.8;margin:24px 0;color:#243b31}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}textarea,input,select{width:100%;border:1px solid #d9dfd4;border-radius:9px;background:#fcfdf9;padding:12px 14px;color:var(--ink);outline:none}textarea:focus,input:focus,select:focus{border-color:#568269;box-shadow:0 0 0 3px #56826912}textarea{min-height:155px;resize:vertical;font-size:16px;line-height:1.8}label{display:block;font-size:13px;margin:16px 0 7px}label input,label select{margin-top:6px}.hint,.feedback{padding:18px 20px;margin-top:20px;border-radius:10px;background:#f0f4e8;white-space:pre-wrap;overflow-wrap:anywhere}.feedback{background:white;border:1px solid var(--line)}.feedback p{white-space:pre-wrap}.feedback .english{font-size:17px;line-height:1.8;color:#254f3c}.feedback h3{font-size:13px;color:var(--muted);margin:20px 0 6px}.empty{text-align:center;padding:50px 20px}.empty p{color:var(--muted)}.review-row,.history-row{padding:20px 0;border-bottom:1px solid var(--line)}.review-row:last-child,.history-row:last-child{border:0}.review-row p{margin:8px 0}.meta{font-size:11px;color:var(--muted)}.history-row summary{cursor:pointer}.history-row details p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:15px}.chat-log{min-height:220px;max-height:480px;overflow:auto;padding:10px 0}.bubble{max-width:86%;padding:15px 18px;border-radius:12px;background:#edf2e5;margin:12px 0;white-space:pre-wrap;overflow-wrap:anywhere}.bubble.me{margin-left:auto;background:var(--green);color:white}.chat-feedback{font-size:12px;color:var(--muted);border-top:1px solid #d8dfd0;margin-top:12px;padding-top:10px}.chat-form{display:flex;gap:10px;margin-top:20px}.chat-form textarea{min-height:65px}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-story{background:#e8eddf;padding:45px 11%;position:relative;display:flex;flex-direction:column}.auth-story .eyebrow{margin-top:65px}.auth-story h1{font-size:49px;font-weight:600;line-height:1.45;letter-spacing:-2px;margin-bottom:24px}.auth-story h1 span{color:#5b7958}.auth-story>p:not(.eyebrow){font-size:15px;color:#7c8777}.sample{margin:30px 0;background:#f7f8ef;border-radius:17px;padding:25px 30px;max-width:360px;transform:rotate(-3deg);box-shadow:0 16px 30px #2543300d}.sample p{font:30px/1.3 Georgia;color:var(--green);margin:14px 0}.sample small{font-size:11px;color:var(--muted)}.auth-story footer{font-size:11px;letter-spacing:2px;color:var(--muted);margin-top:auto;padding-top:30px}.auth-form{padding:60px;display:grid;place-items:center;background:#fff}.auth-form>div{width:100%;max-width:350px}.auth-form h2{font-size:30px;margin:15px 0}.full{width:100%;margin-top:20px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:14px 24px;background:#203d32;color:white;box-shadow:0 6px 30px #0002;border-radius:10px;z-index:50;max-width:90vw;font-size:13px}.loading{padding:50px;text-align:center;color:var(--muted)}
@media(min-width:1500px){main{margin-right:auto}}
@media(max-width:1100px){main{padding:0 25px}.sidebar{width:195px;padding:28px 16px}main{margin-left:195px}.stats{gap:10px}.stat{padding:18px}.hero{padding:28px}.grid{grid-template-columns:1fr}.auth-story h1{font-size:39px}}
@media(max-width:700px){.sidebar{position:sticky;top:0;width:100%;padding:12px 16px;z-index:10;border-bottom:1px solid var(--line);border-right:0;display:block}.sidebar .brand{font-size:18px}.logo{width:30px;height:30px;font-size:24px}.nav-caption,.sidebar-note,#logout{display:none}nav{display:flex;overflow-x:auto;gap:6px;margin-top:10px}nav button{padding:7px 9px;white-space:nowrap;font-size:13px}nav button span{margin-left:3px;font-size:12px}main{margin-left:0;padding:0 18px}.topbar{height:55px;font-size:10px}.topbar>span:first-child{max-width:60%}#page{padding-top:24px}h1{font-size:25px}.page-heading{align-items:flex-start}.hero{padding:25px;gap:0}.hero h2{font-size:24px}.hero-art{width:55px;opacity:.5}.orbit{width:100px;height:100px}.orbit span{font-size:56px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stat{padding:17px}.stat strong{font-size:27px}.card{padding:20px}.question{font-size:20px}.study-card{padding:22px}.main-footer{gap:15px;font-size:10px}.main-footer span{max-width:110px;text-align:right}.auth{grid-template-columns:1fr}.auth-story{padding:25px}.auth-story .eyebrow{margin-top:28px}.auth-story h1{font-size:32px;margin-bottom:12px}.auth-story>p:not(.eyebrow){font-size:13px}.sample,.auth-story footer{display:none}.auth-form{padding:32px 25px}.auth-form>div{max-width:450px}.task{gap:10px}.task button{padding:7px 11px}.chat-form{flex-direction:column}.bubble{max-width:95%}}
/* Academy learning surfaces */
nav{max-height:calc(100vh - 210px);overflow-y:auto}nav button{padding:9px 13px}.sidebar-note{padding:15px 10px}.sidebar-note p{margin-bottom:0}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.course-card{display:flex;flex-direction:column}.course-card h3{font-size:21px;margin-top:15px}.course-card>.muted{min-height:48px}.course-card .progress{margin-top:auto}.course-skills{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 22px}.course-skills span{font-size:10px;background:#f4f6ee;border-radius:5px;padding:3px 8px;color:#6b7c67}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.tabs button{border:1px solid var(--line);background:white;color:var(--muted);border-radius:25px;padding:8px 19px;font-size:13px}.tabs button.selected{background:var(--green);border-color:var(--green);color:white}.hero-outline{background:transparent;border:1px solid #7f9d86;color:#edf4df;padding:10px 18px;border-radius:9px;font-size:13px}.word-art{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:7px;width:220px}.word-tile{font:bold italic 41px Georgia;border:1px solid #829a73;padding:0 20px;border-radius:9px;color:#e9edbb;transform:rotate(-7deg)}.word-tile:nth-child(2){margin-left:35px;transform:rotate(5deg);background:#dbe5b8;color:#294e38}.word-art>span{font-size:7px;letter-spacing:1px;margin-top:17px;color:#c4d5b9}.mini-skills{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.mini-skills button{background:#f5f7ef;border:1px solid var(--line);border-radius:10px;padding:15px 7px;color:var(--green);font-size:12px}.mini-skills span{display:block;font:22px Georgia;margin-bottom:5px}.soft-note{background:#f2f5e9;border-radius:8px;padding:15px 17px;font-size:12px;color:#6d7d63;margin:18px 0;line-height:1.8}.lesson-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.lesson-text{white-space:pre-wrap;line-height:2.2;margin:18px 0 5px;font-size:14px}.term-row{padding:17px 0;border-bottom:1px solid var(--line)}.term-row:last-child{border:0}.term-row strong{font-size:18px;color:var(--green);margin-right:16px}.term-row>span{font-size:12px;color:var(--muted)}.term-row p{font-size:14px;margin:6px 0 0;color:#53634e}.lesson-task{display:flex;align-items:center;gap:14px;border:0;border-bottom:1px solid var(--line);background:white;text-align:left;padding:16px 0;width:100%;color:var(--ink)}.lesson-task:last-child{border:0}.lesson-task>div{flex:1}.lesson-task strong{font-size:13px;font-weight:600}.lesson-task small{display:block;font-size:11px;color:var(--muted)}.lesson-task>span:first-child{color:#82995f;font-size:19px}.skill-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:25px}.skill-card{background:white;border:1px solid var(--line);border-radius:13px;text-align:left;color:var(--ink);padding:22px}.skill-card.selected{border-color:#416c50;background:#f0f4e5}.skill-icon{display:block;color:#6f8658;font:29px Georgia;margin-bottom:9px}.skill-card strong{font-size:17px}.skill-card p{font-size:12px;color:var(--muted);margin:8px 0 0}.skill-badge{display:inline-block;padding:4px 12px;font-size:11px;color:#41604c;background:#eef3e6;border-radius:20px;white-space:nowrap}.skill-listening{background:#eaf1f6;color:#476981}.skill-reading{background:#f0edfa;color:#72618d}.skill-speaking{background:#fcf0de;color:#8e6c3f}.skill-writing{background:#f7e9e5;color:#8e675f}.wide-study{max-width:920px}.reading-passage{padding:24px;background:#f4f6ee;border-radius:11px;color:#344c39;font-family:Georgia,serif;font-size:18px;line-height:1.95;margin:20px 0;white-space:pre-wrap}.reading-passage .eyebrow,.reading-clock{font-family:system-ui,sans-serif;font-size:11px;color:var(--muted)}.reading-passage p{margin:9px 0 0}.reading-clock{border-top:1px solid #dfe6d8;margin-top:18px}.audio-panel{padding:20px;background:#edf3ef;border-radius:11px;margin:20px 0}.audio-panel>span{font-size:11px;color:var(--muted)}audio{display:block;width:100%;margin:14px 0 8px;height:45px}.audio-panel .actions{margin-top:0}.audio-panel label{margin:5px 0;font-size:12px;display:flex;align-items:center;gap:7px}.audio-panel select{width:90px;padding:3px 9px}.check-inline{display:flex;align-items:flex-start;gap:8px!important;font-size:12px}.check-inline input{width:auto;margin-top:5px}.answer-options{display:grid;gap:10px;margin:14px 0 22px}.answer-options label{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:9px;padding:13px 17px;margin:0;font-size:14px;background:#fcfdf8;cursor:pointer}.answer-options label:has(input:checked){border-color:#5c805a;background:#edf3e4}.answer-options input{width:auto;margin:0;accent-color:var(--green)}.option-letter{display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:6px;font-size:11px;color:var(--muted);flex-shrink:0}.rubric{border:1px solid var(--line);border-radius:10px;padding:15px 18px;margin-top:22px}.rubric legend{font-size:12px;font-weight:600;padding:0 8px}.rubric label{display:flex;align-items:flex-start;gap:10px;margin:9px 0;font-size:12px}.rubric input{width:auto;margin:5px 0 0;accent-color:var(--green)}.recorder-panel{background:#fcf5e7;border:1px solid #ede2cd;border-radius:12px;padding:23px;margin:22px 0}.result-score{font-size:40px;font-weight:550;line-height:1.4;color:var(--green)}.result-score small{font-size:13px;font-weight:400;color:var(--muted);margin-left:5px}.word-diff{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.word-diff>span{border-radius:5px;padding:4px 8px;font-size:14px}.word-diff small{display:block;font-size:10px}.diff-correct{background:#e8f2df;color:#3b6333}.diff-replace{background:#f9e7df;color:#9b4f3c}.diff-missing{background:#fbefc8;color:#8f7137}.diff-extra{background:#eceeeb;color:#7e8680;text-decoration:line-through}.writing-stats{display:flex;gap:25px;margin:22px 0;padding:15px;background:#f5f6f0;border-radius:9px;font-size:12px}.writing-stats strong{font-size:23px;margin-right:5px}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.report-value{font-size:37px;font-weight:500;display:block;margin-top:18px}.report-grid p{font-size:12px;min-height:42px}.activity-chart{display:flex;align-items:flex-end;justify-content:space-around;gap:15px;min-height:160px;margin-top:20px}.activity-chart>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;width:12%;font-size:12px}.activity-column{display:block;width:60%;background:#91a56f;border-radius:5px 5px 0 0}.activity-chart small{font-size:10px;color:var(--muted)}.test-question{margin:20px 0}.test-question h3{margin-top:20px;white-space:pre-wrap}.saved-answer{white-space:pre-wrap;border-left:3px solid #b3c28c;padding:8px 18px}#course-json{font:12px/1.6 monospace;min-height:330px}#portfolio-attempts details p{font-size:14px}.reading-passage,.saved-answer,.question{overflow-wrap:anywhere}
@media(max-height:850px) and (min-width:701px){.sidebar-note{display:none}nav{max-height:calc(100vh - 220px)}}
@media(max-width:1100px){.course-grid{gap:15px}.lesson-layout{grid-template-columns:1fr}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.word-art{width:160px}.word-tile{font-size:34px}.skill-card{padding:18px}}
@media(max-width:700px){nav{max-height:none;overflow-y:hidden}.course-grid,.report-grid{grid-template-columns:1fr}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.skill-card{padding:17px}.skill-card p{font-size:11px}.word-art{display:none}.hero-outline{font-size:12px}.academy-hero h2{font-size:25px}.reading-passage{padding:18px;font-size:17px}.study-card{padding:20px}.answer-options label{padding:12px}.writing-stats{gap:15px}.result-score{font-size:34px}.task .skill-badge{padding:4px 8px}.page-heading .pill{font-size:9px;max-width:110px;text-align:center;flex-shrink:0}.task>div{min-width:0}.task h3{font-size:13px}.task p{font-size:11px}.recorder-panel{padding:17px}.activity-chart{gap:6px}.main-footer{margin-bottom:10px}.sidebar .brand{justify-content:flex-start}.term-row strong{font-size:17px}}
