:root{font-family:Trebuchet MS,Segoe UI,Arial,sans-serif;color:#28324b;background:#f8f7ff;font-synthesis:none;--ink: #28324b;--muted: #68728b;--primary: #6555c7;--primary-dark: #5041a9;--blue: #dff2ff;--purple: #e9e2ff;--pink: #ffe1ee;--yellow: #fff1bd;--green: #dff4df;--orange: #fff0d6;--card: #fffefa;--line: #e7e5f2;--shadow: 0 5px 0 rgba(62, 52, 111, .07)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:linear-gradient(180deg,#f6f4ff 0,#fffaf2)}button,input,select{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}h1,h2,p{margin-top:0}h1{font-size:clamp(1.7rem,7vw,2.4rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:12px}h2{font-size:1.18rem;margin-bottom:8px}p{line-height:1.55;color:var(--muted)}.app-shell{min-height:100vh}.page{width:min(100%,720px);margin:0 auto;padding:24px 18px 48px}.topbar{height:68px;padding:10px max(16px,calc((100vw - 720px)/2 + 18px));display:flex;align-items:center;gap:9px;position:sticky;top:0;z-index:5;background:#f8f7fff5;border-bottom:1px solid var(--line)}.brand{border:0;background:none;font-weight:900;font-size:1rem;padding:8px 2px;margin-right:auto}.brand-star{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#e9a800;background:var(--yellow);font-size:1.25rem}.icon-button{width:48px;height:48px;flex:0 0 48px;border:1px solid var(--line);background:#fff;border-radius:15px;font-size:1.65rem;display:grid;place-items:center}.score-pill{height:42px;padding:0 12px;border-radius:13px;background:var(--yellow);display:flex;align-items:center;gap:5px;font-weight:900}.level-badge{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--primary);font-weight:900;border:3px solid #dad3ff}.eyebrow{color:var(--primary);text-transform:uppercase;letter-spacing:.09em;font-size:.76rem;font-weight:900;margin-bottom:7px}.lead{font-size:1.05rem}.welcome{text-align:center;padding-top:7vh}.welcome-mascot{width:112px;height:112px;display:grid;place-items:center;margin:0 auto 25px;border-radius:38px;font-size:4rem;background:var(--yellow);box-shadow:0 7px #f1dfa0;transform:rotate(-3deg)}.welcome .lead{max-width:540px;margin:0 auto 24px}.welcome-card{display:flex;align-items:center;text-align:left;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;margin:25px 0 20px;box-shadow:var(--shadow)}.welcome-card h2,.welcome-card p{margin-bottom:4px}.card-icon,.title-icon{width:58px;height:58px;flex:0 0 58px;display:grid;place-items:center;font-size:1.9rem;border-radius:18px}.card-icon.blue{background:var(--blue)}.primary,.secondary,.text-button,.danger-soft{min-height:52px;border-radius:16px;padding:12px 18px;font-weight:900;border:0}.primary{background:var(--primary);color:#fff;box-shadow:0 4px 0 var(--primary-dark)}.primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--primary-dark)}.secondary{background:#fff;border:2px solid #d6d0f2;color:var(--primary-dark)}.wide{width:100%;display:block}.text-button{background:transparent;color:var(--primary);margin-top:8px}.danger-soft{background:#fff0ed;color:#9b5044;width:100%;margin-top:18px}.home-page{display:grid;gap:25px}.hero-card,.daily-card,.goal-card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow)}.hero-card{position:relative;overflow:hidden}.hero-card>div:first-child{padding-right:60px}.hero-card h1{font-size:1.75rem;margin-bottom:5px}.hero-card p{margin-bottom:14px}.hero-mascot{position:absolute;right:18px;top:20px;font-size:3.1rem}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:18px;padding-top:14px;gap:8px}.mini-stats span{color:var(--muted);font-size:.72rem;text-align:center}.mini-stats b{display:block;color:var(--ink);font-size:.9rem;margin-bottom:2px}.progress-wrap{width:100%}.progress-label{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);margin-bottom:7px}.progress-label strong{color:var(--primary)}.progress{height:11px;background:#eceaf3;border-radius:99px;overflow:hidden}.progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8c7bea,#5bc8bd);transition:width .25s ease}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.section-heading h2,.section-heading p{margin-bottom:0}.plan-count,.soft-label{padding:7px 12px;background:var(--purple);color:var(--primary-dark);border-radius:99px;font-weight:900;font-size:.8rem}.daily-card .primary{margin-top:18px}.module-grid{display:grid;gap:12px}.module-card{min-height:82px;width:100%;border:1px solid rgba(58,65,94,.08);border-radius:20px;padding:14px;display:flex;align-items:center;gap:14px;text-align:left;box-shadow:0 3px #3a415e0f}.module-card.blue,.module-icon.blue{background:var(--blue)}.module-card.purple,.module-icon.purple{background:var(--purple)}.module-card.pink,.module-icon.pink{background:var(--pink)}.module-card.yellow,.module-icon.yellow{background:var(--yellow)}.module-card.green,.module-icon.green{background:var(--green)}.module-icon{width:52px;height:52px;flex:0 0 52px;border-radius:16px;background:#fff9;display:grid;place-items:center;font-size:1.7rem}.module-card strong,.module-card small{display:block}.module-card strong{font-size:1.08rem;margin-bottom:4px}.module-card small{color:var(--muted)}.module-arrow{margin-left:auto;font-size:2rem}.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.quick-links button{min-height:110px;border:1px solid var(--line);border-radius:20px;background:#fff;padding:15px}.quick-links span,.quick-links b,.quick-links small{display:block}.quick-links span{font-size:1.7rem;margin-bottom:6px}.quick-links small{color:var(--muted);margin-top:4px}.page-title{display:flex;align-items:center;gap:15px;margin-bottom:24px}.page-title h1,.page-title p{margin-bottom:0}.title-icon{background:var(--yellow)}.success-banner{display:flex;align-items:center;gap:15px;background:var(--green);padding:18px;border-radius:20px;margin-bottom:16px}.success-banner>span{font-size:2.2rem}.success-banner p,.success-banner b{margin:0}.goal-card{margin-bottom:18px}.goal-card>div:first-child{display:flex;justify-content:space-between;margin-bottom:15px}.goal-card span{color:var(--muted);font-size:.85rem}.plan-list{display:grid;gap:12px}.plan-item{display:flex;align-items:center;gap:12px;min-height:84px;width:100%;padding:12px;border-radius:20px;border:1px solid var(--line);background:#fff;text-align:left}.plan-item.done{background:#f1faef}.plan-item>span:nth-child(3){flex:1}.plan-item strong,.plan-item small{display:block}.plan-item small{color:var(--muted);margin-top:4px}.plan-check{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:var(--purple);color:var(--primary)}.plan-item.done .plan-check{background:#73bf73;color:#fff}.kind-note{padding:14px 16px;background:#fff9e3;border-radius:15px;font-size:.88rem;margin:18px 0 0;color:#6e664c}.quiz-page{padding-top:16px}.quiz-head{display:flex;align-items:center;gap:12px}.quiz-head .progress-wrap{flex:1}.quiz-head .progress-label span{font-weight:900;color:var(--ink)}.question-count{font-size:.8rem;font-weight:900;color:var(--muted)}.quiz-meta{display:flex;justify-content:space-between;margin:22px 4px 10px;color:var(--muted);font-weight:900;font-size:.86rem}.quiz-card{background:#fff;border:1px solid var(--line);border-radius:25px;padding:23px 18px;text-align:center;box-shadow:var(--shadow)}.quiz-card h1{font-size:1.65rem;max-width:540px;margin-left:auto;margin-right:auto}.question-visual{min-height:92px;margin:18px 0;padding:20px;display:grid;place-items:center;background:#f7f5ff;border:2px dashed #d9d3f3;border-radius:20px;font-size:1.55rem;font-weight:900;line-height:1.65;color:#584c9b}.question-visual.textual{font-size:1.12rem;text-align:left;color:var(--ink)}.answers{display:grid;grid-template-columns:1fr 1fr;gap:11px}.answers button{min-height:62px;background:#fff;border:2px solid #dcd8ec;border-radius:17px;font-size:1.15rem;font-weight:900;padding:10px}.answers button.correct{border-color:#67b86d;background:var(--green);color:#276d31}.answers button.try-again{border-color:#e7aa55;background:var(--orange);color:#815c25}.answers button.muted{opacity:.48}.feedback{display:flex;gap:13px;align-items:flex-start;margin-top:14px;padding:17px;border-radius:19px}.feedback>span{font-size:2rem}.feedback h2,.feedback p{margin-bottom:3px}.feedback.positive{background:var(--green)}.feedback.gentle{background:var(--orange)}.next-button{margin-top:15px}.lesson-score{display:flex;justify-content:center;gap:25px;margin-top:18px;font-weight:900;color:var(--muted)}.summary-page{text-align:center;padding-top:6vh}.summary-stars{font-size:2.2rem;margin-bottom:16px}.score-circle{width:140px;height:140px;display:grid;place-content:center;margin:22px auto;background:var(--green);border:7px solid #bfe7bd;border-radius:50%}.score-circle strong{font-size:2rem}.score-circle span{font-size:.8rem;color:var(--muted)}.summary-grid,.parent-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.summary-grid>div,.parent-stats>div{background:#fff;border:1px solid var(--line);padding:13px 7px;border-radius:17px}.summary-grid span,.summary-grid b,.summary-grid small,.parent-stats span,.parent-stats b,.parent-stats small{display:block}.summary-grid b,.parent-stats b{margin:5px 0 2px}.summary-grid small,.parent-stats small{color:var(--muted)}.summary-note{text-align:left;border-radius:17px;padding:16px;margin:12px 0}.summary-note p{margin:5px 0 0}.summary-note.good{background:var(--green)}.summary-note.practice{background:var(--orange)}.summary-page .secondary{margin-top:10px}.wallet{display:flex;align-items:center;gap:15px;background:var(--yellow);padding:18px;border-radius:22px;margin-bottom:14px}.wallet>span{font-size:2.5rem}.wallet small,.wallet strong{display:block}.wallet strong{font-size:1.45rem;margin-top:3px}.reward-list{display:grid;gap:12px;margin-top:20px}.reward-card{display:flex;align-items:center;gap:12px;min-height:94px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:13px}.reward-card.pending{background:#fff9e8}.reward-card.approved{background:var(--green)}.reward-icon{width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;background:#f4f2fb;border-radius:17px;font-size:1.8rem}.reward-card div{flex:1;min-width:0}.reward-card h2{font-size:1rem;margin-bottom:3px}.reward-card b,.reward-card small{display:block}.reward-card b{color:#8c6d00;font-size:.83rem}.reward-card small{color:var(--muted);margin-top:3px}.reward-card button{min-height:48px;border:0;border-radius:14px;background:var(--primary);color:#fff;font-weight:900;padding:8px 11px}.reward-card button:disabled{background:#ebe9ef;color:#8b8a94}.pin-page{text-align:center;padding-top:10vh;max-width:450px}.lock-icon{width:90px;height:90px;display:grid;place-items:center;margin:0 auto 22px;border-radius:28px;font-size:2.8rem;background:var(--purple)}.pin-page form{margin:25px 0 14px}.pin-page input{width:100%;height:64px;border:2px solid #d9d4ec;border-radius:17px;text-align:center;font-size:1.8rem;letter-spacing:.5em;margin-bottom:12px}.pin-message{color:#a06132;background:var(--orange);padding:9px;border-radius:12px}.parent-stats{grid-template-columns:repeat(2,1fr)}.parent-stats>div{text-align:center}.parent-section{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;margin:14px 0}.weak-list{display:flex;flex-wrap:wrap;gap:8px}.weak-list span{background:var(--orange);border-radius:99px;padding:9px 12px;font-size:.85rem}.weak-list b{color:#9c6829}.empty{font-size:.9rem;margin-bottom:0}.history-list{display:grid;gap:5px}.history-list div{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:10px 0;border-bottom:1px solid var(--line)}.history-list div:last-child{border:0}.history-list small{color:var(--muted)}.request-row{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.request-row span>*{display:block;margin-top:3px}.request-row button{display:block;width:100%;min-height:42px;border:0;border-radius:11px;margin-bottom:6px;font-weight:900;padding:7px 10px}.small-ok{background:var(--green);color:#2d7134}.small-soft{background:var(--orange);color:#8b6029}.setting-row{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.setting-row select{min-height:42px;max-width:145px;border:1px solid var(--line);border-radius:11px;background:#faf9ff;padding:5px 8px}.setting-row input[type=checkbox],.module-toggles input{width:24px;height:24px;accent-color:var(--primary)}.module-toggles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.module-toggles label{display:flex;align-items:center;gap:7px}.point-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.point-actions button{min-height:48px;border:0;border-radius:13px;background:var(--yellow);font-weight:900}.reward-form{display:grid;grid-template-columns:1fr 90px;gap:8px}.reward-form input{min-height:48px;min-width:0;border:1px solid var(--line);border-radius:12px;padding:10px}.reward-form button{grid-column:1 / -1}.disclaimer{padding:17px;border-radius:17px;background:var(--blue);color:#456073;font-size:.84rem;line-height:1.55}.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#28324ba8}.idle-card{width:min(100%,390px);border-radius:25px;padding:28px;background:#fff;text-align:center}.idle-card>span{display:block;font-size:3.5rem;margin-bottom:12px}@media(min-width:600px){.page{padding-left:24px;padding-right:24px}.module-grid{grid-template-columns:1fr 1fr}.parent-stats{grid-template-columns:repeat(4,1fr)}}@media(max-width:370px){.page{padding-left:13px;padding-right:13px}.brand{font-size:.88rem}.score-pill{padding:0 8px}.level-badge{display:none}.hero-card,.daily-card{padding:16px}.mini-stats{gap:3px}.module-card{padding:11px}.module-icon{width:46px;height:46px;flex-basis:46px}.answers button{min-height:58px}.reward-card{flex-wrap:wrap}.reward-card button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
