@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800;900&family=Noto+Sans+SC:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#243a57;--muted:#71819a;--blue:#5d8cf8;--deep:#416dde;--teal:#51c8c0;--yellow:#ffc966;--pink:#ff93a5;--paper:#fff;--line:#e8edf6;--bg:#f4f8ff;--shadow:0 15px 40px rgba(63,91,146,.11)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Nunito,'Noto Sans SC',sans-serif;color:var(--ink)}body{background:radial-gradient(circle at 8% 10%,#e8faff 0,transparent 24%),radial-gradient(circle at 94% 6%,#fff0e6 0,transparent 20%),var(--bg)}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,select:focus-visible{outline:3px solid #ffbd5d;outline-offset:3px}.app-shell{max-width:1440px;margin:auto;min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid #eaf0f8;padding:31px 19px;display:flex;flex-direction:column;gap:29px;position:sticky;top:0;height:100vh}.logo{display:flex;align-items:center;gap:12px;padding:0 10px}.logo-mark{height:45px;width:45px;border-radius:16px;background:linear-gradient(145deg,#71cdec,#6d82f8);display:grid;place-items:center;color:#fff;font-size:27px;box-shadow:0 7px 16px #8ab8f8a8}.logo-name{font-size:20px;font-weight:900;letter-spacing:.5px}.logo-sub{font-size:10px;color:#9aaac0;font-weight:800;letter-spacing:1.5px}.nav{display:grid;gap:9px}.nav-btn{border:0;background:transparent;color:#6b7d98;border-radius:16px;height:51px;text-align:left;padding:0 16px;display:flex;gap:15px;align-items:center;font-size:15px;font-weight:800}.nav-btn:hover{background:#f5f8ff}.nav-btn.active{color:#fff;background:linear-gradient(110deg,#6a9af7,#6380ed);box-shadow:0 10px 22px #6389e64d}.nav-icon{font-size:19px;width:22px;text-align:center}.sidebar-note{margin-top:auto;border-radius:20px;background:#eaf6ff;padding:16px;font-size:12px;color:#647f9e;line-height:1.6}.sidebar-note b{display:block;color:#365a82;font-size:14px;margin-bottom:4px}.main{padding:28px clamp(20px,4vw,62px) 80px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:27px}.greeting small{display:block;color:#94a2b7;font-size:13px;font-weight:800;letter-spacing:1px}.greeting strong{display:block;font-size:21px;margin-top:3px}.top-actions{display:flex;align-items:center;gap:11px}.pill{border:1px solid #e8edf8;background:#fff;border-radius:99px;padding:9px 15px;display:flex;align-items:center;gap:8px;box-shadow:0 5px 14px #5b719412;font-size:14px;font-weight:900}.coin{color:#e5a128}.avatar{width:41px;height:41px;border:3px solid #fff;box-shadow:0 3px 13px #8798b331;border-radius:50%;background:#d7f2ef;display:grid;place-items:center;font-size:23px}.hero{min-height:296px;border-radius:30px;background:linear-gradient(115deg,#6296ed 0%,#72b3f3 54%,#94d6ef 100%);position:relative;overflow:hidden;box-shadow:0 18px 30px #79a2e54d;color:#fff;padding:38px 38px 30px;display:flex;align-items:center}.hero:before,.hero:after{content:'';position:absolute;background:#ffffff20;border-radius:50%}.hero:before{width:430px;height:430px;right:-105px;top:-270px}.hero:after{width:245px;height:245px;right:240px;bottom:-195px}.hero-content{z-index:2;max-width:57%}.eyebrow{font-size:12px;font-weight:900;letter-spacing:2px;opacity:.82}.hero h1{font-size:clamp(29px,3.1vw,43px);line-height:1.28;margin:13px 0 10px;font-weight:900}.hero p{font-size:14px;line-height:1.7;margin:0 0 22px;color:#f7fbff}.primary-btn,.outline-btn,.soft-btn{border:0;border-radius:15px;padding:13px 23px;font-size:14px;font-weight:900;transition:transform .18s,box-shadow .18s}.primary-btn:hover,.outline-btn:hover,.soft-btn:hover{transform:translateY(-2px)}.primary-btn{background:#fff;color:#416cdb;box-shadow:0 8px 18px #3f6bbd3d}.outline-btn{background:transparent;border:1.5px solid #dce5f6;color:#536785}.soft-btn{background:#edf3ff;color:#5578d4}.hero-art{position:absolute;right:3%;bottom:-19px;width:min(37%,350px);height:278px;display:flex;align-items:flex-end;justify-content:center}.hero-art .pet{filter:drop-shadow(0 17px 0 #527fcb33)}.star{position:absolute;color:#fff8c8;font-size:28px}.star.s1{right:9%;top:15%}.star.s2{right:35%;top:32%;font-size:16px}.star.s3{right:31%;bottom:14%;font-size:20px}.cloud{position:absolute;background:#fff7;border-radius:100px;height:32px;width:100px}.cloud.c1{right:12%;top:26%}.cloud.c2{right:38%;bottom:24%;transform:scale(.55)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:31px 0 17px}.section-head h2{font-size:21px;margin:0;font-weight:900}.section-head p{font-size:13px;color:var(--muted);margin:4px 0 0}.link-btn{background:none;border:0;color:#6b89df;font-weight:900;font-size:13px}.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.subject-card{background:#fff;border:1px solid #e9eef7;border-radius:23px;padding:21px;box-shadow:var(--shadow);position:relative;overflow:hidden;text-align:left;min-height:177px}.subject-card:after{content:'';width:116px;height:116px;border-radius:50%;position:absolute;right:-32px;bottom:-48px;background:var(--card-pale)}.subject-icon{height:48px;width:48px;border-radius:16px;background:var(--card-pale);display:grid;place-items:center;font-size:25px;margin-bottom:14px}.subject-card b{font-size:17px;display:block}.subject-card small{display:block;color:#92a0b2;margin-top:5px;font-size:12px}.subject-card .arrow{position:absolute;right:18px;top:24px;color:#a2b1c8;font-size:18px}.subject-card:hover{transform:translateY(-3px);box-shadow:0 19px 38px #637ba02a}.bottom-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:18px;margin-top:19px}.panel{background:#fff;border:1px solid #e9eef7;border-radius:24px;padding:22px;box-shadow:var(--shadow)}.panel h3{margin:0 0 16px;font-size:17px}.daily-list{display:grid;gap:11px}.daily-row{display:flex;align-items:center;gap:12px;background:#f7f9fe;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:800}.daily-row .round{width:27px;height:27px;border-radius:50%;background:#e4eaf9;color:#6583ca;display:grid;place-items:center}.daily-row.done .round{background:#d9f5e8;color:#37a479}.daily-row span:last-child{margin-left:auto;color:#9caac0}.pet-teaser{display:flex;align-items:center;gap:13px;min-height:145px}.pet-teaser .pet{width:110px;height:110px;flex:none}.pet-teaser p{font-size:12px;line-height:1.55;color:var(--muted);margin:5px 0 12px}.content-header{display:flex;justify-content:space-between;align-items:start;gap:16px;margin-bottom:19px}.content-header h1{font-size:30px;margin:0 0 5px}.content-header p{color:#8391a8;margin:0;font-size:14px}.select-row{display:flex;gap:9px;flex-wrap:wrap}.select{appearance:none;border:1px solid #dfe7f5;background:#fff;border-radius:13px;padding:11px 34px 11px 14px;color:#3f5675;font-weight:800;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='m2 4 4 4 4-4' fill='none' stroke='%236980a5' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.tabs{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0}.tab{border:1px solid #e1e9f5;background:#fff;border-radius:13px;padding:10px 17px;color:#6f809d;font-weight:900}.tab.active{background:#607fec;color:#fff;border-color:#607fec}.map-banner{border-radius:24px;padding:22px 25px;background:linear-gradient(110deg,#e9f6ff,#f6f0ff);display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.map-banner b{font-size:19px}.map-banner p{font-size:13px;color:#758ca8;margin:5px 0 0}.map-illustration{font-size:48px}.level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.level-card{background:#fff;border:1px solid #e5edf8;border-radius:22px;padding:20px;box-shadow:var(--shadow)}.level-top{display:flex;justify-content:space-between;align-items:center}.level-icon{width:57px;height:57px;border-radius:18px;background:var(--lv-bg);display:grid;place-items:center;font-size:30px}.level-status{font-size:12px;font-weight:900;color:#94a5b8}.level-card h3{margin:19px 0 5px;font-size:17px}.level-card p{font-size:12px;color:#8796aa;line-height:1.6;min-height:36px;margin:0 0 17px}.level-card button{width:100%;border:0;border-radius:12px;background:#edf3ff;color:#5677d7;padding:11px;font-weight:900}.level-card button:hover{background:#dfeaff}.level-card.completed button{background:#e4f8ee;color:#3aab81}.profile-card{display:flex;gap:28px;align-items:center;background:linear-gradient(120deg,#f1f8ff,#f8f0ff);border-radius:26px;padding:26px;min-height:240px}.pet-stage{width:235px;height:220px;display:grid;place-items:center;border-radius:24px;background:radial-gradient(circle at center,#fff 0,#e6f6ff 72%);flex:none}.pet-stage .pet{width:185px;height:185px}.profile-info h2{margin:0 0 6px;font-size:25px}.profile-info p{font-size:13px;color:#7e8da7;line-height:1.7}.meter{height:10px;background:#e3e9f5;border-radius:99px;overflow:hidden;margin:7px 0 5px}.meter i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#7edcba,#4fc6c3)}.meter-label{font-size:12px;color:#7b8ca4;font-weight:800;display:flex;justify-content:space-between}.care-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:19px}.care-row button{border:0;background:#fff;color:#4f6c90;border-radius:12px;padding:10px 15px;font-weight:900;box-shadow:0 5px 15px #6996ae1a}.care-row button:hover{transform:translateY(-2px)}.pet-list,.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.pet-option,.shop-item{border:1px solid #e8edf6;border-radius:20px;background:#fff;padding:19px;text-align:center;box-shadow:var(--shadow)}.pet-option.selected{border-color:#8ab4f6;background:#f6faff}.pet-option .pet{width:102px;height:102px;margin:auto}.pet-option b,.shop-item b{display:block;margin:8px 0 4px}.pet-option small,.shop-item small{color:#90a0b4;font-size:12px}.pet-option button,.shop-item button{margin-top:14px;background:#edf3ff;border:0;border-radius:11px;padding:10px 14px;color:#5b7bd9;font-weight:900}.shop-icon{height:75px;display:grid;place-items:center;font-size:43px}.price{color:#e4a23e;font-weight:900;margin-top:8px}.parent-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.metric{background:#f7f9fe;border-radius:16px;padding:18px}.metric strong{font-size:28px;display:block}.metric span{color:#8191a8;font-size:12px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f6;padding:15px 0;font-size:14px;font-weight:800}.settings-row:last-child{border:0}.settings-row input{width:70px;border:1px solid #dce5f3;border-radius:9px;padding:7px;text-align:center}.game-overlay{position:fixed;inset:0;background:#203554a8;z-index:10;display:grid;place-items:center;padding:16px}.game-dialog{width:min(100%,600px);background:#fff;border-radius:28px;padding:28px;box-shadow:0 30px 70px #1b315777;max-height:95vh;overflow:auto}.game-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.game-head b{font-size:15px}.close{border:0;background:#edf2fb;color:#6e82a0;width:32px;height:32px;border-radius:50%;font-size:20px}.progress{display:flex;gap:5px;margin:19px 0 24px}.progress i{height:7px;flex:1;border-radius:8px;background:#e7edf7}.progress i.on{background:#69c6bc}.question-tag{display:inline-block;background:#eef4ff;color:#597cdc;border-radius:99px;padding:7px 12px;font-size:11px;font-weight:900}.question{font-size:25px;line-height:1.5;margin:15px 0 22px;font-weight:900;white-space:pre-line}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.choice{border:2px solid #e6edf8;background:#fff;border-radius:15px;min-height:60px;padding:10px 13px;color:#3d5577;font-size:17px;font-weight:800}.choice:hover{border-color:#a9bcf5;background:#f7f9ff}.choice.correct{border-color:#58c69f;background:#e9f9f1}.choice.wrong{border-color:#ff9b9b;background:#fff1f2}.feedback{margin-top:19px;border-radius:15px;padding:15px 17px;font-size:13px;line-height:1.7;background:#f5f8ff;color:#577092}.feedback.good{background:#eaf9f2;color:#2c916b}.feedback.bad{background:#fff4ee;color:#aa6b44}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.dialog-actions .primary-btn{background:#6086ec;color:#fff}.reward{text-align:center;padding:18px 4px}.reward .big{font-size:72px}.reward h2{font-size:30px;margin:10px 0}.reward p{color:#7b8ca3;line-height:1.7}.toast{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);background:#243a57;color:#fff;padding:11px 18px;border-radius:12px;z-index:20;font-size:13px;font-weight:800;box-shadow:0 10px 30px #243a5744}.mobile-nav{display:none}.empty{padding:35px;text-align:center;color:#8291a6}.pet{display:block;overflow:visible}.subtext{color:#8694a9;font-size:13px;line-height:1.7}.badge{display:inline-block;background:#fff5dd;color:#c19038;padding:5px 9px;border-radius:99px;font-size:11px;font-weight:900}.notice{background:#fff7e8;border-radius:14px;padding:13px;color:#9e7a46;font-size:12px;line-height:1.6;margin-top:16px}
@media(max-width:1050px){.app-shell{grid-template-columns:200px minmax(0,1fr)}.sidebar{padding:25px 12px}.main{padding:25px 25px 95px}.bottom-grid{grid-template-columns:1fr}.hero-art{right:-1%;width:40%}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.app-shell{display:block}.sidebar{display:none}.main{padding:20px 16px 96px}.topbar{margin-bottom:18px}.greeting strong{font-size:18px}.pill{padding:8px 10px;font-size:12px}.hero{min-height:255px;padding:25px 24px;border-radius:24px}.hero-content{max-width:65%}.hero h1{font-size:27px}.hero p{font-size:12px}.hero-art{width:46%;height:200px;right:-6%;bottom:-10px}.subject-grid{gap:9px}.subject-card{padding:14px;min-height:148px;border-radius:17px}.subject-icon{height:39px;width:39px;font-size:21px;margin-bottom:11px}.subject-card b{font-size:14px}.subject-card small{font-size:10px}.subject-card .arrow{display:none}.section-head h2{font-size:18px}.panel{padding:17px}.content-header{display:block}.content-header h1{font-size:25px}.select-row{margin-top:15px}.level-grid,.parent-grid{grid-template-columns:1fr}.pet-list,.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-card{display:block;text-align:center;padding:18px}.pet-stage{margin:auto;width:100%;max-width:260px}.profile-info{text-align:left;margin-top:12px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:5;background:#fff;box-shadow:0 -8px 25px #5d779124;display:flex;justify-content:space-around;padding:9px 5px max(9px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:none;color:#9aacc3;display:grid;gap:2px;justify-items:center;font-size:10px;font-weight:900;min-width:58px}.mobile-nav button span{font-size:21px}.mobile-nav button.active{color:#5d80e7}.game-dialog{padding:20px;border-radius:21px}.question{font-size:21px}.choices{grid-template-columns:1fr}.choice{min-height:50px;font-size:15px}}
@media(max-width:390px){.hero-art{opacity:.7;right:-15%}.hero-content{max-width:75%}.pet-list,.shop-grid{grid-template-columns:1fr 1fr}}

body.auth-locked #app{visibility:hidden}
#auth-root:empty{display:none}
.auth-backdrop{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 20% 20%,#dff6ff,transparent 35%),radial-gradient(circle at 85% 80%,#fce8ef,transparent 35%),#f2f7ff;display:grid;place-items:center;padding:20px}
.auth-card{width:min(100%,430px);background:#fff;border:1px solid #e7edf8;border-radius:29px;box-shadow:0 24px 70px #617fa833;padding:30px}
.auth-logo{height:60px;width:60px;border-radius:21px;background:linear-gradient(145deg,#71cdec,#6d82f8);display:grid;place-items:center;color:#fff;font-size:35px;margin:0 auto 15px;box-shadow:0 9px 21px #8ab8f8a8}
.auth-card h1{text-align:center;font-size:27px;margin:0 0 5px;font-weight:900}.auth-card .auth-sub{text-align:center;color:#8495ad;font-size:13px;margin:0 0 20px}
.auth-tabs{display:flex;background:#f2f5fb;border-radius:13px;padding:4px;margin-bottom:20px}.auth-tabs button{flex:1;border:0;background:transparent;color:#8797ad;border-radius:10px;padding:10px;font-weight:900}.auth-tabs button.active{background:#fff;color:#5f7ce4;box-shadow:0 3px 10px #7d91b626}
.auth-card label{display:block;font-size:13px;font-weight:900;margin:14px 0 6px;color:#526987}.auth-card input{width:100%;border:1.5px solid #e0e8f4;border-radius:12px;padding:13px 14px;font-size:15px;outline:0}.auth-card input:focus{border-color:#86a3f4;box-shadow:0 0 0 3px #86a3f424}
.auth-submit{width:100%;border:0;border-radius:13px;padding:13px 16px;background:linear-gradient(110deg,#6a9af7,#6380ed);color:#fff;font-weight:900;margin-top:18px;font-size:15px}.auth-submit:disabled{opacity:.55}
.auth-error{color:#bc4e64;font-size:12px;min-height:18px;margin:10px 0 0}.auth-tip{font-size:11px;line-height:1.6;color:#92a0b4;text-align:center;margin:15px 0 0}
.account-name{font-size:11px;color:#7a8da9;font-weight:800}.logout-btn{border:0;background:#edf3ff;color:#5979d4;border-radius:10px;padding:7px 10px;font-size:11px;font-weight:900;cursor:pointer}
