:root{--student-ui-font:"Microsoft YaHei UI","Microsoft YaHei","PingFang SC","Noto Sans CJK SC",system-ui,-apple-system,"Segoe UI",sans-serif}
.student-daily-shell,.student-game-shell,.student-verify-shell,.student-makeup-shell{font-family:var(--student-ui-font);font-synthesis:none}
.student-daily-shell,.student-game-shell{max-width:1180px}.student-daily-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.student-daily-head h1{margin:.15em 0}.student-daily-profile{display:grid;grid-template-columns:1fr auto;gap:16px;padding:18px;border:1px solid #d8e4eb;border-radius:18px;background:linear-gradient(145deg,#fff,#f7fafc);box-shadow:0 10px 24px rgba(43,72,95,.08)}.student-daily-profile h2{margin:7px 0 3px;font-size:32px}.student-daily-profile p{margin:0;color:#718497}.student-daily-profile.tier-gold{background:linear-gradient(145deg,#fffdf7,#fff3c9)}.student-daily-profile.tier-ruby{background:linear-gradient(145deg,#fffafb,#ffe8ed)}.tier-pill{display:inline-flex;padding:5px 10px;border-radius:999px;background:#edf1f4;color:#5e6e7b;font-size:12px;font-weight:900}.tier-gold .tier-pill{background:#ffe7a1;color:#7b5c16}.tier-ruby .tier-pill{background:#ffd7df;color:#983b51}.profile-numbers{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px;align-self:center}.profile-numbers span{display:grid;gap:3px;min-width:94px;padding:10px;border-radius:12px;background:rgba(255,255,255,.7);color:#718497;text-align:center;font-size:11px}.profile-numbers b{font-size:24px;color:#28506c}.badge-wall{display:flex;gap:12px;align-items:center;margin:12px 0;padding:12px 14px;border:1px solid #dde6ec;border-radius:14px;background:#fbfcfd}.badge-wall>div{display:flex;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef4f7;color:#4c6578;font-size:11px;font-weight:900}.badge-1{background:#e5f6ec;color:#337458}.badge-2{background:#dff6e7;color:#2c7753}.badge-3{background:#fff0c8;color:#896414}.badge-4{background:#ffe2e8;color:#9f4055}.badge-5{background:#26252a;color:#f2d98b}.today-checkin{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 16px;border:1px solid #dce5eb;border-radius:15px;background:#f8fafc}.today-checkin.done{border-color:#b8decc;background:#edf9f4}.today-checkin strong,.today-checkin span{display:block}.today-checkin span{margin-top:3px;color:#728697;font-size:12px}.today-checkin button,.challenge-card button,.challenge-result button,.history-list button,.game-start button,.game-card button,.game-result button{border:1px solid #b9cddd;border-radius:10px;background:#fff;color:#285b7f;padding:9px 13px;font-weight:800;cursor:pointer}.today-checkin button:not(:disabled){background:#2f789e;color:#fff;border-color:#2f789e}.challenge-card,.challenge-result{margin-top:14px;padding:18px;border:1px solid #d7e3eb;border-radius:17px;background:#fff}.challenge-progress{display:flex;justify-content:space-between;align-items:center;color:#5e7588;font-weight:800}.countdown b{display:inline-grid;width:44px;height:44px;place-items:center;border-radius:50%;background:#eef5f8;color:#1f628c;font-size:21px}.challenge-note{color:#718596}.challenge-prompt{margin:18px 0;padding:22px;border-radius:14px;background:#f3f7fa;color:#203d53;text-align:center;font-size:clamp(25px,4vw,44px);font-weight:900}.challenge-card form{display:grid;grid-template-columns:1fr auto;gap:8px}.challenge-card input,.game-card input{min-height:46px;padding:9px 12px;border:1px solid #cbd9e3;border-radius:10px;font-size:20px}.challenge-result.success{border-color:#b6dfcb;background:#eff9f4}.challenge-result.fail{border-color:#e8c4c4;background:#fff7f7}.student-history{margin-top:18px}.history-head{display:flex;justify-content:space-between}.history-list{display:grid;gap:8px}.history-list article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 13px;border:1px solid #e0e8ee;border-radius:12px;background:#fff}.history-list article strong,.history-list article span{display:block}.history-list article span{margin-top:3px;color:#7a8d9b;font-size:11px}.history-list article>div:last-child{display:flex;gap:6px}.game-start{display:grid;place-items:center;min-height:220px;border:1px dashed #bfd2df;border-radius:18px;background:#f8fbfd}.game-start button{font-size:20px;padding:14px 24px;background:#2d789e;color:#fff}.game-card{padding:20px;border:1px solid #d8e4eb;border-radius:18px;background:#fff;text-align:center}.game-card>div{display:flex;justify-content:space-between;color:#748899}.game-card>div b{font-size:22px;color:#1f638c}.game-card p{font-size:46px;font-weight:900;color:#23485f}.game-card form{display:grid;grid-template-columns:1fr auto;gap:8px;max-width:520px;margin:auto}.game-result{display:flex;gap:14px;align-items:center;justify-content:center;min-height:160px;border-radius:18px;background:#f8fafc}.game-result strong{font-size:25px}.game-result b{font-size:30px;color:#2f7c5f}.game-ranking{margin-top:18px;padding:16px;border:1px solid #dce5eb;border-radius:16px;background:#fff}.game-ranking ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.game-ranking li{display:flex;justify-content:space-between;padding:9px 11px;border-radius:9px;background:#f7fafc}.game-ranking li b{display:inline-block;min-width:34px;color:#648197}@media(max-width:760px){.student-daily-head,.today-checkin,.history-list article{align-items:stretch;flex-direction:column}.student-daily-profile{grid-template-columns:1fr}.profile-numbers{grid-template-columns:repeat(3,1fr)}.challenge-card form,.game-card form{grid-template-columns:1fr}.history-list article>div:last-child{flex-wrap:wrap}}.student-history-dialog{width:min(820px,94vw);max-height:82vh;padding:22px;border:0;border-radius:16px;box-shadow:0 26px 80px rgba(25,45,60,.3)}.student-history-dialog::backdrop{background:rgba(31,48,62,.38);backdrop-filter:blur(3px)}.history-close{float:right;width:36px;height:36px;border:0;border-radius:50%;background:#edf3f6;color:#536b7d;font-size:20px}.history-question-list{display:grid;gap:7px;margin:14px 0 0;padding-left:24px}.history-question-list li{padding:9px 11px;border:1px solid #e0e8ed;border-radius:10px;background:#fafcfd}.history-question-list li span,.history-question-list li b{display:block}.history-question-list li b{margin-top:4px;color:#2d775c;font-size:12px}
/* Deployable MVP: mobile-first student home refresh */
.student-daily-shell{
 position:relative;overflow:hidden;max-width:1080px;padding:26px!important;border:1px solid #d9e8ee!important;border-radius:24px!important;
 background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(241,250,249,.96) 48%,rgba(244,248,255,.98))!important;
 box-shadow:0 20px 55px rgba(52,91,106,.10)
}
.student-daily-shell::before{content:"";position:absolute;width:340px;height:340px;right:-180px;top:-190px;border-radius:50%;background:radial-gradient(circle,rgba(116,208,196,.20),rgba(116,208,196,0) 68%);pointer-events:none}
.student-daily-head{position:relative}.student-daily-head>div>p:first-child{letter-spacing:.16em;color:#62a39a;font-weight:850}
.student-daily-head h1{font-size:clamp(30px,4vw,46px);color:#183f48}
.student-daily-profile{border-color:#d9eaec;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(237,249,248,.93));box-shadow:0 14px 35px rgba(58,112,115,.10)}
.student-daily-profile.tier-gold{background:linear-gradient(145deg,#fffefa,#fff6d8 56%,#fffdf5)}
.student-daily-profile.tier-ruby{background:linear-gradient(145deg,#fffdfd,#ffedf1 56%,#fff9fa)}
.today-checkin{border-color:#d7e8ea;background:rgba(255,255,255,.78);box-shadow:0 8px 24px rgba(52,91,106,.06)}
.today-checkin button:not(:disabled){min-width:180px;min-height:50px;border-radius:14px;background:linear-gradient(135deg,#3a9e91,#397fa3);border:0;box-shadow:0 10px 22px rgba(56,137,143,.20);font-size:15px}
.challenge-card,.challenge-result,.history-list article{border-color:#dbe9ed;box-shadow:0 8px 20px rgba(52,91,106,.06)}
.challenge-prompt{background:linear-gradient(145deg,#f2fbfa,#f2f7fc);color:#173f50}
@media(max-width:760px){
 .student-daily-shell{margin:0!important;padding:18px 14px 24px!important;border-radius:20px!important}
 .student-daily-head{gap:10px;margin-bottom:12px}.student-daily-head>a{align-self:flex-start}
 .student-daily-head h1{font-size:30px;margin:3px 0 5px}.student-daily-head>div>p:not(:first-child){font-size:13px;line-height:1.6}
 .student-daily-profile{padding:18px 16px;border-radius:20px}.student-daily-profile h2{font-size:30px}
 .profile-numbers{grid-template-columns:1fr 1fr}.profile-numbers span{min-width:0;padding:11px 8px}.profile-numbers span:nth-child(3){display:none}
 .badge-wall{align-items:flex-start;flex-direction:column;border-radius:17px;background:rgba(255,255,255,.72)}
 .today-checkin{padding:17px 15px;border-radius:18px}.today-checkin button{width:100%;min-width:0;min-height:54px;font-size:17px}
 .challenge-card,.challenge-result{padding:18px 14px;border-radius:20px}.challenge-progress{font-size:13px}.countdown b{width:50px;height:50px;font-size:23px}
 .challenge-prompt{margin:16px 0;padding:24px 12px;border-radius:18px;font-size:clamp(30px,10vw,44px)}
 .challenge-card input{min-height:54px;font-size:24px;text-align:center}.challenge-card button{min-height:50px}
 .student-history{margin-top:22px}.history-head h2{font-size:21px}.history-list article{padding:14px;border-radius:16px}
 .history-list article>div:last-child{display:grid;grid-template-columns:1fr 1fr;width:100%}.history-list button{min-height:42px}
}
@media(max-width:420px){
 .student-daily-shell{padding:16px 12px 22px!important}
 .student-daily-head h1{font-size:27px}.student-daily-head>a{font-size:12px}
 .profile-numbers b{font-size:25px}.tier-pill{font-size:13px;padding:6px 11px}
 .history-list article>div:last-child{grid-template-columns:1fr}
}

/* G4/G5 student component visual blocks; preserve existing base rules above. */
.student-daily-shell,.student-game-shell{max-width:1180px}.student-daily-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px}.student-daily-head h1{margin:.15em 0}.student-daily-profile{display:grid;grid-template-columns:1fr auto;gap:16px;padding:18px;border:1px solid #d8e4eb;border-radius:18px;background:linear-gradient(145deg,#fff,#f7fafc);box-shadow:0 10px 24px rgba(43,72,95,.08)}.student-daily-profile h2{margin:7px 0 3px;font-size:32px}.student-daily-profile p{margin:0;color:#718497}.student-daily-profile.tier-gold{background:linear-gradient(145deg,#fffdf7,#fff3c9)}.student-daily-profile.tier-ruby{background:linear-gradient(145deg,#fffafb,#ffe8ed)}.tier-pill{display:inline-flex;padding:5px 10px;border-radius:999px;background:#edf1f4;color:#5e6e7b;font-size:12px;font-weight:900}.tier-gold .tier-pill{background:#ffe7a1;color:#7b5c16}.tier-ruby .tier-pill{background:#ffd7df;color:#983b51}.profile-numbers{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px;align-self:center}.profile-numbers span{display:grid;gap:3px;min-width:94px;padding:10px;border-radius:12px;background:rgba(255,255,255,.7);color:#718497;text-align:center;font-size:11px}.profile-numbers b{font-size:24px;color:#28506c}.badge-wall{display:flex;gap:12px;align-items:center;margin:12px 0;padding:12px 14px;border:1px solid #dde6ec;border-radius:14px;background:#fbfcfd}.badge-wall>div{display:flex;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef4f7;color:#4c6578;font-size:11px;font-weight:900}.badge-1{background:#e5f6ec;color:#337458}.badge-2{background:#dff6e7;color:#2c7753}.badge-3{background:#fff0c8;color:#896414}.badge-4{background:#ffe2e8;color:#9f4055}.badge-5{background:#26252a;color:#f2d98b}.today-checkin{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 16px;border:1px solid #dce5eb;border-radius:15px;background:#f8fafc}.today-checkin.done{border-color:#b8decc;background:#edf9f4}.today-checkin strong,.today-checkin span{display:block}.today-checkin span{margin-top:3px;color:#728697;font-size:12px}.today-checkin button,.challenge-card button,.challenge-result button,.history-list button,.game-start button,.game-card button,.game-result button{border:1px solid #b9cddd;border-radius:10px;background:#fff;color:#285b7f;padding:9px 13px;font-weight:800;cursor:pointer}.today-checkin button:not(:disabled){background:#2f789e;color:#fff;border-color:#2f789e}.challenge-card,.challenge-result{margin-top:14px;padding:18px;border:1px solid #d7e3eb;border-radius:17px;background:#fff}.challenge-progress{display:flex;justify-content:space-between;align-items:center;color:#5e7588;font-weight:800}.countdown b{display:inline-grid;width:44px;height:44px;place-items:center;border-radius:50%;background:#eef5f8;color:#1f628c;font-size:21px}.challenge-note{color:#718596}.challenge-prompt{margin:18px 0;padding:22px;border-radius:14px;background:#f3f7fa;color:#203d53;text-align:center;font-size:clamp(25px,4vw,44px);font-weight:900}.challenge-card form{display:grid;grid-template-columns:1fr auto;gap:8px}.challenge-card input,.game-card input{min-height:46px;padding:9px 12px;border:1px solid #cbd9e3;border-radius:10px;font-size:20px}.challenge-result.success{border-color:#b6dfcb;background:#eff9f4}.challenge-result.fail{border-color:#e8c4c4;background:#fff7f7}.student-history{margin-top:18px}.history-head{display:flex;justify-content:space-between}.history-list{display:grid;gap:8px}.history-list article{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 13px;border:1px solid #e0e8ee;border-radius:12px;background:#fff}.history-list article strong,.history-list article span{display:block}.history-list article span{margin-top:3px;color:#7a8d9b;font-size:11px}.history-list article>div:last-child{display:flex;gap:6px}.game-start{display:grid;place-items:center;min-height:220px;border:1px dashed #bfd2df;border-radius:18px;background:#f8fbfd}.game-start button{font-size:20px;padding:14px 24px;background:#2d789e;color:#fff}.game-card{padding:20px;border:1px solid #d8e4eb;border-radius:18px;background:#fff;text-align:center}.game-card>div{display:flex;justify-content:space-between;color:#748899}.game-card>div b{font-size:22px;color:#1f638c}.game-card p{font-size:46px;font-weight:900;color:#23485f}.game-card form{display:grid;grid-template-columns:1fr auto;gap:8px;max-width:520px;margin:auto}.game-result{display:flex;gap:14px;align-items:center;justify-content:center;min-height:160px;border-radius:18px;background:#f8fafc}.game-result strong{font-size:25px}.game-result b{font-size:30px;color:#2f7c5f}.game-ranking{margin-top:18px;padding:16px;border:1px solid #dce5eb;border-radius:16px;background:#fff}.game-ranking ol{display:grid;gap:6px;margin:0;padding:0;list-style:none}.game-ranking li{display:flex;justify-content:space-between;padding:9px 11px;border-radius:9px;background:#f7fafc}.game-ranking li b{display:inline-block;min-width:34px;color:#648197}@media(max-width:760px){.student-daily-head,.today-checkin,.history-list article{align-items:stretch;flex-direction:column}.student-daily-profile{grid-template-columns:1fr}.profile-numbers{grid-template-columns:repeat(3,1fr)}.challenge-card form,.game-card form{grid-template-columns:1fr}.history-list article>div:last-child{flex-wrap:wrap}}.student-history-dialog{width:min(820px,94vw);max-height:82vh;padding:22px;border:0;border-radius:16px;box-shadow:0 26px 80px rgba(25,45,60,.3)}.student-history-dialog::backdrop{background:rgba(31,48,62,.38);backdrop-filter:blur(3px)}.history-close{float:right;width:36px;height:36px;border:0;border-radius:50%;background:#edf3f6;color:#536b7d;font-size:20px}.history-question-list{display:grid;gap:7px;margin:14px 0 0;padding-left:24px}.history-question-list li{padding:9px 11px;border:1px solid #e0e8ed;border-radius:10px;background:#fafcfd}.history-question-list li span,.history-question-list li b{display:block}.history-question-list li b{margin-top:4px;color:#2d775c;font-size:12px}
/* Deployable MVP: mobile-first student home refresh */
.student-daily-shell{
 position:relative;overflow:hidden;max-width:1080px;padding:26px!important;border:1px solid #d9e8ee!important;border-radius:24px!important;
 background:linear-gradient(155deg,rgba(255,255,255,.98),rgba(241,250,249,.96) 48%,rgba(244,248,255,.98))!important;
 box-shadow:0 20px 55px rgba(52,91,106,.10)
}
.student-daily-shell::before{content:"";position:absolute;width:340px;height:340px;right:-180px;top:-190px;border-radius:50%;background:radial-gradient(circle,rgba(116,208,196,.20),rgba(116,208,196,0) 68%);pointer-events:none}
.student-daily-head{position:relative}.student-daily-head>div>p:first-child{letter-spacing:.16em;color:#62a39a;font-weight:850}
.student-daily-head h1{font-size:clamp(30px,4vw,46px);color:#183f48}
.student-daily-profile{border-color:#d9eaec;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(237,249,248,.93));box-shadow:0 14px 35px rgba(58,112,115,.10)}
.student-daily-profile.tier-gold{background:linear-gradient(145deg,#fffefa,#fff6d8 56%,#fffdf5)}
.student-daily-profile.tier-ruby{background:linear-gradient(145deg,#fffdfd,#ffedf1 56%,#fff9fa)}
.today-checkin{border-color:#d7e8ea;background:rgba(255,255,255,.78);box-shadow:0 8px 24px rgba(52,91,106,.06)}
.today-checkin button:not(:disabled){min-width:180px;min-height:50px;border-radius:14px;background:linear-gradient(135deg,#3a9e91,#397fa3);border:0;box-shadow:0 10px 22px rgba(56,137,143,.20);font-size:15px}
.challenge-card,.challenge-result,.history-list article{border-color:#dbe9ed;box-shadow:0 8px 20px rgba(52,91,106,.06)}
.challenge-prompt{background:linear-gradient(145deg,#f2fbfa,#f2f7fc);color:#173f50}
@media(max-width:760px){
 .student-daily-shell{margin:0!important;padding:18px 14px 24px!important;border-radius:20px!important}
 .student-daily-head{gap:10px;margin-bottom:12px}.student-daily-head>a{align-self:flex-start}
 .student-daily-head h1{font-size:30px;margin:3px 0 5px}.student-daily-head>div>p:not(:first-child){font-size:13px;line-height:1.6}
 .student-daily-profile{padding:18px 16px;border-radius:20px}.student-daily-profile h2{font-size:30px}
 .profile-numbers{grid-template-columns:1fr 1fr}.profile-numbers span{min-width:0;padding:11px 8px}.profile-numbers span:nth-child(3){display:none}
 .badge-wall{align-items:flex-start;flex-direction:column;border-radius:17px;background:rgba(255,255,255,.72)}
 .today-checkin{padding:17px 15px;border-radius:18px}.today-checkin button{width:100%;min-width:0;min-height:54px;font-size:17px}
 .challenge-card,.challenge-result{padding:18px 14px;border-radius:20px}.challenge-progress{font-size:13px}.countdown b{width:50px;height:50px;font-size:23px}
 .challenge-prompt{margin:16px 0;padding:24px 12px;border-radius:18px;font-size:clamp(30px,10vw,44px)}
 .challenge-card input{min-height:54px;font-size:24px;text-align:center}.challenge-card button{min-height:50px}
 .student-history{margin-top:22px}.history-head h2{font-size:21px}.history-list article{padding:14px;border-radius:16px}
 .history-list article>div:last-child{display:grid;grid-template-columns:1fr 1fr;width:100%}.history-list button{min-height:42px}
}
@media(max-width:420px){
 .student-daily-shell{padding:16px 12px 22px!important}
 .student-daily-head h1{font-size:27px}.student-daily-head>a{font-size:12px}
 .profile-numbers b{font-size:25px}.tier-pill{font-size:13px;padding:6px 11px}
 .history-list article>div:last-child{grid-template-columns:1fr}
}


/* G3 computation-power / phone portrait pass */
.student-cp-card{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.4fr);gap:12px;align-items:center;margin:12px 0;padding:15px 16px;border:1px solid #d8e7ea;border-radius:17px;background:rgba(255,255,255,.82);box-shadow:0 8px 22px rgba(45,88,101,.06)}
.student-cp-head span,.student-cp-head small{display:block}.student-cp-head span{color:#6e8492;font-size:11px;font-weight:850;letter-spacing:.06em}.student-cp-head strong{display:block;margin:2px 0 4px;color:#1e5f77;font-size:27px}.student-cp-head small{color:#788b98;line-height:1.45}
.student-cp-parts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.student-cp-parts span{display:grid;gap:3px;padding:10px 8px;border-radius:12px;background:#f1f7f8;color:#6b7f8d;text-align:center;font-size:10px}.student-cp-parts b{color:#284f65;font-size:19px}
.profile-numbers .is-cp{background:linear-gradient(145deg,#e8f7f5,#eef5fb);border:1px solid #cce6e4}
.student-challenge-entry{white-space:nowrap}
.survival-plan-note{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:0 0 14px;padding:12px 14px;border:1px solid #d8e6ec;border-radius:14px;background:linear-gradient(135deg,#edf8f6,#f3f7fb)}
.survival-plan-note strong{color:#27685f}.survival-plan-note span{color:#6f8290;font-size:12px;line-height:1.5}
@media(max-width:760px){
 .student-game-shell{max-width:520px;margin:0 auto!important;padding:16px 12px 26px!important}
 .student-cp-card{grid-template-columns:1fr;padding:14px;border-radius:18px}
 .student-cp-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.student-cp-head small{max-width:58%;font-size:10px;text-align:right}
 .student-cp-head strong{font-size:26px}.student-cp-parts{gap:6px}.student-cp-parts span{padding:9px 5px}
 .profile-numbers{grid-template-columns:repeat(3,1fr)!important}.profile-numbers span:nth-child(3){display:grid!important}
 .survival-plan-note{align-items:flex-start;flex-direction:column;padding:13px}
 .game-start{min-height:180px}.game-start button{width:min(100%,320px);min-height:58px;font-size:19px}
 .game-card{padding:18px 13px;border-radius:20px}.game-card>div{align-items:center}.game-card>div b{display:grid;place-items:center;min-width:54px;height:54px;border-radius:50%;background:#eaf4f7;font-size:24px}
 .game-card p{margin:24px 0;font-size:clamp(38px,12vw,56px);line-height:1.1}
 .game-card input{min-height:58px;font-size:26px;text-align:center}.game-card button{min-height:54px;font-size:17px}
 .game-result{align-items:stretch;flex-direction:column;min-height:0;padding:22px 16px;text-align:center}.game-result button{min-height:52px}
 .game-ranking{padding:14px 10px;border-radius:18px}.game-ranking li{padding:11px 9px}
}
@media(max-width:420px){
 .student-cp-head{display:block}.student-cp-head small{max-width:none;margin-top:3px;text-align:left}
 .student-cp-parts b{font-size:18px}.profile-numbers{gap:6px!important}.profile-numbers span{font-size:9px!important}.profile-numbers b{font-size:21px!important}
 .student-challenge-entry{width:100%;text-align:center}
}


/* G3 review pass: clear CP progress + restrained tier effects */
.student-daily-profile{position:relative;isolation:isolate;overflow:hidden;--tier-accent:#7e94a7;--tier-soft:#eef3f6;--tier-glow:rgba(111,139,160,.18)}
.student-daily-profile.tier-silver{--tier-accent:#748fa5;--tier-soft:#eef4f7;--tier-glow:rgba(112,144,166,.22);background:linear-gradient(145deg,#fbfdff,#edf3f7 58%,#f8fbfd)!important;border-color:#cbd8e2!important}
.student-daily-profile.tier-gold{--tier-accent:#bf8a18;--tier-soft:#fff4c7;--tier-glow:rgba(227,174,54,.28);background:linear-gradient(145deg,#fffefa,#fff3c4 58%,#fffaf0)!important;border-color:#e7cd81!important;box-shadow:0 15px 38px rgba(190,137,29,.16)!important}
.student-daily-profile.tier-ruby{--tier-accent:#b83d5a;--tier-soft:#ffe2e8;--tier-glow:rgba(197,59,91,.28);background:linear-gradient(145deg,#fffdfd,#ffe4ea 58%,#fff8fa)!important;border-color:#e8a7b5!important;box-shadow:0 16px 40px rgba(173,45,76,.16)!important}
.student-profile-main,.profile-numbers{position:relative;z-index:2}
.student-tier-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tier-effect-label{display:inline-flex;align-items:center;min-height:24px;padding:4px 8px;border:1px solid color-mix(in srgb,var(--tier-accent) 24%,transparent);border-radius:999px;background:rgba(255,255,255,.55);color:var(--tier-accent);font-size:10px;font-weight:850}
.tier-special-effect{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.tier-silver .tier-special-effect::before{content:"";position:absolute;width:46%;height:180%;left:-36%;top:-45%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:tierSilverSweep 7s ease-in-out infinite}
.tier-gold .tier-special-effect::before{content:"";position:absolute;width:58%;height:200%;left:-48%;top:-55%;transform:rotate(17deg);background:linear-gradient(90deg,transparent,rgba(255,236,161,.78),transparent);animation:tierGoldSweep 5.5s ease-in-out infinite}
.tier-gold .tier-special-effect::after{content:"";position:absolute;width:220px;height:220px;right:-80px;top:-110px;border-radius:50%;background:radial-gradient(circle,rgba(255,211,82,.28),rgba(255,211,82,0) 68%)}
.tier-ruby .tier-special-effect::before{content:"✦  ·  ✧";position:absolute;right:24px;top:18px;color:rgba(190,46,83,.36);font-size:19px;letter-spacing:10px;animation:tierRubySparkle 3.2s ease-in-out infinite}
.tier-ruby .tier-special-effect::after{content:"";position:absolute;width:250px;height:250px;right:-95px;top:-120px;border-radius:50%;background:radial-gradient(circle,rgba(226,75,112,.24),rgba(226,75,112,0) 68%)}
@keyframes tierSilverSweep{0%,64%,100%{transform:translateX(0) rotate(18deg);opacity:.2}78%{transform:translateX(340%) rotate(18deg);opacity:.72}}
@keyframes tierGoldSweep{0%,58%,100%{transform:translateX(0) rotate(17deg);opacity:.12}76%{transform:translateX(330%) rotate(17deg);opacity:.85}}
@keyframes tierRubySparkle{0%,100%{opacity:.28;transform:scale(.92)}48%{opacity:.8;transform:scale(1.08)}}

.student-cp-card{--tier-accent:#748fa5;--tier-track:#dce5eb;display:block!important;position:relative;overflow:hidden}
.student-cp-card.tier-gold{--tier-accent:#bd8616;--tier-track:#efe2b9}
.student-cp-card.tier-ruby{--tier-accent:#b63b59;--tier-track:#efd2d9}
.student-cp-overview{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}
.student-cp-overview>div>span{display:block;color:#748795;font-size:10px;font-weight:850;letter-spacing:.06em}
.student-cp-overview>div>strong{display:block;margin-top:3px;color:#24475d;font-size:21px}
.student-cp-overview>b{color:var(--tier-accent);font-size:15px;white-space:nowrap}
.student-cp-track{position:relative;height:22px;margin:10px 0 8px;overflow:hidden;border-radius:999px;background:var(--tier-track);box-shadow:inset 0 1px 2px rgba(27,56,73,.10)}
.student-cp-track>i{display:block;width:var(--cp-progress);height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--tier-accent) 72%,#fff),var(--tier-accent));box-shadow:0 0 14px color-mix(in srgb,var(--tier-accent) 34%,transparent);transition:width .8s cubic-bezier(.2,.8,.2,1)}
.student-cp-track>span{position:absolute;inset:0;display:grid;place-items:center;color:#173b4f;font-size:10px;font-weight:900;text-shadow:0 1px 1px rgba(255,255,255,.75)}
.student-cp-next{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}
.student-cp-next strong{color:#2d5065;font-size:12px}
.student-cp-next span{color:#7b8d9b;font-size:10px;text-align:right}
.student-cp-parts{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.student-cp-part{display:grid;gap:6px;padding:10px 11px;border:1px solid #e0e8ed;border-radius:12px;background:#f8fbfc}
.student-cp-part>div:first-child{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label share" "value value";gap:2px 8px;align-items:center}
.student-cp-part span{grid-area:label;color:#6e8291;font-size:10px;font-weight:800}
.student-cp-part strong{grid-area:value;color:#244c62;font-size:16px}
.student-cp-part small{grid-area:share;color:#8b99a4;font-size:9px;font-weight:800}
.student-cp-mini-track{height:6px;overflow:hidden;border-radius:999px;background:#e4ebef}
.student-cp-mini-track i{display:block;width:var(--cp-part);height:100%;border-radius:inherit;transition:width .7s ease}
.student-cp-part.cp-accuracy .student-cp-mini-track i{background:#2f789e}
.student-cp-part.cp-streak .student-cp-mini-track i{background:#4d9b79}
.student-cp-part.cp-game .student-cp-mini-track i{background:#a77c3a}
.profile-numbers .is-cp{border-color:color-mix(in srgb,var(--tier-accent) 28%,#d9e5ea)!important;background:rgba(255,255,255,.68)!important}
.profile-numbers .is-cp b{color:var(--tier-accent)!important}

@media(max-width:760px){
 .student-cp-overview{align-items:flex-start}.student-cp-overview>div>strong{font-size:19px}.student-cp-overview>b{font-size:13px}
 .student-cp-next{display:grid;gap:3px}.student-cp-next span{text-align:left}
 .student-cp-parts{grid-template-columns:1fr!important}
 .student-cp-part{grid-template-columns:1fr;min-height:0}
 .student-cp-track{height:20px}
}
@media(max-width:420px){
 .student-tier-row{gap:6px}.tier-effect-label{font-size:9px}
 .student-cp-overview{display:block}.student-cp-overview>b{display:block;margin-top:4px}
}
@media(prefers-reduced-motion:reduce){
 .tier-special-effect::before,.tier-special-effect::after{animation:none!important}
 .student-cp-track>i,.student-cp-mini-track i{transition:none!important}
}


/* Student game identity pass: math arena, HUD cards, mission language */
.student-daily-shell{
 --arena-ink:#173847;--arena-line:rgba(40,92,111,.08);--arena-glow:rgba(55,143,151,.16);
 background:
  linear-gradient(rgba(255,255,255,.88),rgba(244,250,249,.92)),
  linear-gradient(90deg,var(--arena-line) 1px,transparent 1px),
  linear-gradient(var(--arena-line) 1px,transparent 1px)!important;
 background-size:auto,28px 28px,28px 28px!important;
}
.student-daily-shell::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 0 68%,rgba(61,143,151,.05) 68% 70%,transparent 70% 100%)}
.student-math-field{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;color:#2e6f7d;font-family:Consolas,"SFMono-Regular",monospace;font-weight:800}
.student-math-field span{position:absolute;opacity:.075;transform:rotate(-7deg);font-size:clamp(22px,3vw,42px);letter-spacing:.03em}
.student-math-field span:nth-child(1){left:3%;top:18%}.student-math-field span:nth-child(2){right:3%;top:23%;transform:rotate(8deg)}
.student-math-field span:nth-child(3){left:8%;top:51%;transform:rotate(4deg)}.student-math-field span:nth-child(4){right:7%;top:47%;transform:rotate(-6deg)}
.student-math-field span:nth-child(5){left:12%;bottom:12%;transform:rotate(-4deg)}.student-math-field span:nth-child(6){right:11%;bottom:18%;transform:rotate(7deg)}
.student-daily-head,#daily-home,#daily-challenge,#daily-history{position:relative;z-index:2}
.student-daily-head{padding:5px 2px 2px}
.student-daily-head>div>p:first-child{color:#3f8e91!important;text-shadow:0 0 16px rgba(63,142,145,.12)}
.student-daily-head h1{letter-spacing:-.035em}
.student-math-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.student-math-tags span{padding:5px 9px;border:1px solid #d4e5e8;border-radius:999px;background:rgba(255,255,255,.75);color:#527180;font-size:10px;font-weight:850;box-shadow:0 3px 10px rgba(45,90,104,.04)}
.student-challenge-entry{display:inline-flex!important;align-items:center;gap:6px;border-color:#86bcc1!important;background:linear-gradient(135deg,#eaf8f6,#eaf2fa)!important;color:#1d6272!important;box-shadow:0 8px 20px rgba(56,128,139,.10)!important}

.student-daily-profile{min-height:190px;padding:22px 22px 20px!important;border-width:1px!important;border-style:solid!important}
.student-daily-profile::before{content:"";position:absolute;inset:10px;border:1px solid color-mix(in srgb,var(--tier-accent) 18%,transparent);border-radius:14px;pointer-events:none;clip-path:polygon(0 0,42px 0,42px 1px,100% 1px,100% calc(100% - 1px),calc(100% - 42px) calc(100% - 1px),calc(100% - 42px) 100%,0 100%)}
.math-rank-emblem{position:absolute;right:22px;top:18px;z-index:2;display:grid;place-items:center;width:70px;height:70px;border:1px solid color-mix(in srgb,var(--tier-accent) 45%,#fff);border-radius:20px 7px 20px 7px;background:linear-gradient(145deg,rgba(255,255,255,.88),var(--tier-soft));box-shadow:0 10px 22px var(--tier-glow);transform:rotate(2deg)}
.math-rank-emblem::before,.math-rank-emblem::after{content:"";position:absolute;background:var(--tier-accent);opacity:.38}
.math-rank-emblem::before{width:18px;height:2px;top:9px;left:8px}.math-rank-emblem::after{width:2px;height:18px;bottom:8px;right:9px}
.math-rank-emblem span{font-size:26px;font-weight:950;color:var(--tier-accent);line-height:1}.math-rank-emblem small{font:700 8px/1 Consolas,monospace;color:#758a96;letter-spacing:.15em}
.student-profile-main{padding-right:88px}
.student-tier-row{margin-bottom:4px}.tier-pill{box-shadow:inset 0 0 0 1px rgba(255,255,255,.4),0 3px 9px var(--tier-glow)}
.student-task-line{display:inline-flex!important;margin-top:10px!important;padding:7px 10px!important;border-left:3px solid var(--tier-accent);border-radius:0 8px 8px 0;background:rgba(255,255,255,.48);color:#4a6675!important;font-weight:750!important}
.profile-numbers{margin-top:8px}.profile-numbers span{border:1px solid rgba(120,151,164,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.profile-numbers b{font-variant-numeric:tabular-nums}

.student-cp-card{border:1px solid #cfe1e4!important;background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(242,249,249,.92))!important;box-shadow:0 12px 28px rgba(44,91,103,.08)!important}
.student-cp-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--tier-accent),transparent)}
.student-cp-overview>div>span{font-family:Consolas,"SFMono-Regular",monospace;letter-spacing:.08em;color:#4e7e88}
.student-cp-track{height:26px!important;border:1px solid color-mix(in srgb,var(--tier-accent) 20%,#dbe5e8);background:
 repeating-linear-gradient(90deg,rgba(255,255,255,.8) 0 1px,transparent 1px 9.8%),
 var(--tier-track)!important}
.student-cp-track>i{position:relative;overflow:hidden}
.student-cp-track>i::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.5) 44%,transparent 68%);animation:cpEnergySweep 2.8s linear infinite}
@keyframes cpEnergySweep{from{transform:translateX(-130%)}to{transform:translateX(160%)}}
.student-cp-next{padding:0 2px}
.student-cp-parts{position:relative}
.student-cp-part{background:linear-gradient(145deg,#fbfdfe,#f3f8f9)!important;box-shadow:inset 0 1px 0 #fff}
.student-cp-part.cp-accuracy::before,.student-cp-part.cp-streak::before,.student-cp-part.cp-game::before{display:block;margin-bottom:1px;color:#7a8f9a;font:800 9px/1 Consolas,monospace;letter-spacing:.08em}
.student-cp-part.cp-accuracy::before{content:"ACCURACY"}.student-cp-part.cp-streak::before{content:"COMBO"}.student-cp-part.cp-game::before{content:"SPEED"}
.math-formula-ribbon{display:flex;align-items:center;gap:7px;margin-top:12px;padding:8px 10px;border-top:1px dashed #d5e3e7;color:#5d7986}
.math-formula-ribbon span{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:#edf5f6;color:#2e6f7d;font-size:16px;font-weight:950}
.math-formula-ribbon i{flex:1;height:1px;background:linear-gradient(90deg,#9dc8ca,transparent)}
.math-formula-ribbon b{color:#68828e;font-size:9px;letter-spacing:.08em}

.badge-wall{position:relative;overflow:hidden;border-style:dashed!important;background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(246,250,251,.88))!important}
.badge-wall::before{content:"COMBO";position:absolute;right:12px;top:8px;color:#60818f;font:900 22px/1 Consolas,monospace;opacity:.045;letter-spacing:.12em}

.mission-card{position:relative;display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:14px!important;overflow:hidden;padding:16px!important;border:1px solid #cddfe4!important;background:linear-gradient(135deg,#f8fcfc,#edf7f6 54%,#edf3f9)!important}
.mission-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,#319887,#397fa3)}
.mission-card.done::before{background:linear-gradient(180deg,#3c9a6c,#7fc09f)}
.mission-index{min-width:104px;padding:9px 12px;border-right:1px solid #d9e6e9}
.mission-index span,.mission-index b{display:block}.mission-index span{color:#71909a;font:800 9px/1.2 Consolas,monospace;letter-spacing:.1em}.mission-index b{margin-top:4px;color:#2a5263;font-size:13px}
.mission-copy strong,.mission-copy span,.mission-copy small{display:block}.mission-copy strong{color:#214d5d;font-size:17px}.mission-copy span{margin-top:3px;color:#6c818e;font-size:11px}.mission-copy small{margin-top:7px;color:#3b7f72;font-size:10px;font-weight:800}
.mission-card button{min-width:160px!important;background:linear-gradient(135deg,#2f9486,#397ca0)!important;box-shadow:0 10px 22px rgba(52,130,137,.18)!important}
.mission-card button:not(:disabled)::before{content:"▸";margin-right:5px}
.mission-card button:disabled{background:#dce7e9!important;color:#76909a!important;box-shadow:none!important}

.student-history-kicker{margin:0 0 3px!important;color:#5d8c94!important;font:800 9px/1 Consolas,monospace!important;letter-spacing:.12em!important}
.student-history .history-head{padding:2px 2px 5px}.student-history .history-head h2{margin-top:0}
.history-list article{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff,#f8fbfc)!important}
.history-list article::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#d6e5e8}
.history-list article:hover::before{background:#4d9b91}

@media(max-width:760px){
 .student-daily-shell{background-size:auto,22px 22px,22px 22px!important}
 .student-math-field span{font-size:22px}
 .student-math-tags{gap:5px}.student-math-tags span{padding:4px 7px;font-size:9px}
 .student-daily-profile{min-height:0}.math-rank-emblem{right:15px;top:15px;width:58px;height:58px;border-radius:16px 6px 16px 6px}.math-rank-emblem span{font-size:21px}
 .student-profile-main{padding-right:67px}
 .math-formula-ribbon{gap:5px}.math-formula-ribbon span{width:24px;height:24px}.math-formula-ribbon b{display:none}
 .mission-card{grid-template-columns:1fr!important}.mission-index{min-width:0;padding:0 0 9px;border-right:0;border-bottom:1px solid #d9e6e9}.mission-card button{width:100%!important;min-width:0!important}
}
@media(max-width:420px){
 .student-daily-head h1{font-size:25px!important}
 .student-math-field span:nth-child(n+4){display:none}
 .student-daily-profile{padding:16px 14px!important}
 .math-rank-emblem{width:52px;height:52px}
 .student-profile-main{padding-right:58px}
 .profile-numbers{grid-template-columns:1fr 1fr 1fr!important}
 .profile-numbers span{padding:8px 4px!important}
 .profile-numbers b{font-size:19px!important}
}
@media(prefers-reduced-motion:reduce){.student-cp-track>i::after{animation:none!important}}

/* Student interaction layer */
.student-daily-shell,.student-game-shell{padding-bottom:98px!important}
.student-daily-profile.tier-silver .math-rank-emblem{clip-path:polygon(25% 0,75% 0,100% 30%,100% 70%,75% 100%,25% 100%,0 70%,0 30%);border-radius:0;background:linear-gradient(140deg,#faffff,#cde8f4)}
.student-daily-profile.tier-gold .math-rank-emblem{clip-path:polygon(0 25%,25% 25%,35% 0,50% 22%,65% 0,75% 25%,100% 25%,87% 100%,13% 100%);border-radius:0;background:linear-gradient(140deg,#fff7d0,#ffd56b)}
.student-daily-profile.tier-ruby .math-rank-emblem{clip-path:polygon(50% 0,90% 25%,80% 78%,50% 100%,20% 78%,10% 25%);border-radius:0;background:linear-gradient(140deg,#fff3f5,#e66a84)}
.student-daily-profile.tier-silver{background-image:repeating-linear-gradient(60deg,transparent 0 30px,#92c8df18 30px 31px),linear-gradient(145deg,#fff,#eaf6fb)!important}
.student-daily-profile.tier-gold{background-image:repeating-conic-gradient(from 0deg at 90% 10%,#e8b95118 0 8deg,transparent 8deg 28deg),linear-gradient(145deg,#fffdf5,#fff0bf)!important}
.student-daily-profile.tier-ruby{background-image:linear-gradient(125deg,transparent 48%,#d5517214 49% 51%,transparent 52%),repeating-linear-gradient(45deg,transparent 0 28px,#d551720c 28px 29px),linear-gradient(145deg,#fff9fa,#ffe5ec)!important}
.badge-wall{justify-content:space-between}.badge-open,.game-quick-links button{border:1px solid #bbd6dd;border-radius:11px;padding:10px 13px;background:#edf8f7;color:#235e71;font-weight:800;cursor:pointer}
.student-badge-list{display:grid;gap:10px;margin-top:20px}.student-badge-item{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid #d9e5e9;border-radius:15px;background:#f8fbfc}.student-badge-item .badge-icon{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:16px;background:#c9eadf;color:#236952;font-size:27px}.student-badge-item.badge-shape-shield .badge-icon{clip-path:polygon(50% 0,95% 15%,85% 76%,50% 100%,15% 76%,5% 15%);background:#dce8f3;color:#426881}.student-badge-item.badge-shape-star .badge-icon{clip-path:polygon(50% 0,62% 35%,100% 38%,70% 60%,80% 100%,50% 76%,20% 100%,30% 60%,0 38%,38% 35%);background:#e9c982;color:#694515}.student-badge-item.badge-shape-crystal .badge-icon{clip-path:polygon(50% 0,90% 25%,80% 80%,50% 100%,20% 80%,10% 25%);background:#c8dfef;color:#27618a}.student-badge-item.badge-shape-crown .badge-icon{background:#f4c6d2;color:#9a2d53}.student-badge-item.locked{opacity:.62;filter:grayscale(1)}.student-badge-item strong,.student-badge-item span{display:block}.student-badge-item span{margin-top:3px;color:#667d89;font-size:12px}
.challenge-time-track,.game-time-track{height:11px;margin-top:12px;overflow:hidden;border-radius:999px;background:#deeaef}.challenge-time-track i,.game-time-track i{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#35b5a1,#f3ca65);transition:width .15s linear}.challenge-card form,.game-card form{display:block;max-width:500px;margin:auto}.challenge-card input,.game-card input{display:block;width:100%;min-height:57px;margin:0 0 10px;text-align:center;font-size:27px;font-weight:800}.keyboard-fallback{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0!important;border:0!important}.student-number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.student-number-pad button{min-height:58px;border:1px solid #c8dce3;border-radius:13px;background:#fff;color:#234f67;font-size:23px;font-weight:850;box-shadow:0 3px 0 #d6e5e9;touch-action:manipulation}.student-number-pad button:active{transform:translateY(2px);box-shadow:0 1px 0 #d6e5e9}.student-number-pad .pad-tool{background:#e9f3f5;font-size:17px}.student-number-pad .pad-confirm{grid-column:span 2;background:#278b8d;color:#fff;border-color:#278b8d;font-size:18px}
.game-quick-links{display:flex;justify-content:flex-end;gap:8px;margin:12px 0}.game-start{gap:12px;padding:30px;text-align:center;background:linear-gradient(145deg,#ecf9f8,#eef3fc)}.game-start p{margin:0;font-weight:800}.game-start small{color:#6b8290}.game-start-emblem{display:grid;place-items:center;width:78px;height:78px;border-radius:24px;background:#fff3be;color:#986315;font-size:36px;transform:rotate(-7deg)}.game-hud{align-items:center}.game-time-track{margin-bottom:18px}.game-sheet{width:min(540px,94vw)}.game-ranking{margin:0;padding:0;border:0}.game-ranking li.rank-1{background:#fff0c5}.game-ranking li.rank-2{background:#e9f0f5}.game-ranking li.rank-3{background:#f5e6d8}
.game-card>.game-time-track{display:block}
.game-hud b{white-space:nowrap;flex:none}
@media(max-width:600px){.student-daily-shell,.student-game-shell{padding:15px 12px 105px!important}.student-daily-profile{padding:16px!important}.math-rank-emblem{right:13px;top:13px;width:58px;height:58px}.student-profile-main{padding-right:63px}.student-cp-overview{align-items:flex-start}.student-cp-overview b{font-size:13px}.student-number-pad button{min-height:60px}.badge-wall{align-items:stretch}.badge-open{align-self:flex-start}.game-card p{font-size:clamp(30px,9vw,46px)}}
@media(prefers-reduced-motion:reduce){.student-number-pad button,.challenge-time-track i,.game-time-track i{transition:none!important}}

/* Illustrated arena stage: live text and controls sit above local artwork. */
.student-daily-shell{--arena-art:url('/assets/daily-math/student-hero-silver.webp');padding-top:12px!important}
.student-daily-shell[data-tier="gold"]{--arena-art:url('/assets/daily-math/student-hero-gold.webp')}
.student-daily-shell[data-tier="ruby"]{--arena-art:url('/assets/daily-math/student-hero-ruby.webp')}
.student-daily-shell>.student-daily-head{position:relative;isolation:isolate;display:block;min-height:390px;margin:-12px -12px 0;padding:24px 26px 110px;border-radius:22px 22px 0 0;overflow:hidden;background-image:linear-gradient(180deg,#ffffffca 0%,#ffffffb0 27%,#ffffff00 58%,#f7fbfa 100%),var(--arena-art);background-size:cover,cover;background-position:center,center 38%}
.student-daily-shell>.student-daily-head::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#ffffff7a,transparent 60%)}
.student-daily-shell>.student-daily-head>div{position:relative;z-index:1;max-width:620px}.student-daily-shell>.student-daily-head h1{color:#123e59;text-shadow:0 2px 10px #ffffffad}.student-daily-shell>.student-daily-head p{color:#214e60;text-shadow:0 1px 8px #ffffffd9}.student-daily-shell>.student-daily-head .student-challenge-entry{position:absolute;left:26px;bottom:35px;z-index:2;background:#fff9e5ed!important;border-color:#f0d38c!important;color:#71531c!important}
.student-daily-shell #daily-home{margin-top:-20px}.student-daily-shell .student-daily-profile{box-shadow:0 16px 42px #24495d2b!important}
.student-daily-shell[data-tier="silver"] .student-daily-head{background-color:#cbe9fa}.student-daily-shell[data-tier="gold"] .student-daily-head{background-color:#f7d997}.student-daily-shell[data-tier="ruby"] .student-daily-head{background-color:#f4b3bc}
.student-daily-shell[data-tier="silver"] .student-daily-head::before,.student-daily-shell[data-tier="gold"] .student-daily-head::before,.student-daily-shell[data-tier="ruby"] .student-daily-head::before{content:"";position:absolute;right:18px;bottom:30px;width:80px;height:80px;opacity:.8;background:radial-gradient(circle at 50% 50%,#fff 0 3px,transparent 4px),conic-gradient(from 45deg,transparent 0 25%,#ffffffa0 26% 27%,transparent 28% 50%,#ffffffa0 51% 52%,transparent 53%);pointer-events:none}
@media(max-width:600px){.student-daily-shell>.student-daily-head{min-height:360px;margin:-15px -12px 0;padding:22px 18px 120px;background-position:center,center top}.student-daily-shell>.student-daily-head>div{max-width:100%}.student-daily-shell>.student-daily-head h1{font-size:26px!important}.student-daily-shell>.student-daily-head p{max-width:90%;font-size:12px}.student-daily-shell>.student-daily-head .student-math-tags{display:none}.student-daily-shell>.student-daily-head .student-challenge-entry{left:18px;bottom:28px}.student-daily-shell #daily-home{margin-top:-18px}}
.student-game-shell{position:relative;isolation:isolate;min-height:min(100vh,900px);overflow:hidden;background:linear-gradient(180deg,#d7f2ffb8 0%,#eaf8f0d4 42%,#f7fbf9 100%),url('/assets/daily-math/student-hero-silver.webp') center 39%/cover no-repeat!important}
.student-game-shell>.student-daily-head{position:relative;z-index:1;padding:16px 14px 6px}.student-game-shell>.student-daily-head h1{color:#134765;text-shadow:0 2px 10px #fff}.student-game-shell>.student-daily-head p{color:#265f73}.student-game-shell>.survival-plan-note{position:relative;z-index:1;border-color:#ffffffa6;background:#f4fbf5e8;box-shadow:0 8px 25px #1d657426}.student-game-shell>.game-quick-links{position:relative;z-index:1}.student-game-shell>.game-quick-links button{background:#fff9e9ed;border-color:#fff}.student-game-shell #game-area{position:relative;z-index:1}.student-game-shell .game-start{min-height:330px;border:2px solid #ffffffb8;background:linear-gradient(150deg,#ffffffc9,#eefaf5e8);box-shadow:0 18px 40px #175e742a}.student-game-shell .game-card{border:2px solid #fff4cf;background:linear-gradient(160deg,#fffdf2,#f5e3be);box-shadow:0 18px 45px #15415b38}.student-game-shell .game-card p{margin:18px 0;padding:23px 14px;border:2px solid #e2bb82;border-radius:18px;background:repeating-linear-gradient(0deg,#fff5da 0 31px,#f7e8c8 32px);color:#684527;text-shadow:0 1px #fff;font-size:clamp(34px,8vw,52px)}.student-game-shell .game-hud{color:#325970}.student-game-shell .game-hud b{color:#2f805d}.student-game-shell .student-number-pad button{border-color:#d2bf9e;background:#fff9e9;color:#694829;box-shadow:0 4px 0 #d5bb93}.student-game-shell .student-number-pad .pad-confirm{background:#20aa86;color:#fff;border-color:#17a47d;box-shadow:0 4px 0 #168468}
@media(max-width:600px){.student-game-shell{min-height:calc(100vh - 80px);background-position:center,center 33%!important}.student-game-shell>.student-daily-head{padding:10px 3px}.student-game-shell .game-card{padding:14px}.student-game-shell .game-card p{font-size:34px}.student-game-shell .game-start{min-height:300px}}


/* G3 survival speed challenge */
.survival-plan-note{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:10px 0 12px;padding:12px 14px;border:1px solid #cfe0dc;border-radius:14px;color:#496976}.survival-plan-note strong{color:#1f5963}.survival-plan-note span{font-size:12px}
.survival-start{gap:18px}.survival-start-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(620px,100%)}.survival-start-stats span{display:grid;gap:3px;padding:12px;border:1px solid #d7e6e5;border-radius:14px;background:#ffffffbd;color:#71858f;font-size:11px}.survival-start-stats b{color:#235b67;font-size:22px;font-variant-numeric:tabular-nums}.survival-start button:disabled{background:#d8e2e5!important;color:#7d9098!important;border-color:#d8e2e5!important;cursor:not-allowed}
.survival-card .game-hud span{font-weight:850}.survival-time-track{height:16px!important;border:1px solid #c7dbcf;background:#edf0e6!important}.survival-time-track i{background:linear-gradient(90deg,#2db29a,#f0cc5a,#ef8d55)!important;box-shadow:0 0 18px #38aa8a55}.survival-live-stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0;color:#607986!important}.survival-live-stats span{display:grid;gap:2px;padding:8px 10px;border:1px solid #dccaa8;border-radius:11px;background:#fffaf0}.survival-live-stats b{color:#315f64!important;font-size:18px!important;font-variant-numeric:tabular-nums}.survival-live-stats .current-bonus{place-items:center;background:#eaf8ef;color:#23745b!important;font-size:12px;font-weight:900}
.survival-result{display:grid!important;gap:18px;padding:24px!important}.survival-result-title{display:grid;place-items:center;gap:4px}.survival-result-title>span{font-weight:900;color:#446a73}.survival-result-title>strong{font-size:46px;color:#24755e;font-variant-numeric:tabular-nums}.survival-result-title>small{color:#82939a}.survival-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;width:min(720px,100%)}.survival-result-grid span{display:grid;place-items:center;gap:3px;padding:11px;border:1px solid #d9e5e3;border-radius:12px;background:#fff;color:#71858d;font-size:11px}.survival-result-grid b{font-size:21px;color:#285b65;font-variant-numeric:tabular-nums}.survival-result>button{justify-self:center}.survival-result>p{margin:0;text-align:center;font-size:11px}
.survival-rule-grid{display:grid;gap:8px;margin:14px 0}.survival-rule-grid span{padding:10px 12px;border:1px solid #d9e5e7;border-radius:11px;background:#f7fbfb;color:#617782}.survival-rule-grid b{display:inline-block;min-width:48px;color:#275f69}.game-ranking li strong small{color:#809098;font-size:10px;font-weight:700}
@media(max-width:600px){.survival-plan-note{align-items:flex-start;flex-direction:column}.survival-start-stats{grid-template-columns:1fr 1fr}.survival-start-stats span:last-child{grid-column:1/-1}.survival-live-stats{grid-template-columns:1fr 1fr}.survival-result-grid{grid-template-columns:1fr 1fr}.survival-result-title>strong{font-size:39px}}


/* Student game UI v3 — vivid mobile-first interaction polish */
.student-daily-shell,.student-game-shell{
 --game-blue:#2f9df4;--game-blue-deep:#2585da;--game-sky:#dff4ff;
 --game-orange:#ff8a2a;--game-orange-deep:#ff6b21;--game-gold:#ffc83d;--game-gold-deep:#f5a623;
 --game-green:#22cf88;--game-green-deep:#12b777;--game-purple:#8c5cf6;--game-purple-soft:#a46cff;
 --game-danger:#ff4d5e;--game-danger-soft:#ff7043;--game-ink:#18364a;--game-ink-soft:#294556;
 --game-card:#fffdf7;--game-radius:24px;--game-shadow:0 16px 38px rgba(33,76,103,.16);
 color:var(--game-ink)
}
.student-daily-shell button,.student-game-shell button,.student-daily-shell a,.student-game-shell a{-webkit-tap-highlight-color:transparent}
.student-daily-shell .student-daily-head h1,.student-game-shell .student-daily-head h1{font-weight:950;letter-spacing:-.04em}
.student-daily-shell>.student-daily-head .student-challenge-entry{
 min-height:48px!important;padding:0 18px!important;border:2px solid #fff!important;border-radius:999px!important;
 background:linear-gradient(180deg,#a977ff,#7d4ee8)!important;color:#fff!important;
 box-shadow:0 5px 0 #6037c3,0 11px 24px #6f4bd64a!important;text-shadow:0 1px 0 #5634a8
}
.student-daily-shell>.student-daily-head .student-challenge-entry:active{transform:translateY(3px);box-shadow:0 2px 0 #6037c3,0 6px 15px #6f4bd638!important}

/* Home cards: brighter game-like hierarchy */
.student-daily-profile{border:2px solid #fff!important;box-shadow:0 7px 0 color-mix(in srgb,var(--tier-accent) 30%,#bdd0db),0 18px 35px rgba(28,76,103,.15)!important}
.student-daily-profile h2{color:#153e58!important;font-weight:950!important}
.student-daily-profile .tier-pill{padding:7px 13px!important;font-size:12px!important}
.profile-numbers span{border:1px solid #ffffffd9!important;background:linear-gradient(180deg,#ffffffed,#f3fbffdd)!important;box-shadow:0 5px 13px rgba(43,91,119,.08)!important}
.profile-numbers .is-cp b{color:#f39d12!important;text-shadow:0 2px 0 #fff6d0}
.student-cp-card{border:2px solid #fff!important;border-radius:24px!important;box-shadow:0 7px 0 #c8dde0,0 18px 36px rgba(32,79,101,.13)!important}
.student-cp-track{height:18px!important;padding:2px;border:0!important;background:#e9e1c7!important;box-shadow:inset 0 2px 4px rgba(67,70,44,.17),0 2px 0 #fff!important}
.student-cp-track>i{background:linear-gradient(90deg,#27d98d 0%,#37d87e 40%,#ffe141 70%,#ff8b29 100%)!important;box-shadow:0 0 14px #37d98e88}
.student-cp-track>i::before{content:"";position:absolute;right:1px;top:50%;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:#ff9e25;transform:translateY(-50%);box-shadow:0 0 12px #ffb930}
.student-cp-part{border:1px solid #fff!important;border-radius:18px!important;box-shadow:0 5px 13px rgba(29,79,108,.08)!important}
.student-cp-part.cp-accuracy{background:linear-gradient(160deg,#f3fbff,#dff3ff)!important}.student-cp-part.cp-accuracy strong{color:#2585da!important}
.student-cp-part.cp-streak{background:linear-gradient(160deg,#fffaf0,#fff0bd)!important}.student-cp-part.cp-streak strong{color:#e68a14!important}
.student-cp-part.cp-game{background:linear-gradient(160deg,#faf6ff,#eadfff)!important}.student-cp-part.cp-game strong{color:#8055e8!important}
.student-cp-part.cp-accuracy .student-cp-mini-track i{background:linear-gradient(90deg,#42b8ff,#247fe4)!important}
.student-cp-part.cp-streak .student-cp-mini-track i{background:linear-gradient(90deg,#ffd24e,#ff8b28)!important}
.student-cp-part.cp-game .student-cp-mini-track i{background:linear-gradient(90deg,#b27cff,#7f50e7)!important}

/* Main quest CTA */
.mission-card{border:2px solid #fff!important;border-radius:24px!important;box-shadow:0 7px 0 #cce0e3,0 17px 32px rgba(31,79,101,.13)!important}
.mission-primary-action{
 position:relative!important;overflow:hidden!important;min-width:205px!important;min-height:60px!important;padding:0 24px!important;
 border:2px solid #ffb35e!important;border-radius:24px!important;
 background:linear-gradient(180deg,#ffad3f 0%,#ff7c24 62%,#ff681e 100%)!important;color:#fff!important;
 box-shadow:inset 0 2px 0 #ffe0a4,0 6px 0 #d95717,0 13px 25px rgba(255,111,32,.32)!important;
 text-shadow:0 1px 1px #bc4a13;font-size:16px!important;font-weight:950!important;letter-spacing:.01em
}
.mission-primary-action::after{content:"";position:absolute;left:-25%;top:-60%;width:30%;height:210%;transform:rotate(25deg);background:linear-gradient(90deg,transparent,#ffffff85,transparent);animation:mainQuestShine 3.6s ease-in-out infinite}
.mission-primary-action:not(:disabled):hover{transform:translateY(-2px)}.mission-primary-action:not(:disabled):active{transform:translateY(4px);box-shadow:inset 0 1px 0 #ffe0a4,0 2px 0 #d95717,0 6px 12px rgba(255,111,32,.24)!important}
.mission-primary-action:disabled{background:linear-gradient(180deg,#b9d8cf,#8fc3b5)!important;border-color:#cde7df!important;color:#effff9!important;box-shadow:0 4px 0 #76a99b!important}
@keyframes mainQuestShine{0%,65%{left:-35%}85%,100%{left:120%}}

/* Verification challenge stage */
.home-verification-card{
 --timer-color:var(--game-green);--timer-glow:#22cf8870;
 position:relative;overflow:hidden;max-width:720px;margin:18px auto!important;padding:20px!important;
 border:2px solid #fff4d8!important;border-radius:28px!important;
 background:linear-gradient(160deg,#fffdf5 0%,#fff4d8 62%,#ffe8b9 100%)!important;
 box-shadow:0 8px 0 #d7b978,0 22px 45px rgba(66,77,60,.22)!important
}
.home-verification-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 10% 8%,#ffffffbd 0 4px,transparent 5px),radial-gradient(circle at 92% 12%,#ffcf6694 0 3px,transparent 4px);background-size:80px 80px,72px 72px;opacity:.6}
.challenge-stage-head,.challenge-progress,.challenge-note,.mission-board,.answer-console{position:relative;z-index:1}
.challenge-stage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.challenge-kicker,.challenge-result-kicker{margin:0 0 3px;color:#9b6c2b;font:900 10px/1 Consolas,monospace;letter-spacing:.16em}
.challenge-stage-head strong{color:#60411e;font-size:18px}
.challenge-progress-dots{display:flex;gap:7px}.challenge-progress-dots i{display:block;width:12px;height:12px;border-radius:50%;background:#e6d3a9;box-shadow:inset 0 2px 3px #aa87504f}
.challenge-progress-dots i.done{background:#30c88a;box-shadow:0 0 10px #30c88a99}.challenge-progress-dots i.active{background:#ff942b;box-shadow:0 0 0 4px #ffdfb5,0 0 14px #ff932b80}
.home-verification-card .challenge-progress{margin:10px 0 8px;color:#6d593e}.home-verification-card .challenge-progress>span:first-child{font-size:14px;font-weight:850}
.home-verification-card .countdown{display:flex;align-items:baseline;gap:5px;padding:7px 12px;border:2px solid color-mix(in srgb,var(--timer-color) 44%,#fff);border-radius:999px;background:#ffffffdd;color:var(--timer-color);box-shadow:0 0 18px var(--timer-glow);transition:.18s ease}
.home-verification-card .countdown b{width:auto;height:auto;border:0;background:transparent;color:inherit;font-size:25px;font-variant-numeric:tabular-nums}.home-verification-card .countdown small{font-size:10px;font-weight:900}
.vivid-time-track{position:relative;overflow:visible!important;height:18px!important;padding:2px;border:0!important;border-radius:999px;background:#e6ddc5!important;box-shadow:inset 0 2px 5px #6d6f5133,0 2px 0 #fff!important}
.vivid-time-track i{position:relative;height:14px!important;background:linear-gradient(90deg,color-mix(in srgb,var(--timer-color) 76%,#fff),var(--timer-color))!important;box-shadow:0 0 14px var(--timer-glow);transition:width .1s linear,background .18s ease!important}
.vivid-time-track i::after{content:"";position:absolute;right:-4px;top:50%;width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:var(--timer-color);transform:translateY(-50%);box-shadow:0 0 14px var(--timer-glow)}
.home-verification-card[data-timer-state="warning"]{--timer-color:#ff9f25;--timer-glow:#ff9f257d}.home-verification-card[data-timer-state="danger"]{--timer-color:#ff4d5e;--timer-glow:#ff4d5e91}
.home-verification-card[data-timer-state="danger"] .countdown{animation:timerPulse .52s ease-in-out infinite alternate}
.challenge-note{margin:12px 0 8px!important;color:#806947!important;text-align:center;font-size:12px}
.mission-board{margin:10px 0 16px!important;padding:25px 18px!important;border:3px solid #d9a963!important;border-radius:22px!important;background:linear-gradient(180deg,#fff9e9,#ffeac2)!important;color:#69421f!important;box-shadow:inset 0 0 0 3px #fff7df,inset 0 -8px 16px #dca95922,0 7px 0 #b9874c,0 14px 25px rgba(93,63,35,.17)!important;text-shadow:0 1px 0 #fff;font-size:clamp(34px,8vw,52px)!important}
.answer-console input{min-height:58px!important;border:2px solid #a9cde0!important;border-radius:17px!important;background:#fff!important;color:#173f56!important;box-shadow:inset 0 3px 6px #4383a61c,0 4px 0 #d7e9f1!important;text-align:center!important;font-size:28px!important;font-weight:900!important}
.answer-console input:focus{outline:0;border-color:#49aef1!important;box-shadow:inset 0 3px 6px #4383a61c,0 0 0 4px #7ac8fa38,0 4px 0 #c1dfea!important}
@keyframes timerPulse{from{transform:scale(1);box-shadow:0 0 12px var(--timer-glow)}to{transform:scale(1.045);box-shadow:0 0 25px var(--timer-glow)}}

/* Game keypad and circular launch button */
.student-number-pad{display:grid!important;grid-template-columns:minmax(0,1fr) 94px!important;gap:12px!important;max-width:610px!important;margin:13px auto 0!important;align-items:stretch}
.student-number-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.student-number-pad .student-number-grid button{
 position:relative;min-height:60px!important;border:2px solid #f5e8ca!important;border-radius:18px!important;
 background:linear-gradient(180deg,#fff 0%,#fff9e9 58%,#f7e9c9 100%)!important;color:#654523!important;
 box-shadow:inset 0 2px 0 #fff,0 5px 0 #d3b985,0 9px 16px rgba(91,67,39,.13)!important;
 font-size:24px!important;font-weight:950!important;transition:transform .08s ease,box-shadow .08s ease,filter .12s ease
}
.student-number-pad .student-number-grid button:hover{filter:brightness(1.035)}.student-number-pad .student-number-grid button:active{transform:translateY(4px);box-shadow:inset 0 1px 0 #fff,0 1px 0 #d3b985,0 4px 8px rgba(91,67,39,.11)!important}
.student-number-pad .student-number-grid .pad-delete{background:linear-gradient(180deg,#edf6fb,#dcebf4)!important;color:#4f6e7d!important;border-color:#d7e6ee!important;box-shadow:inset 0 2px 0 #fff,0 5px 0 #b8ccd7,0 8px 14px #436b7f1a!important;font-size:15px!important}
.student-submit-rail{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:10px;padding:2px 0}
.student-submit-rail .pad-sign{width:48px;min-height:42px!important;border:1px solid #cddfe8!important;border-radius:15px!important;background:linear-gradient(180deg,#f6fbfd,#dfedf3)!important;color:#496979!important;box-shadow:0 4px 0 #b7ccd5!important;font-size:18px!important}
.student-submit-rail .pad-sign:active{transform:translateY(3px);box-shadow:0 1px 0 #b7ccd5!important}
.student-number-pad .submit-launch{
 --launch:#22cf88;position:relative;isolation:isolate;display:grid!important;place-items:center;align-content:center;gap:1px;
 width:86px!important;height:86px!important;min-height:86px!important;padding:0!important;border:4px solid #eafff4!important;border-radius:50%!important;
 background:linear-gradient(180deg,#65f5b1 0%,#24d98a 45%,#0faf69 100%)!important;color:#fff!important;
 box-shadow:inset 0 3px 0 #c9ffe5,0 7px 0 #087c4c,0 0 0 5px #68f0b449,0 13px 25px #0a9b5e4a!important;
 text-shadow:0 1px 1px #087a4b;transition:filter .16s ease,transform .08s ease,box-shadow .08s ease
}
.submit-launch::before{content:"";position:absolute;z-index:-1;inset:-11px;border:2px solid #72f4ba80;border-radius:50%;animation:submitBreath 1.8s ease-in-out infinite}
.submit-launch::after{content:"";position:absolute;z-index:-2;inset:-6px;border:3px solid #5ef2a8;border-radius:50%;opacity:0}
.submit-launch .submit-icon{font-size:29px;line-height:1;transform:rotate(-12deg)}.submit-launch .submit-label{font-size:11px;font-weight:950;letter-spacing:.08em}
.submit-launch:disabled{filter:saturate(.35) brightness(1.08);opacity:.7;box-shadow:inset 0 3px 0 #e7fff3,0 6px 0 #89ab99,0 0 0 5px #c7e7d549!important}.submit-launch:disabled::before{animation:none;opacity:.2}
.submit-launch.is-ready{filter:saturate(1.08) brightness(1.04)}.submit-launch.is-ready:hover{transform:translateY(-2px)}.submit-launch.is-ready:active{transform:translateY(5px) scale(.97);box-shadow:inset 0 2px 0 #c9ffe5,0 2px 0 #087c4c,0 0 0 5px #68f0b43d,0 6px 12px #0a9b5e38!important}
.submit-launch.is-launching::after{animation:launchPulse .38s ease-out}.submit-launch.is-launching{animation:launchPress .36s ease-out}.submit-launch.is-loading .submit-icon{font-size:18px;letter-spacing:.06em;animation:loadingGlow .7s ease-in-out infinite alternate}
@keyframes submitBreath{0%,100%{transform:scale(.96);opacity:.4}50%{transform:scale(1.04);opacity:.85}}
@keyframes launchPulse{0%{transform:scale(.78);opacity:.9}100%{transform:scale(1.48);opacity:0}}
@keyframes launchPress{0%{transform:scale(1)}35%{transform:scale(.9)}70%{transform:scale(1.045)}100%{transform:scale(1)}}
@keyframes loadingGlow{from{opacity:.45}to{opacity:1}}

/* Verification completion cards */
.challenge-celebration{position:relative;overflow:hidden;display:grid!important;place-items:center;gap:7px;min-height:260px;text-align:center;border:2px solid #fff!important;border-radius:28px!important;box-shadow:var(--game-shadow)!important}
.challenge-celebration.success{background:radial-gradient(circle at 50% 20%,#fff9ae,#eaffcc 44%,#dcf9ee)!important}.challenge-celebration.fail{background:linear-gradient(155deg,#fffdf3,#ffeadc)!important}
.challenge-result-emblem{display:grid;place-items:center;width:76px;height:76px;border:4px solid #fff;border-radius:50%;background:linear-gradient(180deg,#66f4ae,#20bd79);color:#fff;font-size:39px;font-weight:950;box-shadow:0 6px 0 #168557,0 10px 23px #16855742}
.challenge-celebration.fail .challenge-result-emblem{background:linear-gradient(180deg,#ffb25d,#ff7a35);box-shadow:0 6px 0 #c7571d,0 10px 23px #c7571d35}
.challenge-celebration h2{margin:4px 0 0;color:#245640;font-size:29px}.challenge-celebration.fail h2{color:#7a4929}.challenge-result-stars{color:#ffc12e;font-size:27px;letter-spacing:.18em;text-shadow:0 2px 0 #fff,0 0 12px #ffc43c88}

/* Survival arena HUD and dynamic countdown */
.student-game-shell{--timer-color:#22cf88;--timer-glow:#22cf8870}
.student-game-shell .game-start,.student-game-shell .game-card,.student-game-shell .survival-result{border-radius:28px!important}
.survival-card{--timer-color:#22cf88;--timer-glow:#22cf8870;position:relative;overflow:hidden}
.survival-card[data-timer-state="warning"]{--timer-color:#ffd13e;--timer-glow:#ffd13e73}.survival-card[data-timer-state="urgent"]{--timer-color:#ff8a2a;--timer-glow:#ff8a2a80}.survival-card[data-timer-state="danger"]{--timer-color:#ff4d5e;--timer-glow:#ff4d5e96}
.survival-card[data-timer-state="danger"] .game-hud>b{animation:timerPulse .55s ease-in-out infinite alternate}
.game-hud{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}.game-hud>span{font-weight:900!important;color:#385b68!important}
.game-hud>b{display:flex;align-items:baseline;gap:5px;padding:7px 12px;border:2px solid color-mix(in srgb,var(--timer-color) 38%,#fff);border-radius:999px;background:#ffffffdf;color:var(--timer-color)!important;box-shadow:0 0 18px var(--timer-glow);font-variant-numeric:tabular-nums}
.game-hud>b #game-seconds{font-size:26px}.game-hud>b small{font-size:10px}.timer-icon{font-size:14px}
.game-question-board{position:relative;margin:17px 0 14px;padding:7px 13px 20px;border:3px solid #ddb677;border-radius:24px;background:linear-gradient(180deg,#fff8e7,#f8e0b5);box-shadow:inset 0 0 0 3px #fff5db,inset 0 -8px 18px #bc834f24,0 7px 0 #b88955,0 16px 27px #6c47272b;text-align:center}
.game-question-board>small{display:inline-block;margin-top:-1px;padding:5px 10px;border-radius:0 0 10px 10px;background:#c58d50;color:#fff7e5;font:900 9px/1 Consolas,monospace;letter-spacing:.13em}.student-game-shell .game-question-board p{margin:12px 0 0!important;padding:10px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#65401e!important;font-size:clamp(35px,8vw,54px)!important}
.survival-live-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}.survival-live-stats span{background:linear-gradient(180deg,#fffefa,#fff5dc)!important;border:1px solid #f1d8a9!important;box-shadow:0 4px 0 #e2c792,0 8px 15px #a4783f17}.survival-live-stats span small{display:block;color:#8a7359;font-size:9px;font-weight:850}.survival-live-stats span b{font-size:17px!important}.survival-live-stats .current-bonus{background:linear-gradient(160deg,#ecfff5,#c9f6df)!important;border-color:#99e2bc!important;color:#167552!important}
.game-answer-feedback{position:absolute;z-index:8;left:50%;top:112px;transform:translateX(-50%);padding:10px 18px;border:2px solid #fff;border-radius:999px;color:#fff;font-weight:950;box-shadow:0 10px 25px #173f5140;animation:answerFeedback .7s ease-out forwards;white-space:nowrap}.game-answer-feedback.correct{background:linear-gradient(180deg,#4ee9a0,#13b872)}.game-answer-feedback.wrong{background:linear-gradient(180deg,#ff9e5d,#ff6d4a)}
@keyframes answerFeedback{0%{opacity:0;transform:translate(-50%,10px) scale(.88)}25%{opacity:1;transform:translate(-50%,0) scale(1.06)}100%{opacity:1;transform:translate(-50%,-4px) scale(1)}}

/* Start and result rewards */
.survival-start .game-start-emblem{border:4px solid #fff;background:linear-gradient(180deg,#c18aff,#8052eb);color:#fff;box-shadow:0 7px 0 #6039ba,0 13px 27px #6849c84a}
.survival-start>button,.game-primary-action{
 min-height:58px;padding:0 25px!important;border:2px solid #ffb457!important;border-radius:23px!important;
 background:linear-gradient(180deg,#ffad3f,#ff7422)!important;color:#fff!important;
 box-shadow:inset 0 2px 0 #ffe2a5,0 6px 0 #cf551b,0 12px 24px #fd702b42!important;
 font-size:16px!important;font-weight:950!important;text-shadow:0 1px 0 #aa4313;transition:.1s ease
}
.survival-start>button:not(:disabled):active,.game-primary-action:not(:disabled):active{transform:translateY(4px);box-shadow:inset 0 1px 0 #ffe2a5,0 2px 0 #cf551b,0 6px 12px #fd702b32!important}
.game-primary-action.is-complete{background:linear-gradient(180deg,#77d9b0,#43b88c)!important;border-color:#a9eed3!important;box-shadow:0 5px 0 #2d8d6a!important}
.game-secondary-action{display:inline-grid;place-items:center;min-height:50px;padding:0 20px;border:2px solid #dbe8ee;border-radius:20px;background:#ffffffde;color:#2778b2!important;text-decoration:none;font-weight:900;box-shadow:0 4px 0 #bfd1db,0 9px 18px #1e526c1c}
.survival-result{position:relative;overflow:hidden;padding:31px 22px 25px!important;border:3px solid #fff8c4!important;background:radial-gradient(circle at 50% -5%,#fff6a7,#fff9df 32%,#effbea 78%)!important;box-shadow:0 8px 0 #d8c978,0 22px 48px #2d665c38!important}
.survival-result::before,.survival-result::after{content:"✦";position:absolute;color:#ffc52f;font-size:34px;text-shadow:0 0 14px #ffcc43}.survival-result::before{left:7%;top:8%;transform:rotate(-16deg)}.survival-result::after{right:8%;top:13%;transform:rotate(17deg)}
.result-ribbon{display:inline-grid;place-items:center;min-width:220px;min-height:48px;margin:-31px auto 12px;padding:0 25px;border-radius:0 0 25px 25px;background:linear-gradient(180deg,#ff9d3b,#ff6422);color:#fff;font-size:24px;font-weight:950;text-shadow:0 2px 0 #bd4213;box-shadow:0 5px 0 #cf4d18,0 11px 22px #e65c2438}
.result-best-mark{display:inline-flex;margin:4px auto 0;padding:5px 12px;border:1px solid #efd268;border-radius:999px;background:#fff6ba;color:#a26c08;font:900 10px/1 Consolas,monospace;letter-spacing:.14em}
.survival-result-title>span{font:900 10px/1 Consolas,monospace!important;letter-spacing:.16em;color:#61907a!important}.survival-result-title>strong{color:#1b835f!important;text-shadow:0 2px 0 #fff;font-size:48px!important}
.result-score-core{display:grid;place-items:center;gap:0;width:112px;height:112px;margin:0 auto;border:6px solid #fff;border-radius:50%;background:linear-gradient(180deg,#ffd952,#ffad28);color:#744719;box-shadow:inset 0 3px 0 #fff4ae,0 7px 0 #d88a1b,0 13px 26px #dd961d45}.result-score-core b{font-size:31px;line-height:1}.result-score-core span{font-size:10px;font-weight:900}
.survival-result-grid span{background:linear-gradient(180deg,#fff,#fff9e7)!important;border:1px solid #efdfb9!important;box-shadow:0 4px 0 #dec998,0 8px 14px #86672c13}.survival-result-grid b{color:#385e66!important}
.survival-result .game-primary-action,.survival-result .game-secondary-action{width:min(430px,100%);margin:0 auto}

/* Dialog ranking polish */
.game-ranking h2{color:#1b5274;font-size:25px}.game-ranking li{min-height:54px;align-items:center!important;border:1px solid #e4edf1;border-radius:14px!important;background:linear-gradient(180deg,#fff,#f7fbfd)!important;box-shadow:0 3px 0 #dce8ed}.game-ranking li.rank-1{border-color:#ffdd71;background:linear-gradient(180deg,#fff9d6,#ffeaa4)!important;box-shadow:0 4px 0 #e6bf49}.game-ranking li.rank-2{border-color:#d8e3ea;background:linear-gradient(180deg,#fafdff,#e6eef4)!important}.game-ranking li.rank-3{border-color:#efc29c;background:linear-gradient(180deg,#fff6eb,#f7dfc6)!important}.game-ranking li.rank-1 b{color:#b37b00!important}.game-ranking li.rank-2 b{color:#708898!important}.game-ranking li.rank-3 b{color:#b8682a!important}

/* Mobile constraints */
@media(max-width:600px){
 .mission-primary-action{width:100%!important;min-width:0!important}
 .home-verification-card{margin:12px 0!important;padding:15px 12px!important;border-radius:23px!important}
 .challenge-stage-head strong{font-size:16px}.home-verification-card .countdown{padding:6px 10px}.home-verification-card .countdown b{font-size:22px}
 .student-number-pad{grid-template-columns:minmax(0,1fr) 84px!important;gap:9px!important}.student-number-pad .student-number-grid button{min-height:57px!important;border-radius:16px!important}
 .student-number-pad .submit-launch{width:78px!important;height:78px!important;min-height:78px!important}.student-submit-rail .pad-sign{width:44px;min-height:38px!important}
 .survival-live-stats{grid-template-columns:1fr 1fr!important}.game-question-board{padding-bottom:17px}.result-ribbon{font-size:21px}.survival-result-title>strong{font-size:41px!important}
}
@media(max-width:389px){
 .student-number-pad{grid-template-columns:1fr!important}.student-submit-rail{display:grid;grid-template-columns:52px 1fr 82px;justify-items:center;align-items:center}
 .student-submit-rail::before{content:"";width:52px}.student-submit-rail .pad-sign{grid-column:1}.student-submit-rail .submit-launch{grid-column:3;width:78px!important;height:78px!important}
 .student-number-grid{gap:7px}.student-number-pad .student-number-grid button{min-height:54px!important}
 .survival-result-grid{grid-template-columns:1fr 1fr!important}
}
@media(prefers-reduced-motion:reduce){
 .mission-primary-action::after,.home-verification-card[data-timer-state="danger"] .countdown,.survival-card[data-timer-state="danger"] .game-hud>b,
 .submit-launch::before,.submit-launch.is-launching::after,.submit-launch.is-launching,.submit-launch.is-loading .submit-icon,.game-answer-feedback{animation:none!important}
 .student-number-pad button,.submit-launch,.vivid-time-track i{transition:none!important}
}


/* Mobile bottom-nav hotfix: app.css has generic phone nav rules for the teacher workbench.
   Keep the student dock a fixed-height viewport dock instead of allowing it to stretch over the page. */
@media(max-width:520px){
 .student-daily-shell,.student-game-shell{padding-bottom:96px!important}
}


/* G4 student flow logic shell: compact home, dedicated verification, calendar, runner queue preview. */
html.student-focus-mode,html.student-focus-mode body{height:100%;overflow:hidden!important;overscroll-behavior:none}
html.student-focus-mode body{touch-action:manipulation}
.compact-player-card{grid-template-columns:minmax(0,1fr)!important}
.compact-player-card .student-profile-main{padding-right:82px}
.player-main-cp{display:grid;gap:8px;margin-top:14px;padding:13px 14px;border:1px solid #ffffffc9;border-radius:18px;background:#ffffffc7;box-shadow:0 7px 18px #31586b14}
.player-main-cp>div:first-child{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.player-main-cp>div:first-child span{color:#67808d;font-size:11px;font-weight:900}.player-main-cp>div:first-child strong{color:#174f69;font-size:28px}.player-main-cp>div:first-child button{min-height:34px;padding:5px 9px;border-radius:999px;font-size:11px}
.player-main-cp small{color:#657c87;font-size:11px}
.profile-badge-strip{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.profile-badge{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:5px 9px!important;border:1px solid #ffffffc9!important;border-radius:999px!important;background:#ffffffb8!important;color:#315e72!important;box-shadow:0 3px 8px #234c5c13!important}.profile-badge span{font-size:16px}.profile-badge small{font-size:9px;font-weight:850}
.home-checkin-shortcut{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;margin:14px 0;padding:17px;border:2px solid #fff;border-radius:23px;background:linear-gradient(145deg,#fff9ec,#fff0cf);box-shadow:0 7px 0 #e5bd74,0 16px 29px #5b493022}.home-checkin-shortcut>div{display:grid;gap:3px}.home-checkin-shortcut>div>span{font-size:11px;font-weight:950;color:#b06a12}.home-checkin-shortcut strong{font-size:21px;color:#673f1a}.home-checkin-shortcut small{color:#846b4e}.home-checkin-shortcut>a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.home-checkin-shortcut.done{background:linear-gradient(145deg,#f1fff8,#def7ea);box-shadow:0 7px 0 #9fd4b7,0 16px 29px #315c4620}
.student-home-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}.student-home-links>a{display:grid;grid-template-columns:auto 1fr;gap:2px 9px;align-items:center;min-height:74px;padding:13px;border:1px solid #d8e6eb;border-radius:18px;background:#ffffffdb;color:#2a556b;text-decoration:none;box-shadow:0 5px 0 #d6e3e7}.student-home-links>a>span{grid-row:1/3;font-size:23px}.student-home-links strong{font-size:14px}.student-home-links small{font-size:10px;color:#758a94}

/* Dedicated verification mode is a single-screen task, intentionally not scrollable. */
.student-verify-shell{height:100dvh;max-height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);background:linear-gradient(180deg,#dff4ff,#f8f2dc);color:#18364a}
.verify-topbar{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:max(10px,env(safe-area-inset-top)) 12px 10px;border-bottom:1px solid #ffffffa8;background:#174d69e8;color:#fff}.verify-topbar>a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#ffffff1f;color:#fff;text-decoration:none;font-size:30px}.verify-topbar>div{display:grid}.verify-topbar small{font-size:9px;letter-spacing:.14em;opacity:.75}.verify-topbar strong{font-size:16px}.verify-topbar>span{padding:6px 9px;border-radius:999px;background:#ffffff1d;font-size:10px;font-weight:900}
.verify-stage{min-height:0;overflow:hidden;display:grid;place-items:center;padding:10px 12px max(10px,env(safe-area-inset-bottom))}
.verify-loading{font-weight:900;color:#426475}
.verify-question{--timer-color:#22cf88;--timer-glow:#22cf8870;width:min(100%,520px);height:100%;min-height:0;display:grid;grid-template-rows:auto auto 18px auto auto minmax(0,1fr);align-content:start;padding:12px;border:2px solid #fff5d8;border-radius:24px;background:linear-gradient(160deg,#fffdf5,#ffeac2);box-shadow:0 8px 0 #d4ad69,0 16px 30px #4a4c3926;overflow:hidden}
.verify-question[data-timer-state="warning"]{--timer-color:#ff9f25;--timer-glow:#ff9f257d}.verify-question[data-timer-state="danger"]{--timer-color:#ff4d5e;--timer-glow:#ff4d5e91}
.verify-progress{display:flex;justify-content:space-between;align-items:center;gap:12px}.verify-progress>span{font-weight:900;color:#755026}.verify-timer{justify-self:center;display:flex;align-items:baseline;gap:4px;padding:5px 12px;border:2px solid color-mix(in srgb,var(--timer-color) 44%,#fff);border-radius:999px;background:#ffffffdd;color:var(--timer-color);box-shadow:0 0 16px var(--timer-glow)}.verify-timer b{font-size:27px;font-variant-numeric:tabular-nums}.verify-timer small{font-size:10px;font-weight:900}.verify-hint{margin:6px 0!important;text-align:center;color:#806947;font-size:10px}.verify-prompt{margin:4px 0 8px!important;padding:16px 12px!important;font-size:clamp(30px,8vw,46px)!important}
#verify-form{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}#verify-form .student-number-pad{align-self:end;margin-top:7px!important}#verify-form input{min-height:52px!important;margin-bottom:4px!important;font-size:26px!important}
.verify-result{width:min(100%,480px);display:grid;place-items:center;gap:10px;text-align:center;padding:24px;border:2px solid #fff;border-radius:24px;background:#ffffffdf;box-shadow:0 15px 36px #214f6126}.verify-result.success{background:linear-gradient(155deg,#f3fff8,#dff8e9)}.verify-result.fail{background:linear-gradient(155deg,#fffdf5,#ffe9dc)}.verify-result .game-primary-action,.verify-result .game-secondary-action{width:min(100%,320px)}

/* Makeup calendar */
.student-calendar-shell{max-width:720px!important;margin:0 auto!important}.calendar-page-head{display:flex;align-items:center;gap:14px}.calendar-page-head>a{text-decoration:none;color:#246f96;font-weight:900}.calendar-page-head small{color:#6e98aa;font:900 9px/1 Consolas,monospace;letter-spacing:.13em}.calendar-page-head h1{margin:3px 0 0}
.student-calendar-nav{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:8px;margin:16px 0 10px}.student-calendar-nav strong{text-align:center;font-size:20px}.student-calendar-nav button{min-height:42px}
.calendar-legend{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.calendar-legend span{padding:4px 8px;border-radius:999px;font-size:10px;font-weight:850}.calendar-legend .normal{background:#dff7e8;color:#25704c}.calendar-legend .makeup{background:#e9f7df;color:#517228}.calendar-legend .missing{background:#ffe2b7;color:#98591e}.calendar-legend .empty{background:#edf1f3;color:#74838a}
.student-calendar-week,.student-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.student-calendar-week{margin-bottom:6px}.student-calendar-week span{text-align:center;color:#758892;font-size:10px;font-weight:900}.student-calendar-grid{min-height:360px}.calendar-day{display:grid!important;place-items:center;gap:2px;min-height:58px!important;padding:5px!important;border:1px solid #dce6ea!important;border-radius:13px!important;background:#f4f6f7!important;color:#6d7a81!important;box-shadow:none!important}.calendar-day b{font-size:17px}.calendar-day small{font-size:8px}.calendar-day.normal{background:#dff7e8!important;color:#256e4b!important;border-color:#bde9ce!important}.calendar-day.makeup{background:#eaf8dc!important;color:#526f29!important;border-color:#cfe8ae!important}.calendar-day.missing{background:#ffe4bb!important;color:#96571d!important;border-color:#f5c986!important}.calendar-day.pending{background:#fff3bf!important;color:#856813!important;border-color:#efd77f!important}.calendar-day.future{opacity:.42}.calendar-spacer{min-height:58px}.calendar-detail-actions{display:flex;gap:8px;flex-wrap:wrap}
.runner-next-question{display:grid;gap:3px;margin:5px auto 10px;padding:7px 12px;width:min(90%,340px);border:1px dashed #9bc6d6;border-radius:14px;background:#edf8fcad;color:#3b6c7e;text-align:center}.runner-next-question small{font-size:9px;font-weight:900;letter-spacing:.1em}.runner-next-question strong{font-size:18px}

@media(max-width:520px){
 .student-home-v4>.student-daily-head{min-height:330px!important}.compact-player-card{padding-bottom:14px!important}.home-checkin-shortcut{grid-template-columns:1fr}.home-checkin-shortcut>a,.home-checkin-shortcut>button{width:100%!important}.student-home-links{grid-template-columns:1fr 1fr}
 .student-verify-shell{width:100vw}.verify-question{border-radius:20px;padding:10px}.verify-prompt{font-size:32px!important}
 .student-calendar-shell{margin:0!important;border-radius:0!important;min-height:100dvh}.student-calendar-grid{gap:4px}.calendar-day{min-height:54px!important;border-radius:11px!important}
}
@media(max-width:380px){.student-home-links{grid-template-columns:1fr}.verify-topbar>span{display:none}.verify-question{padding:8px}.verify-prompt{font-size:29px!important}.student-calendar-week,.student-calendar-grid{gap:3px}.calendar-day{min-height:50px!important}}

html.student-focus-mode body>header,html.student-focus-mode #nav,html.student-focus-mode .g1-preview-banner{display:none!important}
html.student-focus-mode .layout{display:block!important;max-width:none!important;margin:0!important}
html.student-focus-mode #main,html.student-focus-mode .g1-preview-main{height:100dvh!important;min-height:100dvh!important;overflow:hidden!important;margin:0!important;padding:0!important}
html.student-focus-mode .student-verify-shell{margin:0!important}


/* G5: unified student shell, compact challenge lobby, settings, auto-check runner. */
.student-daily-shell>.student-daily-head .student-challenge-entry{
 width:auto!important;max-width:154px!important;min-width:122px!important;justify-self:start!important;align-self:end!important;white-space:nowrap!important;
}
.student-calendar-shell,.student-settings-shell{padding-bottom:98px!important}
.student-calendar-shell .calendar-page-head{padding-right:0!important}
.student-settings-shell{max-width:720px!important;margin:0 auto!important}
.student-settings-head{margin-bottom:14px}.student-settings-head>small{color:#6d95a7;font:900 9px/1 Consolas,monospace;letter-spacing:.14em}.student-settings-head h1{margin:5px 0}.student-settings-head p{margin:0;color:#71858e}
.settings-card{display:grid;gap:12px;margin:12px 0;padding:18px;border:1px solid #dbe6eb;border-radius:22px;background:#ffffffdf;box-shadow:0 6px 0 #d7e2e7,0 14px 26px #21465d12}.settings-card h2{margin:0;color:#1e536c}.settings-card form{display:grid;gap:12px}.settings-card label{display:grid;gap:6px;color:#486675;font-size:12px;font-weight:850}.settings-card input{min-height:48px;padding:0 13px;border:1px solid #c8dce5;border-radius:14px;background:#fff;color:#18364a}.settings-card input[readonly]{background:#eef3f5;color:#71828a}.settings-readonly-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.settings-readonly-grid span{display:grid;gap:3px;padding:11px;border-radius:14px;background:#f4f8fa}.settings-readonly-grid small{color:#7b8e97}.settings-readonly-grid b{color:#315d70}

/* Challenge lobby: deliberately single-screen and visually compact. */
.game-home-v4{min-height:100dvh!important;padding-bottom:94px!important}
.game-home-v4>.student-daily-head,.game-home-v4>.survival-plan-note,.game-home-v4>.game-quick-links{display:none!important}
.game-home-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px 10px}
.game-home-topbar>div:first-child{display:grid;gap:2px}.game-home-topbar small{color:#6e9aaa;font:900 9px/1 Consolas,monospace;letter-spacing:.14em}.game-home-topbar strong{font-size:22px;color:#174e68}
.game-top-actions{display:flex;gap:7px}.game-top-actions button{min-height:38px;padding:0 12px;border-radius:999px;border:1px solid #c8dce5;background:#ffffffdf;color:#285c72;font-size:11px;font-weight:900;box-shadow:0 3px 0 #c7d8df}
.runner-lobby{min-height:calc(100dvh - 190px);display:grid;grid-template-rows:auto auto 1fr auto;place-items:center;align-content:center;gap:16px;padding:18px 10px 8px;text-align:center}
.runner-lobby-copy{display:grid;gap:5px}.runner-lobby-copy>small{color:#8b67c7;font:900 10px/1 Consolas,monospace;letter-spacing:.15em}.runner-lobby-copy h2{margin:0;color:#173e56;font-size:23px}.runner-lobby-copy p{max-width:390px;margin:0;color:#71828d;font-size:12px}
.runner-lobby-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(100%,420px)}
.runner-lobby-stats span{display:grid;gap:3px;padding:10px 6px;border:1px solid #dce7ec;border-radius:15px;background:#ffffffd9;box-shadow:0 4px 0 #d7e2e6}.runner-lobby-stats small{font-size:9px;color:#7c8f97}.runner-lobby-stats b{font-size:19px;color:#24566b;font-variant-numeric:tabular-nums}
.runner-start-button{align-self:center;display:grid!important;place-items:center;align-content:center;width:150px!important;height:150px!important;min-height:150px!important;padding:0!important;border:7px solid #ffe0d6!important;border-radius:50%!important;background:radial-gradient(circle at 36% 28%,#ff9b83 0 11%,#ff654e 37%,#e9342d 72%,#b91f21 100%)!important;color:#fff!important;box-shadow:inset 0 5px 0 #ffc3b4,0 10px 0 #8d171b,0 0 0 8px #ff6b5954,0 19px 34px #ad29294d!important;text-shadow:0 2px 0 #8d1b1e;transition:transform .1s ease,box-shadow .1s ease}
.runner-start-button span{font:950 12px/1 Consolas,monospace;letter-spacing:.16em}.runner-start-button strong{margin-top:5px;font-size:21px}.runner-start-button:not(:disabled):active{transform:translateY(7px) scale(.97);box-shadow:inset 0 3px 0 #ffc3b4,0 3px 0 #8d171b,0 0 0 8px #ff6b5946,0 8px 15px #ad292936!important}.runner-start-button:disabled{filter:grayscale(.45);opacity:.68}
.runner-lobby-note{color:#81929a;font-size:10px}
html.student-focus-mode .student-game-shell{height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;overflow:hidden!important;margin:0!important;padding:8px 10px!important;border:0!important;border-radius:0!important}
html.student-focus-mode .game-home-topbar{display:none!important}
html.student-focus-mode #game-area{height:100%;min-height:0;overflow:hidden}
html.student-focus-mode .runner-logic-stage{height:100%;max-height:100%;overflow:hidden}
.auto-check-pad{grid-template-columns:1fr!important;max-width:520px!important;margin-top:7px!important}
.auto-check-pad .student-number-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.auto-check-pad .student-number-grid button{min-height:64px!important;font-size:25px!important}
.runner-next-question{min-height:54px;display:grid;place-items:center;align-content:center}
.runner-next-question strong{font-size:20px}
.runner-current-question{margin-top:8px!important}

/* Hooks for the later 3D runner pass. */
.runner-logic-stage[data-runner-phase="advance"] .runner-current-question{animation:runnerSolveFlash .28s ease-out}
@keyframes runnerSolveFlash{0%{filter:brightness(1)}45%{filter:brightness(1.28);transform:scale(1.03)}100%{filter:brightness(1);transform:scale(1)}}

@media(max-width:520px){
 .student-daily-shell>.student-daily-head .student-challenge-entry{width:auto!important;max-width:132px!important;min-width:112px!important;min-height:44px!important;padding:0 13px!important}
 .game-home-v4{padding-left:10px!important;padding-right:10px!important}
 .game-home-topbar{padding:4px 2px 8px}.game-home-topbar strong{font-size:20px}
 .runner-lobby{min-height:calc(100dvh - 168px);gap:13px;padding:8px 2px}
 .runner-lobby-stats{gap:6px}.runner-lobby-stats span{padding:9px 4px}.runner-lobby-stats b{font-size:17px}
 .runner-start-button{width:132px!important;height:132px!important;min-height:132px!important}.runner-start-button strong{font-size:18px}
 .student-settings-shell{margin:0!important;border-radius:0!important;min-height:100dvh}.settings-card{padding:14px}
}
@media(max-height:720px) and (max-width:520px){
 .runner-lobby{gap:8px}.runner-lobby-copy p,.runner-lobby-note{display:none}.runner-start-button{width:112px!important;height:112px!important;min-height:112px!important;border-width:5px!important}.runner-start-button strong{font-size:16px}.runner-lobby-stats span{padding:7px 3px}
}


/* Pre-3D runner structural hotfix.
   Keep active mode usable on short iPhone viewports, but defer final scene composition to the 3D pass. */
@media(max-width:520px) and (max-height:900px){
 html.student-focus-mode .student-game-shell{padding:5px 8px!important}
 html.student-focus-mode .runner-logic-stage{
  display:grid!important;
  grid-template-rows:auto 14px auto auto minmax(86px,1fr) auto!important;
  gap:5px!important;
  align-content:stretch!important;
 }
 html.student-focus-mode .game-hud{margin:0!important}
 html.student-focus-mode .game-hud>b{padding:4px 9px!important}
 html.student-focus-mode .game-hud>b #game-seconds{font-size:22px!important}
 html.student-focus-mode .survival-live-stats{margin:4px 0!important;gap:5px!important}
 html.student-focus-mode .survival-live-stats span{padding:5px 6px!important;min-height:54px!important}
 html.student-focus-mode .survival-live-stats span b{font-size:14px!important}
 html.student-focus-mode .runner-next-question{min-height:46px!important;margin:2px auto 4px!important;padding:5px 9px!important}
 html.student-focus-mode .runner-next-question strong{font-size:17px!important}
 html.student-focus-mode .game-question-board{margin:4px 0 6px!important;padding:4px 10px 11px!important}
 html.student-focus-mode .student-game-shell .game-question-board p{margin:5px 0 0!important;padding:4px!important;font-size:clamp(31px,8vw,40px)!important}
 html.student-focus-mode .answer-console input{min-height:50px!important;font-size:24px!important}
 html.student-focus-mode .auto-check-pad{margin-top:4px!important}
 html.student-focus-mode .auto-check-pad .student-number-grid{gap:6px!important}
 html.student-focus-mode .auto-check-pad .student-number-grid button{min-height:52px!important;border-radius:14px!important;font-size:22px!important}
}
@media(max-width:520px) and (max-height:780px){
 html.student-focus-mode .survival-live-stats{grid-template-columns:repeat(4,minmax(0,1fr))!important}
 html.student-focus-mode .survival-live-stats span{min-height:44px!important;padding:3px!important}
 html.student-focus-mode .survival-live-stats span small{font-size:8px!important}
 html.student-focus-mode .survival-live-stats span b{font-size:12px!important}
 html.student-focus-mode .runner-next-question{min-height:38px!important}
 html.student-focus-mode .runner-current-question{margin-top:2px!important}
 html.student-focus-mode .auto-check-pad .student-number-grid button{min-height:46px!important}
}

/* Result page survives the future 3D pass, so make it a stable mobile layout now. */
@media(max-width:520px){
 .game-home-v4:not(.student-focus-mode) #game-area{min-height:0}
 .game-home-v4 .survival-result{
  gap:10px!important;
  margin:0 0 86px!important;
  padding:18px 14px 20px!important;
  border-radius:24px!important;
 }
 .game-home-v4 .result-ribbon{
  min-width:0!important;
  width:min(220px,78%)!important;
  min-height:44px!important;
  margin:-18px auto 6px!important;
  border-radius:0 0 20px 20px!important;
  font-size:20px!important;
 }
 .game-home-v4 .result-best-mark{margin-top:0!important}
 .game-home-v4 .survival-result-title{gap:2px!important}
 .game-home-v4 .survival-result-title>strong{font-size:40px!important;line-height:1!important}
 .game-home-v4 .survival-result-title>small{font-size:10px!important}
 .game-home-v4 .result-score-core{
  width:94px!important;height:94px!important;
  border-width:5px!important;
  margin:0 auto!important;
 }
 .game-home-v4 .result-score-core b{font-size:27px!important}
 .game-home-v4 .survival-result-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
 }
 .game-home-v4 .survival-result-grid span{
  min-height:70px!important;
  padding:7px 5px!important;
 }
 .game-home-v4 .survival-result-grid b{font-size:18px!important}
 .game-home-v4 .survival-result .game-primary-action,
 .game-home-v4 .survival-result .game-secondary-action{
  min-height:48px!important;
  margin:0 auto!important;
 }
 .game-home-v4 .survival-result>p{font-size:9px!important;line-height:1.45!important}
}


/* G5c navigation recovery:
   the old mobile hotfix was scoped only to home/game, so the generic app.css nav rule
   could stretch the calendar/settings nav over the entire viewport. Make the student
   dock universal and keep it available while a runner session is active. */
@media(max-width:520px){
 .student-calendar-shell,.student-settings-shell,.student-daily-shell,.student-game-shell{
  padding-bottom:96px!important
 }
}
html.student-focus-mode .student-game-shell{
 height:100dvh!important;
 min-height:100dvh!important;
 max-height:100dvh!important;
 padding:8px 10px calc(82px + env(safe-area-inset-bottom))!important
}
html.student-focus-mode .student-game-shell #game-area{
 height:100%!important;
 min-height:0!important;
 overflow:hidden!important
}

/* Calendar must always remain visibly above the fixed dock. */
.student-calendar-shell{
 position:relative!important;
 display:block!important;
 visibility:visible!important;
 opacity:1!important;
 background:#fffdf8!important;
 color:#18364a!important
}
.student-calendar-shell>.calendar-page-head,
.student-calendar-shell>.student-calendar-nav,
.student-calendar-shell>.calendar-legend,
.student-calendar-shell>.student-calendar-week,
.student-calendar-shell>.student-calendar-grid{
 position:relative!important;
 z-index:1!important;
 visibility:visible!important;
 opacity:1!important
}


/* G5d protected runner input dock.
   The upper game scene may change later (3D runway), but the answer field + keypad owns
   a guaranteed bottom zone on every phone size and must never be clipped. */
html.student-focus-mode .runner-logic-stage{
 --runner-input-h:166px;
 position:relative!important;
 grid-template-rows:auto 14px auto auto minmax(0,1fr)!important;
 padding-bottom:calc(var(--runner-input-h) + 6px)!important;
 min-height:0!important
}
html.student-focus-mode .runner-input-dock{
 position:absolute!important;
 left:0!important;right:0!important;bottom:0!important;
 z-index:30!important;
 display:grid!important;
 grid-template-rows:50px minmax(0,1fr)!important;
 gap:7px!important;
 height:var(--runner-input-h)!important;
 min-height:var(--runner-input-h)!important;
 max-height:var(--runner-input-h)!important;
 margin:0!important;
 padding:0!important;
 overflow:visible!important
}
html.student-focus-mode .runner-input-dock>input{
 width:100%!important;
 min-width:0!important;
 height:50px!important;
 min-height:50px!important;
 margin:0!important;
 padding:0 12px!important;
 border-radius:15px!important;
 font-size:clamp(22px,7vw,30px)!important
}
html.student-focus-mode .auto-check-pad{
 display:grid!important;
 grid-template-columns:minmax(0,1fr) 50px!important;
 gap:6px!important;
 width:100%!important;
 max-width:none!important;
 height:109px!important;
 min-height:109px!important;
 margin:0!important;
 align-items:stretch!important
}
html.student-focus-mode .auto-check-pad .runner-digit-grid{
 display:grid!important;
 grid-template-columns:repeat(5,minmax(0,1fr))!important;
 grid-template-rows:repeat(2,minmax(0,1fr))!important;
 gap:6px!important;
 min-width:0!important;
 height:109px!important
}
html.student-focus-mode .auto-check-pad .runner-digit-grid button{
 min-width:0!important;
 width:100%!important;
 height:51px!important;
 min-height:51px!important;
 max-height:51px!important;
 padding:0!important;
 border-radius:14px!important;
 font-size:clamp(18px,5.4vw,24px)!important
}
html.student-focus-mode .runner-pad-tools{
 display:grid!important;
 grid-template-rows:repeat(2,minmax(0,1fr))!important;
 gap:6px!important;
 width:50px!important;
 min-width:50px!important;
 height:109px!important
}
html.student-focus-mode .runner-pad-tools button{
 width:50px!important;
 height:51px!important;
 min-height:51px!important;
 max-height:51px!important;
 padding:0!important;
 border-radius:14px!important;
 font-size:22px!important;
 font-weight:950!important
}
html.student-focus-mode .runner-decimal{
 background:linear-gradient(180deg,#fff,#fff3d7)!important;
 color:#654523!important;
 border:2px solid #f1dfb9!important;
 box-shadow:inset 0 2px 0 #fff,0 4px 0 #d3b985!important
}
html.student-focus-mode .runner-delete{
 background:linear-gradient(180deg,#edf6fb,#dcebf4)!important;
 color:#4f6e7d!important;
 border:2px solid #d7e6ee!important;
 box-shadow:inset 0 2px 0 #fff,0 4px 0 #b8ccd7!important
}

/* Small iPhone / legacy 320×568-class devices: protect the dock first.
   The redundant stat cards collapse before the input controls are allowed to shrink. */
@media(max-width:380px), (max-height:700px){
 html.student-focus-mode .runner-logic-stage{--runner-input-h:150px}
 html.student-focus-mode .runner-input-dock{
  grid-template-rows:44px minmax(0,1fr)!important;
  gap:5px!important;
  height:var(--runner-input-h)!important;
  min-height:var(--runner-input-h)!important
 }
 html.student-focus-mode .runner-input-dock>input{
  height:44px!important;min-height:44px!important;font-size:22px!important
 }
 html.student-focus-mode .auto-check-pad,
 html.student-focus-mode .auto-check-pad .runner-digit-grid,
 html.student-focus-mode .runner-pad-tools{height:101px!important}
 html.student-focus-mode .auto-check-pad{
  grid-template-columns:minmax(0,1fr) 46px!important;
  gap:5px!important
 }
 html.student-focus-mode .auto-check-pad .runner-digit-grid{gap:5px!important}
 html.student-focus-mode .auto-check-pad .runner-digit-grid button,
 html.student-focus-mode .runner-pad-tools button{
  height:48px!important;min-height:48px!important;max-height:48px!important;border-radius:12px!important
 }
 html.student-focus-mode .runner-pad-tools,
 html.student-focus-mode .runner-pad-tools button{width:46px!important;min-width:46px!important}
 html.student-focus-mode .survival-live-stats{display:none!important}
 html.student-focus-mode .runner-next-question{min-height:34px!important;margin:2px auto 3px!important}
 html.student-focus-mode .runner-next-question strong{font-size:15px!important}
 html.student-focus-mode .game-question-board{margin:3px 0 4px!important;padding:3px 8px 8px!important}
 html.student-focus-mode .student-game-shell .game-question-board p{font-size:clamp(28px,9vw,36px)!important}
}

/* Extremely short viewport fallback: the keypad geometry remains complete; upper scene compresses. */
@media(max-height:620px){
 html.student-focus-mode .runner-logic-stage{--runner-input-h:140px}
 html.student-focus-mode .runner-input-dock{grid-template-rows:40px minmax(0,1fr)!important}
 html.student-focus-mode .runner-input-dock>input{height:40px!important;min-height:40px!important}
 html.student-focus-mode .auto-check-pad,
 html.student-focus-mode .auto-check-pad .runner-digit-grid,
 html.student-focus-mode .runner-pad-tools{height:95px!important}
 html.student-focus-mode .auto-check-pad .runner-digit-grid button,
 html.student-focus-mode .runner-pad-tools button{height:45px!important;min-height:45px!important;max-height:45px!important}
 html.student-focus-mode .runner-next-question{display:none!important}
 html.student-focus-mode .game-hud>b #game-seconds{font-size:19px!important}
}

/* Five-second verification: ten digits in two rows, independent action rail. */
html.student-focus-mode .pad-verification{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important}
html.student-focus-mode .verification-digit-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:6px!important}
html.student-focus-mode .verification-digit-grid button{min-width:0!important;height:46px!important;min-height:46px!important;padding:0!important;font-size:22px!important}
html.student-focus-mode .pad-verification .student-submit-rail{display:grid!important;grid-template-columns:repeat(3,42px) minmax(0,1fr)!important;gap:7px!important;justify-items:stretch!important;align-items:center!important;padding:0!important}
html.student-focus-mode .pad-verification .student-submit-rail::before{display:none!important}
html.student-focus-mode .pad-verification .student-submit-rail>button{grid-column:auto!important;min-width:0!important;height:44px!important;min-height:44px!important;width:100%!important;padding:0!important}
html.student-focus-mode .pad-verification .submit-launch{border-radius:16px!important;height:48px!important;min-height:48px!important;display:flex!important;justify-content:center!important;gap:8px!important}
html.student-focus-mode .pad-verification .submit-label{position:static!important}

/* Recovery occupies the question area; the familiar input dock remains mounted. */
.verify-stage{position:relative}
.verify-recovery{position:absolute;inset:8px 8px auto;z-index:40;padding:14px;border:2px solid #d9a963;border-radius:16px;background:#fff9e9;color:#69421f}
.verify-recovery p{font-size:14px}
.verify-recovery button{min-height:44px;margin:4px;padding:8px 12px;touch-action:manipulation}

/* Keep verification input and submit inside a reserved bottom zone on short phones. */
html.student-focus-mode .verify-question{position:relative!important;padding-bottom:222px!important;grid-template-rows:auto auto 18px auto minmax(0,1fr)!important}
html.student-focus-mode #verify-form{position:absolute!important;left:10px!important;right:10px!important;bottom:10px!important;height:202px!important;display:grid!important;grid-template-rows:48px 146px!important;gap:6px!important;width:auto!important;max-width:none!important;margin:0!important}
html.student-focus-mode #verify-form input{height:48px!important;min-height:48px!important;max-height:48px!important;margin:0!important;padding:0 10px!important}
html.student-focus-mode #verify-form .pad-verification{height:146px!important;min-height:146px!important;margin:0!important;grid-template-rows:94px 46px!important;gap:6px!important;align-self:stretch!important}
html.student-focus-mode .verification-digit-grid{grid-template-rows:44px 44px!important}
html.student-focus-mode .verification-digit-grid button{height:44px!important;min-height:44px!important;max-height:44px!important}
html.student-focus-mode .pad-verification .submit-launch{height:44px!important;min-height:44px!important;max-height:44px!important}
@media(max-height:620px){html.student-focus-mode .verify-hint{display:none!important}html.student-focus-mode .verify-prompt{padding:8px!important;min-height:0!important}html.student-focus-mode .verify-timer{padding:2px 10px!important}}

/* Daily student pages use their existing four-tab navigation on phones. */
@media(max-width:600px){
 body:has(.student-home-v4)>header,body:has(.student-home-v4) #nav,body:has(.student-calendar-shell)>header,body:has(.student-calendar-shell) #nav,body:has(.student-settings-shell)>header,body:has(.student-settings-shell) #nav,body:has(.game-home-v4)>header,body:has(.game-home-v4) #nav{display:none!important}
 body:has(.student-home-v4) .layout,body:has(.student-calendar-shell) .layout,body:has(.student-settings-shell) .layout,body:has(.game-home-v4) .layout{display:block!important;margin:0!important}
 body:has(.student-home-v4) #main,body:has(.student-calendar-shell) #main,body:has(.student-settings-shell) #main,body:has(.game-home-v4) #main{padding:6px!important}
 .student-home-v4>.student-daily-head{min-height:130px!important;padding:12px!important;margin-bottom:10px!important}
 .student-home-v4>.student-daily-head h1{font-size:23px!important;margin:5px 0!important}
 .student-home-v4>.student-daily-head p{font-size:11px!important;margin:5px 0!important;max-width:220px}
 .student-home-v4 .compact-player-card{padding:12px!important;gap:8px!important}
 .student-home-v4 .compact-player-card h2{font-size:23px!important;margin:5px 0!important}
 .student-home-v4 .profile-badge-strip{margin-top:6px!important}
 .student-home-v4 .player-main-cp{margin-top:4px!important}
 .student-home-v4 .home-checkin-shortcut{padding:10px!important;gap:6px!important;margin-top:10px!important}
 .student-home-v4 .home-checkin-shortcut strong{font-size:16px!important}
}
@media(max-height:620px) and (max-width:600px){
 .student-home-v4>.student-daily-head{min-height:100px!important}
 .student-home-v4>.student-daily-head>div>p:last-child{display:none!important}
 .student-home-v4 .profile-badge-strip{display:none!important}
 .student-home-v4 .home-checkin-shortcut{grid-template-columns:minmax(0,1fr) auto!important}
 .student-home-v4 .home-checkin-shortcut>a{width:auto!important;font-size:12px!important;padding:10px!important}
}

@media(max-width:600px){
 .student-home-v4>.student-daily-head{min-height:96px!important}
 .student-home-v4>.student-daily-head .student-challenge-entry{display:none!important}
 .student-home-v4 .compact-player-card{min-height:0!important;height:auto!important;padding:10px!important}
 .student-home-v4 .student-profile-main>p{margin:4px 0!important;line-height:1.35!important;font-size:12px!important}
 .student-home-v4 .student-task-line{padding:6px 8px!important;min-height:0!important}
 .student-home-v4 .player-main-cp{padding:8px!important;gap:5px!important;margin-top:0!important}
 .student-home-v4 .player-main-cp .student-cp-track{margin:0!important;height:20px!important}
 .student-home-v4 .home-checkin-shortcut{grid-template-columns:minmax(0,1fr) auto!important}
 .student-home-v4 .home-checkin-shortcut>a{width:auto!important;min-height:42px!important;height:auto!important;font-size:12px!important;padding:8px!important}
 .student-home-v4 .home-checkin-shortcut strong{font-size:14px!important}
 .student-home-v4 .home-checkin-shortcut small{font-size:10px!important}
}
@media(max-height:700px) and (max-width:600px){.student-home-v4 .profile-badge-strip{display:none!important}.student-home-v4>.student-daily-head>div>p:last-child{display:none!important}}

/* Keep all countdown parts inside the HUD pill rather than inheriting stat-tile spans. */
html.student-focus-mode .game-hud>b{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:4px!important;width:auto!important;height:46px!important;min-height:46px!important;padding:4px 9px!important}
html.student-focus-mode .game-hud>b>span,html.student-focus-mode .game-hud>b>small{display:inline!important;flex:none!important;width:auto!important;min-height:0!important;height:auto!important;padding:0!important;margin:0!important;background:none!important;border:0!important;box-shadow:none!important}
html.student-focus-mode .game-hud>b #game-seconds{font-size:24px!important}


.student-daily-launch{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;margin:4px 0 18px;padding:22px;border:1px solid #b8d4ee;border-radius:18px;background:linear-gradient(135deg,#edf7ff,#f8fbff);box-shadow:0 10px 30px #1f5f9912}
.student-daily-launch small{display:block;color:#66829b;font-size:10px;font-weight:900;letter-spacing:.12em}.student-daily-launch h2{margin:3px 0 4px;color:#174f7f;font-size:24px}.student-daily-launch p{margin:0;color:#63798d}
.student-daily-launch>a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 16px;border-radius:12px;background:#245b8f;color:#fff;font-weight:800}.student-daily-launch>a.student-daily-launch-game{background:#fff;color:#245b8f;border:1px solid #b8d4ee}
@media(max-width:720px){.student-daily-launch{grid-template-columns:1fr}.student-daily-launch>a{width:100%}}

.student-daily-launch{grid-template-columns:minmax(0,1fr) auto auto auto}.student-daily-launch>a{white-space:nowrap;font-size:14px}.student-daily-launch>div{min-width:0}.student-daily-launch p{line-height:1.6}@media(max-width:1050px){.student-daily-launch{grid-template-columns:repeat(3,minmax(0,1fr))}.student-daily-launch>div{grid-column:1/-1}.student-daily-launch>a{white-space:normal;text-align:center}}@media(max-width:600px){.student-daily-launch{grid-template-columns:minmax(0,1fr);padding:16px}.student-daily-launch>div{grid-column:auto}}


/* Growth energy clarity: distinguish leaderboard score from identity progression. */
.student-energy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.student-energy-head>div{display:grid;gap:2px}.student-energy-head span{color:#637b87;font-size:10px;font-weight:900;letter-spacing:.05em}
.student-energy-head strong{color:#173f55;font-size:clamp(25px,3vw,34px);line-height:1;font-variant-numeric:tabular-nums}
.student-energy-head strong em{font-style:normal;font-size:.48em;color:#718591;font-weight:800}
.student-energy-head button{flex:none;border:0;background:transparent;color:#2e6c79;font-size:10px;font-weight:900;cursor:pointer}
.student-energy-meaning,.student-energy-earn{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:5px;font-size:10px;line-height:1.35}
.student-energy-meaning{color:#667d89}.student-energy-meaning b{color:var(--tier-accent);font-size:10px}.student-energy-earn{padding:7px 8px;border:1px solid color-mix(in srgb,var(--tier-accent) 20%,#d9e6ea);border-radius:9px;background:#ffffff91;color:#58717d}.student-energy-earn span:first-child{font-weight:900;color:#2a6471}
.energy-explain-card{margin:12px 0;padding:12px;border:1px solid #d7e6e9;border-radius:14px;background:#f7fbfb}.energy-explain-card h3{margin:0 0 5px}.energy-explain-card p{margin:0 0 10px;color:#617985;font-size:12px}.energy-explain-card>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.energy-explain-card>div span{display:flex;justify-content:space-between;gap:8px;padding:7px 8px;border-radius:9px;background:#fff;color:#647b87;font-size:11px}.energy-explain-card b{color:#226c61}.energy-explain-card small{display:block;margin-top:8px;color:#7d8d95;line-height:1.5}
.runner-energy-note{display:grid;gap:3px;width:min(100%,420px);padding:10px 12px;border:1px solid #cfe4da;border-radius:14px;background:linear-gradient(135deg,#f4fff9,#f7fbff);text-align:left;box-shadow:0 4px 0 #dbe8e2}.runner-energy-note b{color:#236a58;font-size:12px}.runner-energy-note span{color:#456d68;font-size:11px;font-weight:800}.runner-energy-note small{color:#667f85;font-size:10px}.runner-energy-note em{font-style:normal;color:#8b7a62;font-size:9px}
@media(max-width:520px){.student-energy-meaning,.student-energy-earn{align-items:flex-start;flex-direction:column}.energy-explain-card>div{grid-template-columns:1fr}.runner-energy-note{padding:8px 10px}.runner-energy-note span{font-size:10px}}
.settings-readonly-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
@media(max-width:600px){
}
@media(max-width:380px){
}

/* 2026-10-02: make rank progression visibly stronger from silver to gold to ruby */
.student-daily-profile.tier-silver{border-width:1px;box-shadow:0 10px 28px #64748b1c,inset 0 1px 0 #ffffffc7}
.student-daily-profile.tier-silver .math-rank-emblem{box-shadow:0 0 0 1px #d7e0ea,0 5px 14px #64748b24}
.student-daily-profile.tier-gold{border-width:2px;background-image:linear-gradient(120deg,#fffdf4 0%,#fff4c8 42%,#fff9e6 72%,#fffdf6 100%);box-shadow:0 12px 34px #d29a252e,0 0 24px #f3c74d22,inset 0 1px 0 #fff}
.student-daily-profile.tier-gold .math-rank-emblem{box-shadow:0 0 0 2px #f4d77a,0 0 18px #eebf42aa,0 7px 18px #8f661d33;animation:wmlGoldRankPulse 2.8s ease-in-out infinite}
.student-daily-profile.tier-gold .tier-pill{box-shadow:0 0 12px #edc4515c}
.student-daily-profile.tier-gold .tier-special-effect::before{opacity:.86;animation-duration:3.8s}
.student-daily-profile.tier-gold .tier-special-effect::after{content:"";position:absolute;inset:-35%;background:conic-gradient(from 30deg,transparent 0 36%,#ffe99b38 42%,transparent 49% 82%,#fff5c026 88%,transparent 94%);animation:wmlGoldHalo 8s linear infinite}

.student-daily-profile.tier-ruby{border-width:2px;background-image:radial-gradient(circle at 13% 16%,#ffdce333 0 3%,transparent 17%),radial-gradient(circle at 82% 22%,#fff0f433 0 2%,transparent 15%),linear-gradient(125deg,#fff8fa 0%,#ffe4e9 38%,#fff3f6 62%,#fbd9e2 100%);box-shadow:0 14px 38px #a51f4438,0 0 32px #e44f7760,inset 0 1px 0 #fff}
.student-daily-profile.tier-ruby .math-rank-emblem{box-shadow:0 0 0 2px #f5a6ba,0 0 14px #ff6c92bb,0 0 30px #d9275f6b,0 8px 20px #68182e3d;animation:wmlRubyRankPulse 1.9s ease-in-out infinite}
.student-daily-profile.tier-ruby .tier-pill{box-shadow:0 0 14px #dc3d6870;text-shadow:0 0 10px #fff}
.student-daily-profile.tier-ruby .tier-special-effect::before{opacity:.95;animation-duration:2.9s}
.student-daily-profile.tier-ruby .tier-special-effect::after{content:"✦  ·  ✧  ·  ✦";position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:flex-end;padding:9px 18px;color:#c5225578;font-size:20px;letter-spacing:12px;text-shadow:-90px 50px 0 #e6537a70,-35px 82px 0 #b91f4c66;animation:wmlRubySpark 3.2s ease-in-out infinite}

@keyframes wmlGoldRankPulse{0%,100%{transform:translateZ(0) scale(1);filter:brightness(1)}50%{transform:translateZ(0) scale(1.045);filter:brightness(1.08)}}
@keyframes wmlGoldHalo{to{transform:rotate(360deg)}}
@keyframes wmlRubyRankPulse{0%,100%{transform:translateZ(0) scale(1);filter:brightness(1)}50%{transform:translateZ(0) scale(1.07);filter:brightness(1.14)}}
@keyframes wmlRubySpark{0%,100%{opacity:.45;transform:translateY(2px) scale(.96)}50%{opacity:1;transform:translateY(-3px) scale(1.04)}}
@media (prefers-reduced-motion:reduce){
 .student-daily-profile.tier-gold .math-rank-emblem,.student-daily-profile.tier-gold .tier-special-effect::after,
 .student-daily-profile.tier-ruby .math-rank-emblem,.student-daily-profile.tier-ruby .tier-special-effect::after{animation:none!important}
}


/* Functional polish 2026-10-06: compact settings, permission grants and readable growth rules. */
.settings-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.settings-card-head h2{margin:0}.settings-card-head p{margin:2px 0 0;color:#758994;font-size:11px}.settings-card-head>span{padding:4px 8px;border-radius:999px;background:#eef6fa;color:#557684;font-size:9px;font-weight:850;white-space:nowrap}
.compact-settings-form{display:grid!important;gap:8px!important}.compact-settings-form label{gap:4px!important}.compact-settings-form label>span{display:flex;align-items:center;gap:7px}.compact-settings-form label>span small{font-size:9px;font-weight:650;color:#8a9aa1}.editable-badge{padding:2px 6px;border-radius:999px;background:#ddf4e7;color:#26704c!important}
.settings-inline-edit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.settings-inline-edit button{min-width:70px}
.protected-profile-form{grid-template-columns:1fr 1fr}.protected-profile-form label:last-of-type{grid-column:1/-1}.protected-profile-form .profile-save-protected{grid-column:1/-1}
.protected-profile-form select{min-height:44px;border:1px solid #c8dce5;border-radius:12px;background:#fff;color:#18364a;padding:0 11px}.protected-profile-form select:disabled{background:#eef3f5;color:#71828a}
.compact-readonly{margin-top:2px}.compact-readonly span{padding:9px 10px!important}.compact-readonly b{font-size:12px}
.permission-state{padding:12px 13px;border-radius:14px}.permission-state strong{display:block}.permission-state p{margin:4px 0;font-size:12px}.permission-state small{color:#71848d}.permission-state.approved{background:#e8f7ed;border:1px solid #bfe7cf;color:#255f44}.permission-state.pending{background:#fff6dc;border:1px solid #ecd798;color:#715a18}
.permission-request-form{display:grid;gap:10px}.permission-checkboxes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.permission-checkboxes label{display:flex!important;align-items:center;justify-content:center;gap:6px!important;min-height:42px;border:1px solid #d5e3e9;border-radius:11px;background:#f8fbfc;font-size:11px!important}.permission-checkboxes input{width:18px!important;min-height:18px!important}
.permission-request-form>label{display:grid;gap:5px;font-size:11px}.permission-request-form>label>span{font-weight:850}.permission-request-form>label small{font-weight:500;color:#8b999f}
.settings-security{padding:0!important;overflow:hidden}.settings-security>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer}.settings-security>summary::-webkit-details-marker{display:none}.settings-security>summary span{display:flex;align-items:baseline;gap:9px}.settings-security>summary strong{color:#1e536c}.settings-security>summary small{color:#7c9099}.settings-security>summary>b{transition:transform .16s}.settings-security[open]>summary>b{transform:rotate(90deg)}.settings-security>p,.settings-security>form,.settings-security>.student-logout-action{margin-left:14px!important;margin-right:14px!important}.settings-security>.student-logout-action{margin-bottom:14px!important}
.growth-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.growth-detail-head small{font:900 9px/1 Consolas,monospace;letter-spacing:.14em;color:#7a94a1}.growth-detail-head h2{margin:5px 0 2px}.growth-detail-head p{margin:0}.growth-detail-head>span{min-width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#e6f5fb;color:#216a87;font-weight:900}
.growth-next-target{margin:14px 0;padding:12px 13px;border-radius:14px;background:linear-gradient(135deg,#edf8ff,#f9fdff);border:1px solid #d4eaf5}.growth-next-target strong{color:#175b79}.growth-next-target p{margin:4px 0 0;font-size:12px;color:#657d88}
.growth-condition-list{display:grid;gap:7px}.growth-condition{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;align-items:start;padding:9px 10px;border-radius:12px;border:1px solid #e1e9ed;background:#fafcfd}.growth-condition>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eef2f4;color:#80919a;font-weight:900}.growth-condition.done{background:#f0faf4;border-color:#cae9d6}.growth-condition.done>span{background:#d9f1e2;color:#26704c}.growth-condition strong{font-size:12px}.growth-condition p{margin:1px 0;font-size:11px;color:#506f7d}.growth-condition em{font-style:normal;color:#8a9ba2}.growth-condition small{display:block;color:#899aa2;font-size:9px}
.growth-earn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.growth-earn-grid span{display:grid;gap:1px;padding:9px;border-radius:11px;background:#f5f9fb;text-align:center}.growth-earn-grid b{color:#1b7899}.growth-earn-grid small{font-size:9px;color:#6f858e}.growth-ledger{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:5px}.growth-ledger li{display:flex;justify-content:space-between;gap:10px;padding:7px 2px;border-bottom:1px solid #edf1f3;font-size:11px}.growth-ledger strong{color:#227a59}
@media(max-width:520px){.settings-card{margin:8px 0!important;padding:12px!important;border-radius:16px!important;box-shadow:0 3px 0 #dce5e9,0 8px 18px #21465d0d!important}.student-settings-head{margin-bottom:8px!important}.student-settings-head h1{font-size:24px}.student-settings-head p{font-size:10px;line-height:1.65}.protected-profile-form{grid-template-columns:1fr 1fr}.compact-settings-form input,.protected-profile-form select{min-height:42px!important}.settings-readonly-grid{gap:6px!important}.permission-checkboxes{gap:5px}.permission-checkboxes label{min-height:38px!important;padding:4px!important}.settings-security{padding:0!important}.growth-earn-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:370px){.protected-profile-form{grid-template-columns:1fr}.protected-profile-form label:last-of-type,.protected-profile-form .profile-save-protected{grid-column:auto}.permission-checkboxes{grid-template-columns:1fr 1fr}}
