:root{--ink:#25234a;--purple:#5d42db;--blue:#2d8cff;--yellow:#ffcb3d;--mint:#63d9b4;--pink:#ff7ca7;--card:#fff;--bg:#f6f4ff}*{box-sizing:border-box}body{margin:0;background:#130b4f;color:var(--ink);font-family:Nunito,"PingFang SC","Microsoft YaHei",sans-serif}.stars{position:fixed;inset:0;background:radial-gradient(circle at 20% 10%,#583abb 0,transparent 25%),radial-gradient(circle at 80% 20%,#1548ad 0,transparent 28%),radial-gradient(#fff 1px,transparent 1px);background-size:auto,auto,42px 42px;opacity:.8}.app-shell{width:min(100%,540px);min-height:100vh;margin:auto;background:linear-gradient(180deg,#38207e 0,#5b49ca 34%,var(--bg) 34%);position:relative;overflow:hidden;padding-bottom:104px;box-shadow:0 0 50px #06031e}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;color:white;position:relative;z-index:5}.avatar-button{display:flex;align-items:center;gap:10px;background:none;border:0;color:white;text-align:left}.avatar{width:46px;height:46px;background:#fff3c7;border:3px solid #fff;border-radius:17px;display:grid;place-items:center;font-size:25px;box-shadow:0 5px 14px #17075b}.avatar-button b{font-size:16px;display:block}.avatar-button small{display:block;color:#d9d1ff;margin-top:2px}.avatar-button em{font-style:normal;color:#ffdc4e}.score-card{height:54px;padding:6px 8px 6px 10px;display:flex;align-items:center;gap:8px;border:1px solid #ffffff56;border-radius:18px;background:#ffffff18;backdrop-filter:blur(8px)}.score-star{font-size:28px}.score-card small{display:block;color:#dcd6ff;font-size:10px}.score-card strong{font-size:18px}.tiny-add{border:0;border-radius:50%;width:26px;height:26px;background:#ffce3d;color:#563500;font-size:18px;font-weight:900}.page{display:none;padding:0 18px;animation:rise .35s ease}.page.active{display:block}@keyframes rise{from{opacity:0;transform:translateY(8px)}}.hero-copy{height:126px;color:white;padding:12px 3px}.hero-copy .eyebrow,.section-heading p{margin:0 0 4px;color:#c9beff;font-size:10px;font-weight:900;letter-spacing:1.4px}.hero-copy h1{font-family:"ZCOOL KuaiLe",sans-serif;margin:0;font-size:29px;letter-spacing:1px}.hero-copy h1 i{color:var(--yellow);font-style:normal}.hero-copy>p:last-child{font-size:13px;color:#e5e0ff;margin:8px 0}.mission-orbit{height:345px;position:relative;margin:-5px -18px 16px;background:radial-gradient(circle at 50% 50%,#8470ef66 0,transparent 43%)}.orbit-ring{position:absolute;border:1px dashed #b9aaff66;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg)}.ring-one{width:380px;height:235px}.ring-two{width:305px;height:305px}.planet-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:135px;height:135px;border-radius:50%;background:linear-gradient(145deg,#ffd461,#ff9d31);box-shadow:inset -18px -14px 0 #e8732c44,0 0 30px #ffd84d99;border:5px solid #ffeaa2;display:grid;place-items:center;color:#84471c}.planet-face{font-size:29px;font-weight:900}.sprout{position:absolute;top:-25px;font-size:44px}.level-pill{position:absolute;bottom:-12px;background:white;border:3px solid #ffd05a;border-radius:20px;padding:5px 13px;font-weight:900;font-size:12px}.planet{position:absolute;border:0;width:116px;height:116px;border-radius:50%;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset -9px -9px 0 #0001,0 8px 20px #1b0b6599;border:3px solid #ffffffaa;font-family:inherit}.planet:active{transform:scale(.96)}.planet-icon{font-size:30px}.planet b{font-size:18px}.planet small{font-size:9px;opacity:.9}.planet-reading{left:20px;top:22px;background:linear-gradient(145deg,#ffc444,#e9822d)}.planet-study{right:19px;top:18px;background:linear-gradient(145deg,#b984ff,#7445e4)}.planet-manner{right:25px;bottom:18px;background:linear-gradient(145deg,#79e6c1,#24a981)}.planet-sport{left:24px;bottom:16px;background:linear-gradient(145deg,#59cfff,#287ddc)}.today-card,.redeem-history,.settings-card{background:#fff;border-radius:26px;padding:18px;box-shadow:0 10px 30px #352a7330}.card-title{display:flex;justify-content:space-between;align-items:center}.card-title span{display:flex;align-items:center;gap:8px}.card-title i{font-style:normal;background:#ebe7ff;padding:8px;border-radius:12px}.card-title button{border:0;background:none;color:#7964cf}.progress-line{height:9px;background:#eeeafd;border-radius:9px;margin:15px 0 7px;overflow:hidden}.progress-line div{height:100%;width:0;background:linear-gradient(90deg,#7456e8,#5bc9ee);border-radius:9px;transition:.4s}.progress-copy{font-size:11px;color:#8c88a8;display:flex;justify-content:space-between}.progress-copy span:last-child{color:#f39b24;font-weight:900}.mini-task-list{margin-top:10px}.mini-task{display:flex;align-items:center;gap:10px;padding:9px 2px;border-top:1px solid #f2effa}.mini-task .task-dot{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:#f3f0ff}.mini-task b{font-size:13px;flex:1}.mini-task button{width:29px;height:29px;border-radius:50%;border:2px solid #d8d2ee;background:white}.mini-task.done{opacity:.55}.mini-task.done b{text-decoration:line-through}.mini-task.done button{background:#66d3ad;border-color:#66d3ad;color:white}.reward-banner{width:100%;border:0;margin-top:15px;padding:15px 17px;border-radius:23px;background:linear-gradient(120deg,#ff9abe,#ff747d);color:white;display:flex;align-items:center;text-align:left;box-shadow:0 8px 22px #ff729b55;font-family:inherit}.reward-banner .gift-box{font-size:42px;margin-right:12px}.reward-banner small,.reward-banner b{display:block}.reward-banner small{opacity:.85}.reward-banner b{font-size:15px}.banner-arrow{margin-left:auto;font-size:26px}.section-heading{height:118px;color:white;display:flex;justify-content:space-between;align-items:center}.section-heading h2{font-family:"ZCOOL KuaiLe";font-size:30px;margin:0}.date-badge,.shop-balance{background:#ffffff22;border:1px solid #ffffff44;border-radius:15px;padding:9px 12px;font-size:12px}.summary-panel{padding:18px;background:linear-gradient(135deg,#fff,#eeeaff);border-radius:25px;display:flex;align-items:center;gap:18px;box-shadow:0 8px 24px #392b7730}.summary-ring{width:85px;height:85px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:conic-gradient(var(--purple) 0%,#ebe7fb 0);position:relative}.summary-ring:after{content:"";position:absolute;inset:8px;border-radius:50%;background:white}.summary-ring strong,.summary-ring small{position:relative;z-index:1}.summary-ring strong{font-size:21px}.summary-ring small{font-size:9px;color:#999}.summary-panel>div:last-child{flex:1}.summary-panel b{font-size:15px}.summary-panel p{font-size:11px;color:#908aa8}.category-filter{display:flex;gap:8px;overflow:auto;padding:17px 0 12px;scrollbar-width:none}.category-filter button{white-space:nowrap;border:0;border-radius:20px;padding:9px 13px;background:#fff;color:#77718f;font-family:inherit}.category-filter button.active{background:#6550dc;color:white;box-shadow:0 5px 12px #6550dc55}.task-list{display:grid;gap:11px}.task-card{display:flex;align-items:center;gap:13px;background:white;border-radius:20px;padding:14px;box-shadow:0 5px 18px #30286417;border:2px solid transparent}.task-card.done{background:#f4fffa;border-color:#aaead4}.task-card .category-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;font-size:25px;background:#f1effc}.task-info{flex:1}.task-info b{font-size:14px;display:block}.task-info small{font-size:10px;color:#9b96aa}.task-points{color:#ee9c1c;font-size:12px;font-weight:900}.check-task{width:35px;height:35px;border-radius:50%;border:2px solid #d5d0e7;background:#fff;color:white;font-size:18px}.done .check-task{background:#5ed0a7;border-color:#5ed0a7}.done .task-info b{text-decoration:line-through;color:#7e9e93}.parent-add{width:100%;border:2px dashed #bdb4e4;color:#7062b8;background:#f2efff;border-radius:18px;margin:14px 0;padding:13px;font:700 13px inherit}.shop-hero{background:linear-gradient(135deg,#ffda71,#ff9b8e);border-radius:26px;padding:17px;display:flex;justify-content:space-between;align-items:center;color:#713f40;box-shadow:0 8px 20px #e26a7955}.shop-hero>span{font-size:38px}.shop-hero small{font-size:10px}.shop-hero h3{margin:3px 0 0}.reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:15px 0}.reward-card{background:white;border-radius:23px;padding:13px;box-shadow:0 6px 20px #2f28641c;position:relative}.reward-visual{height:112px;border-radius:17px;display:grid;place-items:center;font-size:57px;background:linear-gradient(145deg,#f4f1ff,#dfeaff)}.reward-card h3{font-size:14px;margin:11px 2px 3px}.reward-card p{font-size:10px;color:#9993aa;margin:0 2px 10px}.reward-card button{width:100%;border:0;border-radius:15px;padding:9px;background:#6550dc;color:white;font:800 12px inherit}.reward-card button:disabled{background:#ded9ee;color:#aaa3ba}.cost{position:absolute;top:20px;right:20px;background:#ffffffdd;border-radius:12px;padding:4px 7px;font-size:11px;font-weight:900;color:#e89716}.redeem-history{margin-bottom:15px}.redeem-history h3{font-size:16px}.empty-state{text-align:center;color:#aaa4bb;font-size:12px;padding:12px}.history-item{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid #eeeaf7;font-size:12px}.profile-hero{text-align:center;color:white;padding:25px 0}.big-avatar{width:100px;height:100px;border-radius:35px;background:#fff3c4;border:5px solid white;display:grid;place-items:center;font-size:55px;margin:auto;box-shadow:0 10px 24px #1e1266}.profile-hero h2{margin:12px 0 0}.profile-hero p{margin:3px;color:#d9d3ff}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.stats-grid div{background:white;border-radius:20px;padding:15px 4px;text-align:center}.stats-grid span,.stats-grid b,.stats-grid small{display:block}.stats-grid span{font-size:25px}.stats-grid b{font-size:20px;margin:3px}.stats-grid small{font-size:10px;color:#999}.settings-card{padding:4px 16px}.settings-card button{width:100%;border:0;border-bottom:1px solid #eeeaf5;background:white;padding:15px 0;display:grid;grid-template-columns:40px 1fr 1fr 15px;align-items:center;text-align:left;font-family:inherit}.settings-card button:last-child{border:0}.settings-card span{font-size:22px}.settings-card b{font-size:13px}.settings-card small{text-align:right;color:#aaa5b5;font-size:10px}.settings-card i{font-size:20px;color:#bbb;font-style:normal}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,540px);height:84px;background:#ffffffed;backdrop-filter:blur(15px);display:grid;grid-template-columns:repeat(4,1fr);padding:8px 16px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #eeeaf5}.bottom-nav button{border:0;background:none;color:#a29bb2;font-family:inherit}.bottom-nav span,.bottom-nav b{display:block}.bottom-nav span{font-size:23px;filter:grayscale(1);opacity:.6}.bottom-nav b{font-size:10px;margin-top:2px}.bottom-nav button.active{color:#5f4bd0}.bottom-nav button.active span{filter:none;opacity:1;transform:translateY(-2px)}.modal-backdrop{position:fixed;z-index:30;inset:0;background:#160d4677;display:grid;place-items:end center;backdrop-filter:blur(3px)}.modal-backdrop[hidden]{display:none}.modal{width:min(100%,540px);background:#fff;border-radius:30px 30px 0 0;padding:28px 22px 30px;position:relative;animation:sheet .28s ease}.modal-close{position:absolute;right:18px;top:14px;border:0;background:#f0edf7;width:32px;height:32px;border-radius:50%;font-size:20px}.modal h2{margin:0 0 15px}.modal label{display:block;font-size:12px;font-weight:900;margin-top:12px}.modal input,.modal select{width:100%;padding:12px;border:2px solid #ece8f7;border-radius:13px;margin-top:5px;font:inherit}.modal .primary{width:100%;border:0;background:#6650dc;color:white;padding:13px;border-radius:16px;margin-top:18px;font:800 14px inherit}.confirm-gift{text-align:center}.confirm-gift .huge{font-size:72px}.confirm-gift p{color:#888}.confirm-gift strong{color:#e99b1b}@keyframes sheet{from{transform:translateY(100%)}}.toast{position:fixed;z-index:40;left:50%;bottom:105px;transform:translate(-50%,20px);background:#292147;color:white;border-radius:18px;padding:11px 17px;font-size:12px;opacity:0;pointer-events:none;transition:.25s;white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}@media(min-width:700px){body{padding:20px 0}.app-shell{border-radius:34px;min-height:calc(100vh - 40px)}.bottom-nav{bottom:20px;border-radius:0 0 34px 34px}.modal{border-radius:30px;margin-bottom:20px}}
