/* PSA V17 // learning engine, truthful metrics, competition, mobile polish */

/* ---------- Learning surfaces ---------- */
.role-student .math-game-shell,.role-student .drill-shell,.role-student .readalong-shell,.role-student .state-puzzle-shell{--lesson-cream:#f7f2e8;--lesson-ink:#171311;--lesson-aqua:#55d8d0;--lesson-coral:#ff6a5c;--lesson-mint:#73e3ad}
.role-student .math-coach,.role-student .drill-question{border-color:#51453f}
.feedback-story-back{margin-top:10px;min-height:44px;border:1px solid #a75245;background:#15100f;color:#fff;padding:10px 14px;border-radius:8px;font:800 11px var(--mono);letter-spacing:.8px}

/* ---------- Math: aligned columns + sane phone sizing ---------- */
.v17-math .math-problem-surface{display:grid;place-items:center;min-height:220px;padding:24px 12px}
.v17-math .math-problem-stack{display:grid;grid-template-columns:auto;justify-items:end;width:min(420px,88vw);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;color:#f8f3eb;line-height:.92;letter-spacing:.03em}
.v17-math .math-stack-top,.v17-math .math-stack-bottom{display:grid;grid-template-columns:1.05em minmax(3ch,auto);align-items:end;justify-content:end;width:100%;font-size:clamp(52px,11vw,102px);font-weight:900;text-align:right}
.v17-math .math-stack-top:before{content:""}.v17-math .math-stack-bottom i{font-style:normal;text-align:left;color:#ff6b58}.v17-math .math-stack-bottom b{font:inherit;text-align:right}
.v17-math .math-stack-line{display:block;width:100%;border-top:5px solid #f1e7dc;margin-top:10px}
.v17-math .math-horizontal{font-size:clamp(48px,11vw,92px)!important;white-space:nowrap}
.v17-math .math-coach{max-width:760px;margin:0 auto 4px;padding:14px 16px;background:#f3ede2;color:#1a1512;border-radius:12px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.v17-math .math-coach span,.v17-math .math-coach summary{font:900 10px var(--mono);letter-spacing:1.3px;color:#9e342b}.v17-math .math-coach p{margin:4px 0 0;font-size:16px;line-height:1.45}.v17-math .math-coach details{min-width:170px}.v17-math .math-coach details[open]{grid-column:1/-1;border-top:1px solid #cabdb1;padding-top:8px}.v17-math .math-skill-label{display:inline-block;margin-top:5px;font:800 10px var(--mono);letter-spacing:1px;color:#75e0b4}.v17-math .completion-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:680px;margin:20px auto}.v17-math .completion-stats .stat{padding:14px;border:1px solid #433831;border-radius:10px;background:#100d0c}.v17-math .completion-stats b{font-size:24px}.v17-math .completion-stats small{display:block;color:#a99d96}

/* ---------- Capitals / long drill words ---------- */
.social-drill-page .drill-display{font-size:clamp(42px,9vw,88px)!important;line-height:.95!important;max-width:100%;overflow-wrap:anywhere;word-break:normal;text-align:center;padding-inline:8px}
.social-drill-page .drill-display-sub{font-size:clamp(16px,4.2vw,30px)!important;overflow-wrap:anywhere;text-align:center}

/* ---------- Persistent streak celebration ---------- */
.kid-streak-overlay{position:fixed!important;inset:0!important;z-index:1000000!important;background:rgba(0,0,0,.87)!important;display:grid!important;place-items:center!important;padding:20px!important;backdrop-filter:blur(7px)}
.kid-streak-card{position:relative!important;width:min(680px,94vw)!important;min-height:min(620px,78vh)!important;padding:42px 28px 30px!important;border:3px solid #ff5748!important;border-radius:26px!important;background:radial-gradient(circle at 50% 24%,#522017 0,#160b09 40%,#080707 78%)!important;text-align:center!important;box-shadow:0 0 0 10px #ff5a3b1d,0 0 80px #ff3b2455!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important}
.kid-streak-trophy{font-size:clamp(90px,20vw,170px)!important;filter:drop-shadow(0 0 28px #ff9e32aa);animation:v17TrophyFloat 1.5s ease-in-out infinite alternate}
.kid-streak-kicker{margin-top:12px!important;font:900 13px var(--mono)!important;letter-spacing:2px!important;color:#ffb370!important}.kid-streak-card h2{font-size:clamp(38px,9vw,78px)!important;line-height:.92!important;margin:12px 0!important;color:#fff!important}.kid-streak-card p{font-size:clamp(16px,4vw,22px)!important;max-width:520px!important;color:#e5d8cf!important}.kid-streak-card>button:not(.kid-streak-close){min-height:58px!important;margin-top:18px!important;padding:0 28px!important;border:0!important;border-radius:12px!important;background:#ef3b2f!important;color:#fff!important;font-weight:900!important}.kid-streak-close{position:absolute!important;right:14px!important;top:14px!important;width:50px!important;height:50px!important;border-radius:50%!important;border:1px solid #7f3a31!important;background:#120b0a!important;color:#fff!important;font-size:32px!important}.kid-streak-open{overflow:hidden!important}@keyframes v17TrophyFloat{to{transform:translateY(-10px) rotate(2deg)}}

/* ---------- State puzzle: own zoomable viewport ---------- */
.state-puzzle-tools{width:min(100%,960px);margin:0 auto 8px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.state-puzzle-tools button{min-height:42px;border:1px solid #51443e;border-radius:8px;background:#171310;color:#fff;padding:0 14px;font:900 10px var(--mono);letter-spacing:.7px}.state-puzzle-tools button:first-child,.state-puzzle-tools button:nth-child(2){width:46px;font-size:24px}.state-puzzle-tools span{margin-left:auto;font:900 11px var(--mono);color:#77dfb5}.state-puzzle-viewport{position:relative;width:min(100%,960px);aspect-ratio:1072/867;margin:0 auto;border:3px solid #50443e;border-radius:18px;background:#d8d3ca;overflow:hidden;touch-action:none;overscroll-behavior:contain;box-shadow:0 20px 55px #0009}.state-puzzle-viewport .state-puzzle-board{position:absolute;inset:0;width:100%;height:100%;margin:0;border:0;border-radius:0;transform-origin:0 0;transition:transform .08s linear;box-shadow:none}.state-puzzle-viewport:after{content:"PINCH TO ZOOM · DRAG MAP TO PAN";position:absolute;left:8px;bottom:7px;z-index:20;padding:5px 7px;border-radius:5px;background:#111c;color:#fff;font:800 8px var(--mono);letter-spacing:.8px;pointer-events:none}.puzzle-state-voice[aria-pressed="true"]{border-color:#49d9a1;color:#70efbb;background:#0c1c15}

/* ---------- Winner board ---------- */
.winner-board-page{max-width:1180px;margin:0 auto;padding:26px 22px 80px}.winner-board-hero{padding:25px 0}.winner-board-hero h1{font-size:clamp(46px,8vw,92px);margin:5px 0}.winner-board-hero h1 span{color:#ff4d3d}.winner-list{display:grid;gap:10px}.winner-row{display:grid;grid-template-columns:52px 72px 1fr auto;gap:14px;align-items:center;padding:13px;border:1px solid #443832;border-radius:12px;background:#0d0b0a}.winner-row:first-child{border-color:#db9d38;box-shadow:0 0 28px #f5af3220}.winner-row.is-me{background:#16100e}.winner-row img{width:66px;height:66px;border-radius:50%;object-fit:cover}.winner-rank{font-size:25px}.winner-name strong{display:block;font-size:20px}.winner-name small{color:#a99d96}.winner-score{text-align:right}.winner-score b{display:block;font-size:30px;color:#ff664f}.winner-score span{font:800 9px var(--mono)}.subject-champ-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.subject-champ{text-align:center;padding:16px}.subject-champ img{width:74px;height:74px;border-radius:50%;object-fit:cover;margin:10px auto}.subject-champ span,.subject-champ small{display:block}.subject-champ>span{font:800 9px var(--mono);letter-spacing:1px;color:#da705d}.subject-champ h2{font-size:19px;margin:5px}.winner-rules{margin-top:14px;padding:18px}

/* ---------- Parent truth dashboard ---------- */
.v17-parent-progress-stats,.v17-parent-scoreboard{grid-template-columns:repeat(4,minmax(0,1fr))!important}.v17-progress-row>div:first-child span{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.v17-progress-row>div:first-child span i{font:800 9px var(--mono);font-style:normal;border:1px solid #3e332d;border-radius:5px;padding:4px 6px;color:#bcb0a8}.v17-help-history{margin:14px 0}.v17-help-history article{display:grid;gap:5px;padding:14px 0;border-bottom:1px solid #352c28}.v17-help-history article:last-child{border-bottom:0}.v17-help-history article>b{font-size:17px}.v17-help-history article>span,.v17-help-history article>small{color:#aa9d95}.v17-last-wrong{padding:7px 9px;border-left:3px solid #dc5a49;background:#170f0e;color:#d9c8be!important}.v17-math-skills article{padding:12px 0;border-bottom:1px solid #342b27}.v17-math-skills article>div{display:flex;gap:8px;flex-wrap:wrap}.v17-math-skills article span{padding:8px 10px;border:1px solid #42342f;border-radius:7px}.v17-math-skills article span b,.v17-math-skills article span i{display:block}.v17-math-skills article span i{font-size:11px;color:#aaa;font-style:normal}.parent-at-glance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.parent-at-glance-card{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:14px;border:1px solid #3e332f;border-radius:10px;text-decoration:none}.parent-at-glance-card img{width:60px;height:60px;border-radius:50%;object-fit:cover}.parent-at-glance-card strong{font-size:18px}.parent-at-glance-card small{display:block;color:#afa29a}

/* Active child must be unmistakable EVERYWHERE on parent/admin family pages. */
.role-parent .top-child-switch,.role-admin .top-child-switch{min-width:190px;gap:10px}.role-parent .top-child-switch .kid-avatar,.role-admin .top-child-switch .kid-avatar{width:48px!important;height:48px!important;flex:0 0 48px!important}.role-parent .top-child-copy small,.role-admin .top-child-copy small{font-size:8px!important;letter-spacing:1.2px}.role-parent .top-child-copy select,.role-admin .top-child-copy select{font-size:14px!important;min-height:32px!important;font-weight:800!important;max-width:145px}.role-parent .parent-top-user,.role-admin .parent-top-user{gap:12px}

/* Admin/parent week + planner: never clip on a phone. */
.mission-day-stats{display:flex!important;gap:6px!important;flex-wrap:wrap!important}.mission-day-stats span{min-width:76px!important}.planner-class-grid{min-width:0!important}.planner-class{min-width:0!important}.planner-class span{min-width:0!important}.planner-class b,.planner-class small{overflow-wrap:anywhere!important}.planner-class-art{object-position:center!important}

/* ---------- mobile polish ---------- */
@media(max-width:760px){
 .v17-math .math-problem-surface{min-height:165px;padding:16px 6px}.v17-math .math-problem-stack{width:min(330px,90vw)}.v17-math .math-stack-top,.v17-math .math-stack-bottom{font-size:clamp(48px,15vw,72px)}.v17-math .math-stack-line{border-top-width:4px}.v17-math .math-coach{grid-template-columns:1fr;padding:13px}.v17-math .math-coach details{min-width:0}.v17-math .math-scoreboard{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.v17-math .math-scoreboard span{min-width:0!important;font-size:9px!important}.v17-math .completion-stats{grid-template-columns:1fr}.math-answer-grid button,.drill-answer-grid button{min-height:66px!important}
 .social-drill-page .drill-display{font-size:clamp(34px,12vw,58px)!important;padding-inline:4px}.social-drill-page .drill-display-sub{font-size:clamp(14px,5vw,21px)!important}
 .state-puzzle-viewport{border-radius:9px;border-width:2px;aspect-ratio:1/1;min-height:68vw;max-height:72vh}.state-puzzle-viewport .state-puzzle-board{width:100%;height:auto;aspect-ratio:1072/867}.state-puzzle-tools{gap:5px}.state-puzzle-tools button{min-height:45px;padding:0 10px;font-size:9px}.state-puzzle-tools span{width:54px;text-align:right}.state-puzzle-viewport:after{font-size:7px}
 .winner-board-page{padding:14px 10px 100px}.winner-row{grid-template-columns:38px 54px 1fr auto;gap:8px;padding:10px}.winner-row img{width:52px;height:52px}.winner-name strong{font-size:15px}.winner-name small{font-size:10px}.winner-score b{font-size:22px}.subject-champ-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-champ:last-child{grid-column:1/-1}
 .v17-parent-progress-stats,.v17-parent-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))!important}.parent-at-glance-grid{grid-template-columns:1fr}.role-parent .topbar,.role-admin .topbar{min-height:68px!important;padding:7px 10px!important}.role-parent .search-wrap,.role-admin .search-wrap{max-width:145px!important}.role-parent .top-child-switch,.role-admin .top-child-switch{min-width:0!important}.role-parent .top-child-switch .kid-avatar,.role-admin .top-child-switch .kid-avatar{width:46px!important;height:46px!important;flex-basis:46px!important}.role-parent .top-child-copy select,.role-admin .top-child-copy select{max-width:105px!important;font-size:13px!important}.role-parent .bell,.role-admin .bell{display:none!important}
 .mobile-nav:not(.student-mobile-nav){grid-template-columns:repeat(6,minmax(0,1fr))!important}.mobile-nav:not(.student-mobile-nav) a{min-width:0!important;padding-inline:1px!important}.mobile-nav:not(.student-mobile-nav) small{font-size:8px!important;white-space:nowrap!important;line-height:1!important}.mobile-nav:not(.student-mobile-nav) span{font-size:17px!important}
 .planner-class-grid{grid-template-columns:1fr!important}.planner-class{grid-template-columns:72px 1fr!important;overflow:hidden!important}.planner-class-art{width:72px!important;height:58px!important;object-fit:cover!important}.mission-day-card header{display:grid!important;grid-template-columns:1fr!important}.mission-day-stats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.mission-day-stats span{min-width:0!important}.week-nav,.mission-week-nav{font-size:10px!important;gap:4px!important}.missions-parent-picker{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.mission-picker-actions{display:grid!important;grid-template-columns:1fr 1fr!important}
 .course-card img,.lesson-card img{object-position:center!important}.course-card{overflow:hidden!important}
 .kid-streak-card{min-height:66vh!important;padding:32px 18px 22px!important}.kid-streak-trophy{font-size:100px!important}
}
@media(max-width:760px){
 .role-parent .course-card img,.role-admin .course-card img,.role-student .course-card img{object-fit:contain!important;background:#0b0a09!important}
 .family-glance-grid{grid-template-columns:1fr!important}.family-glance-kid{min-width:0!important}.family-glance-id{min-width:0!important}.family-glance-id b{font-size:15px!important}.family-glance-stats{display:flex!important;gap:8px!important;flex-wrap:wrap!important}
}
/* A bright reading surface inside the dark shell: easier on long passages without turning PSA cartoony. */
.role-student .readalong-page .chapter-story{background:#f3eee4!important;color:#1c1815!important;border:1px solid #d8ccbd!important;border-radius:12px!important;padding:clamp(16px,3vw,28px)!important;box-shadow:inset 0 1px #fff,0 10px 30px #0004!important}
.role-student .readalong-page .chapter-story:first-letter{color:#b23d31!important}.role-student .readalong-page .chapter-intro{color:#c7bab1!important}
.v17-rank-callout{margin:14px 0;padding:18px;border-color:#a56a28!important;background:radial-gradient(circle at 100% 0,#3a2610,#100c09 55%)!important}.v17-rank-callout h2{font-size:clamp(26px,5vw,46px);margin:6px 0}.v17-rank-callout p{color:#d3c5b9}
@media(max-width:560px){
 .role-parent .topbar .search-wrap,.role-admin .topbar .search-wrap{display:none!important}.role-parent .topbar,.role-admin .topbar{justify-content:flex-end!important}.role-parent .top-child-switch,.role-admin .top-child-switch{padding:3px 6px!important;border:1px solid #58433a!important;border-radius:10px!important;background:#120e0d!important}.role-parent .top-child-copy small,.role-admin .top-child-copy small{display:block!important;color:#e47a65!important;font-size:8px!important}.role-parent .top-child-copy select,.role-admin .top-child-copy select{max-width:150px!important;font-size:15px!important}.role-parent .top-child-switch .kid-avatar,.role-admin .top-child-switch .kid-avatar{width:52px!important;height:52px!important;flex-basis:52px!important}
}
.planner-load-guide{margin:12px 0 3px;padding:10px 12px;border:1px dashed #5b463d;border-radius:8px;background:#110d0c;display:flex;gap:10px;align-items:flex-start}.planner-load-guide b{flex:0 0 auto;font:900 9px var(--mono);letter-spacing:1px;color:#ff7b61}.planner-load-guide span{font-size:12px;line-height:1.45;color:#bcaea6}
@media(max-width:600px){.planner-load-guide{display:block}.planner-load-guide b{display:block;margin-bottom:5px}.planner-load-guide span{font-size:13px}}

/* PSA V17.0.1 HOTFIX // Family at-a-glance avatar containment */
.family-glance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.family-glance-kid{display:grid;gap:10px;min-width:0;padding:12px 14px;border:1px solid #3e332f;border-radius:10px;background:#100d0c;color:#f6efe9;text-decoration:none;overflow:hidden}
.family-glance-kid.active{border-color:#a64b3d;background:#160f0d;box-shadow:inset 3px 0 0 #e15a48}
.family-glance-id{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:center;min-width:0}
.family-glance-avatar.kid-avatar{display:block!important;width:52px!important;height:52px!important;min-width:52px!important;max-width:52px!important;min-height:52px!important;max-height:52px!important;flex:0 0 52px!important;border-radius:50%!important;overflow:hidden!important}
.family-glance-avatar.kid-avatar img{display:block!important;width:52px!important;height:52px!important;max-width:52px!important;max-height:52px!important;object-fit:cover!important;object-position:center!important}
.family-glance-id>div{min-width:0}.family-glance-id b{display:block;font-size:16px!important;line-height:1.05;overflow-wrap:anywhere}.family-glance-id small{display:block;margin-top:3px;color:#aa9d95;font-size:11px!important;line-height:1.35}
.family-glance-stats{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px!important}.family-glance-stats span{display:block;padding:8px;border:1px solid #342c28;border-radius:7px;background:#0b0908;color:#a99d96;font-size:10px;line-height:1.25}.family-glance-stats b{display:block;color:#fff;font-size:18px;line-height:1}
.family-next{display:block;color:#d87865;font:800 9px var(--mono);letter-spacing:.5px;line-height:1.35;white-space:normal;overflow-wrap:anywhere}
@media(max-width:900px){.family-glance-grid{grid-template-columns:1fr!important}}
