:root{--bg:#fff9ee;--ink:#33313d;--muted:#817b87;--orange:#ff684f;--purple:#6758d8;--green:#27b777;--shadow:0 12px 30px #4f3a1f14}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}body{padding-bottom:82px}button,input{font:inherit}button{border:0;cursor:pointer}.page{width:min(100%,720px);min-height:100vh;margin:auto;padding:22px 18px 105px}.title{font-size:28px;font-weight:900;line-height:1.25}.muted{color:var(--muted)}.card{border-radius:24px;background:#fff;box-shadow:var(--shadow)}
.tabbar{position:fixed;z-index:30;bottom:0;left:50%;display:flex;width:min(100%,720px);height:76px;padding:7px 10px;transform:translateX(-50%);border-top:1px solid #eee5da;background:#fffffff5;backdrop-filter:blur(12px)}.tabbar button{flex:1;border-radius:18px;background:none;color:#89838d;font-size:12px;font-weight:800}.tabbar span{display:block;margin-bottom:3px;font-size:22px}.tabbar button.active{background:#fff0e6;color:var(--orange)}.tabbar.hidden{display:none}
.hero,.page-head{display:flex;min-height:125px;padding:10px 5px;align-items:center}.hero>div:first-child,.page-head>div:first-child{flex:1}.eyebrow{display:inline-block;margin-bottom:8px;padding:5px 10px;border-radius:99px;background:#e8f5ff;color:#3977a8;font-size:12px;font-weight:900}.hero-note{margin-top:7px;color:var(--muted)}.mascot{position:relative;font-size:68px}.bubble{position:absolute;right:-2px;top:-12px;padding:5px 9px;border-radius:12px;background:#fff;color:var(--orange);font-size:11px;font-weight:900;box-shadow:0 4px 12px #0001}.stats{display:flex;gap:12px;margin:4px 0 18px}.stat{display:flex;flex:1;padding:14px 16px;align-items:center;gap:10px;border-radius:18px;background:#fff;box-shadow:0 6px 18px #4f3a1f0d}.stat-icon{font-size:28px}.stat-num{display:block;font-size:23px;font-weight:900}.stat-label{display:block;color:var(--muted);font-size:12px}
.goal{padding:22px;background:linear-gradient(135deg,#6357d9,#7969eb);color:#fff}.goal.done{background:linear-gradient(135deg,#25a875,#43c88c)}.goal-head{display:flex;align-items:center;justify-content:space-between}.goal-kicker{font-size:10px;letter-spacing:2px;opacity:.7}.goal-title{font-size:21px;font-weight:900}.goal-count{font-size:32px;font-weight:900}.goal-count small{font-size:15px;opacity:.7}.track{position:relative;height:12px;margin:18px 7px 12px 0;border-radius:99px;background:#ffffff38}.fill{height:100%;border-radius:99px;background:#ffd55c}.flag{position:absolute;right:-7px;top:-13px;font-size:25px}.goal-note{font-size:13px;opacity:.9}
.entry{display:flex;width:100%;margin-top:15px;padding:14px 16px;align-items:center;gap:11px;border-radius:19px;background:#fff;box-shadow:0 6px 18px #4e3b280d;text-align:left}.entry-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:15px;background:#fff0e6;font-size:24px}.entry-copy{flex:1}.entry-title,.entry-note{display:block}.entry-title{font-weight:900}.entry-note{margin-top:3px;color:var(--muted);font-size:12px}.badge-count{display:grid;min-width:26px;height:26px;place-items:center;border-radius:99px;background:#ff765b;color:#fff;font-size:12px;font-weight:900}.chev{font-size:26px}.section-head{display:flex;margin:27px 5px 13px;align-items:end;justify-content:space-between}.section-title{font-size:20px;font-weight:900}.section-tip{color:#928b95;font-size:12px}
.lesson{display:flex;width:100%;min-height:84px;margin-bottom:12px;padding:14px 16px;align-items:center;border-radius:21px;box-shadow:0 5px 14px #4e3b280c;text-align:left}.lesson:active{transform:scale(.985)}.chinese{background:#fff0e6}.math{background:#e7f4ff}.recite{background:#efeaff}.reading{background:#e5f8ec}.icon-box{display:grid;width:56px;height:56px;margin-right:14px;place-items:center;border-radius:17px;background:#ffffffd4;font-size:30px}.lesson-main{flex:1}.lesson-title,.lesson-desc{display:block}.lesson-title{font-size:18px;font-weight:900}.lesson-desc{margin-top:4px;color:#77717d;font-size:13px}.go{display:grid;width:36px;height:36px;place-items:center;border-radius:50%;background:#fff;font-size:25px;font-weight:900}.lesson.completed{opacity:.72}.lesson.completed .go{background:var(--green);color:#fff;font-size:17px}.tip,.coach{display:flex;margin-top:18px;padding:15px 16px;align-items:center;gap:11px;border-radius:17px;background:#fff;color:#716b76;font-size:13px}
.quiz-head{display:flex;align-items:center;gap:12px}.subject-icon{display:grid;width:50px;height:50px;place-items:center;border-radius:16px;background:#fff;font-size:27px;box-shadow:0 5px 15px #0001}.head-copy{flex:1}.head-title{font-weight:900}.mini-track{height:8px;margin-top:7px;border-radius:99px;background:#eae5de;overflow:hidden}.mini-fill{height:100%;background:linear-gradient(90deg,#7969eb,#a48eff)}.count{color:var(--muted)}.count strong{color:var(--purple);font-size:24px}.coach{margin:18px 0 13px;background:#fff0bd;color:#705c20}.question{padding:23px 19px}.tag,.subject{display:inline-block;padding:5px 11px;border-radius:99px;background:#efeaff;color:#5e55cf;font-size:12px;font-weight:900}.subject.math{background:#e7f4ff;color:#3577ac}.question-text{min-height:68px;margin:20px 0;font-size:23px;font-weight:900;line-height:1.55}.option{display:flex;width:100%;min-height:58px;margin-top:12px;padding:10px 13px;align-items:center;gap:12px;border:2px solid #ebe6df;border-radius:16px;background:#fff;text-align:left}.letter{display:grid;flex:none;width:36px;height:36px;place-items:center;border-radius:11px;background:#f3efe9;font-weight:900}.option-text{flex:1}.mark{display:grid;width:31px;height:31px;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-weight:900}.mark.bad{background:#ee6b62}.option.right{border-color:var(--green);background:#e8f8ef}.option.wrong{border-color:#ee6b62;background:#fff0ef}.feedback{margin-top:15px;padding:18px;border-radius:19px;line-height:1.55}.feedback.good{background:#dff6e9}.feedback.retry{background:#fff0d5}.feedback-title{font-size:18px;font-weight:900}.primary{width:100%;min-height:58px;margin-top:15px;border-radius:17px;background:linear-gradient(135deg,#ff8a56,var(--orange));box-shadow:0 6px 0 #d94d3d;color:#fff;font-size:17px;font-weight:900}.primary:active{transform:translateY(4px);box-shadow:0 2px 0 #d94d3d}
.result{text-align:center;padding-top:55px}.celebrate{display:grid;width:130px;height:130px;margin:0 auto 22px;place-items:center;border-radius:50%;background:#fff0bd;font-size:75px}.score{margin:32px 0 24px;padding:24px}.big{font-size:58px;font-weight:900;color:var(--orange)}.big small{font-size:25px;color:#999}.reward{display:inline-block;padding:9px 16px;border-radius:99px;background:#fff0bd;color:#76580a;font-weight:900}
.focus{text-align:center}.focus-icon{margin-top:16px;font-size:55px}.focus-title{font-size:28px;font-weight:900}.timer-ring{display:flex;width:230px;height:230px;margin:32px auto 20px;flex-direction:column;align-items:center;justify-content:center;border:17px solid #eee9ff;border-radius:50%;background:#fff;box-shadow:0 14px 30px #5442961f}.timer-ring.running{border-color:#9b8bf4}.timer{font-size:52px;font-weight:900;color:#5e55cf}.timer-status{color:var(--muted);font-size:13px}.focus-note{padding:14px 16px;border-radius:17px;background:#fff0bd;color:#6f5b25;text-align:left;font-size:13px}.rule{margin-top:18px;color:var(--muted);font-size:12px}
.wallet{display:flex;margin:10px 0 20px;padding:15px 17px;align-items:center;gap:12px;border-radius:19px;background:linear-gradient(135deg,#fff2be,#ffe19a)}.wallet-star{font-size:32px}.wallet-num{font-size:24px;font-weight:900}.unlock{margin-left:auto;padding:6px 10px;border-radius:99px;background:#fff;color:#9a6e23;font-size:11px;font-weight:900}.unlock.yes{background:var(--green);color:#fff}.lock-card{display:flex;padding:16px;gap:12px;border-radius:19px;background:#efeaff}.lock-main{flex:1}.lock-track{height:8px;margin:8px 0;background:#dad2f7}.lock-track div{height:100%;background:#7969eb}.game-card{display:flex;width:100%;min-height:110px;margin-bottom:13px;padding:16px;align-items:center;border-radius:22px;text-align:left}.game-card.word{background:#ddf7e8}.game-card.number{background:#dff1ff}.game-card.locked{filter:grayscale(.35);opacity:.7}.game-art{display:grid;width:72px;height:72px;margin-right:15px;place-items:center;border-radius:20px;background:#ffffffbf;font-size:40px}.game-info{flex:1}.game-info span{display:block}.game-tag{font-size:10px;font-weight:900}.game-title{font-size:20px;font-weight:900}.game-note{color:#6e7375;font-size:12px}
.level-card{padding:21px;border-radius:23px;background:linear-gradient(135deg,#6658d8,#907df0);color:#fff}.level-name{margin:5px 0 12px;font-size:21px;font-weight:900}.level-stars{padding:7px 12px;border-radius:99px;background:#ffffff2e;font-size:13px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:15px 0}.metric{padding:16px 10px;border-radius:19px;background:#fff;text-align:center}.metric-icon{font-size:24px}.metric-num{font-size:28px;font-weight:900}.metric-label{color:var(--muted);font-size:11px}.section-card{margin-top:15px;padding:20px}.section-card .track{background:#ebe6df}.badges{display:flex;gap:9px;flex-wrap:wrap}.medal{padding:12px;border-radius:14px;background:#fff4ce}.parent{display:flex;margin-top:15px;padding:17px;gap:12px;border-radius:19px;background:#e7f4ff;color:#657580;font-size:13px}.parent-title{font-size:16px;font-weight:900}
.wrong-item{display:flex;width:100%;margin-bottom:11px;padding:15px;align-items:center;gap:11px;border-radius:18px;background:#fff;box-shadow:0 5px 14px #4e3b280d;text-align:left}.item-main{min-width:0;flex:1}.item-q,.item-tip{display:block}.item-q{overflow:hidden;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.item-tip{color:#98919a;font-size:11px}.empty{padding:35px;text-align:center}.empty-icon{font-size:62px}.back{margin-bottom:15px;background:none;color:#6f6873;font-weight:900}
.modal-mask{position:fixed;z-index:50;inset:0;display:grid;padding:18px;place-items:end center;background:#231d2794}.modal{width:min(100%,620px);padding:22px;border-radius:25px;background:#fff;text-align:center}.puzzle{font-size:50px}.choice{width:100%;margin-top:10px;padding:14px;border:2px solid #eae4dc;border-radius:14px;background:#fff}.number-input{width:100%;margin-top:15px;padding:14px;border:0;border-radius:14px;background:#f4f0ea;text-align:center}.message{margin-top:13px;padding:12px;background:#fff0bd}.close{margin-top:14px;padding:10px;background:none}.toast{position:fixed;z-index:100;left:50%;bottom:95px;padding:10px 16px;transform:translate(-50%,20px);border-radius:99px;background:#33313de8;color:#fff;opacity:0;transition:.2s}.toast.show{transform:translate(-50%,0);opacity:1}
@media(min-width:760px){body{padding-bottom:0}.page{padding:32px 40px 115px}.tabbar{bottom:18px;width:500px;border:1px solid #eee5da;border-radius:24px;box-shadow:0 10px 30px #4f3a1f1a}}

.back-home{display:inline-flex;min-height:42px;margin-bottom:15px;padding:8px 12px;align-items:center;border-radius:13px;background:#fff;color:#5f5964;box-shadow:0 4px 12px #4f3a1f0d;font-weight:900}.back-home:active{transform:scale(.97)}

.english{background:#fff4d9}.reading-report{margin-top:24px;padding:20px;text-align:left}.reading-report label{display:block;margin-bottom:16px;font-weight:900}.reading-report input,.reading-report textarea{display:block;width:100%;margin-top:8px;padding:13px 14px;border:2px solid #ebe6df;border-radius:14px;background:#fffdf8;color:var(--ink);outline:none}.reading-report textarea{min-height:100px;resize:vertical}.reading-report input:focus,.reading-report textarea:focus{border-color:#7969eb}
.english-hero{padding:24px 4px 12px;text-align:center}.english-hero .focus-icon{margin-top:12px}.follow-progress{height:12px;margin:18px 0 6px;border-radius:99px;background:#ece7df;overflow:hidden}.follow-progress .fill{background:linear-gradient(90deg,#f3b739,#ff8f4f)}.follow-count{text-align:right;color:var(--muted);font-size:12px}.follow-list{margin-top:16px}.follow-card{display:flex;width:100%;min-height:82px;margin-bottom:12px;padding:13px;align-items:center;gap:12px;border:2px solid #eee5d8;border-radius:19px;background:#fff;text-align:left}.follow-card.followed{border-color:#27b777;background:#e8f8ef}.follow-number{display:grid;flex:none;width:38px;height:38px;place-items:center;border-radius:12px;background:#fff0bd;color:#76580a;font-weight:900}.followed .follow-number{background:#27b777;color:#fff}.follow-copy{min-width:0;flex:1}.follow-copy b,.follow-copy small{display:block}.follow-copy b{font-size:16px}.follow-copy small{margin-top:4px;color:var(--muted)}.follow-play{flex:none;padding:7px 9px;border-radius:11px;background:#efeaff;color:#5e55cf;font-size:12px;font-weight:900}.primary:disabled{cursor:not-allowed;box-shadow:none;filter:grayscale(.7);opacity:.55}
.follow-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.follow-actions button{padding:7px 10px;border-radius:10px;background:#efeaff;color:#5e55cf;font-size:12px;font-weight:900}.follow-actions .record-btn{background:#ffe5e2;color:#c94f43}.follow-actions .recording{background:#ee6258;color:#fff;animation:recordPulse 1s infinite}.record-status{display:block;margin-top:8px;color:#d65348;font-size:12px}@keyframes recordPulse{50%{opacity:.62}}
.parent-login{max-width:430px;margin:60px auto 0;padding:28px;text-align:center}.parent-login-icon{font-size:64px}.parent-pin{width:100%;margin-top:20px;padding:15px;border:2px solid #e8e1d8;border-radius:15px;background:#fffdf8;text-align:center;font-size:24px;letter-spacing:8px}.parent-dashboard-head{display:flex;align-items:center;justify-content:space-between}.logout{padding:8px 12px;border-radius:12px;background:#f3eee7;color:#756e78;font-weight:800}.parent-tasks{display:grid;gap:10px;margin-top:14px}.parent-task{display:flex;padding:14px;align-items:center;gap:11px;border-radius:15px;background:#f6f2ec}.parent-task.done{background:#e7f7ee}.task-check{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#ddd5cc;color:#fff;font-weight:900}.parent-task.done .task-check{background:#27b777}.task-main{flex:1}.task-main b,.task-main small{display:block}.task-main small{color:var(--muted)}.evidence{margin-top:12px;padding:14px;border-radius:15px;background:#fff8e5}.record-row{display:flex;margin-top:9px;padding:11px;align-items:center;gap:10px;border-radius:13px;background:#f3efff}.record-row button{margin-left:auto;padding:7px 10px;border-radius:10px;background:#6758d8;color:#fff}.parent-note{color:var(--muted);font-size:12px;line-height:1.6}
.ai-panel{margin-top:16px;padding:18px;border:2px solid #ded7ff;border-radius:20px;background:#f6f3ff}.ai-head{display:flex;align-items:center;gap:11px}.ai-head>span{font-size:34px}.ai-head b,.ai-head small{display:block}.ai-head small{margin-top:3px;color:var(--muted);font-size:11px}.ai-panel textarea{width:100%;min-height:82px;margin-top:14px;padding:12px;border:2px solid #e3ddec;border-radius:13px;background:#fff;resize:vertical;outline:none}.ai-panel textarea:focus{border-color:#7969eb}.ai-actions{display:flex;gap:10px;margin-top:10px}.ai-actions button{flex:1;padding:11px;border-radius:12px;background:#fff;color:#5e55cf;font-weight:900}.ai-actions button:last-child{background:#6758d8;color:#fff}.ai-actions button:disabled{opacity:.55}.ai-answer{margin-top:14px;padding:14px;border-radius:14px;background:#fff}.ai-answer b{color:#5e55cf}.ai-answer p{line-height:1.7}.ai-answer small{color:var(--muted)}
.wrong-tabs{display:flex;gap:10px;margin:5px 0 18px;padding:5px;border-radius:17px;background:#eee8df}.wrong-tabs button{flex:1;padding:11px;border-radius:13px;background:transparent;color:#7c7580;font-weight:900}.wrong-tabs button.active{background:#fff;color:#5e55cf;box-shadow:0 4px 12px #4f3a1f12}.wrong-tabs b{display:inline-grid;min-width:23px;height:23px;margin-left:4px;place-items:center;border-radius:99px;background:#e1dafa;font-size:11px}.wrong-tabs .active b{background:#6758d8;color:#fff}.ai-chat{display:flex;max-height:340px;margin-top:14px;padding:12px;flex-direction:column;gap:10px;overflow-y:auto;border-radius:14px;background:#fff}.chat-bubble{max-width:88%;padding:10px 12px;border-radius:14px;line-height:1.6}.chat-bubble b{font-size:11px}.chat-bubble p{margin:3px 0 0;white-space:pre-wrap}.chat-bubble.user{align-self:flex-end;background:#e7f4ff}.chat-bubble.assistant{align-self:flex-start;background:#fff0bd}.ai-note{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.answer-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.answer-summary{padding:15px;border-radius:16px;background:#fff0e6}.answer-summary.math{background:#e7f4ff}.answer-summary b,.answer-summary strong,.answer-summary small{display:block}.answer-summary strong{margin:5px 0;font-size:28px}.answer-summary small{color:var(--muted);font-size:11px}.answer-detail-head{display:flex;margin:22px 0 10px;align-items:center;justify-content:space-between}.answer-detail-head span{color:var(--muted);font-size:11px}.answer-records{display:grid;gap:10px}.answer-record{padding:13px;border-left:4px solid #27b777;border-radius:13px;background:#f6fbf8}.answer-record.incorrect{border-left-color:#ee6b62;background:#fff5f4}.answer-record-head{display:flex;align-items:center;gap:8px}.answer-record-head>b{color:#25885e}.answer-record.incorrect .answer-record-head>b{color:#c74f47}.answer-record-head time{margin-left:auto;color:var(--muted);font-size:11px}.answer-question{margin:10px 0 7px;font-weight:900;line-height:1.5}.answer-choice,.answer-correct{font-size:13px;line-height:1.6}.answer-correct{color:#24865d}.answer-record>small{display:inline-block;margin-top:7px;padding:3px 7px;border-radius:8px;background:#fff;color:var(--muted);font-size:10px}@media(max-width:390px){.answer-summary-grid{grid-template-columns:1fr}}
/* MOBILE_STICKY_TOPBAR */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-width:280px;overflow-x:hidden;padding-bottom:calc(82px + env(safe-area-inset-bottom))}button{min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.page{min-height:100dvh;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.back-home,.back{position:sticky;z-index:28;top:0;display:flex;width:calc(100% + 32px);min-height:56px;margin:-22px -16px 18px;padding:calc(8px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-left)) 8px;align-items:flex-end;border:0;border-bottom:1px solid #e9e1d7;border-radius:0 0 18px 18px;background:rgba(255,249,238,.96);color:#514b56;box-shadow:0 7px 18px rgba(79,58,31,.10);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-size:14px;font-weight:900;text-align:left}.back-home:active,.back:active{transform:none;background:#fff3df}
.tabbar{height:calc(72px + env(safe-area-inset-bottom));padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.tabbar button{min-width:0;padding:4px 2px;line-height:1.2}.tabbar span{font-size:21px}
@media(max-width:480px){.page{padding-top:18px;padding-bottom:calc(96px + env(safe-area-inset-bottom))}.back-home,.back{width:calc(100% + 32px);margin:-18px -16px 16px}.title{font-size:25px}.hero,.page-head{min-height:108px}.mascot{font-size:56px}.stats{gap:8px}.stat{padding:12px 10px}.stat-icon{font-size:24px}.stat-num{font-size:20px}.goal{padding:18px}.goal-title{font-size:19px}.lesson{min-height:78px;padding:12px}.icon-box{width:50px;height:50px;margin-right:11px;font-size:27px}.lesson-title{font-size:16px}.lesson-desc{font-size:12px}.question{padding:19px 14px}.question-text{font-size:21px}.option{min-height:60px;padding:10px}.feedback{padding:15px}.primary{min-height:56px}.ai-panel{padding:14px}.ai-actions{flex-direction:column}.ai-actions button{width:100%;min-height:44px}.ai-chat{max-height:300px}.follow-card{align-items:flex-start}.follow-actions{width:100%}.follow-actions button,.file-record{flex:1;min-width:90px;text-align:center}.parent-login{margin-top:28px;padding:22px}.section-card{padding:16px}.answer-record{padding:11px}.answer-record-head{flex-wrap:wrap}.answer-record-head time{width:100%;margin-left:0}.game-card{min-height:95px;padding:13px}.game-art{width:62px;height:62px}.modal-mask{padding:10px}.modal{padding:18px}.tabbar button{font-size:10px}.tabbar span{font-size:20px}}
@media(max-width:350px){.page{padding-left:12px;padding-right:12px}.back-home,.back{width:calc(100% + 24px);margin-left:-12px;margin-right:-12px}.goal-count{font-size:28px}.lesson-title{font-size:15px}.lesson-desc{font-size:11px}.answer-summary-grid,.metric-grid{grid-template-columns:1fr}.wrong-tabs button{padding:9px 4px;font-size:12px}}
@media(min-width:760px){.back-home,.back{width:calc(100% + 80px);margin:-32px -40px 22px;padding-left:40px;padding-right:40px}.page{padding-left:40px;padding-right:40px;padding-bottom:115px}}
.growth-page{padding-bottom:100px}.growth-hero{display:flex;justify-content:space-between;align-items:center;padding:22px;border-radius:26px;background:linear-gradient(135deg,#dff8d8,#fff4b8);box-shadow:0 10px 28px #6aaa5630}.growth-hero p{margin:8px 0 0;color:#52704b}.points-orb{min-width:92px;height:92px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffcc4d;border:6px solid #fff;color:#714c00;box-shadow:0 6px 0 #dea52d}.points-orb b{font-size:28px}.points-orb small{font-weight:700}.growth-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.learning-tree{position:relative;overflow:hidden;min-height:440px;padding:25px 10px 36px;border-radius:30px;background:linear-gradient(#bfe9ff,#ecffd9 70%,#bde982);box-shadow:inset 0 0 0 4px #fff}.tree-crown{text-align:center;font-size:42px;position:relative;z-index:2}.tree-crown span{font-size:14px;background:#fff9;padding:5px 12px;border-radius:20px}.tree-trunk{position:absolute;top:88px;bottom:30px;left:50%;width:16px;transform:translateX(-50%);border-radius:12px;background:linear-gradient(90deg,#87552d,#ba7a40,#75451f)}.tree-day{position:relative;z-index:2;display:flex;width:50%;min-height:92px;align-items:center}.tree-day.left{padding-right:8px;justify-content:flex-end}.tree-day.right{margin-left:50%;padding-left:8px}.tree-day i{position:absolute;font-style:normal;font-size:22px}.tree-day.left i{right:-12px}.tree-day.right i{left:-12px}.tree-branch{width:100%;padding:10px;border-radius:18px;background:#ffffffed;box-shadow:0 5px 12px #49712c25}.tree-day.left .tree-branch{text-align:right}.tree-tasks{display:flex;gap:4px;justify-content:center;margin-top:7px}.tree-task{display:flex;flex-direction:column;align-items:center;opacity:.35;font-size:18px}.tree-task.done{opacity:1;filter:drop-shadow(0 2px 2px #ffb80080)}.tree-task small{font-size:8px;white-space:nowrap}.tree-ground{text-align:center;font-size:26px;position:relative;z-index:2}.reward-shop{margin-top:16px}.reward-item,.admin-reward,.claim-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px dashed #ddd}.reward-item>span{font-size:30px}.reward-item div,.admin-reward span{display:flex;flex:1;flex-direction:column}.reward-item button,.reward-form button,.admin-reward button,.claim-row button{border:0;border-radius:14px;padding:9px 14px;background:#ffb83e;color:#503000;font-weight:800}.reward-empty{text-align:center;padding:25px;color:#888}.reward-form{display:grid;grid-template-columns:1fr 110px auto;gap:8px;margin:14px 0}.reward-form input{min-width:0;padding:11px;border:1px solid #ddd;border-radius:12px}.claim-row span{flex:1}.claim-row button:disabled{background:#d5dfd0;color:#67805f}@media(max-width:520px){.growth-hero{padding:16px}.growth-hero .title{font-size:23px}.points-orb{min-width:76px;height:76px}.points-orb b{font-size:22px}.tree-day{width:53%}.tree-day.right{margin-left:47%}.tree-task{font-size:16px}.reward-form{grid-template-columns:1fr 92px}.reward-form button{grid-column:1/-1}.growth-summary .metric{padding:10px 4px}}

.relax-modal{width:min(92vw,440px);background:linear-gradient(160deg,#fffdf4,#e9faff);padding:22px}.relax-title{font-size:25px;font-weight:900;color:#425b52}.relax-note{margin:7px 0 16px;color:#70817a}.bubble-board{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;padding:12px}.pop-bubble{aspect-ratio:1;border-radius:50%;border:3px solid #ffffffaa;box-shadow:inset -7px -8px 12px #0001,inset 7px 7px 10px #fff9,0 5px 10px #3877a329;transition:transform .18s,opacity .18s}.pop-bubble:active{transform:scale(.8)}.pop-bubble.b0{background:#ff8fa3}.pop-bubble.b1{background:#ffc861}.pop-bubble.b2{background:#7edb96}.pop-bubble.b3{background:#75c8f5}.pop-bubble.b4{background:#aa9cf5}.pop-bubble.b5{background:#f298dc}.pop-bubble.popped{background:transparent;box-shadow:none;border-color:transparent;font-size:22px;animation:popSpark .25s ease-out}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:10px}.memory-card{aspect-ratio:.8;border:0;border-radius:16px;background:linear-gradient(145deg,#78c990,#52ad70);box-shadow:0 5px 0 #368453;color:#fff;font-size:30px;transition:transform .18s}.memory-card.open{background:#fff4c7;box-shadow:0 5px 0 #e2bd5e;transform:rotateY(180deg)}.memory-card.matched{background:#dff7cf;box-shadow:0 3px 0 #91cf74;opacity:.82}.relax-progress{display:inline-block;margin:10px 0;padding:7px 14px;border-radius:20px;background:#fff;color:#527268;font-weight:800}@keyframes popSpark{0%{transform:scale(1.2)}100%{transform:scale(1)}}@media(max-width:380px){.bubble-board,.memory-board{gap:8px}.relax-modal{padding:15px}.memory-card{font-size:25px}}
.semester-page{background:linear-gradient(#fff9ee,#f3fbff)}.semester-hero{display:flex;min-height:150px;padding:22px;align-items:center;justify-content:space-between;border-radius:28px;background:linear-gradient(135deg,#d9f5d1,#fff0ac);box-shadow:0 12px 28px #668b4c24}.semester-hero p{margin:8px 0 0;color:#64765c}.semester-ring{display:flex;flex:none;width:88px;height:88px;flex-direction:column;align-items:center;justify-content:center;border:8px solid #fff;border-radius:50%;background:#ffca52;color:#654600;box-shadow:0 6px 0 #dda935}.semester-ring b{font-size:29px}.semester-ring small{font-size:11px;font-weight:800}.three-rings{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:15px 0}.three-rings span{display:flex;padding:12px 4px;flex-direction:column;align-items:center;border:2px solid #e5ded5;border-radius:18px;background:#fff;filter:grayscale(.7);opacity:.58;font-size:25px}.three-rings span.on{border-color:#36b97d;background:#e4f8ed;filter:none;opacity:1}.three-rings b{margin-top:4px;font-size:11px}.semester-card{display:flex;width:100%;min-height:82px;margin-bottom:11px;padding:13px;align-items:center;gap:13px;border-radius:21px;background:#fff;box-shadow:0 5px 16px #45331e12;text-align:left}.semester-card.homework{background:#fff1db}.semester-card.english{background:#fff7c9}.semester-card.exercise{background:#e1f8e7}.semester-card.chinese{background:#ffe9df}.semester-card.math{background:#e1f2ff}.semester-card.complete{outline:3px solid #55c68d}.semester-icon{display:grid;width:54px;height:54px;place-items:center;border-radius:17px;background:#ffffffbf;font-size:29px}.semester-card>span:nth-child(2){flex:1}.semester-card b,.semester-card small{display:block}.semester-card b{font-size:17px}.semester-card small{margin-top:5px;color:#746f77}.semester-card em{font-size:25px;font-style:normal;font-weight:900}.semester-tip{padding:15px;border-radius:18px;background:#efeaff;color:#665e75;line-height:1.6}.homework-list{display:grid;gap:11px}.homework-row{display:flex;width:100%;padding:15px;align-items:flex-start;gap:12px;border:2px solid #e8e0d6;border-radius:19px;background:#fff;text-align:left}.homework-row>span{display:grid;width:40px;height:40px;flex:none;place-items:center;border-radius:12px;background:#fff0bd;font-size:20px;font-weight:900}.homework-row>div{flex:1}.homework-row b,.homework-row small{display:block}.homework-row p{margin:5px 0;color:#625e65;line-height:1.5}.homework-row small{color:#888}.homework-row.done{border-color:#44b97c;background:#e8f8ef}.homework-row.done>span{background:#35b478;color:#fff}.exercise-hero{display:flex;padding:20px;align-items:center;gap:15px;border-radius:25px;background:linear-gradient(135deg,#dff8df,#fff0b7)}.exercise-hero>span{font-size:55px}.exercise-hero small{font-weight:900;color:#43855e}.exercise-hero p{margin:6px 0 0;color:#63736a}.exercise-clock{display:flex;margin:15px 0;padding:17px;align-items:center;justify-content:space-between;border-radius:20px;background:#fff}.exercise-clock b{font-size:35px}.exercise-clock button{padding:10px 17px;border-radius:14px;background:#35b478;color:#fff;font-weight:900}.exercise-list{display:grid;gap:10px}.exercise-item{display:flex;width:100%;padding:14px;align-items:center;gap:12px;border:2px solid #e5ded5;border-radius:18px;background:#fff;text-align:left}.exercise-item>span{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:50%;background:#eee8df;font-weight:900}.exercise-item>div{flex:1}.exercise-item b,.exercise-item small{display:block}.exercise-item p{margin:4px 0;color:#6f6971;line-height:1.45}.exercise-item small{color:#349063}.exercise-item.done{border-color:#43b97a;background:#e7f8ee}.exercise-item.done>span{background:#35b478;color:#fff}.fatigue{margin-top:16px;padding:15px;border-radius:18px;background:#fff}.fatigue b{display:block;margin-bottom:10px}.fatigue button{margin-right:7px;padding:9px 12px;border-radius:99px;background:#eee8df}.fatigue button.on{background:#6758d8;color:#fff}@media(max-width:390px){.semester-hero{padding:16px}.semester-ring{width:72px;height:72px}.semester-card{padding:11px}.semester-icon{width:48px;height:48px}.exercise-clock b{font-size:30px}}

/* GAMIFICATION_V2 */
.xp-strip,.level-journey{display:flex;margin:14px 0;padding:14px 16px;align-items:center;gap:12px;border-radius:20px;background:linear-gradient(135deg,#6858dc,#907df0);color:#fff;box-shadow:0 8px 20px #6758d833}.xp-strip>div,.level-journey>div:nth-child(2){flex:1}.xp-strip b,.xp-strip small,.level-journey b,.level-journey small{display:block}.xp-strip small,.level-journey small{margin-top:5px;opacity:.85;font-size:11px}.xp-avatar{font-size:35px}.rest-pass{padding:8px 10px;border-radius:14px;background:#ffffff2b;font-weight:900}.xp-track{height:9px;margin-top:7px;overflow:hidden;border-radius:99px;background:#ffffff38}.xp-track i{display:block;height:100%;border-radius:99px;background:#ffdb5c;transition:width .4s}.level-badge{display:grid!important;width:54px;height:54px;flex:none!important;place-items:center;border-radius:50%;background:#ffcc4d;color:#624600;font-weight:900;box-shadow:0 4px 0 #dba42d}.level-journey>span{font-weight:900}.reward-pop{position:fixed;z-index:100;top:20px;left:50%;display:grid;min-width:230px;padding:14px 20px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;transform:translateX(-50%);border:3px solid #fff;border-radius:22px;background:linear-gradient(135deg,#fff3a9,#ffd15a);box-shadow:0 12px 35px #5b42043d;color:#5a4100;animation:rewardIn .35s cubic-bezier(.2,1.5,.5,1)}.reward-pop>span{grid-row:1/4;font-size:35px}.reward-pop b,.reward-pop strong,.reward-pop small{display:block}.reward-pop strong{font-size:20px}.reward-pop small{font-size:11px}.reward-pop.leaving{opacity:0;transform:translate(-50%,-20px);transition:.35s}@keyframes rewardIn{from{opacity:0;transform:translate(-50%,-35px) scale(.8)}to{opacity:1;transform:translateX(-50%) scale(1)}}
.exercise-total{display:flex;margin:14px 0;padding:15px;align-items:center;gap:15px;border-radius:18px;background:#fff}.exercise-total>div:first-child{display:flex;align-items:baseline}.exercise-total b{font-size:30px;color:#23815a}.exercise-total small{color:#777}.exercise-total .xp-track{flex:1;background:#e6e1d9}.exercise-total .xp-track i{background:#35b478}.exercise-unit{padding:15px;border:2px solid #e6dfd6;border-radius:20px;background:#fff}.exercise-unit.active{border-color:#6758d8;box-shadow:0 6px 18px #6758d822}.exercise-unit.done{border-color:#3db679;background:#e9f9ef}.exercise-unit-head{display:flex;gap:12px}.exercise-unit-head>span{display:grid;width:38px;height:38px;flex:none;place-items:center;border-radius:50%;background:#eee8df;font-weight:900}.exercise-unit.done .exercise-unit-head>span{background:#35b478;color:#fff}.exercise-unit-head>div{flex:1}.exercise-unit-head b,.exercise-unit-head small{display:block}.exercise-unit-head p{margin:4px 0;color:#6c6870}.exercise-unit-head small{color:#388a63}.unit-progress{height:7px;margin:12px 0;overflow:hidden;border-radius:99px;background:#e9e4dc}.unit-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#6758d8,#47bd7d);transition:width .3s}.unit-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.unit-actions>b{margin-right:auto;font-size:13px;color:#777}.unit-actions>span{padding:7px 10px;border-radius:12px;background:#fff;color:#23815a;font-size:12px;font-weight:900}.unit-actions button{padding:8px 12px;border-radius:12px;background:#6758d8;color:#fff;font-weight:900}.unit-actions button:last-child{background:#35b478}.unit-actions button:disabled{background:#ddd8d1;color:#999}.exercise-list{display:grid;gap:11px}
.exercise-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.exercise-tags b{padding:5px 8px;border-radius:99px;background:#ffffffb8;color:#397052;font-size:11px}
.exercise-guide{margin:11px 0 2px;padding:9px 11px;border-radius:13px;background:#f3f0ff;color:#51479c}.exercise-guide summary{cursor:pointer;font-size:13px;font-weight:900}.exercise-guide ol{margin:9px 0 2px;padding-left:24px;color:#555;line-height:1.65}.exercise-guide li+li{margin-top:3px}
.family-points{display:grid;min-width:72px;padding:7px 9px;place-items:center;border:0;border-radius:15px;background:linear-gradient(145deg,#ffd35f,#ffb930);box-shadow:0 4px 0 #d99a1f;color:#5c4000}.family-points span{font-size:20px}.family-points b{font-size:18px;line-height:1}.family-points small{margin-top:3px;color:#6b4c00;font-size:10px;font-weight:900}@media(max-width:430px){.xp-strip{flex-wrap:wrap}.xp-strip>div{min-width:calc(100% - 62px)}.family-points{margin-left:50px}.rest-pass{margin-left:auto}}
.reward-shop-featured{margin:14px 0;border:3px solid #ffca4f;background:linear-gradient(145deg,#fffdf4,#fff2bd);box-shadow:0 9px 22px #c58b1730}
.logic-modal{width:min(94vw,520px)}.route-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;max-width:350px;margin:12px auto;padding:7px;border-radius:18px;background:#c9e8b3}.route-cell{display:grid;aspect-ratio:1;place-items:center;border-radius:10px;background:#f7efc8;font-size:25px}.route-cell.wall{background:#9bd27e}.route-program{display:flex;min-height:48px;padding:8px;align-items:center;justify-content:center;gap:5px;overflow-x:auto;border-radius:14px;background:#fff}.route-program span{display:grid;min-width:34px;height:34px;place-items:center;border-radius:9px;background:#efeaff;color:#5d52c5;font-size:22px;font-weight:900}.route-program small{color:#888}.route-controls,.logic-actions{display:flex;margin-top:10px;justify-content:center;gap:8px}.route-controls button{width:50px;height:48px;border-radius:13px;background:#6758d8;color:#fff;font-size:24px}.logic-actions button{padding:10px 15px;border-radius:12px;background:#e8e3da;font-weight:900}.logic-actions button:last-child{background:#ffbd3d}.tangram-target{position:relative;width:300px;height:230px;margin:12px auto;border-radius:20px;background:#eaf7ff}.tan-shape,.tan-piece{border:0;clip-path:polygon(50% 0,100% 100%,0 100%)}.tan-shape{position:absolute;width:74px;height:74px;background:#aab6bd}.tan-shape.placed{background:#60c789}.tan-shape.big-a{left:36px;top:22px;transform:scale(1.35)}.tan-shape.big-b{right:35px;top:22px;transform:scale(1.35) rotate(90deg)}.tan-shape.mid{left:112px;top:90px}.tan-shape.small-a{left:58px;bottom:15px;transform:scale(.72) rotate(45deg)}.tan-shape.small-b{right:55px;bottom:15px;transform:scale(.72) rotate(-45deg)}.tan-shape.square{left:115px;bottom:16px;clip-path:none;transform:scale(.62) rotate(45deg)}.tan-shape.para{left:112px;top:30px;clip-path:polygon(25% 0,100% 0,75% 100%,0 100%);transform:scale(.72)}.tangram-tray{display:flex;min-height:76px;padding:8px;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;border-radius:15px;background:#fff}.tan-piece{width:54px;height:54px;background:#ff865f}.tan-piece.big-b{background:#ffbd3d;transform:rotate(90deg)}.tan-piece.mid{background:#5cc79a}.tan-piece.small-a{background:#64b5ef;transform:scale(.75) rotate(45deg)}.tan-piece.small-b{background:#aa86ea;transform:scale(.75) rotate(-45deg)}.tan-piece.square{background:#f26eb0;clip-path:none;transform:scale(.68) rotate(45deg)}.tan-piece.para{background:#66cbd1;clip-path:polygon(25% 0,100% 0,75% 100%,0 100%)}.tan-piece.selected{outline:4px solid #5041c5;outline-offset:3px}.message{margin-top:12px;padding:10px;border-radius:12px;background:#fff3b6;font-weight:800}@media(max-width:430px){.xp-strip{padding:12px}.xp-avatar{font-size:29px}.reward-pop{top:12px;min-width:210px}.unit-actions{flex-wrap:wrap}.unit-actions>b{width:100%}.tangram-target{width:270px}.route-cell{font-size:21px}}
