:root{color-scheme:light;--ink:#213e35;--muted:#62766c;--green:#165c48;--soft:#e8eee5;--paper:#f6f5ef;--line:#dae0d5;--orange:#d67339;--serif:Georgia,'Songti SC','STSong',serif;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button,a,select,input{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #d79045;outline-offset:3px}button{min-height:44px;border:0;border-radius:12px;background:transparent;color:inherit;padding:10px 14px}button:disabled{opacity:.45;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,5vw,45px);letter-spacing:-1.3px;line-height:1.25;font-weight:580}h2{font-size:23px;letter-spacing:-.4px}h3{font-size:17px;line-height:1.5}p{line-height:1.8}small,.muted{color:var(--muted)}.shell{max-width:1180px;margin:auto;display:grid;grid-template-columns:220px 1fr;min-height:100dvh}.side{padding:40px 25px;border-right:1px solid var(--line);position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:30px}.brand{display:flex;gap:11px;align-items:center;font-size:20px;font-weight:700;letter-spacing:1px}.brandmark{height:35px;width:35px;background:var(--green);border-radius:12px;display:grid;place-items:center;color:#fff;font-size:24px;font-family:var(--serif)}.brand small{font-size:9px;display:block;letter-spacing:2.1px;font-weight:500;margin-top:4px}.nav{display:grid;gap:9px}.nav button{text-align:left;display:flex;align-items:center;gap:15px;color:var(--muted);border-radius:10px}.nav button.active{background:var(--soft);color:var(--green);font-weight:700}.nav .icon{font-size:18px;width:24px;text-align:center}.side-foot{margin-top:auto;font-size:12px;line-height:1.9;color:var(--muted)}.side-foot .leaf{width:58px;height:80px;border:1px solid #a6b79e;border-radius:70% 10% 70% 10%;transform:rotate(-15deg);margin:0 0 20px 20px;background:linear-gradient(130deg,transparent 49%,#a6b79e 50%,transparent 51%)}.main{padding:34px 44px 55px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:38px}.tag{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;font-size:11px;padding:6px 10px;color:var(--muted)}.dot{width:6px;height:6px;background:#7c9670;border-radius:50%}.track-switch{min-width:170px;display:flex;gap:4px;background:#e9ece4;border-radius:11px;padding:4px}.track-switch button{white-space:nowrap;font-size:13px;padding:9px 13px;min-height:44px}.track-switch .active{background:#fff;box-shadow:0 1px 3px #203c3520;color:var(--green);font-weight:600}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;color:var(--muted);margin-bottom:14px}.intro{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:30px}.intro p{margin:10px 0 0;font-size:14px}.intro h1{margin:0}.date{font:italic 20px var(--serif);color:#7a8b71;white-space:nowrap}.hero{border-radius:20px;position:relative;overflow:hidden;background:var(--green);color:white;padding:30px 32px;min-height:230px;display:flex;gap:20px;align-items:center}.hero-content{position:relative;z-index:1;max-width:70%}.hero .eyebrow,.hero p{color:#d1dfcf}.hero h2{font-size:30px;line-height:1.4;margin-bottom:13px}.hero p{font-size:13px;margin-bottom:22px;max-width:330px}.primary{background:var(--green);color:white;font-weight:600;padding:13px 20px}.hero .primary{background:#f0f1d8;color:var(--ink)}.arrow{margin-left:22px}.hero-art{position:absolute;right:-9px;top:0;width:230px;height:100%;opacity:.75}.hero-art .orbit{position:absolute;border:1px solid #b7d2aa55;border-radius:50%;width:210px;height:210px;top:15px;left:25px}.hero-art .orbit:nth-child(2){transform:translate(-13px,28px)}.hero-art .orbit:nth-child(3){transform:translate(10px,57px)}.hero-art .book{position:absolute;width:85px;height:117px;border-radius:5px 12px 12px 5px;background:#e7ebc7;transform:rotate(16deg);top:65px;left:75px;box-shadow:-7px 6px 0 #88a086}.hero-art .book:before{content:'知';display:grid;place-items:center;position:absolute;inset:12px;border:1px solid #778c6f;color:var(--green);font:38px var(--serif)}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0 34px;border-bottom:1px solid var(--line);padding-bottom:25px}.stat{padding:0 18px;border-right:1px solid var(--line)}.stat:first-child{padding-left:0}.stat:last-child{border:0}.stat .value{font:32px var(--serif);display:block}.stat .value span{font:12px sans-serif;color:var(--muted);margin-left:6px}.stat .label{font-size:11px;display:block;margin-top:8px;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.section-title h2{font-size:20px;margin:0}.section-title small{font-size:11px}.plan-row{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.plan-row .number{font:italic 24px var(--serif);color:#94a387;min-width:32px}.plan-row .text{flex:1;min-width:0}.plan-row h3{margin:0 0 4px}.plan-row p{font-size:12px;margin:0;color:var(--muted);line-height:1.6}.plan-row button{background:var(--soft);border-radius:50%;width:44px;flex-shrink:0}.plan-row small{font-size:11px;white-space:nowrap}.note{font-size:12px;line-height:1.8;color:var(--muted);padding:18px 0}.split{display:grid;grid-template-columns:1.55fr 1fr;gap:28px}.aside-card{background:#eaece2;border-radius:17px;padding:23px;align-self:start}.aside-card h3{font-size:16px}.aside-card p{font-size:12px;color:var(--muted);margin-bottom:13px}.aside-card .seed{font:48px var(--serif);color:#7c916b;line-height:1.3}.plain-link{padding:10px 0;color:var(--green);font-size:13px;font-weight:600;text-align:left}.cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.course-card{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:25px}.course-card h2{font-size:24px;margin:18px 0 12px}.course-card p{font-size:13px;color:var(--muted)}.course-card .primary{width:100%;margin-top:15px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:11px;padding:5px 8px;background:var(--soft);border-radius:6px}.lesson,.quiz{max-width:690px;margin:auto}.back{padding-left:0;color:var(--muted);font-size:13px;margin-bottom:20px}.lesson-card{background:#fffdf8;border:1px solid var(--line);padding:25px;border-radius:16px;margin:20px 0}.lesson-card p,.lesson-card li{font-size:15px;line-height:1.9}.lesson-card ol{padding-left:23px}.lesson-card li+li{margin-top:15px}.example{background:var(--soft)}.example p:last-child{margin-bottom:0}.tip{border-left:3px solid #b5a26b;padding:10px 16px;font-size:13px;line-height:1.9;margin:20px 0;background:#f1ecd9}.wide{width:100%;margin-top:15px}.quiz-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.progress-line{height:4px;background:#dde5d8;margin:17px 0 32px;border-radius:4px}.progress-line div{height:100%;background:var(--green);border-radius:4px}.question{font-size:clamp(22px,4vw,29px);line-height:1.65;letter-spacing:-.3px;margin-bottom:28px}.answer-input{width:100%;border:1px solid #b5c5b6;background:#fffdf8;border-radius:12px;padding:17px;font-size:24px;color:var(--ink);min-height:64px}.options{display:grid;gap:12px}.option{display:flex;text-align:left;align-items:center;gap:14px;width:100%;border:1px solid var(--line);background:#fffdf8;min-height:62px;padding:14px 18px}.option[aria-pressed=true]{border-color:var(--green);background:#e4ecdf;box-shadow:0 0 0 1px var(--green)}.option .letter{border:1px solid var(--line);border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-size:12px;flex-shrink:0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.actions .primary{flex:1}.secondary{border:1px solid var(--line);background:#fffdf8}.feedback{margin:25px 0;background:#e7eee2;border:1px solid #c8d9bd;border-radius:15px;padding:22px}.feedback.wrong{background:#f3ebde;border-color:#e1ccb2}.feedback h3{margin-bottom:10px}.feedback p{font-size:14px}.feedback .answer{font-size:24px;font-weight:600}.hint{font-size:14px;background:#ecebdc;border-radius:10px;padding:14px;margin-top:14px;line-height:1.7}.error{color:#a43829;font-size:13px;line-height:1.6}.reason-options{display:flex;gap:6px;flex-wrap:wrap}.reason-options button{font-size:12px;border:1px solid #d3c5ac;background:#fffcf3}.reason-options .active{border:2px solid var(--green)}.empty{padding:30px;border:1px dashed #b8c8b6;border-radius:18px;text-align:center}.empty h2{font-size:23px}.empty p{font-size:14px;color:var(--muted)}.result{padding:30px;border:1px solid var(--line);border-radius:18px;background:#fffdf8;margin-bottom:20px}.result .big{font:58px var(--serif);color:var(--green)}.result p{font-size:14px;color:var(--muted)}.settings-row{padding:18px 0;border-bottom:1px solid var(--line)}.settings-row h3{margin-bottom:8px}.settings-row p{font-size:13px;color:var(--muted)}.budget{display:flex;gap:8px}.budget button{border:1px solid var(--line);background:#fffdf8}.budget .active{background:var(--green);color:white}.history-item{padding:15px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.8}.danger{color:#a43829;border:1px solid #dbc1b8}.banner{background:#f0e8d7;padding:11px 15px;border-radius:9px;font-size:12px;margin:0 0 20px;line-height:1.6}.toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%);background:#203e35;color:#fff;padding:12px 18px;border-radius:12px;font-size:13px;z-index:12;max-width:90%;box-shadow:0 4px 25px #0002}.modal-backdrop{position:fixed;inset:0;background:#152c2466;display:grid;place-items:center;z-index:30;padding:20px}.modal{background:var(--paper);border-radius:20px;padding:28px;max-width:420px;width:100%}.modal p{font-size:14px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.mobile-brand{display:none}.loading{padding:50px}.offline{font-size:11px;color:#a65b25}.footer-note{margin-top:30px;font-size:11px;color:var(--muted);text-align:center}
@media(max-width:850px){.shell{grid-template-columns:175px 1fr}.side{padding:30px 17px}.brand{font-size:17px}.main{padding:28px}.split{grid-template-columns:1fr}.aside-card{display:none}.hero-art{right:-50px;opacity:.5}.hero-content{max-width:82%}.cards{grid-template-columns:1fr}}
@media(max-width:600px){.shell{display:block}.side{position:static;border:0;padding:0;height:auto}.side>.brand,.side-foot{display:none}.nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;border-top:1px solid var(--line);background:#f6f5eff5;padding:8px 12px calc(7px + env(safe-area-inset-bottom));z-index:10;backdrop-filter:blur(12px)}.nav button{flex:1;display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center;font-size:10px;padding:5px 8px;min-height:49px;max-width:95px}.nav button.active{background:transparent}.nav .icon{font-size:20px}.main{padding:21px 20px 105px}.mobile-brand{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.mobile-brand .brand{font-size:17px}.mobile-brand .brandmark{width:29px;height:29px;font-size:21px;border-radius:9px}.topbar{margin-bottom:27px;gap:6px;flex-wrap:wrap}.topbar>.tag{font-size:10px}.track-switch{flex:1}.track-switch button{flex:1;padding:8px 10px;font-size:12px;min-height:44px}.intro{margin-bottom:23px}.intro h1{font-size:32px}.intro p{font-size:12px}.date{font-size:16px}.hero{padding:24px;min-height:226px;border-radius:17px}.hero h2{font-size:26px}.hero p{font-size:12px}.hero-content{max-width:85%}.hero-art{right:-90px;opacity:.33}.hero .primary{font-size:13px}.stats{margin:22px 0 28px}.stat{padding:0 12px}.stat .value{font-size:27px}.stat .value span{font-size:10px;margin-left:4px}.stat .label{font-size:10px}.section-title h2{font-size:19px}.plan-row{gap:10px}.plan-row h3{font-size:14px}.plan-row p{font-size:11px}.plan-row .number{font-size:22px;min-width:25px}.plan-row small{display:none}.lesson-card{padding:20px}.question{font-size:24px}.quiz .actions button{font-size:13px}.course-card{padding:22px}.course-card h2{font-size:24px}.footer-note{line-height:1.8}.tag{white-space:nowrap}.budget button{flex:1;padding:10px;font-size:13px}.modal{padding:23px}.feedback{padding:18px}.result{padding:23px}}
@media(prefers-reduced-motion:no-preference){.main>section{animation:arrive .2s ease-out}@keyframes arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}}
.teacher-launch{color:var(--green);white-space:nowrap;font-size:13px;font-weight:650;background:#fffdf8}
.teacher-dialog{color:var(--ink);border:1px solid var(--line);border-radius:22px;padding:0;width:min(600px,calc(100vw - 24px));max-height:calc(100dvh - 30px);background:var(--paper);box-shadow:0 22px 80px #0c302e35;overflow:auto}
.teacher-dialog::backdrop{background:#17382d88;backdrop-filter:blur(3px)}
.teacher-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px 14px}.teacher-head .eyebrow{font-size:9px;display:block;margin:0 0 8px}.teacher-head h2{font-size:23px;margin:0}.teacher-badge{font:10px -apple-system,sans-serif;margin-left:10px;padding:4px 7px;background:#e2e9db;border-radius:5px;vertical-align:middle}.teacher-head button{font-size:12px}
.teacher-context{margin:0 24px 12px;padding:12px 15px;background:var(--soft);border-radius:10px;font-size:13px;line-height:1.6}.teacher-context span{font-size:10px;color:var(--muted);display:block;margin-bottom:3px}.teacher-context strong{font-weight:500}
.teacher-scroll{padding:8px 24px;max-height:34dvh;min-height:120px;overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere}.teacher-intro{font-size:13px;color:var(--muted);margin-bottom:12px}.teacher-setup{border:1px dashed #b7c7af;border-radius:12px;padding:16px;font-size:13px;background:#fffdf8}.teacher-setup p{margin:9px 0 0;font-size:12px}
.teacher-message{padding:14px 16px;margin:12px 0;border-radius:13px;font-size:14px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.teacher-message small{display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.teacher-message.user{background:#e3eadd;margin-left:28px}.teacher-message.assistant{background:#fffdf8;border:1px solid var(--line);margin-right:12px}
.teacher-compose{padding:16px 24px 18px;border-top:1px solid var(--line)}.teacher-quick{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.teacher-quick button{font-size:11px;padding:7px 9px}.teacher-compose textarea{resize:vertical;width:100%;max-height:180px;min-height:78px;padding:12px 14px;background:#fffdf8;border:1px solid #b5c5b6;border-radius:12px;font:14px/1.7 -apple-system,BlinkMacSystemFont,'PingFang SC',sans-serif;color:var(--ink)}.teacher-compose textarea:focus-visible{outline:3px solid #d79045;outline-offset:2px}.teacher-send{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px}.teacher-send span{font-size:10px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere;min-width:0}.teacher-send button{font-size:13px;flex-shrink:0}.teacher-tools{display:flex;justify-content:space-between;gap:12px}.teacher-tools button{font-size:11px}.teacher-foot{font-size:10px;line-height:1.7;color:var(--muted);margin:0}
@media(max-width:600px){.teacher-head{padding:18px 16px 12px}.teacher-context{margin:0 16px 10px}.teacher-scroll{padding:6px 16px;max-height:30dvh}.teacher-compose{padding:12px 16px}.teacher-head h2{font-size:21px}.teacher-quick{gap:4px}.teacher-quick button{font-size:10px;padding:6px}.teacher-launch{padding:9px 12px}.teacher-badge{font-size:9px}}

.local-feedback-body{padding:0 24px 22px;max-height:65dvh;overflow:auto}.local-feedback-body .lesson-card{margin:12px 0;padding:18px}.local-feedback-body details{font-size:14px;line-height:1.8}.local-feedback-body summary{cursor:pointer;min-height:44px;padding:10px 0;color:var(--green)}.feedback-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;font-size:11px;color:var(--muted)}.feedback-metrics b{display:block;font-size:25px;color:var(--green);margin-bottom:5px}@media(max-width:600px){.local-feedback-body{padding:0 16px 18px}.feedback-metrics{grid-template-columns:repeat(2,1fr);gap:14px}}

.remote-test-note{font-size:12px;color:var(--muted);line-height:1.6;border-left:3px solid #c6d3bf;padding:4px 10px;margin:-18px 0 24px}
