
:root{--purple:#705fe7;--purple2:#8b72ee;--purple-soft:#f3efff;--blue:#4e8cf7;--green:#46bf89;--yellow:#ffcb4c;--pink:#ff6c9f;--orange:#ff9b55;--ink:#26324a;--muted:#7b8498;--line:#eceaf4;--bg:#fbfbfe;--card:#fff;--shadow:0 10px 28px rgba(59,46,119,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);font-family:Inter,ui-rounded,"Segoe UI",Arial,sans-serif;color:var(--ink)}a{color:inherit}.app{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;z-index:5}.logo{display:block;padding:0 8px 20px}.logo img{width:168px;height:auto;display:block}.side-nav{display:grid;gap:6px}.side-nav a,.side-nav button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;border-radius:10px;text-decoration:none;border:0;background:transparent;color:#667085;font:700 14px/1.2 inherit;text-align:left;cursor:pointer}.side-nav a:hover,.side-nav button:hover{background:#f8f6ff;color:var(--purple)}.side-nav .active{background:linear-gradient(90deg,#efeaff,#f8f6ff);color:var(--purple);box-shadow:inset 3px 0 0 var(--purple)}.nav-ico{width:24px;text-align:center;font-size:17px}.side-bottom{margin-top:auto;display:grid;gap:12px}.side-profile{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.side-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#eaf7ff,#f4ebff);font-size:25px}.side-profile strong,.side-profile small{display:block}.side-profile small{color:var(--muted);font-size:11px}.side-stars{margin-top:4px;color:#e2a400;font-weight:900;font-size:12px}.main{min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 28px;position:sticky;top:0;z-index:4}.topbar .role{margin-right:auto;font-size:12px;font-weight:900;letter-spacing:.08em;color:var(--purple);text-transform:uppercase}.top-actions{display:flex;gap:9px;align-items:center}.icon-btn{width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:10px;display:grid;place-items:center;text-decoration:none}.content{padding:28px 34px 56px;max-width:1480px;margin:auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h1{font-size:27px;margin:0 0 5px;letter-spacing:-.02em}.page-head p{margin:0;color:var(--muted);font-size:13px}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.pill,.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:800}.pill.purple{background:#eee9ff;color:#6652d9}.pill.green{background:#e8fbf2;color:#26885e}.pill.yellow{background:#fff7d8;color:#9e7200}.pill.blue{background:#eaf3ff;color:#3772d5}.btn{border:0;border-radius:9px;padding:10px 14px;font:800 12px inherit;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;background:var(--purple);color:white;box-shadow:0 5px 14px rgba(112,95,231,.2)}.btn.secondary{background:#fff;color:var(--purple);border:1px solid #dcd6fa;box-shadow:none}.btn.green{background:var(--green)}.btn.blue{background:var(--blue)}.btn.orange{background:var(--orange)}.btn.soft{background:#f4f2fb;color:#615f71;box-shadow:none}.btn.red{background:#ef6b73}.btn.small{padding:7px 10px;font-size:11px}.grid{display:grid;gap:18px}.stats4{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.stats3{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.cols-2{grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr)}.cols-even{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:18px}.card h2,.card h3{margin:0}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.card-title h2{font-size:16px}.card-title h3{font-size:14px}.muted{color:var(--muted)}.tiny{font-size:11px}.metric{min-height:112px;position:relative;overflow:hidden}.metric .m-head{display:flex;align-items:center;gap:9px;color:#6e7588;font-size:11px;font-weight:800}.metric .m-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.metric strong{font-size:26px;display:block;margin-top:10px}.metric small{font-size:10px;color:var(--muted)}.metric.green{background:linear-gradient(150deg,#fff,#f0fff7)}.metric.green .m-icon{background:#e7faef}.metric.purple{background:linear-gradient(150deg,#fff,#f7f2ff)}.metric.purple .m-icon{background:#eee8ff}.metric.yellow{background:linear-gradient(150deg,#fff,#fff9e9)}.metric.yellow .m-icon{background:#fff2c4}.metric.blue{background:linear-gradient(150deg,#fff,#eef7ff)}.metric.blue .m-icon{background:#e3f1ff}.sparkline{position:absolute;right:12px;bottom:12px;width:74px;height:28px;opacity:.85}.sparkline svg{width:100%;height:100%}.hero-welcome{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;background:linear-gradient(110deg,#f1ecff 0,#f6f3ff 46%,#eff9ff 100%);border:1px solid #e8e1ff;border-radius:16px;padding:22px 24px;margin-bottom:18px}.hero-welcome h1{font-size:23px;margin:0 0 7px}.hero-welcome p{margin:0;color:#747b91;font-size:12px}.hero-badge{display:flex;align-items:center;gap:12px}.big-avatar{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:35px;background:#fff;border:4px solid #fff;box-shadow:0 8px 20px #6655aa18}.star-stack{text-align:center}.star-stack .star{font-size:35px;line-height:1}.star-stack strong{display:block;color:#dca600}.list{display:grid}.list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f0eef6}.list-row:last-child{border-bottom:0}.thumb{width:48px;height:48px;border-radius:10px;background:#f4f4f8;display:grid;place-items:center;font-size:25px;border:1px solid #ebe8f1}.list-row strong{display:block;font-size:12px}.list-row small{font-size:10px;color:var(--muted)}.score-badge{min-width:44px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:900;background:#e8fbef;color:#27865d}.ach-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ach{border:1px solid var(--line);border-radius:12px;padding:11px;display:flex;align-items:center;gap:10px;background:#fff}.ach-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f0eaff;font-size:21px}.ach strong{font-size:11px;display:block}.ach small{font-size:9px;color:var(--muted)}.reward-banner{margin-top:18px;border-radius:14px;background:linear-gradient(90deg,#fff7cf,#fffdf1);border:1px solid #f7e8a8;padding:16px 20px;display:grid;grid-template-columns:1fr auto;align-items:center}.reward-banner h3{font-size:14px;margin:0 0 5px}.progress{height:7px;border-radius:99px;background:#edf0f5;overflow:hidden}.progress i{height:100%;display:block;border-radius:99px;background:linear-gradient(90deg,#7b62e8,#967cf3)}.progress.green i{background:linear-gradient(90deg,#47bd82,#55d79a)}.progress.yellow i{background:linear-gradient(90deg,#ffc33d,#ffd96c)}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin-bottom:16px}.tabs button,.tabs a{border:0;background:transparent;padding:10px 7px;text-decoration:none;font:800 11px inherit;color:#9095a4;cursor:pointer}.tabs .active{color:var(--purple);border-bottom:2px solid var(--purple)}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.filters input,.filters select{width:auto;min-width:130px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-field label{display:block;font-size:10px;font-weight:800;color:#747b8e;margin:0 0 5px}.form-field input,.form-field select,.form-field textarea,input,select,textarea{width:100%;border:1px solid #dddbe7;border-radius:9px;background:#fff;padding:9px 10px;font:500 12px inherit;color:var(--ink);outline:none}.form-field textarea{min-height:74px;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,input:focus,select:focus,textarea:focus{border-color:#a99bf2;box-shadow:0 0 0 3px #efeaff}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:11px}.table th{text-align:left;color:#9095a4;font-weight:800;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:11px 10px;border-bottom:1px solid #f0eef6;vertical-align:middle}.table tr:last-child td{border-bottom:0}.child-cell{display:flex;align-items:center;gap:9px}.mini-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f1edff;font-size:20px}.reward-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.reward-card{border:1px solid var(--line);border-radius:13px;padding:14px;text-align:center;background:#fff}.reward-card .r-ico{font-size:34px}.reward-card h3{font-size:12px;margin:7px 0 4px}.reward-card p{font-size:10px;color:var(--muted);min-height:28px}.reward-cost{font-size:12px;font-weight:900;color:#c79500;margin:8px 0}.notice{border-radius:13px;padding:14px 16px;background:#fff8dd;border:1px solid #f7e5a2;color:#6f6030;font-size:11px;line-height:1.5}.notice.purple{background:#f5f0ff;border-color:#e5dbff;color:#5d527b}.notice.blue{background:#eff7ff;border-color:#d8eaff;color:#52697e}.pin-lock{max-width:520px;margin:46px auto;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 18px 50px #5845a31a;padding:28px;text-align:center}.pin-icon{width:68px;height:68px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#f1edff;font-size:32px}.pin-lock h1{font-size:22px;margin:14px 0 6px}.pin-lock p{color:var(--muted);font-size:12px}.pin-lock input{font-size:22px;letter-spacing:.35em;text-align:center;max-width:250px;margin:8px auto}.flash{margin:0 34px 14px;padding:11px 14px;border-radius:10px;font-size:12px;font-weight:750}.flash.ok{background:#eafaf1;color:#267b58;border:1px solid #cdf0dd}.flash.err{background:#fff0f1;color:#a94b54;border:1px solid #ffd5d8}.score-chart{height:210px;display:flex;align-items:flex-end;gap:11px;padding:20px 8px 4px;border-bottom:1px solid var(--line)}.score-col{flex:1;min-width:24px;text-align:center}.score-col i{display:block;width:100%;max-width:35px;margin:auto;background:linear-gradient(180deg,#8a75ed,#67a7ff);border-radius:7px 7px 2px 2px;min-height:4px}.score-col b{font-size:9px;display:block;margin-top:4px}.score-col small{font-size:8px;color:#999eab}.letter-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:7px}.letter-cell{aspect-ratio:1;border-radius:9px;display:grid;place-items:center;font-weight:900;font-size:13px;background:#eaf9f0;color:#35815f}.letter-cell.warn{background:#fff7da;color:#9d791a}.letter-cell.low{background:#fff0ef;color:#b55e5a}.empty{padding:28px;text-align:center;color:#969baa;font-size:12px;border:1px dashed #dedbe8;border-radius:12px;background:#fcfcfe}.settings-list{display:grid;grid-template-columns:210px 1fr;gap:18px}.settings-menu{display:grid;align-content:start;gap:5px}.settings-menu button{padding:10px;border:0;border-radius:9px;background:transparent;text-align:left;font:800 11px inherit;color:#7d8393}.settings-menu button.active{background:#f0ebff;color:var(--purple)}.switch{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #f0eef6}.switch input{width:auto}.help-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.help-card{text-align:center;border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff}.help-card .help-ico{font-size:30px}.help-card h3{font-size:12px;margin:7px 0 4px}.help-card p{font-size:9px;color:var(--muted)}.auth-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f5f0ff,#f6fbff);padding:24px}.auth-card{width:min(760px,100%);background:#fff;border-radius:18px;border:1px solid var(--line);box-shadow:0 24px 70px #5b4acb18;padding:28px}.auth-logo img{width:190px}.auth-card h1{font-size:24px}.auth-tabs{display:flex;gap:7px;margin:17px 0}.auth-tabs a{padding:8px 11px;border-radius:99px;background:#f2effb;color:#6b5fd4;text-decoration:none;font-size:11px;font-weight:800}.checkline{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:#73798b}.checkline input{width:auto;margin-top:2px}.quick-actions{display:flex;gap:8px;flex-wrap:wrap}.parent-child-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.parent-child-card{border:1px solid var(--line);border-radius:13px;padding:15px;background:#fff}.child-top{display:flex;align-items:center;gap:10px}.child-top .mini-avatar{width:48px;height:48px;font-size:28px}.star-editor{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.star-editor .edit-card{border:1px solid var(--line);border-radius:12px;padding:13px}.redacted{filter:blur(3px);user-select:none}.lock-note{font-size:10px;color:#8c92a0}.score-ring{--v:0;width:94px;height:94px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--v)*1%),#eceef3 0);display:grid;place-items:center;margin:auto;position:relative}.score-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}.score-ring strong{position:relative;font-size:24px}.profile-panel{display:grid;grid-template-columns:160px 1fr;gap:20px}.profile-avatar{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;background:#f1edff;font-size:58px;margin:auto}.profile-lines{display:grid;grid-template-columns:140px 1fr;gap:9px;font-size:11px}.profile-lines b{color:#8b90a0}.mobile-label{display:none}
@media(max-width:1100px){.app{grid-template-columns:205px 1fr}.stats4{grid-template-columns:repeat(2,1fr)}.cols-2{grid-template-columns:1fr}.reward-cards{grid-template-columns:repeat(2,1fr)}.help-grid{grid-template-columns:repeat(2,1fr)}.star-editor{grid-template-columns:1fr}.parent-child-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app{display:block}.sidebar{position:relative;width:100%;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:15px}.logo{padding-bottom:10px}.side-nav{grid-template-columns:repeat(4,1fr);overflow:auto}.side-nav a,.side-nav button{justify-content:center;min-width:105px}.side-nav .nav-ico{display:none}.side-bottom{display:none}.topbar{display:none}.content{padding:20px 14px 40px}.page-head{align-items:flex-start;flex-direction:column}.stats4,.stats3,.cols-even{grid-template-columns:1fr}.hero-welcome{grid-template-columns:1fr}.reward-cards{grid-template-columns:1fr}.letter-grid{grid-template-columns:repeat(6,1fr)}.settings-list{grid-template-columns:1fr}.settings-menu{grid-template-columns:repeat(2,1fr)}.profile-panel{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.flash{margin:0 14px 12px}}


/* Full dashboard upgrade additions */
.side-section-label{font-size:10px;font-weight:900;letter-spacing:.12em;color:#a0a4b2;padding:2px 13px 9px}
.full{width:100%}.child-switcher{display:grid;gap:5px}.child-switcher label{font-size:10px;font-weight:800;color:#8d93a2}.child-switcher select{padding:8px 9px;font-size:11px}
.notify-btn{position:relative}.notify-btn b{position:absolute;right:-5px;top:-5px;background:#ff6c7e;color:#fff;border:2px solid #fff;min-width:18px;height:18px;border-radius:99px;display:grid;place-items:center;font-size:9px}
.eyebrow{display:block;font-size:9px;font-weight:900;letter-spacing:.14em;color:var(--purple);margin-bottom:5px}.span-all{grid-column:1/-1}
.pill.orange{background:#fff0e6;color:#b7662b}.pill.red{background:#ffefef;color:#b85159}.pill-row{margin-top:10px}
.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.compact{gap:12px}.compact .mini-card{min-height:150px}
.mini-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:linear-gradient(160deg,#fff,#fcfbff)}.mini-card>b,.mini-card>strong{display:block}.mini-card>b{font-size:10px;color:#858a99;text-transform:uppercase;letter-spacing:.05em}.mini-card>strong{font-size:17px;margin:7px 0}.mini-card p{font-size:10px;color:var(--muted)}
.recommendation{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:18px;background:linear-gradient(100deg,#f6f2ff,#fff,#eff9ff);border-color:#e5defa}.recommendation .rec-icon{width:54px;height:54px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:29px;box-shadow:0 6px 18px #6453aa18}.recommendation h2{font-size:16px;margin:0 0 5px}.recommendation p{margin:0;color:var(--muted);font-size:11px}
.goal-hero{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}.goal-hero h3{font-size:15px;margin:0 0 4px}.goal-hero p{font-size:10px;color:var(--muted);margin:0 0 9px}
.goal-ring{--v:0;width:84px;height:84px;border-radius:50%;background:conic-gradient(var(--green) calc(var(--v)*1%),#edf0f5 0);display:grid;place-items:center;position:relative}.goal-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}.goal-ring strong{position:relative;font-size:18px}
.mini-stats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.mini-stats span{background:#f8f7fc;border:1px solid #efedf6;border-radius:9px;padding:7px 9px;font-size:10px;color:#7b8190}.mini-stats b{color:var(--ink)}
.vertical{display:grid}.vertical .btn{justify-content:flex-start}.important{background:linear-gradient(135deg,#fff8da,#fffdf2);border-color:#f5e2a0}.warning-card{background:linear-gradient(120deg,#fff9e4,#fff)}
.form-card{margin-bottom:18px}.large{width:48px!important;height:48px!important;font-size:27px!important}.child-manage-card h2{font-size:16px;margin:0}
.inline-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.inline-form input,.inline-form select{width:auto;min-width:90px}.parent-progress-card{margin-bottom:18px}.parent-progress-card> .grid{margin-top:14px}
.star-balance-big{font-size:18px;font-weight:900;color:#d99d00}.reward-store{margin:18px 0}.reward-card button:disabled{opacity:.55;cursor:not-allowed}
.center{text-align:center}.center-pill{width:max-content;margin:8px auto}.profile-lines span{font-weight:700}
.achievement-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.achievement-card{border:1px solid var(--line);border-radius:13px;padding:16px;text-align:center;background:linear-gradient(160deg,#fff,#fbfaff)}.achievement-card.custom{background:linear-gradient(160deg,#fff,#fff9e7)}.achievement-card .big-badge{font-size:38px}.achievement-card h3{font-size:12px;margin:7px 0}.achievement-card p{font-size:9px;color:var(--muted);min-height:31px}.achievement-card small{display:block;font-size:8px;color:#9b9fad;margin-bottom:8px}.achievement-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.achievement-strip>div{border:1px solid var(--line);border-radius:11px;padding:10px;text-align:center}.achievement-strip span{display:block;font-size:27px}.achievement-strip strong{display:block;font-size:9px}.achievement-strip a{font-size:8px;color:var(--purple)}
.leaderboard{display:grid;gap:7px}.leader-row{display:grid;grid-template-columns:34px 36px 1fr auto auto;gap:9px;align-items:center;padding:9px 11px;border-radius:10px;border:1px solid var(--line);font-size:10px}.leader-row.me{background:#f3efff;border-color:#dcd3ff}.leader-row>b{color:#a77700;font-size:13px}
.rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.rule-grid label{display:grid;grid-template-columns:1fr 72px;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;font-size:10px;font-weight:800}.rule-grid input{text-align:center}
.page-security{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;margin:12px 0 16px;border-radius:10px;background:#eefaf4;border:1px solid #d2efdf;font-size:10px;color:#327a5b}.compact-actions form{flex:1}.compact-actions input{margin-bottom:6px}.compact-actions button{width:100%}
.card article:not(.card){box-shadow:none}.table small{display:block;margin-top:3px}.score-chart:empty:after{content:"Your score chart will appear after using the Handwriting Scorer.";font-size:11px;color:var(--muted);align-self:center;margin:auto}
details{margin-top:12px;border-top:1px solid #f0eef6;padding-top:10px}summary{cursor:pointer;color:#6657cf;font-size:11px}.switch small{display:block;color:var(--muted);font-weight:500;margin-top:3px}
@media(max-width:1150px){.achievement-cards{grid-template-columns:repeat(3,1fr)}.achievement-strip{grid-template-columns:repeat(3,1fr)}.cols-3{grid-template-columns:1fr}.recommendation{grid-template-columns:auto 1fr}.recommendation .btn{grid-column:1/-1;width:max-content}}
@media(max-width:760px){.achievement-cards{grid-template-columns:repeat(2,1fr)}.achievement-strip{grid-template-columns:repeat(2,1fr)}.rule-grid{grid-template-columns:1fr}.leader-row{grid-template-columns:28px 34px 1fr}.leader-row span{display:none}.goal-hero{grid-template-columns:1fr}.recommendation{grid-template-columns:1fr}.recommendation .btn{grid-column:auto}.page-security{align-items:flex-start;gap:10px;flex-direction:column}}
.star-action-form{display:grid;grid-template-columns:90px minmax(120px,1fr) auto;gap:7px;align-items:center;min-width:0}.star-action-form input{min-width:0}.star-action-form input[type=number]{font-weight:800;text-align:center}.star-action-form .btn{white-space:nowrap}@media(max-width:900px){.star-action-form{grid-template-columns:84px 1fr}.star-action-form .btn{grid-column:1/-1}}

/* Star guide + reward request notification upgrade */
.earn-stars-card{margin:18px 0 22px;background:linear-gradient(135deg,#fff 0%,#fbf9ff 100%)}
.earn-stars-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}
.earn-star-item{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:11px;padding:14px;border-radius:18px;border:1px solid #ece8f7;background:#fff;box-shadow:0 8px 22px rgba(75,53,122,.06)}
.earn-star-item .earn-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:22px;background:#f3efff}
.earn-star-item strong{display:block;font-size:14px;color:#2f2d43}.earn-star-item small{display:block;margin-top:3px;color:#777189;line-height:1.3}.earn-star-item>b{font-size:15px;color:#6e52cc;white-space:nowrap}
.earn-star-item.green .earn-icon{background:#e9faf2}.earn-star-item.blue .earn-icon{background:#eaf5ff}.earn-star-item.purple .earn-icon{background:#f0ebff}.earn-star-item.pink .earn-icon{background:#fff0f6}.earn-star-item.yellow .earn-icon{background:#fff8df}.earn-star-item.orange .earn-icon{background:#fff1e8}.earn-star-item.parent-bonus{grid-column:span 3;background:linear-gradient(90deg,#fff7fb,#f8f5ff)}
.compact-note{margin-top:14px}.reward-request-alert{border:1px solid #f3d987;background:linear-gradient(135deg,#fffdf5,#fff8dc)}.notification-link{display:inline-block;margin-top:5px;font-weight:800;color:#7052c9}.notice.yellow{background:#fff8dd;border-color:#f0df9a;color:#60511e}
@media(max-width:1050px){.earn-stars-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.earn-star-item.parent-bonus{grid-column:span 2}}
@media(max-width:680px){.earn-stars-grid{grid-template-columns:1fr}.earn-star-item.parent-bonus{grid-column:span 1}.earn-star-item{grid-template-columns:42px 1fr}.earn-star-item>b{grid-column:2}}


/* V2.3 - clean parent star controls */
.star-editor{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(430px,1fr));
  gap:16px;
  align-items:start;
  margin:16px 0 20px;
}
.star-control-card{
  min-width:0;
  overflow:hidden;
  padding:18px;
}
.star-control-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.star-control-head .child-top{min-width:0}
.star-control-head .child-top small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}
.current-star-balance{
  flex:0 0 auto;
  min-width:120px;
  padding:9px 12px;
  border-radius:12px;
  text-align:right;
  background:#fff8df;
  border:1px solid #f4e4a5;
}
.current-star-balance span{
  display:block;
  color:#8e7b37;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.current-star-balance strong{
  display:block;
  margin-top:2px;
  color:#bf8a00;
  font-size:18px;
}
.star-control-stack{
  display:grid;
  gap:10px;
  padding-top:14px;
}
.star-control-row{
  display:grid;
  grid-template-columns:110px minmax(150px,1fr) 145px;
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fcfbff;
  min-width:0;
}
.star-control-row.gift-row{background:linear-gradient(90deg,#f2fff8,#fff)}
.star-control-row.remove-row{background:linear-gradient(90deg,#fff5f5,#fff)}
.star-control-row.exact-row{background:linear-gradient(90deg,#f7f4ff,#fff)}
.star-field{min-width:0}
.star-field label{
  display:block;
  margin:0 0 5px;
  color:#777d8f;
  font-size:9px;
  font-weight:900;
}
.star-control-row input{
  width:100%;
  min-width:0;
  margin:0;
}
.star-control-row .btn{
  width:100%;
  min-width:0;
  white-space:nowrap;
  min-height:38px;
}
.star-exact-help{
  align-self:center;
  min-width:0;
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
}
.score-rule-note{
  margin:10px 0 12px;
  padding:10px 12px;
  border-radius:10px;
  background:#eff7ff;
  border:1px solid #d9eaff;
  color:#526b85;
  font-size:10px;
  line-height:1.45;
}
.earn-star-item.soft-red .earn-icon{background:#fff1ef}
.earn-star-item.soft-red>b{color:#d66b5f}

@media(max-width:1250px){
  .star-editor{grid-template-columns:1fr}
}
@media(max-width:820px){
  .star-control-head{align-items:flex-start;flex-direction:column}
  .current-star-balance{text-align:left}
  .star-control-row{grid-template-columns:100px 1fr}
  .star-control-row .btn{grid-column:1/-1}
}
@media(max-width:560px){
  .star-editor{grid-template-columns:minmax(0,1fr)}
  .star-control-card{padding:14px}
  .star-control-row{grid-template-columns:1fr}
  .star-control-row .btn{grid-column:auto}
  .current-star-balance{width:100%}
}


/* V2.4 child-only fun layer */
.child-ui{
  background:
    radial-gradient(circle at 12% 15%,rgba(123,92,235,.08) 0 3px,transparent 4px),
    radial-gradient(circle at 86% 18%,rgba(255,196,67,.10) 0 4px,transparent 5px),
    radial-gradient(circle at 74% 76%,rgba(88,181,255,.08) 0 3px,transparent 4px),
    linear-gradient(180deg,#fbfaff 0%,#f6fbff 48%,#fffdf7 100%);
  background-size:92px 92px,126px 126px,112px 112px,auto;
}
.child-ui .sidebar{
  background:linear-gradient(180deg,#fff 0%,#fbf8ff 56%,#f4fbff 100%);
  border-right-color:#e9e2fb;
  box-shadow:8px 0 30px rgba(94,69,166,.05);
}
.child-ui .logo:after{
  content:"✦  ★  ✦";display:block;text-align:center;margin-top:4px;
  color:#d3c5ff;font-size:8px;letter-spacing:.34em;
}
.child-ui .side-section-label{color:#8069df}
.child-ui .side-nav a{transition:.16s ease}
.child-ui .side-nav a:hover{transform:translateX(3px);background:linear-gradient(90deg,#f2ecff,#fff4fa)}
.child-ui .side-nav .active{
  background:linear-gradient(90deg,#ebe4ff,#fff0f7);
  color:#674bd6;box-shadow:inset 4px 0 0 #795ee8,0 5px 15px rgba(114,87,218,.08);
}
.child-ui .nav-ico{
  width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#f5f1ff;
}
.child-ui .side-nav .active .nav-ico{background:#fff;box-shadow:0 3px 9px rgba(106,80,210,.12)}
.child-ui .side-profile{background:linear-gradient(135deg,#fff7d8,#fff 50%,#efeaff);border-color:#eee3bc}
.child-ui .side-avatar{animation:kidFloat 4s ease-in-out infinite;box-shadow:0 5px 15px rgba(104,82,200,.12)}
.child-ui .topbar{background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom-color:#eee8fb}
.child-ui .topbar .role{color:#745adf}
.child-ui .hero-welcome{
  background:
    radial-gradient(circle at 90% 10%,rgba(255,213,74,.30),transparent 20%),
    radial-gradient(circle at 78% 85%,rgba(89,190,255,.18),transparent 24%),
    linear-gradient(135deg,#f2edff,#fff 48%,#fff7dc);
  border:1px solid #e8dff9;
  box-shadow:0 13px 30px rgba(96,73,168,.08);
  position:relative;overflow:hidden;
}
.child-ui .hero-welcome:before{
  content:"★ ✦ ★";position:absolute;right:28px;top:16px;color:#e4c04a;font-size:18px;letter-spacing:9px;opacity:.72;
}
.child-ui .big-avatar{animation:kidFloat 3.7s ease-in-out infinite;filter:drop-shadow(0 7px 10px rgba(98,77,170,.13))}
.child-ui .star-stack{background:linear-gradient(145deg,#fff8d9,#fff);box-shadow:0 7px 18px rgba(218,170,35,.12)}
.child-ui .card{
  border-color:#eae6f6;box-shadow:0 8px 24px rgba(77,59,128,.055);
  transition:transform .17s ease,box-shadow .17s ease;
}
.child-ui .card:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(77,59,128,.085)}
.child-ui .metric.green{background:linear-gradient(145deg,#ecfff5,#fff)}
.child-ui .metric.blue{background:linear-gradient(145deg,#edf7ff,#fff)}
.child-ui .metric.purple{background:linear-gradient(145deg,#f1edff,#fff)}
.child-ui .metric.yellow{background:linear-gradient(145deg,#fff7d8,#fff)}
.child-ui .recommendation{
  background:linear-gradient(120deg,#f2edff,#fff 48%,#ecfbff);
  border-color:#ded4ff;
}
.child-ui .recommendation .rec-icon{animation:kidFloat 3.5s ease-in-out infinite}
.child-ui .progress i{background:linear-gradient(90deg,#765ee8,#67bfff,#65d39a)}
.child-ui .btn{transition:transform .14s ease,box-shadow .14s ease}
.child-ui .btn:hover{transform:translateY(-2px)}
.child-ui .btn:not(.secondary):not(.red):not(.green):not(.orange):not(.blue){
  background:linear-gradient(135deg,#735be8,#9275ff);box-shadow:0 6px 15px rgba(111,84,223,.16);
}
.child-ui .reward-card{
  position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#fbf9ff);
}
.child-ui .reward-card:after{
  content:"★";position:absolute;right:-7px;top:-17px;font-size:70px;
  color:rgba(255,207,57,.12);transform:rotate(18deg);pointer-events:none;
}
.child-ui .r-ico{filter:drop-shadow(0 5px 8px rgba(87,65,154,.12));transition:transform .15s ease}
.child-ui .reward-card:hover .r-ico{transform:scale(1.08) rotate(-3deg)}
.child-ui .achievement-card,.child-ui .ach{background:linear-gradient(145deg,#fff,#fbfaff)}
.child-ui .big-badge,.child-ui .ach-ico{filter:drop-shadow(0 5px 8px rgba(85,64,150,.13))}
.child-ui .eyebrow{color:#765cdb;letter-spacing:.1em}
.child-ui .pill.purple{background:#eee8ff;color:#694fd1}
.child-ui .notice{border-radius:14px}
.child-ui .reward-banner{
  background:linear-gradient(110deg,#fff6cf,#fff 45%,#f0eaff);
  border-color:#e9ddad;
}
.child-ui .empty{background:linear-gradient(145deg,#fbf8ff,#f6fbff)}

.child-ui .kid-star-guide{
  background:
    radial-gradient(circle at 94% 9%,rgba(255,213,70,.26),transparent 22%),
    radial-gradient(circle at 4% 88%,rgba(121,91,232,.11),transparent 25%),
    #fff;
}
.score-star-ladder{display:grid;gap:9px;margin:15px 0 18px}
.score-star-step{
  display:grid;grid-template-columns:42px minmax(0,1fr) 72px;align-items:center;gap:10px;
  min-height:62px;padding:10px 12px;border-radius:14px;border:1px solid #ece7f6;
  transition:transform .15s ease,box-shadow .15s ease;
}
.score-star-step:hover{transform:translateX(4px);box-shadow:0 6px 16px rgba(77,63,128,.07)}
.score-star-step.zero{background:#f7f7fa}
.score-star-step.starter{background:#fff3ed}
.score-star-step.bronze{background:#fff8dc}
.score-star-step.green{background:#edfbf4}
.score-star-step.blue{background:#edf7ff}
.score-star-step.purple{background:#f2edff}
.score-star-step.perfect{background:linear-gradient(90deg,#fff1b8,#fff9e4 45%,#f3ecff);border-color:#ead58d}
.score-medal{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#fff;
  font-size:21px;box-shadow:0 4px 10px rgba(74,58,122,.08);
}
.score-range strong{display:block;font-size:14px;color:#35354a}
.score-range small{display:block;margin-top:2px;color:#7e8190;font-size:10px;line-height:1.35}
.score-stars{display:flex;justify-content:flex-end;align-items:center;gap:4px;white-space:nowrap}
.score-stars b{font-size:22px;color:#5d48c5}
.score-stars span{font-size:18px}
.score-star-step.zero .score-stars b{color:#a5a6ae}
.score-star-step.perfect .score-stars b{color:#d59600}
.bonus-star-title{
  display:flex;align-items:center;gap:9px;margin:17px 0 10px;padding-top:14px;border-top:1px dashed #e5def4;
}
.bonus-star-title>span{font-size:22px}
.bonus-star-title strong{display:block;color:#44405c}
.bonus-star-title small{display:block;color:#858397;font-size:10px;margin-top:2px}
.child-ui .bonus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.child-ui .earn-star-item{border-radius:14px;transition:transform .15s ease}
.child-ui .earn-star-item:hover{transform:translateY(-2px)}

@keyframes kidFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@media(max-width:760px){
  .score-star-step{grid-template-columns:38px minmax(0,1fr) 58px}
  .score-stars b{font-size:19px}
  .child-ui .bonus-grid{grid-template-columns:1fr}
}


/* =========================================================
   V2.5 BADGE COLLECTION
   ========================================================= */
.badge-guide-note{margin-bottom:16px}
.badge-collection-card{overflow:hidden}
.badge-collection{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:14px;
}
.badge-card{
  position:relative;
  min-height:255px;
  padding:16px;
  border:1px solid #e7e4ef;
  border-radius:18px;
  text-align:center;
  background:#fff;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.badge-card.locked{
  background:linear-gradient(145deg,#f3f4f7,#e9ebef);
  border-color:#d7d9de;
  color:#7b7d84;
}
.badge-card.locked .collection-badge{
  filter:grayscale(1);
  opacity:.42;
  background:#dedfe3;
  box-shadow:none;
}
.badge-card.locked h3,
.badge-card.locked .badge-requirement{color:#70727a}
.badge-card.unlocked{
  background:
    radial-gradient(circle at 88% 8%,rgba(255,216,74,.22),transparent 24%),
    linear-gradient(145deg,#fff,#faf7ff);
  border-color:#ded4ff;
  box-shadow:0 10px 26px rgba(93,68,175,.09);
}
.badge-card.unlocked:hover{transform:translateY(-3px) rotate(-.3deg)}
.badge-card.parent-made.unlocked{background:linear-gradient(145deg,#fff4fb,#fff,#f2edff)}
.badge-lock-state{
  display:inline-flex;
  margin-bottom:10px;
  padding:5px 8px;
  border-radius:999px;
  background:#dddfe4;
  color:#73757c;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
}
.badge-card.unlocked .badge-lock-state{background:#eaf8ef;color:#3c9362}
.collection-badge{
  width:82px;height:82px;margin:0 auto 10px;border-radius:25px;
  display:grid;place-items:center;font-size:43px;
  background:linear-gradient(145deg,#f2edff,#fff7dc);
  box-shadow:0 8px 18px rgba(86,65,155,.12);
}
.badge-card h3{margin:8px 0 10px}
.badge-requirement{
  min-height:75px;padding:9px;border-radius:12px;
  background:rgba(255,255,255,.68);font-size:10px;line-height:1.4;
}
.badge-requirement b{display:block;margin-bottom:4px;color:#6653bd}
.badge-card.locked .badge-requirement b{color:#777a82}
.badge-requirement p{margin:0}
.earned-date,.locked-hint{display:block;margin:10px 0;color:#898794;font-size:9px}
.parent-badge-section{margin-top:16px}

/* =========================================================
   V2.5 REWARD AVAILABILITY + TICKETS
   ========================================================= */
.reward-meta-pills{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin:8px 0}
.reward-expiry{display:block;color:#8b7899;margin:5px 0 8px}
.reward-history-grid{display:grid;gap:13px}
.reward-ticket{
  display:grid;
  grid-template-columns:minmax(0,1fr) 105px;
  position:relative;
  overflow:hidden;
  min-height:150px;
  border-radius:18px;
  border:2px solid #ddc967;
  background:linear-gradient(135deg,#fff6c9,#fff 55%,#eee8ff);
  box-shadow:0 10px 25px rgba(111,90,30,.10);
}
.reward-ticket.used-ticket{
  border-color:#a9d9bd;
  background:linear-gradient(135deg,#eafbf1,#fff 55%,#eef5ff);
}
.ticket-main{padding:15px 17px}
.ticket-top,.ticket-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center}
.ticket-top{
  padding-bottom:8px;border-bottom:1px dashed rgba(98,81,52,.28);
  font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;
}
.ticket-top b{color:#9b7600}
.used-ticket .ticket-top b{color:#34875b}
.ticket-body{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;padding:14px 0}
.ticket-emoji{font-size:40px}
.ticket-body small{font-size:8px;font-weight:900;letter-spacing:.12em;color:#917c44}
.ticket-body h3{margin:2px 0 3px;font-size:19px}
.ticket-body p{margin:0;color:#777384;font-size:10px}
.ticket-bottom{font-size:9px;color:#7e7464}
.ticket-stub{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  border-left:2px dashed rgba(98,81,52,.25);
  background:rgba(255,255,255,.37);
  text-align:center;
}
.ticket-stub div{font-size:28px}
.ticket-stub b{font-size:11px;color:#9b7600}
.used-ticket .ticket-stub b{color:#34875b}
.ticket-stub small{font-size:8px}
.reward-history-row{
  display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:11px;border:1px solid #e8e5ef;border-radius:13px;background:#fff;
}
.reward-history-row.declined{background:#fff6f6;border-color:#f0dada}

/* =========================================================
   V2.5 PROFILE SWITCHER
   ========================================================= */
.profile-switcher{margin-top:16px}
.profile-switch-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:11px;margin-top:13px;
}
.switch-profile-card{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  align-items:center;gap:10px;
  min-height:74px;padding:12px;border:1px solid #e8e3f4;border-radius:15px;
  background:linear-gradient(145deg,#fff,#faf8ff);
  text-decoration:none;color:inherit;
}
.switch-profile-card.current{background:linear-gradient(145deg,#edfdf5,#fff);border-color:#cdebd9}
.parent-profile-card{background:linear-gradient(145deg,#fff6d9,#fff,#f1ecff);border-color:#eadfac}
.switch-profile-avatar{
  width:46px;height:46px;border-radius:15px;display:grid;place-items:center;
  background:#f2edff;font-size:25px;
}
.switch-profile-card strong{display:block}
.switch-profile-card small{display:block;margin-top:3px;color:#858392;font-size:9px}

.new-reward-builder small{display:block;margin-top:4px;color:#777b89;font-size:9px}

@media(max-width:650px){
  .reward-ticket{grid-template-columns:1fr}
  .ticket-stub{border-left:0;border-top:2px dashed rgba(98,81,52,.25);padding:9px;flex-direction:row}
  .ticket-bottom{flex-wrap:wrap}
  .switch-profile-card{grid-template-columns:45px 1fr}
  .switch-profile-card form,.switch-profile-card>.pill,.switch-profile-card>.btn{grid-column:1/-1}
}


/* V2.6 Rewards PIN recovery */
.rewards-pin-lock{max-width:560px}
.forgot-pin-link{
  border:0;
  background:transparent;
  color:var(--purple);
  font:800 11px inherit;
  text-decoration:underline;
  text-underline-offset:3px;
  cursor:pointer;
  padding:5px 8px;
}
.forgot-pin-link:hover{color:#4f3fc4}
.forgot-pin-panel{
  margin-top:16px;
  padding:17px;
  border:1px solid #ddd6fb;
  border-radius:15px;
  background:linear-gradient(145deg,#f7f3ff,#fff);
  text-align:left;
}
.forgot-pin-panel h2{
  margin:3px 0 5px;
  text-align:center;
  font-size:17px;
}
.forgot-pin-panel>p{
  margin:0 0 13px;
  text-align:center;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}
.forgot-pin-icon{
  width:48px;height:48px;margin:0 auto 4px;border-radius:50%;
  display:grid;place-items:center;background:#eee8ff;font-size:23px;
}
.forgot-pin-panel .form-field{margin-bottom:10px}
.pin-unlock-form .form-field{max-width:270px;margin:0 auto}


/* V2.7 - provided reward ticket stamp */
.reward-ticket.used-ticket{
  position:relative;
}
.redeemed-stamp{
  position:absolute;
  z-index:8;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) rotate(-11deg);
  padding:7px 14px 6px;
  border:3px solid rgba(47,139,88,.72);
  border-radius:8px;
  color:rgba(47,139,88,.78);
  background:rgba(255,255,255,.76);
  box-shadow:0 2px 0 rgba(47,139,88,.10);
  font-size:24px;
  line-height:1;
  font-weight:1000;
  letter-spacing:.14em;
  text-transform:uppercase;
  pointer-events:none;
}
@media(max-width:650px){
  .redeemed-stamp{
    font-size:19px;
    padding:6px 10px 5px;
  }
}


/* V2.8 easier PIN-only profile switching */
.profile-pin-panel{
  grid-column:1/-1;
  padding:15px;
  border:1px solid #ded7f8;
  border-radius:15px;
  background:linear-gradient(145deg,#f7f3ff,#fff);
}
.profile-pin-title{
  margin-bottom:4px;
  font-size:15px;
  font-weight:900;
  color:#5747ad;
}
.profile-pin-panel>p{
  margin:0 0 12px;
  color:var(--muted);
  font-size:10px;
}
.profile-pin-panel form{
  display:grid;
  grid-template-columns:minmax(150px,230px) auto;
  gap:10px;
  align-items:end;
}
.profile-pin-panel .form-field{margin:0}
.profile-pin-panel input{
  text-align:center;
  letter-spacing:.18em;
  font-size:18px;
}
@media(max-width:560px){
  .profile-pin-panel form{grid-template-columns:1fr}
}
