:root{--green:#247565;--ink:#253e38;--muted:#6f8178;--bg:#f5f6ef;--line:#e4eadd}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:16px system-ui,"Microsoft YaHei",sans-serif;padding-bottom:100px}button,input,select{font:inherit}button{cursor:pointer;border:0;min-height:44px;color:inherit}button:disabled{cursor:default;opacity:.65}a{color:var(--green)}header{padding:18px max(20px,calc((100vw - 1100px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);gap:10px}.brand{font-size:23px;font-weight:750;text-decoration:none;white-space:nowrap}header>div{display:flex;gap:12px;align-items:center}#syncState{font-size:12px;color:var(--muted)}main{max-width:1100px;margin:auto;padding:28px 24px}.hero{background:#e2ecdd;border-radius:28px;padding:30px;display:flex;justify-content:space-between;align-items:center;gap:20px}.hero h1{font-size:32px;margin:12px 0}.hero p{line-height:1.8}.eyebrow{font-size:13px;letter-spacing:2px;color:var(--green)}.mascot{font-size:85px;background:#f6faed;padding:25px;border-radius:50%}.primary,.pill,.secondary{border-radius:13px;padding:12px 20px}.primary{color:#fff;background:var(--green)}.pill,.secondary{background:#edf3e6;color:var(--green)}.danger{background:#fff1e9;color:#98532c}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.stat{background:white;padding:20px;border-radius:18px}.stat b{font-size:29px;margin-right:10px}.muted,.note{color:var(--muted);line-height:1.8}.note{font-size:13px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px}.card{display:flex;flex-direction:column;gap:12px}.card h3{margin:0;font-size:20px}.card p{margin:0;line-height:1.8;color:var(--muted);flex:1}.icon{font-size:34px}.tag{font-size:12px;color:var(--green);background:#edf4e5;padding:6px 10px;border-radius:8px;align-self:flex-start}.panel{margin:18px 0}.panel h2:first-child{margin-top:0}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.row.between{justify-content:space-between}.section-title{margin:28px 0 16px}.subject{border-left:4px solid #8ca96f;padding-left:16px;margin:20px 0}.subject h3{margin-bottom:8px}.empty{padding:24px;background:#f2f5ed;border-radius:16px;line-height:1.8}.reportrow{padding:16px 0;border-bottom:1px solid var(--line);line-height:1.8}nav{position:fixed;bottom:0;left:0;right:0;background:#ffffffed;backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;justify-content:center;gap:10px;padding:10px 12px max(10px,env(safe-area-inset-bottom));z-index:10}nav button{min-width:100px;padding:10px 20px;border-radius:13px;background:transparent;color:var(--muted)}nav .active{background:#e7f0df;color:var(--green);font-weight:700}label{display:block;margin:16px 0;font-size:14px}input,select{display:block;width:100%;padding:13px;border-radius:12px;border:1px solid #cdd9c7;color:var(--ink);background:#fff;margin-top:8px}input:focus,select:focus{outline:2px solid #8cad7f}.check{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.check input{width:20px;margin:0}dialog{border:0;border-radius:24px;width:min(700px,94vw);max-height:90dvh;padding:26px;color:var(--ink)}dialog::backdrop{background:#213c3766;backdrop-filter:blur(4px)}.dialoghead{display:flex;align-items:center;justify-content:space-between;gap:16px}.dialoghead h2{margin:0}.round{border-radius:50%;width:42px;height:42px;background:#edf2e7;font-size:24px}.lessonText{font-size:19px;line-height:1.9;background:#f1f5e9;padding:22px;border-radius:16px}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.options button{padding:20px;background:#eef3e8;border:2px solid transparent;border-radius:14px;font-size:20px}.options button.right{border-color:#368d64;background:#e1f2e2;opacity:1}.options button.wrong{border-color:#c39665;background:#fff2df}.feedback{line-height:1.8;margin:16px 0;min-height:30px}.tenbox{display:grid;grid-template-columns:repeat(5,44px);gap:7px;margin:18px 0}.cell{height:44px;border:2px solid #bad0b4;border-radius:8px;font-size:24px;background:white}.cell:disabled{opacity:1}.progress{height:7px;border-radius:8px;background:#e5eddf;margin:20px 0}.progress div{height:100%;background:#81a66c;border-radius:8px}.textbtn{background:transparent;color:var(--green);font-size:14px;padding:8px}.error{color:#a54b34;line-height:1.7}#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);border-radius:13px;background:#253e38;color:white;padding:14px 20px;max-width:90vw;display:none;z-index:100}code{overflow-wrap:anywhere;background:#edf3e7;padding:12px;border-radius:10px;display:block;user-select:all}.planform{display:grid;grid-template-columns:1fr 1fr;gap:18px}.welcome{max-width:550px;margin:50px auto;text-align:center}.welcome .mascot{display:inline-block}.welcome p{line-height:1.9}.small{font-size:13px}.badge{font-size:11px;padding:4px 8px;background:#fff0d9;border-radius:6px;color:#99733e} [hidden]{display:none!important}@media(min-width:1000px){.hero{padding:36px}.planform .subject{margin:0}}@media(max-width:650px){header{padding:14px 16px}.brand{font-size:19px}header>div{gap:6px}#syncState{max-width:90px;line-height:1.5}.pill{padding:10px 12px;font-size:13px}main{padding:20px 16px}.hero{padding:22px}.hero h1{font-size:27px}.mascot{display:none}.welcome .mascot{display:inline-block}.grid{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:14px 10px;font-size:12px}.stat b{display:block;font-size:26px}.planform{grid-template-columns:1fr;gap:0}nav{gap:0;justify-content:space-around}nav button{min-width:0;padding:8px 12px;font-size:13px}.options{grid-template-columns:1fr}dialog{padding:20px}.card{padding:22px}}
:root{color-scheme:light}
@media(max-width:650px){header>div{min-width:0;flex-wrap:wrap;justify-content:flex-end}header .pill{white-space:nowrap}#accountBtn{max-width:120px;overflow:hidden;text-overflow:ellipsis}#syncState{order:3;flex-basis:100%;max-width:none;text-align:right}}
:root{--unit-line:#d9e4ce}.unit-group{margin:20px 0;background:#fff;border:1px solid var(--unit-line);border-radius:20px;padding:20px}.unit-group>summary{font-size:20px;font-weight:700;cursor:pointer;line-height:2}.unit-group>.grid{margin-top:18px}.wordcards{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.wordcards button{font-size:25px;padding:16px 22px;border:1px solid #d5e2ca;background:#f1f7e9;border-radius:14px;min-width:70px}.activity{padding:20px;background:#f5f4e7;border-radius:16px;margin:20px 0;line-height:1.9}.lesson-steps{display:flex;gap:10px;font-size:12px;color:#6d8664;flex-wrap:wrap}.shape-row{display:flex;gap:30px;justify-content:center;margin:24px 0}.shape-row span{font-size:58px;color:#63916c;text-align:center}.shape-row small{display:block;font-size:14px;color:#536e57}
.char-grid{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.char-grid button{background:#f1f6eb;border:1px solid #d8e3ce;border-radius:13px;min-width:72px;padding:12px 16px}.char-grid small{display:block;color:#59734e;font-size:15px;margin-bottom:6px}.char-grid span{font-size:32px;line-height:1.3}#writingCanvas{display:block;width:min(100%,320px);height:auto;aspect-ratio:1;touch-action:none;border-radius:10px;margin:14px auto}.character-panel{padding:18px}
.poem-text{white-space:pre-line;font-size:23px;line-height:2.2;letter-spacing:2px;text-align:center}

.challenge-context{background:#f2f6ec;border-radius:12px;padding:12px 14px;margin:14px 0;font-size:14px;line-height:1.8}.challenge-context summary{cursor:pointer;color:var(--green)}.challenge-context p{margin:8px 0}
