@font-face{font-family:SempoaComic;src:url('/assets/fonts/ComicSansMS-Bold.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
:root{--navy:#17355d;--blue:#1768db;--sky:#eaf6ff;--orange:#ff8a28;--green:#20a96b;--red:#d94b55;--ink:#20324d;--muted:#687993;--line:#dce6f2;--card:#fff;--shadow:0 16px 40px rgba(23,53,93,.09)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#f6f9fd;color:var(--ink)}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 15%,#fff1b8,transparent 30%),radial-gradient(circle at 90% 8%,#c9f7df,transparent 28%),linear-gradient(145deg,#eaf7ff,#fff)}.login-card{width:min(460px,100%);padding:34px;border-radius:28px;background:rgba(255,255,255,.94);box-shadow:0 28px 80px rgba(23,53,93,.16)}.brand{display:flex;gap:12px;align-items:center;font-weight:900;color:var(--navy)}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;color:#fff;background:linear-gradient(135deg,var(--orange),#ffc142);font-size:24px}.brand small{display:block;color:var(--muted);font-weight:700}.login-card h1{margin:32px 0 8px;font-size:32px}.muted,.hint{color:var(--muted)}label{display:grid;gap:7px;margin:16px 0 0;font-weight:800;font-size:14px}input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink)}textarea{min-height:86px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(23,104,219,.14);border-color:var(--blue)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:11px 15px;background:var(--blue);color:#fff;font-weight:850;cursor:pointer}.btn:hover{filter:brightness(.96)}.btn.secondary{background:#eaf2ff;color:var(--blue)}.btn.warning{background:#fff0df;color:#b85b09}.btn.small{padding:8px 11px;font-size:13px}.btn.full{width:100%;margin-top:22px}.app-shell{min-height:100vh}.topbar{height:72px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.94);backdrop-filter:blur(12px)}.sidebar{position:fixed;inset:72px auto 0 0;width:250px;padding:20px 14px;background:var(--navy);color:#dce9fa;overflow:auto}.sidebar a{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:12px;font-weight:750}.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.12);color:#fff}.nav-label{margin:20px 14px 8px;color:#94abd0;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.content{margin-left:250px;padding:30px;max-width:1500px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:24px}.page-head h1{margin:0;font-size:clamp(28px,4vw,42px);color:var(--navy)}.eyebrow{margin:0 0 6px;color:var(--orange);font-size:12px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat,.panel{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.stat{padding:20px}.stat strong{display:block;margin-top:8px;font-size:34px;color:var(--navy)}.stat small{color:var(--muted);font-weight:800}.panel{padding:22px;margin-bottom:20px}.panel h2,.panel h3{margin:0;color:var(--navy)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.split{grid-template-columns:1.45fr .8fr}.notice-list{display:grid;gap:10px}.notice{display:flex;justify-content:space-between;gap:12px;padding:13px;border-radius:14px;background:#f7faff}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;background:#edf3fb;color:#516783;font-size:12px;font-weight:900}.badge.green{background:#def7e9;color:#17784b}.badge.orange{background:#fff0dc;color:#ad5a0b}.badge.red{background:#ffe4e7;color:#a52f3b}.flash{padding:13px 16px;margin-bottom:16px;border-radius:13px;font-weight:800}.flash.success{background:#def7e9;color:#146b44}.flash.error{background:#ffe4e7;color:#9e2e39}.day-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:6px}.day-tabs a{white-space:nowrap;padding:10px 15px;border-radius:12px;background:#edf3fb;color:#56708f;font-weight:850}.day-tabs a.active{background:var(--blue);color:#fff}.schedule-wrap{overflow:auto}.schedule{width:100%;border-collapse:separate;border-spacing:7px;min-width:760px}.schedule th{padding:10px;color:var(--muted);font-size:12px}.schedule td{min-width:120px;padding:0}.schedule .coach{min-width:170px;padding:14px;border-radius:14px;background:#f2f6fb;font-weight:900}.capacity{width:100%;min-height:76px;border:0;border-radius:14px;padding:10px;background:#ebf4ff;color:var(--blue);cursor:pointer}.capacity strong{display:block;font-size:20px}.capacity.full{background:#fff0df;color:#a9580d}.capacity.open{background:#e5f8ef;color:#187b4f}.slot-panel{padding:18px;margin-top:14px;border:2px solid #cfe2fb;border-radius:18px;background:#f8fbff}.slot-panel[hidden]{display:none}.student-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.student-row:last-child{border:0}.student-main{display:flex;gap:11px;align-items:center}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#dcecff,#fff1c8);color:var(--navy);font-weight:950}.actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .wide{grid-column:1/-1}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.data-table th{color:var(--muted);font-size:12px}.profile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-item{padding:14px;border-radius:14px;background:#f6f9fd}.profile-item small{display:block;color:var(--muted);margin-bottom:5px}.mobile-menu{display:none;border:0;background:none;font-size:24px}.top-actions{display:flex;align-items:center;gap:12px}.empty{padding:24px;text-align:center;color:var(--muted);background:#f8fafc;border-radius:14px}.audit-json{max-width:320px;white-space:pre-wrap;font-size:11px;color:var(--muted)}
.menu-backdrop{display:none}
@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.topbar{z-index:40}.sidebar{z-index:31;transform:translateX(-105%);transition:.2s}.menu-open .sidebar{transform:none}.menu-open{overflow:hidden}.menu-open .menu-backdrop{display:block;position:fixed;inset:72px 0 0;z-index:30;border:0;background:rgba(8,23,42,.62);backdrop-filter:blur(2px)}.content{margin-left:0;padding:22px}.mobile-menu{display:block}}
@media(max-width:650px){.topbar{height:64px;padding:0 14px}.sidebar{top:64px;width:min(320px,88vw)}.menu-open .menu-backdrop{inset:64px 0 0}.content{padding:18px 13px}.stats,.profile-grid,.form-grid{grid-template-columns:1fr}.page-head{align-items:start;flex-direction:column}.panel{padding:16px;border-radius:17px}.schedule-wrap{overflow:visible}.schedule{display:none}.mobile-board{display:grid!important;gap:12px}.mobile-coach{padding:15px;border:1px solid var(--line);border-radius:16px;background:#fff}.mobile-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}.mobile-slots .capacity{min-height:64px}.student-row{align-items:flex-start;flex-direction:column}.actions{width:100%}.actions .btn{flex:1}.top-actions span{display:none}}
@media(min-width:651px){.mobile-board{display:none!important}}
.filter-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;align-items:end}.assignment-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.assignment-card{padding:22px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#fff,#f0f8ff);box-shadow:var(--shadow)}.assignment-card h2{color:var(--navy);margin:14px 0 4px}.assignment-score{display:flex;align-items:end;justify-content:space-between;margin-top:18px;padding:14px;border-radius:16px;background:#fff}.assignment-score strong{font-size:34px;color:var(--blue)}.assignment-score small{color:var(--muted)}
.exercise{max-width:760px;margin:0 auto;padding:20px}.exercise-top{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:14px}.progress{height:12px;margin:18px 0;border-radius:99px;background:#dce8f7;overflow:hidden}.progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--orange),#ffd45b)}.question-stage{min-height:310px;display:grid;place-items:center;padding:28px;border-radius:28px;background:linear-gradient(145deg,#eaf6ff,#fff7d7);text-align:center}.question-number{color:var(--muted);font-weight:900}.question-rows{min-height:220px;display:flex;flex-direction:column;justify-content:center;align-items:flex-end}.flash-row{min-width:180px;text-align:right;font-size:clamp(40px,8vw,72px);line-height:1.08;font-weight:950;color:var(--navy);font-variant-numeric:tabular-nums}.equation-card{padding:30px;border-radius:22px;background:#fff;font-size:clamp(40px,7vw,68px);font-weight:950;color:var(--navy);box-shadow:var(--shadow)}.flash-done .question-rows{visibility:hidden}.answer-card{margin-top:18px;padding:20px;border-radius:22px;background:#fff;box-shadow:var(--shadow)}.big-answer{font-size:34px;text-align:center;font-weight:900}.answer-split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.answer-split input{font-size:28px;text-align:center}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.keypad button{min-height:58px;border:0;border-radius:16px;background:#edf5ff;color:var(--navy);font-size:24px;font-weight:900}.result-hero{text-align:center;padding:44px 24px;border-radius:28px;background:linear-gradient(145deg,#fff3bf,#dcf8eb);margin-bottom:20px}.result-hero h1{font-size:42px;color:var(--navy)}.result-hero .result-motivation{max-width:650px;margin:24px auto 12px;font-size:clamp(25px,5vw,42px);line-height:1.18}.result-score{font-size:76px;font-weight:950;color:var(--blue)}
@media(max-width:900px){.filter-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.exercise{padding:8px}.question-stage{min-height:270px;padding:18px}.answer-card{padding:14px}.keypad button{min-height:64px}.assignment-cards{grid-template-columns:1fr}.exercise-top{font-size:12px}.filter-grid{grid-template-columns:1fr 1fr}}
.answer-card .keypad{display:none}.answer-card.keypad-open .keypad{display:grid}
@media(max-width:650px){body:has(.exercise){overflow:hidden}.content:has(.exercise){padding:8px}.exercise{height:calc(100dvh - 80px);padding:0 0 84px;overflow:hidden}.exercise-top{min-height:34px}.progress{margin:8px 0}.question-stage{height:calc(100dvh - 198px);min-height:0;padding:12px;border-radius:20px}.question-rows{min-height:0}.answer-card{position:fixed;z-index:40;left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));margin:0;padding:10px;border:1px solid var(--line)}.answer-card:not(.keypad-open) .btn{display:none}.answer-card.keypad-open{max-height:calc(100dvh - 78px);overflow:auto}.answer-card.keypad-open .btn{margin-top:10px}.big-answer{height:58px;font-size:28px}.answer-split label{margin:0}.answer-split input{height:54px;font-size:24px}.keypad{gap:7px;margin-top:8px}.keypad button{min-height:48px;border-radius:12px;font-size:21px}}
.question-stage{display:flex;flex-direction:column;overflow:hidden}.question-number{flex:0 0 auto;width:100%;padding-bottom:10px}.question-number::before{content:'🔊';display:inline-block;margin-right:7px;font-size:.9em;animation:sound-cue .8s ease-out}.question-rows{flex:1 1 auto;width:100%;min-height:0;max-height:100%;overflow:hidden;justify-content:center}.flash-row{line-height:1}@keyframes sound-cue{0%{transform:scale(.7);opacity:.3}45%{transform:scale(1.25);opacity:1}100%{transform:scale(1);opacity:1}}
.question-rows{align-items:center;justify-content:space-evenly;padding:18px 0 24px}.flash-row{width:100%;min-width:0;text-align:center;flex:0 0 auto}
.student-menu-cards{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:14px;margin:-6px 0 22px}.student-menu-card{display:flex;align-items:center;gap:13px;padding:16px;border:2px solid var(--line);border-radius:19px;background:#fff;box-shadow:var(--shadow)}.student-menu-card.active{border-color:#9cc8ff;background:linear-gradient(145deg,#edf7ff,#fff8dc)}.menu-card-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:15px;background:#eaf2ff;color:var(--blue);font-size:25px;font-weight:950}.student-menu-card.active .menu-card-icon{background:linear-gradient(135deg,var(--orange),#ffc142);color:#fff}.student-menu-card strong,.student-menu-card small{display:block}.student-menu-card strong{color:var(--navy);font-size:17px}.student-menu-card small{margin-top:3px;color:var(--muted)}.assignment-card .symbol-title{display:flex;align-items:center;gap:13px;margin:14px 0 8px}.symbol-title .exercise-symbol{display:grid;place-items:center;min-width:72px;height:58px;padding:0 10px;border-radius:16px;background:linear-gradient(135deg,#e8f4ff,#fff0c7);color:var(--blue);font-size:25px;letter-spacing:3px}.symbol-title>span:last-child{font-size:20px}.symbol-title small{display:block;margin-top:2px;color:var(--muted);font-size:13px;font-weight:850}
@media(max-width:650px){.student-menu-cards{grid-template-columns:1fr 1fr;gap:9px;margin:-6px 0 17px}.student-menu-card{display:grid;justify-items:center;text-align:center;gap:7px;padding:13px 8px}.menu-card-icon{width:44px;height:44px;flex-basis:44px}.student-menu-card small{font-size:11px}.assignment-card{padding:18px}.symbol-title .exercise-symbol{min-width:68px;height:54px}.symbol-title>span:last-child{font-size:19px}}
.group-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin-top:18px}.group-choice{margin:0}.group-choice button{width:100%;min-height:94px;padding:13px;border:2px solid #d8e6f6;border-radius:16px;background:#fff;color:var(--navy);cursor:pointer;text-align:left}.group-choice button:hover{border-color:#80b6f5;background:#f5faff}.group-choice.done button{border-color:#a8e3c6;background:#effbf5}.group-choice button:disabled{cursor:not-allowed;opacity:.55}.group-choice strong,.group-choice span,.group-choice small{display:block}.group-choice strong{font-size:17px}.group-choice span{margin-top:5px;color:var(--muted);font-size:12px}.group-choice small{margin-top:8px;color:var(--blue);font-weight:900}.group-choice.done small{color:var(--green)}.attempt-timer{min-width:72px;padding:7px 10px;border-radius:12px;background:#eaf2ff;color:var(--blue);font-size:18px;font-weight:950;font-variant-numeric:tabular-nums;text-align:center}.attempt-timer.urgent{background:#ffe4e7;color:var(--red);animation:timer-pulse 1s infinite}@keyframes timer-pulse{50%{transform:scale(1.06)}}[data-time-limit][hidden]{display:none}
@media(max-width:650px){.group-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.group-choice button{min-height:88px;padding:11px}.exercise-top strong{max-width:48%;text-align:center}.attempt-timer{font-size:16px;min-width:65px}}
@media(max-width:650px){.answer-card [data-keypad]{display:none!important}.answer-card.keypad-open [data-keypad]{display:none!important}}
.group-config-editor{margin:20px 0;padding:18px;border:2px solid #d6e6f8;border-radius:18px;background:#f7fbff}.group-config-editor h3{margin:0}.group-config-editor>p{margin:5px 0 14px}.group-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.group-config-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.group-config-card>strong{display:block;color:var(--navy);font-size:17px}.group-config-card label{margin-top:10px;font-size:12px}.group-config-card input,.group-config-card select{padding:9px 10px}
.student-menu-cards{grid-template-columns:repeat(3,minmax(0,220px))}.learning-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,360px));gap:18px}.learning-choice-card{display:flex;align-items:center;gap:18px;min-height:145px;padding:24px;border:2px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#fff,#eef7ff);box-shadow:var(--shadow);transition:.18s}.learning-choice-card:hover{transform:translateY(-2px);border-color:#91bff4}.learning-choice-icon{display:grid;place-items:center;width:68px;height:68px;flex:0 0 68px;border-radius:20px;background:linear-gradient(135deg,var(--orange),#ffc142);color:#fff;font-size:29px;font-weight:950}.learning-choice-card strong,.learning-choice-card span,.learning-choice-card small{display:block}.learning-choice-card strong{color:var(--navy);font-size:23px}.learning-choice-card span{margin-top:5px;color:var(--blue);font-weight:850}.learning-choice-card small{margin-top:7px;color:var(--muted)}.learning-back{display:inline-flex;margin-bottom:18px;color:var(--blue);font-weight:850}
@media(max-width:650px){.student-menu-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.student-menu-card{padding:10px 5px}.student-menu-card small{display:none}.learning-choice-grid{grid-template-columns:1fr}.learning-choice-card{min-height:112px;padding:18px}.learning-choice-icon{width:58px;height:58px;flex-basis:58px}.learning-choice-card strong{font-size:20px}}
.brand-mark{color:transparent!important;background:#fff url('/assets/images/sempoa-character.png') center/contain no-repeat!important;border:1px solid #f1d9a7;box-shadow:0 5px 14px rgba(23,53,93,.12)}.learning-choice-icon{width:92px;height:82px;flex-basis:92px;color:transparent!important;background:#fff url('/assets/images/sempoa-character.png') center/88% auto no-repeat;border:1px solid #e5edf7;box-shadow:0 8px 20px rgba(23,53,93,.12)}.learning-choice-card:nth-child(even) .learning-choice-icon{background-color:#edf7ff}.learning-choice-card{min-height:160px;background:linear-gradient(145deg,#fff,#f4f9ff)}
@media(max-width:650px){.brand-mark{width:48px;height:48px}.learning-choice-icon{width:78px;height:70px;flex-basis:78px}.learning-choice-card{min-height:124px}}
@media(max-width:650px){.content:has(.assignment-cards)>.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}.content:has(.assignment-cards)>.stats .stat{min-width:0;min-height:86px;padding:10px 8px;border-radius:14px;box-shadow:0 7px 18px rgba(23,53,93,.07)}.content:has(.assignment-cards)>.stats .stat small{display:block;min-height:30px;font-size:10px;line-height:1.25}.content:has(.assignment-cards)>.stats .stat strong{margin-top:4px;font-size:clamp(21px,7vw,29px);line-height:1;white-space:nowrap}.student-menu-cards{gap:6px;margin-bottom:12px}.student-menu-card{min-width:0;gap:4px;padding:8px 4px;border-radius:14px}.student-menu-card .menu-card-icon{width:36px;height:36px;flex-basis:36px;border-radius:11px;font-size:19px}.student-menu-card strong{font-size:13px;line-height:1.1}.page-head{margin-bottom:14px}.page-head h1{font-size:clamp(25px,8vw,34px)}.assignment-card{padding:14px;border-radius:17px}.assignment-card h2{margin-top:8px}.group-picker{margin-top:12px}}
.student-summary .stat{overflow:hidden;color:#fff;border:0}.student-summary .stat:nth-child(1){background:linear-gradient(145deg,#1768db,#3d8cf0)}.student-summary .stat:nth-child(2){background:linear-gradient(145deg,#ff8127,#ffad3d)}.student-summary .stat:nth-child(3){background:linear-gradient(145deg,#169b64,#32bd7d)}.student-summary .stat small,.student-summary .stat strong{color:#fff}.student-summary .stat strong em{display:block;margin-top:5px;font-size:10px;line-height:1;font-style:normal;font-weight:800;opacity:.88}.assignment-series .group-picker{grid-template-columns:1fr}.assignment-series .group-choice button{display:grid;grid-template-columns:minmax(74px,auto) minmax(0,1fr) auto;align-items:center;gap:12px;min-height:70px;padding:11px 14px;text-align:left}.assignment-series .group-choice strong,.assignment-series .group-choice span,.assignment-series .group-choice small{margin:0}.assignment-series .group-choice span{min-width:0;line-height:1.25}.assignment-series .group-choice small{text-align:right;white-space:nowrap}
@media(max-width:650px){.content:has(.assignment-cards)>.student-summary{gap:6px}.content:has(.assignment-cards)>.student-summary .stat{min-height:76px;padding:9px 7px}.content:has(.assignment-cards)>.student-summary .stat small{min-height:27px;font-size:9px;line-height:1.15}.content:has(.assignment-cards)>.student-summary .stat strong{max-width:100%;margin-top:3px;font-size:clamp(18px,5.8vw,23px);line-height:1;letter-spacing:-.02em;overflow:hidden;text-overflow:clip}.student-summary .stat strong em{margin-top:4px;font-size:8px}.assignment-series{padding:12px}.assignment-series h2{font-size:25px}.assignment-series .group-picker{gap:7px;margin-top:10px}.assignment-series .group-choice button{grid-template-columns:65px minmax(0,1fr) auto;gap:8px;min-height:59px;padding:8px 10px;border-radius:12px}.assignment-series .group-choice strong{font-size:15px}.assignment-series .group-choice span{font-size:10px}.assignment-series .group-choice small{font-size:11px}}
.listening-config{grid-column:1/-1;margin:18px 0;padding:18px;border:2px solid #cfe3fb;border-radius:18px;background:linear-gradient(145deg,#eef7ff,#fff9df)}.listening-config[hidden],[data-replay-limit][hidden]{display:none}.listening-list{grid-template-columns:1fr;max-width:850px}.listening-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}.listening-row strong,.listening-row small{display:block}.listening-row small{margin-top:4px;color:var(--muted)}.listening-index{display:grid;place-items:center;min-width:78px;min-height:54px;padding:8px;border-radius:15px;background:linear-gradient(135deg,var(--orange),#ffc347);color:#fff;font-weight:950}
body:has(.listening-exercise) .sidebar{display:none}.content:has(.listening-exercise){margin-left:0;max-width:none;padding:14px}.listening-exercise{max-width:680px}.listening-stage{height:clamp(280px,48vh,440px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;border-radius:28px;background:radial-gradient(circle at 50% 22%,#fff 0,#eaf6ff 45%,#fff6d7 100%);text-align:center;overflow:hidden}.listening-speaker{font-size:52px;animation:listening-pulse 1.4s ease-in-out infinite}.listening-status{margin-top:12px;color:var(--navy);font-size:clamp(24px,5vw,38px);font-weight:950}.listening-number{min-height:72px;margin-top:8px;color:var(--blue);font-size:clamp(52px,12vw,88px);line-height:1;font-weight:950;font-variant-numeric:tabular-nums}.listening-help{margin:8px 0;color:var(--muted)}.listening-actions{justify-content:center}.listening-actions [hidden]{display:none!important}.listening-locked .answer-card{opacity:1}.listening-locked .answer-card .big-answer{background:#eef4fb;color:#6c7f96;cursor:not-allowed}.listening-locked .answer-card [data-keypad] button,.listening-locked .answer-card button[type=submit]{opacity:.5;cursor:not-allowed;filter:grayscale(.2)}@keyframes listening-pulse{50%{transform:scale(1.13)}}
@media(max-width:650px){.listening-row{grid-template-columns:auto minmax(0,1fr);gap:10px}.listening-row form{grid-column:1/-1;width:100%;margin:0}.listening-row form .btn{width:100%}.listening-index{min-width:65px}.content:has(.listening-exercise){padding:7px}.listening-exercise{height:calc(100dvh - 72px);padding-bottom:78px}.listening-stage{height:calc(100dvh - 260px);min-height:240px;padding:14px;border-radius:20px}.listening-speaker{font-size:42px}.listening-status{font-size:25px}.listening-number{min-height:58px;font-size:58px}.listening-help{font-size:12px}.listening-actions .btn{padding:9px 12px}.listening-exercise .answer-card:not(.keypad-open){padding:8px}.listening-exercise .answer-card:not(.keypad-open) .big-answer{height:52px}.listening-exercise .answer-card.keypad-open [data-keypad]{display:grid!important}}

/* Mobile Listening keeps Start, keypad, and Enter inside one visible viewport. */
@media(max-width:650px){
  body:has(.listening-exercise) .topbar,body:has(.listening-exercise) .student-bottom-nav{display:none!important}
  .content:has(.listening-exercise){box-sizing:border-box;height:100dvh;min-height:0;padding:4px 7px 7px!important;overflow:hidden}
  .listening-exercise{display:flex;height:100%;min-height:0;flex-direction:column;padding:0;overflow:hidden}
  .listening-exercise .exercise-top{flex:0 0 auto;min-height:32px}
  .listening-exercise>.progress{flex:0 0 auto;margin:5px 0 7px}
  .listening-exercise .listening-stage{flex:1 1 auto;height:auto;min-height:150px;padding:9px 12px;border-radius:18px}
  .listening-exercise .listening-speaker{font-size:34px}
  .listening-exercise .listening-status{margin-top:5px;font-size:23px}
  .listening-exercise .listening-number{min-height:0;margin-top:3px;font-size:48px}
  .listening-exercise .listening-help{margin:4px 0;font-size:11px}
  .listening-exercise .listening-actions{width:100%;margin-top:2px}
  .listening-exercise .listening-actions .btn{width:100%;min-height:42px;padding:7px 10px}
  .listening-exercise .answer-card,
  .listening-exercise .answer-card.keypad-open{position:static;z-index:auto;left:auto;right:auto;bottom:auto;flex:0 0 auto;max-height:none;margin:7px 0 0;padding:8px;overflow:visible}
  .listening-exercise .answer-card .big-answer{height:48px;font-size:25px}
  .listening-exercise .answer-card.keypad-open [data-keypad]{gap:5px;margin-top:6px}
  .listening-exercise .answer-card.keypad-open [data-keypad] button{min-height:40px;border-radius:10px;font-size:20px}
  .listening-exercise .answer-card button[type=submit]{display:block!important;width:100%;min-height:44px;margin-top:6px;padding:8px}
}

/* Mandatory first-login password change. */
.password-change-page{min-height:100dvh;padding:18px;background:radial-gradient(circle at 12% 12%,#fff3b7 0 5%,transparent 6%),radial-gradient(circle at 88% 20%,#d9f2ff 0 7%,transparent 8%),linear-gradient(145deg,#fffaf0,#edf7ff)}
.password-change-card{width:min(100%,480px);margin:auto;padding:clamp(24px,6vw,38px);border:2px solid #d9e7f5;border-radius:28px;box-shadow:0 24px 60px rgba(28,65,105,.16)}
.password-change-logo{display:block;width:min(230px,70%);max-height:105px;margin:0 auto 18px;object-fit:contain}
.password-change-card h1{margin:4px 0 10px;color:var(--navy);font-size:clamp(30px,8vw,42px);line-height:1.08}
.password-change-card form+form{margin-top:10px}.password-change-card .hint{margin-bottom:0;text-align:center}

/* Coach workflow: separate homework from live classroom presentation. */
.coach-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:22px}.coach-action-card{position:relative;display:flex;align-items:center;gap:20px;min-height:180px;padding:26px;overflow:hidden;border-radius:24px;color:#fff;box-shadow:0 20px 44px rgba(23,53,93,.18);transition:transform .18s,box-shadow .18s}.coach-action-card:hover{transform:translateY(-3px);box-shadow:0 25px 52px rgba(23,53,93,.22)}.coach-action-card.homework{background:linear-gradient(135deg,#1768db,#4698f3)}.coach-action-card.classroom{background:linear-gradient(135deg,#f17620,#ffad3d)}.coach-action-card::after{content:'';position:absolute;right:-55px;bottom:-80px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.12)}.coach-action-icon{display:grid;place-items:center;width:76px;height:76px;flex:0 0 76px;border-radius:23px;background:rgba(255,255,255,.18);font-size:38px;font-weight:950}.coach-action-card small,.coach-action-card strong{display:block}.coach-action-card h2{margin:4px 0 7px;font-size:28px}.coach-action-card p{max-width:440px;margin:0 0 14px;opacity:.88}.coach-action-card strong{font-size:14px}
.legacy-flow-form{max-width:1040px;margin:0 auto 22px;padding:clamp(20px,4vw,38px)}.flow-step{display:flex;align-items:center;gap:14px;margin:8px 0 18px;padding-bottom:13px;border-bottom:1px solid var(--line)}.flow-step:not(:first-child){margin-top:34px}.flow-step>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:13px;background:var(--navy);color:#fff;font-size:18px;font-weight:950}.flow-step h2{font-size:21px}.flow-step p{margin:3px 0 0;color:var(--muted);font-size:13px}.field-prominent{max-width:650px}.field-prominent select{min-height:52px;border-width:2px}.choice-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.choice-cards label{position:relative;margin:0;cursor:pointer}.choice-cards input{position:absolute;opacity:0;pointer-events:none}.choice-cards label>span{display:flex;min-height:132px;flex-direction:column;align-items:center;justify-content:center;padding:15px;border:2px solid var(--line);border-radius:18px;background:#fff;text-align:center;transition:.16s}.choice-cards b{display:grid;place-items:center;width:45px;height:45px;margin-bottom:8px;border-radius:14px;background:#edf5ff;color:var(--blue);font-size:25px}.choice-cards strong,.choice-cards small{display:block}.choice-cards small{margin-top:4px;color:var(--muted);font-weight:650}.choice-cards input:checked+span{border-color:var(--blue);background:linear-gradient(145deg,#edf6ff,#fff);box-shadow:0 0 0 4px rgba(23,104,219,.1)}.choice-cards input:checked+span b{background:var(--blue);color:#fff}.pr-core-fields{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.flash-settings{margin-top:16px;padding:18px;border-radius:17px;background:#fff7dd;border:1px solid #f5d98e}.flash-settings[hidden],[data-classroom-flash][hidden]{display:none!important}.flash-settings h3{margin-bottom:2px}.form-submit-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:32px -38px -38px;padding:20px 38px;border-radius:0 0 20px 20px;background:#eff6ff}.form-submit-bar strong,.form-submit-bar small{display:block}.form-submit-bar small{margin-top:3px;color:var(--muted)}.btn.large{min-height:50px;padding:14px 22px;font-size:16px}.classroom-submit{background:#fff3dc}.classroom-submit .btn{background:linear-gradient(135deg,#ee7020,#ff9f32)}
.classroom-intro{display:flex;align-items:center;justify-content:center;gap:20px;max-width:1040px;margin:0 auto 20px;padding:17px 22px;border:1px solid var(--line);border-radius:20px;background:#fff}.classroom-intro>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;flex:1}.classroom-intro span{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#eaf3ff;color:var(--blue);font-weight:950}.classroom-intro strong,.classroom-intro small{display:block}.classroom-intro small{color:var(--muted)}.classroom-intro i{color:#aac0db;font-size:22px}.monitor-preview{display:grid;grid-template-columns:minmax(260px,420px) 1fr;align-items:center;gap:26px;margin-top:28px;padding:22px;border-radius:20px;background:linear-gradient(145deg,#162d50,#254c7d);color:#fff}.monitor-preview h3{color:#fff}.monitor-preview p{margin-bottom:0;color:#c9daf0}.monitor-frame{min-height:210px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;border:7px solid #091b32;border-radius:14px;background:linear-gradient(145deg,#fff,#eef7ff);box-shadow:0 12px 25px rgba(0,0,0,.3);color:var(--navy)}.monitor-frame span{margin-bottom:13px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.monitor-frame b{font-size:30px;font-variant-numeric:tabular-nums}.result-list{display:grid;gap:14px}.result-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 22px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}.result-card-main{display:flex;align-items:center;gap:16px}.result-operation{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:17px;background:linear-gradient(145deg,#eaf4ff,#fff1c8);color:var(--blue);font-size:27px;font-weight:950}.result-card h2{margin:3px 0;color:var(--navy);font-size:19px}.result-card p,.result-card small{margin:0;color:var(--muted)}.result-card-stats{display:flex;align-items:center;gap:16px}.result-card-stats>span:not(.badge){min-width:78px;text-align:center}.result-card-stats b,.result-card-stats small{display:block}.result-card-stats b{color:var(--navy);font-size:20px}

/* Full-screen teaching surface for a TV, monitor, or projector. */
.classroom-presenter{height:100vh;overflow:hidden;background:#08172a;color:#f4f8ff}.presenter-shell{height:100dvh;display:grid;grid-template-rows:auto 1fr auto auto;background:radial-gradient(circle at 50% 38%,#244f7d 0,#112b4b 44%,#08172a 100%)}.presenter-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 22px;border-bottom:1px solid rgba(255,255,255,.12);background:rgba(4,17,34,.7)}.presenter-top>div{display:flex;align-items:center;gap:12px}.presenter-top strong,.presenter-top small{display:block}.presenter-top small{color:#a9bdd5}.live-dot{width:11px;height:11px;border-radius:50%;background:#4bd38d;box-shadow:0 0 0 6px rgba(75,211,141,.15)}.presenter-top button,.presenter-controls button{border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.09);color:#fff;font-weight:850;cursor:pointer}.presenter-top button{padding:9px 12px}.presenter-stage{position:relative;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 5vw;text-align:center;overflow:hidden}.presenter-status{position:absolute;top:18px;padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.1);color:#c9d9ea;font-size:13px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}.presenter-question-no{margin-bottom:12px;color:#ffbd4b;font-size:clamp(18px,2vw,28px);font-weight:950}.presenter-rows{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh}.presenter-row{min-width:min(580px,85vw);color:#fff;font-size:clamp(64px,12vh,132px);line-height:1.03;font-weight:950;font-variant-numeric:tabular-nums;text-shadow:0 8px 30px rgba(0,0,0,.3)}.presenter-answer{position:absolute;right:24px;bottom:20px;padding:14px 20px;border-radius:16px;background:#ffb52e;color:#172a43;font-size:clamp(22px,3vw,36px);font-weight:950;box-shadow:0 12px 35px rgba(0,0,0,.25)}.presenter-countdown{position:absolute;right:0;bottom:0;left:0;height:7px;background:rgba(255,255,255,.08)}.presenter-countdown i{display:block;width:0;height:100%;background:linear-gradient(90deg,#ff8a28,#ffd15a)}.presenter-controls{display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 18px;background:rgba(4,17,34,.78)}.presenter-controls button{min-height:48px;padding:10px 18px;font-size:14px}.presenter-controls button.primary{min-width:145px;border-color:#438eed;background:#1768db}.presenter-controls button.active{border-color:#ffba3c;background:#ff9b25;color:#172a43}.presenter-shortcuts{padding:0 18px 10px;text-align:center;color:#7189a6;font-size:11px;background:rgba(4,17,34,.78)}

@media(max-width:850px){.coach-action-grid{grid-template-columns:1fr}.choice-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-core-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.classroom-intro{gap:8px}.classroom-intro i{display:none}.monitor-preview{grid-template-columns:1fr}.result-card{align-items:flex-start;flex-direction:column}.result-card-stats{width:100%;justify-content:space-between;flex-wrap:wrap}}
@media(max-width:650px){.coach-action-card{min-height:145px;padding:19px}.coach-action-icon{width:60px;height:60px;flex-basis:60px;font-size:29px}.coach-action-card h2{font-size:22px}.coach-action-card p{font-size:13px}.legacy-flow-form{padding:17px}.choice-cards{gap:8px}.choice-cards label>span{min-height:120px;padding:10px}.choice-cards strong{font-size:13px}.choice-cards small{font-size:10px}.pr-core-fields{grid-template-columns:1fr}.form-submit-bar{align-items:stretch;flex-direction:column;margin:26px -17px -17px;padding:17px}.form-submit-bar .btn{width:100%}.classroom-intro{display:grid;grid-template-columns:1fr}.classroom-intro>div{padding:5px}.monitor-frame{min-height:170px}.result-card-stats>span:not(.badge){min-width:58px}.presenter-top{padding:10px}.presenter-top small{display:none}.presenter-top button{padding:8px;font-size:11px}.presenter-row{min-width:90vw;font-size:clamp(50px,11vh,88px)}.presenter-controls{display:grid;grid-template-columns:repeat(3,1fr);padding:8px}.presenter-controls button{min-height:43px;padding:7px 5px;font-size:11px}.presenter-controls button.primary{min-width:0}.presenter-shortcuts{display:none}.presenter-answer{right:12px;bottom:12px}}
.presenter-shortcuts{padding:0 18px 10px;text-align:center;color:#7189a6;font-size:11px;background:rgba(4,17,34,.78)}

/* Familiar legacy workflow, refreshed for touch screens and bulk PR delivery. */
.workflow-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;max-width:1040px;margin:0 auto 18px}.workflow-tabs a{display:flex;align-items:center;gap:11px;min-height:72px;padding:12px 14px;border:2px solid var(--line);border-radius:18px;background:#fff;color:var(--navy);box-shadow:0 7px 20px rgba(25,62,105,.06)}.workflow-tabs a:hover,.workflow-tabs a.active{border-color:var(--blue);background:linear-gradient(145deg,#eaf4ff,#fff);box-shadow:0 9px 25px rgba(23,104,219,.13)}.workflow-tabs b{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:13px;background:linear-gradient(135deg,#6554f4,#287cf0);color:#fff;font-size:22px}.workflow-tabs span{font-size:13px;font-weight:900;line-height:1.2}.student-picker{padding:15px;border:2px solid #dbe7f5;border-radius:20px;background:#f8fbff;transition:.2s}.student-picker.needs-selection{border-color:#f04464;box-shadow:0 0 0 5px rgba(240,68,100,.12)}.student-picker-tools{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;align-items:end;gap:9px;margin-bottom:13px}.student-picker-tools label{margin:0}.student-picker-tools .btn{min-height:43px}.student-picker-tools>strong{padding:12px 4px;color:var(--blue);font-size:13px;white-space:nowrap}.student-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:330px;overflow:auto}.student-check-grid label{position:relative;margin:0;cursor:pointer}.student-check-grid input{position:absolute;opacity:0}.student-check-grid label>span{display:grid;grid-template-columns:42px 1fr;column-gap:10px;align-items:center;min-height:70px;padding:10px;border:2px solid #e0e9f4;border-radius:15px;background:#fff}.student-check-grid label>span>b{grid-row:1/3;display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#edf4fd;color:var(--blue);font-size:17px}.student-check-grid label>span>strong,.student-check-grid label>span>small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-check-grid label>span>strong{font-size:13px}.student-check-grid label>span>small{color:var(--muted);font-size:11px}.student-check-grid input:checked+span{border-color:var(--blue);background:#edf6ff;box-shadow:0 0 0 3px rgba(23,104,219,.08)}.student-check-grid input:checked+span>b{background:var(--blue);color:#fff}.student-check-grid input:checked+span>b::after{content:'✓'}.student-check-grid input:checked+span>b{font-size:0}.student-check-grid input:checked+span>b::after{font-size:17px}
.soft-form-step{scroll-margin-top:86px}.soft-form-step.workflow-auto-focus{animation:workflowAutoFocus 1.35s ease-out}@keyframes workflowAutoFocus{0%,35%{box-shadow:0 0 0 6px rgba(23,104,219,.17),0 15px 34px rgba(23,104,219,.14)}100%{box-shadow:var(--soft-step-shadow,0 8px 24px rgba(25,62,105,.06))}}@media(prefers-reduced-motion:reduce){.soft-form-step.workflow-auto-focus{animation:none}}
.pr-workflow-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.pr-workflow-tabs a:nth-child(1){border-color:#acd7ff;background:linear-gradient(145deg,#e9f6ff,#fff)}.pr-workflow-tabs a:nth-child(2){border-color:#ffd69e;background:linear-gradient(145deg,#fff3df,#fff)}.pr-workflow-tabs a:nth-child(3){border-color:#b9ead6;background:linear-gradient(145deg,#e8fbf4,#fff)}.pr-workflow-tabs a:nth-child(4){border-color:#e3c4ff;background:linear-gradient(145deg,#f5eaff,#fff)}.learning-category-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1100px}.learning-category-grid .learning-choice-card:nth-child(1) .learning-choice-icon{background:linear-gradient(135deg,#1671e8,#38bdf8)}.learning-category-grid .learning-choice-card:nth-child(2) .learning-choice-icon{background:linear-gradient(135deg,#f17824,#ffb12f)}.learning-category-grid .learning-choice-card:nth-child(3) .learning-choice-icon{background:linear-gradient(135deg,#0b9f7b,#43d6aa)}
.learning-category-grid .learning-choice-card,.learning-method-grid .learning-choice-card{position:relative;isolation:isolate;overflow:hidden;border:0;color:#fff;box-shadow:0 17px 35px rgba(24,57,100,.2)}.learning-category-grid .learning-choice-card::after,.learning-method-grid .learning-choice-card::after{content:'';position:absolute;z-index:-1;right:-34px;bottom:-56px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.16)}.learning-category-grid .learning-choice-card:nth-child(1){background:linear-gradient(135deg,#1768db,#38bdf8)}.learning-category-grid .learning-choice-card:nth-child(2){background:linear-gradient(135deg,#f17824,#ffb72f)}.learning-category-grid .learning-choice-card:nth-child(3){background:linear-gradient(135deg,#0a9f79,#48d6a9)}.learning-method-grid .learning-choice-card:nth-child(1){background:linear-gradient(135deg,#6048dd,#2996f0)}.learning-method-grid .learning-choice-card:nth-child(2){background:linear-gradient(135deg,#e84891,#ff914d)}.learning-category-grid .learning-choice-card strong,.learning-category-grid .learning-choice-card span,.learning-category-grid .learning-choice-card small,.learning-method-grid .learning-choice-card strong,.learning-method-grid .learning-choice-card span,.learning-method-grid .learning-choice-card small{color:#fff}.learning-category-grid .learning-choice-icon,.learning-method-grid .learning-choice-icon{border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.2)!important;box-shadow:inset 0 1px rgba(255,255,255,.25)}.learning-category-grid .learning-choice-card:hover,.learning-method-grid .learning-choice-card:hover{border:0;filter:saturate(1.08);transform:translateY(-4px);box-shadow:0 22px 42px rgba(24,57,100,.27)}
@media(max-width:850px){.workflow-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.student-picker-tools{grid-template-columns:1fr 1fr}.student-picker-tools label{grid-column:1/-1}.student-picker-tools>strong{text-align:right}.student-check-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.pr-workflow-tabs,.learning-category-grid{grid-template-columns:1fr}}
@media(max-width:650px){.workflow-tabs{gap:7px}.workflow-tabs a{min-height:60px;padding:8px;border-radius:14px}.workflow-tabs b{width:36px;height:36px;flex-basis:36px;font-size:18px}.workflow-tabs span{font-size:11px}.student-picker{padding:10px}.student-picker-tools{gap:7px}.student-picker-tools .btn{padding:9px;font-size:11px}.student-picker-tools>strong{font-size:11px}.student-check-grid{grid-template-columns:1fr;max-height:300px}.student-check-grid label>span{min-height:62px}}
.rule-purpose-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:13px 16px;border:1px solid #cfe1f4;border-radius:16px;background:#edf6ff;color:var(--navy);font-size:13px}.rule-purpose-note span{padding:6px 9px;border-radius:10px;background:#fff;color:var(--muted);font-weight:750}.rule-filter-panel{margin-bottom:14px}.rule-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}.rule-filter-search{grid-column:1/-1}.rule-filter-actions{display:flex;align-items:center;gap:9px;margin-top:12px}.rule-filter-actions strong{margin-left:auto;color:var(--blue)}.rule-system-code{display:block;max-width:420px;margin-top:4px;color:var(--muted);font:700 10px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.rule-status-form{display:flex;align-items:center;gap:7px}.rule-status-form select{min-width:105px}.rule-mobile-list{display:none}.rule-mobile-card{padding:15px;border:1px solid #d9e5f1;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(25,62,105,.07)}.rule-mobile-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.rule-mobile-card header small,.rule-mobile-card header strong{display:block}.rule-mobile-card header small{margin-bottom:3px;color:var(--blue);font-weight:900}.rule-mobile-card header strong{font-size:16px}.rule-mobile-meta{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;margin:12px 0}.rule-mobile-meta span{padding:8px;border-radius:11px;background:#f3f7fb;color:var(--navy);font-size:11px;font-weight:800}.rule-mobile-meta b{display:block;margin-bottom:3px;color:var(--muted);font-size:9px}.rule-mobile-card details{margin:8px 0 12px;color:var(--muted);font-size:11px}.rule-mobile-card code{display:block;margin-top:6px;overflow-wrap:anywhere}.rule-mobile-card .rule-status-form{display:grid;grid-template-columns:1fr auto}.rule-mobile-card .rule-status-form select{width:100%}
@media(max-width:760px){.rule-settings-head{align-items:stretch}.rule-settings-head .btn{width:100%}.rule-purpose-note{align-items:stretch}.rule-purpose-note strong{width:100%}.rule-purpose-note span{flex:1 1 100%}.rule-filter-panel{padding:12px}.rule-filter-grid{grid-template-columns:1fr 1fr;gap:8px}.rule-filter-search{grid-column:1/-1}.rule-filter-actions{display:grid;grid-template-columns:1fr 1fr}.rule-filter-actions .btn{text-align:center}.rule-filter-actions strong{grid-column:1/-1;margin:3px 0 0;text-align:center}.rule-desktop-list{display:none}.rule-mobile-list{display:grid;gap:10px}.rule-mobile-meta{grid-template-columns:1fr 1fr}.rule-mobile-meta span:last-child{grid-column:1/-1}.rule-status-form .btn{min-height:44px}}
.autocomplete-picker{overflow:visible}.autocomplete-picker .student-picker-tools label{position:relative}.autocomplete-picker [data-student-search]{min-height:52px;padding-left:44px;border:2px solid #9fc8f4;border-radius:16px;background:#fff}.autocomplete-picker .student-picker-tools label::after{content:'⌕';position:absolute;left:15px;top:38px;color:#1768db;font-size:25px;line-height:1;pointer-events:none}.autocomplete-picker .student-check-grid{display:none}.student-autocomplete-results{position:absolute;z-index:40;top:calc(100% + 6px);left:0;right:0;max-height:310px;overflow:auto;padding:7px;border:1px solid #b9d5f2;border-radius:16px;background:#fff;box-shadow:0 18px 40px rgba(25,60,105,.22)}.student-autocomplete-results[hidden]{display:none}.student-autocomplete-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:11px;cursor:pointer}.student-autocomplete-option:hover,.student-autocomplete-option.active{background:linear-gradient(135deg,#e8f4ff,#f2edff)}.student-autocomplete-option strong{color:#17355d;font-size:13px}.student-autocomplete-option small{padding:4px 7px;border-radius:999px;background:#edf5ff;color:#3871ae;font-size:10px;white-space:nowrap}.student-autocomplete-empty{padding:13px;color:#6e7f94;text-align:center;font-size:12px}.selected-student-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px;padding:12px;border-radius:16px;background:linear-gradient(135deg,#eaf6ff,#f2ecff)}.selected-student-chips[hidden]{display:none}.student-chip{display:grid;grid-template-columns:1fr auto;gap:1px 9px;align-items:center;padding:8px 10px;border:1px solid #b7d5f5;border-radius:13px;background:#fff;color:#17355d;text-align:left;box-shadow:0 5px 13px rgba(31,72,132,.09);cursor:pointer}.student-chip strong{font-size:12px}.student-chip small{grid-column:1;color:#55779d;font-size:9px}.student-chip b{grid-column:2;grid-row:1/3;color:#dc4470;font-size:19px}.autocomplete-picker [data-student-option].is-selected>span{border-color:#1768db;background:linear-gradient(145deg,#e8f4ff,#f4efff)}
@media(max-width:650px){.autocomplete-picker [data-student-search]{min-height:49px}.autocomplete-picker .student-picker-tools{grid-template-columns:1fr 1fr}.autocomplete-picker .student-picker-tools>strong{align-self:center}.selected-student-chips{padding:8px}.student-chip{flex:1 1 calc(50% - 8px)}}
.assignment-history{max-width:1040px;margin:28px auto 20px}.history-filter{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));align-items:end;gap:10px;margin:18px 0;padding:16px;border-radius:18px;background:linear-gradient(135deg,#edf7ff,#fff7df)}.history-filter label{margin:0}.history-filter-actions{display:flex;gap:7px}.history-filter-actions .btn{flex:1}.history-list{display:grid;gap:10px}.history-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid #dce8f5;border-radius:17px;background:#fff}.history-main{display:flex;align-items:center;gap:13px;min-width:0}.history-main>div{min-width:0}.history-icon{display:grid;place-items:center;width:50px;height:50px;flex:0 0 50px;border-radius:15px;background:linear-gradient(135deg,#1768db,#7350df);color:#fff;font-size:23px;font-weight:950}.history-row:nth-child(3n+2) .history-icon{background:linear-gradient(135deg,#ef792a,#ffb333)}.history-row:nth-child(3n) .history-icon{background:linear-gradient(135deg,#079f79,#42d5a5)}.history-main strong,.history-main small{display:block}.history-main small{margin-top:4px;color:#5c7391}.history-main p{max-width:650px;margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.4}.history-row>.actions{flex-wrap:nowrap}.history-row .badge{white-space:nowrap}
.assignment-report-dates{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px}.assignment-report-dates span{display:grid;grid-template-columns:auto auto;gap:5px;padding:6px 9px;border-radius:10px;background:#eef6ff;color:#425f82;font-size:11px;line-height:1.25}.assignment-report-dates span:nth-child(2){background:#e9f9f0}.assignment-report-dates b{color:#173f72}.assignment-student-report .stat{min-width:0}.assignment-student-report .assignment-report-dates{display:grid;gap:6px}.assignment-student-report .assignment-report-dates span{grid-template-columns:1fr}.wib-time{min-width:146px;white-space:normal}
@media(max-width:900px){.history-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filter-actions{grid-column:1/-1}.history-row{align-items:flex-start;flex-direction:column}.history-row>.actions{width:100%;justify-content:space-between}}
@media(max-width:520px){.history-filter{grid-template-columns:1fr}.history-filter-actions{grid-column:auto}.history-main{align-items:flex-start}.history-icon{width:43px;height:43px;flex-basis:43px}.history-row>.actions{align-items:stretch;flex-direction:column}.history-row>.actions .btn{width:100%}}
@media(max-width:520px){.assignment-report-dates{display:grid;gap:6px}.assignment-report-dates span{grid-template-columns:1fr}.assignment-student-report{grid-template-columns:1fr!important}.wib-time{min-width:132px}}

/* Keep the real category/method symbols visible over their colored tiles. */
.learning-category-grid .learning-choice-icon,.learning-method-grid .learning-choice-icon{color:#fff!important}
.learning-method-grid{margin-inline:auto;justify-content:center}.learning-method-grid .learning-choice-card{justify-content:center;text-align:center}.learning-method-grid .learning-choice-icon{display:grid;place-items:center;padding:0;font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:42px;line-height:1;text-align:center}.learning-method-grid .learning-choice-copy{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;margin:0}.learning-method-grid .learning-choice-copy>span,.learning-method-grid .learning-choice-copy>small{width:100%;text-align:center}
.learning-method-grid .learning-choice-icon{position:relative}.learning-method-grid .learning-choice-icon img{position:relative;z-index:1;display:block;width:88%;height:88%;object-fit:contain;object-position:center}.learning-method-grid .method-icon-fallback{position:absolute;inset:0;display:grid!important;place-items:center;margin:0!important;font-size:42px;line-height:1}
.listening-method-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 12px}.listening-method-switch a{display:grid;min-width:0;min-height:84px;place-items:center;border:2px solid #d9e4ef;border-radius:20px;background:#fff;color:#204466;text-decoration:none;box-shadow:0 8px 20px rgba(31,74,116,.08)}.listening-method-switch .listening-method-icon{display:grid;width:58px;height:58px;place-items:center;font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:42px;line-height:1}.listening-method-switch .listening-method-icon img{display:block;width:56px;height:56px;object-fit:contain;object-position:center}.listening-method-switch .listening-method-multiply{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:54px;font-weight:800}.listening-method-switch a.active{border-color:#1689aa;background:linear-gradient(135deg,#dff8f4,#dff0ff);color:#0b6987;box-shadow:0 10px 24px rgba(22,137,170,.18)}.listening-placeholder-mode>:not(.listening-method-switch):not(.listening-placeholder-message){display:none!important}.listening-placeholder-message{margin:0;padding:30px}.listening-placeholder-message strong{font-size:22px}.listening-placeholder-message p{margin:8px 0 0;color:var(--muted)}
.learning-category-grid .learning-choice-icon{position:relative;font-size:0;line-height:1}
.learning-category-grid .learning-choice-icon::before{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:950;line-height:1;letter-spacing:0;text-align:center}
.learning-category-grid .learning-choice-card:nth-child(1) .learning-choice-icon::before{content:'+ −'}
.learning-category-grid .learning-choice-card:nth-child(2) .learning-choice-icon::before{content:'× ÷'}
.learning-category-grid .learning-choice-card:nth-child(3) .learning-choice-icon::before{content:'🎧'}

/* Cheerful student experience across category, method, homework, and listening pages. */
body.student-app{min-height:100vh;background:radial-gradient(circle at 8% 12%,rgba(255,210,81,.3),transparent 25%),radial-gradient(circle at 94% 17%,rgba(67,211,170,.24),transparent 25%),linear-gradient(155deg,#eef7ff 0,#fff8e8 50%,#f4ecff 100%)}.student-app .topbar{border:0;background:linear-gradient(110deg,#185fc8,#6548dc 57%,#e94e92);color:#fff;box-shadow:0 8px 28px rgba(31,71,145,.2)}.student-app .topbar .brand,.student-app .topbar .brand small,.student-app .top-actions>span{color:#fff}.student-app .topbar .badge{background:rgba(255,255,255,.2);color:#fff}.student-app .topbar .btn.secondary{background:#fff;color:#315fc4}.student-app .sidebar{background:linear-gradient(180deg,#123d83 0,#5235ad 58%,#9e3b91 100%)}.student-app .sidebar .nav-label{color:#d9d8ff}.student-app .sidebar a{margin-bottom:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08)}.student-app .sidebar a:hover,.student-app .sidebar a.active{background:linear-gradient(135deg,#ff8b35,#ffc33e);color:#fff;box-shadow:0 10px 24px rgba(61,28,103,.24)}.student-app .content{position:relative}.student-app .content>.page-head{position:relative;isolation:isolate;overflow:hidden;align-items:center;padding:clamp(20px,4vw,34px);border-radius:28px;background:linear-gradient(125deg,#1768db,#6848df 62%,#ec5599);box-shadow:0 20px 44px rgba(37,74,150,.21);color:#fff}.student-app .content>.page-head::after{content:'★';position:absolute;z-index:-1;right:clamp(20px,7vw,80px);top:50%;color:rgba(255,255,255,.14);font-size:clamp(80px,15vw,170px);line-height:1;transform:translateY(-50%) rotate(12deg)}.student-app .content>.page-head h1,.student-app .content>.page-head .eyebrow,.student-app .content>.page-head .muted{color:#fff}.student-app .content>.page-head .eyebrow{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.18)}.student-app .learning-back{align-items:center;min-height:42px;padding:10px 15px;border-radius:14px;background:#fff;color:#3e5fc7;box-shadow:0 8px 22px rgba(40,71,125,.12)}.student-app .student-menu-card{position:relative;overflow:hidden;border:0;color:#fff;box-shadow:0 13px 27px rgba(30,67,129,.17)}.student-app .student-menu-card:nth-child(1){background:linear-gradient(135deg,#1da7d8,#3fd4bc)}.student-app .student-menu-card:nth-child(2){background:linear-gradient(135deg,#6848df,#9c55e8)}.student-app .student-menu-card:nth-child(3){background:linear-gradient(135deg,#ef5a8c,#ff934e)}.student-app .student-menu-card strong,.student-app .student-menu-card small{color:#fff}.student-app .student-menu-card .menu-card-icon{border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.2);color:#fff}.student-app .assignment-card{border:0;background:linear-gradient(145deg,#fff,#edf7ff);box-shadow:0 15px 34px rgba(31,70,128,.13)}.student-app .assignment-card:nth-child(3n+1){border-top:7px solid #2689ed}.student-app .assignment-card:nth-child(3n+2){border-top:7px solid #f58a32}.student-app .assignment-card:nth-child(3n){border-top:7px solid #25b882}.student-app .assignment-card h2{color:#25498e}.student-app .group-choice button{border:0;background:linear-gradient(135deg,#e8f4ff,#f7fbff);box-shadow:0 7px 18px rgba(32,76,139,.1)}.student-app .group-choice:nth-child(3n+2) button{background:linear-gradient(135deg,#fff0df,#fff9ee)}.student-app .group-choice:nth-child(3n) button{background:linear-gradient(135deg,#e5faef,#f6fffa)}.student-app .group-choice.done button{background:linear-gradient(135deg,#dff8ec,#effdf6)}.student-app .group-choice small{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;background:#dcecff}.student-app .group-choice.done small{background:#cef3df}.student-app .listening-row .btn{background:linear-gradient(135deg,#6948df,#e9549a);box-shadow:0 8px 18px rgba(105,72,223,.24)}.student-app .empty{padding:28px;border:2px dashed #8dbbf0;border-radius:22px;background:linear-gradient(135deg,#edf7ff,#fff4dc);color:#355c92;font-weight:850;text-align:center}
@media(max-width:650px){.student-app .topbar{padding-inline:12px}.student-app .content{padding:18px 13px}.student-app .content>.page-head{padding:21px 18px;border-radius:22px}.student-app .content>.page-head::after{right:10px}.student-app .learning-back{margin-bottom:12px}.student-app .assignment-card{border-top-width:5px}.student-app .group-choice small{max-width:100%;white-space:normal}.student-app .student-menu-card{min-height:84px}}

/* Center the homework calculation block while keeping numerals right-aligned. */
.exercise .question-rows{width:max-content;min-width:min(220px,75vw);max-width:92%;margin-inline:auto;align-items:stretch}.exercise .flash-row{width:100%;min-width:0;text-align:right;font-family:SempoaComic,"Comic Sans MS","Comic Sans",cursive;font-variant-numeric:tabular-nums}.exercise .equation-card{text-align:right;font-family:SempoaComic,"Comic Sans MS","Comic Sans",cursive}.result-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:650px;margin:24px auto}.result-breakdown>div{padding:16px;border-radius:18px;background:rgba(255,255,255,.72)}.result-breakdown small,.result-breakdown strong{display:block}.result-breakdown small{color:var(--muted);font-weight:850}.result-breakdown strong{margin-top:5px;color:var(--navy);font-size:clamp(22px,5vw,34px)}.result-score::before{content:'Nilai ';display:block;margin-bottom:3px;color:var(--muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:14px;font-weight:850}
@media(max-width:650px){.exercise .question-stage{align-items:center}.exercise .question-rows{align-self:center;width:fit-content;min-width:0;max-width:100%;margin-left:auto;margin-right:auto;padding-left:0;padding-right:0}.exercise .flash-row{width:auto;min-width:max-content;align-self:stretch;padding-left:0;padding-right:0;text-align:right}.exercise .equation-card{max-width:100%;margin-inline:auto;text-align:center}}
.listening-number{display:none!important}
@media(max-width:520px){.result-breakdown{gap:7px}.result-breakdown>div{padding:12px 7px}.result-breakdown small{font-size:10px}.result-breakdown strong{font-size:21px}}

/* Addition quiz presentation: adaptive stage, slide chunks, and persistent answer key. */
.random-note{max-width:720px;margin:14px 0 0;padding:11px 14px;border-radius:13px;background:#edf6ff;color:#26619e;font-size:13px;font-weight:800}.presenter-shell{grid-template-rows:auto minmax(0,1fr) auto auto}.presenter-stage{padding:62px clamp(12px,5vw,72px) 20px}.presenter-rows{width:100%;height:100%;min-height:0;max-height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.presenter-row{min-width:0;width:min(720px,92vw);font-size:var(--presenter-font,96px);line-height:.96;white-space:nowrap}.presenter-row[hidden]{display:none!important}.presenter-summary{position:absolute;z-index:3;inset:0;overflow:auto;padding:clamp(18px,4vw,44px);background:linear-gradient(145deg,#f5f9ff,#fff8df);color:var(--ink);text-align:left}.presenter-summary[hidden]{display:none}.summary-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;max-width:1180px;margin:0 auto 24px}.summary-heading small{color:var(--orange);font-weight:950;letter-spacing:.12em}.summary-heading h1{margin:3px 0;color:var(--navy);font-size:clamp(30px,5vw,52px)}.summary-heading p{margin:5px 0;color:var(--muted)}.summary-heading button{padding:11px 15px;border:0;border-radius:13px;background:#dceaff;color:var(--blue);font-weight:900;cursor:pointer}.answer-key-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;max-width:1180px;margin:0 auto}.answer-key-grid button{display:grid;gap:7px;min-height:128px;padding:16px;border:2px solid #dce6f2;border-radius:18px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 8px 24px rgba(23,53,93,.08)}.answer-key-grid button:hover{border-color:var(--blue);transform:translateY(-2px)}.answer-key-grid strong{color:var(--blue);font-size:17px}.answer-key-grid span{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.answer-key-grid b{color:var(--navy);font-size:20px}.summary-open .presenter-status,.summary-open .presenter-question-no,.summary-open .presenter-rows,.summary-open .presenter-answer,.summary-open .presenter-countdown,.summary-open .presenter-controls,.summary-open .presenter-shortcuts{display:none!important}
@media(max-width:800px){.presenter-top{align-items:flex-start;padding:10px 12px}.presenter-top>div:last-child{justify-content:flex-end;flex-wrap:wrap}.presenter-stage{padding:54px 12px 12px}.presenter-controls{gap:6px;padding:8px}.presenter-controls button{min-height:42px;padding:7px 9px}.summary-heading{display:block}.summary-heading button{margin-top:12px}.answer-key-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.presenter-top strong{font-size:13px}.presenter-top button{padding:7px 8px}.presenter-top [data-presenter-progress]{font-size:11px}.presenter-status{top:10px;font-size:10px}.presenter-question-no{margin:0 0 5px;font-size:16px}.presenter-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.presenter-controls button{padding:5px 3px;font-size:10px}.presenter-answer{right:8px;bottom:8px;padding:9px 12px}.presenter-summary{padding:16px 10px}.answer-key-grid{grid-template-columns:1fr}.answer-key-grid button{min-height:105px}}

/* Center the calculation block while keeping every value neatly right-aligned. */
.presenter-row{min-width:0;width:min(var(--number-width,5ch),88vw);margin-inline:auto;padding-right:.08em;text-align:right;font-variant-numeric:tabular-nums}
.presenter-rows{max-width:min(1080px,92vw);margin-inline:auto}.presenter-rows.presenter-equation{width:min(1080px,92vw)}.presenter-equation .presenter-row{width:max-content;max-width:100%;padding-inline:.08em;text-align:center;letter-spacing:0;white-space:nowrap}
.presenter-radical{display:flex;align-items:flex-start;justify-content:center;gap:0}.presenter-radical-symbol{flex:0 0 auto;font-family:Georgia,"Times New Roman",serif;font-size:1.18em;line-height:1;transform:translateY(.055em)}.presenter-radicand{display:inline-block;min-width:1ch;padding:.055em .08em 0;border-top:.075em solid currentColor;line-height:1}

/* PR can finish by a fixed question count or by a total working time. */
.completion-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:4px 0 16px}.completion-choice label{position:relative;margin:0;cursor:pointer}.completion-choice input{position:absolute;opacity:0;pointer-events:none}.completion-choice label>span{display:grid;grid-template-columns:54px 1fr;column-gap:13px;align-items:center;min-height:108px;padding:17px;border:2px solid #dce7f3;border-radius:19px;background:#fff;transition:.18s}.completion-choice b{grid-row:1/3;display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#edf5ff;color:var(--blue);font-size:25px}.completion-choice strong,.completion-choice small{display:block}.completion-choice strong{color:var(--navy);font-size:17px}.completion-choice small{color:var(--muted);font-size:12px;line-height:1.4}.completion-choice input:checked+span{border-color:#1768db;background:linear-gradient(145deg,#eaf5ff,#fff);box-shadow:0 0 0 4px rgba(23,104,219,.1)}.completion-choice input:checked+span b{background:linear-gradient(135deg,#1768db,#55a9f4);color:#fff}.completion-choice label:nth-child(2) input:checked+span{border-color:#f17824;background:linear-gradient(145deg,#fff2df,#fff);box-shadow:0 0 0 4px rgba(241,120,36,.11)}.completion-choice label:nth-child(2) input:checked+span b{background:linear-gradient(135deg,#f17824,#ffb12f)}.completion-fields{align-items:end}.completion-explanation{align-self:center;margin:16px 0 0;padding:13px 15px;border-radius:14px;background:#f2f7fd;color:var(--muted);font-size:13px;font-weight:750}
[data-question-time-limit][hidden],[data-time-limit][hidden],.attempt-timer[hidden]{display:none!important}[data-question-time-limit] small{display:block;margin-top:6px;color:var(--muted);font-size:12px}
@media(max-width:650px){.completion-choice{grid-template-columns:1fr}.completion-choice label>span{min-height:92px;padding:14px}.completion-fields{grid-template-columns:1fr}}

/* Bright classroom selector and friendly numerals for young learners. */
.classroom-page-head h1{max-width:780px;font-size:clamp(32px,5vw,54px);line-height:1.08;letter-spacing:-.025em}.classroom-page-head .muted{max-width:780px;font-size:clamp(15px,2vw,19px);line-height:1.55}.classroom-page-head .actions{align-items:stretch}.classroom-page-head .btn.secondary{display:flex;align-items:center;justify-content:center;border:0;background:linear-gradient(135deg,#1768db,#46a2f1);color:#fff;box-shadow:0 10px 24px rgba(23,104,219,.24)}.classroom-page-head .badge.green{display:flex;align-items:center;justify-content:center;padding-inline:18px;border:0;background:linear-gradient(135deg,#16a46d,#53d49d);color:#fff;box-shadow:0 10px 24px rgba(22,164,109,.2)}
.classroom-workflow-tabs{gap:13px}.classroom-workflow-tabs a{position:relative;isolation:isolate;min-height:92px;padding:15px 16px;border:0;color:#fff;box-shadow:0 13px 28px rgba(21,54,94,.18);transition:transform .18s ease,box-shadow .18s ease}.classroom-workflow-tabs a::after{content:'';position:absolute;z-index:-1;right:-24px;bottom:-36px;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,.15)}.classroom-workflow-tabs a:nth-child(1){background:linear-gradient(135deg,#1671e8,#38bdf8)}.classroom-workflow-tabs a:nth-child(2){background:linear-gradient(135deg,#6d45e8,#c052df)}.classroom-workflow-tabs a:nth-child(3){background:linear-gradient(135deg,#f17824,#ffb12f)}.classroom-workflow-tabs a:nth-child(4){background:linear-gradient(135deg,#0b9f7b,#43d6aa)}.classroom-workflow-tabs a:hover{transform:translateY(-3px);box-shadow:0 17px 34px rgba(21,54,94,.25)}.classroom-workflow-tabs a.active{outline:4px solid #fff;box-shadow:0 0 0 7px #174f91,0 18px 36px rgba(21,54,94,.28)}.classroom-workflow-tabs b{width:50px;height:50px;flex-basis:50px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.2);font-size:27px;box-shadow:inset 0 1px rgba(255,255,255,.2)}.classroom-workflow-tabs span{font-size:14px;font-weight:950;line-height:1.25;text-wrap:balance}.presenter-row{font-family:SempoaComic,"Comic Sans MS","Comic Sans",cursive;font-weight:700;letter-spacing:.015em}
@media(max-width:650px){.classroom-page-head{gap:18px}.classroom-page-head h1{font-size:clamp(31px,10vw,43px)}.classroom-page-head .actions{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);width:100%}.classroom-page-head .btn.secondary,.classroom-page-head .badge.green{min-height:56px;padding:11px;font-size:12px;text-align:center}.classroom-workflow-tabs{gap:10px}.classroom-workflow-tabs a{min-height:92px;padding:12px;border-radius:18px}.classroom-workflow-tabs b{width:46px;height:46px;flex-basis:46px}.classroom-workflow-tabs span{font-size:12px;line-height:1.22}.classroom-workflow-tabs a.active{outline-width:3px;box-shadow:0 0 0 5px #174f91,0 14px 28px rgba(21,54,94,.25)}}
@media(max-width:650px){.classroom-workflow-tabs,.classroom-workflow-tabs a,.classroom-workflow-tabs span{min-width:0}.classroom-workflow-tabs a{gap:7px;overflow:hidden}.classroom-workflow-tabs span{overflow-wrap:anywhere;text-wrap:wrap}.quick-wizard .classroom-source-choice,.quick-wizard .classroom-source-choice label,.quick-wizard .classroom-source-choice label>span{box-sizing:border-box;min-width:0;max-width:100%;width:100%}}

/* Give Super Admin the same bright, teaching-first entry point as Coach. */
.superadmin-learning-hero{margin-bottom:18px;padding:20px;border:1px solid #dfe8f3;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(25,62,105,.08);color:var(--navy)}.superadmin-learning-copy{margin-bottom:14px}.superadmin-learning-copy h1{margin:6px 0 3px;color:var(--navy);font-size:clamp(24px,3vw,32px)}.superadmin-learning-copy p{max-width:680px;margin:0;color:var(--muted);font-size:13px}.superadmin-mode-badge{display:inline-flex;padding:5px 9px;border:1px solid #bed7f2;border-radius:999px;background:#eef6ff;color:#1768db;font-size:10px;font-weight:950;letter-spacing:.09em}.superadmin-learning-hero .coach-action-grid{margin:0;gap:12px}.superadmin-learning-hero .coach-action-card{min-height:116px;padding:17px 19px;border:0;border-radius:19px;box-shadow:0 10px 24px rgba(23,53,93,.14)}.superadmin-learning-hero .coach-action-icon{width:54px;height:54px;flex-basis:54px;border-radius:17px;font-size:27px}.superadmin-learning-hero .coach-action-card h2{margin:2px 0 3px;font-size:21px}.superadmin-learning-hero .coach-action-card p{margin-bottom:7px;font-size:12px;line-height:1.35}.superadmin-learning-hero .coach-action-card strong{font-size:12px}
.schedule-move-form{max-width:980px;margin:20px auto}.schedule-move-form h2{margin:8px 0 14px;color:var(--navy);font-size:18px}.schedule-move-form section{padding:18px;border:1px solid var(--line);border-radius:18px;background:#f8fbff}.schedule-move-form label small{display:block;margin-top:5px;font-size:11px}.schedule-move-form .notice{display:grid;gap:4px;margin:18px 0;padding:15px;border-radius:15px;background:#fff5d9;color:#76531c}.schedule-move-form .notice span{font-size:12px}.schedule-move-form textarea{min-height:90px}
.schedule-date-filter{display:flex;align-items:end;gap:12px;margin:14px 0;padding:14px}.schedule-date-filter label{margin:0;min-width:220px}.schedule-date-filter .badge{margin-left:auto}@media(max-width:650px){.schedule-date-filter{align-items:stretch;flex-direction:column}.schedule-date-filter label{min-width:0}.schedule-date-filter .badge{margin-left:0;text-align:center}}
@media(max-width:480px){.superadmin-learning-hero{margin-inline:-4px;padding:13px;border-radius:18px}.superadmin-learning-copy{margin-bottom:10px}.superadmin-learning-copy p{font-size:11px}.superadmin-learning-hero .coach-action-grid{gap:9px}.superadmin-learning-hero .coach-action-card{min-height:104px;padding:14px;gap:13px}.superadmin-learning-hero .coach-action-icon{width:48px;height:48px;flex-basis:48px;font-size:24px}.superadmin-learning-hero .coach-action-card h2{font-size:19px}.superadmin-learning-hero .coach-action-card p{font-size:11px}}

/* Compact Schedule Board: vertical session rows and modal student details. */
body:has(.mobile-board) .day-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;overflow:visible;margin-bottom:12px;padding:0}body:has(.mobile-board) .day-tabs a{min-width:0;padding:10px 5px;text-align:center}.schedule-wrap:has(.mobile-board){overflow:visible}.schedule-wrap:has(.mobile-board) .schedule{display:none}.schedule-wrap:has(.mobile-board) .mobile-board{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:13px}.mobile-board .mobile-coach{padding:14px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(25,62,105,.07)}.mobile-board .mobile-coach>strong{display:block;margin-bottom:10px;color:var(--navy);font-size:16px}.mobile-board .mobile-slots{display:grid;grid-template-columns:1fr;gap:7px;margin:0}.mobile-board .capacity{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;min-height:58px;padding:9px 12px;border:1px solid #d9e6f4;border-radius:13px;text-align:left}.mobile-board .capacity>span strong,.mobile-board .capacity>span small{display:block}.mobile-board .capacity>span strong{color:inherit;font-size:14px}.mobile-board .capacity>span small{margin-top:2px;color:var(--muted);font-size:11px}.mobile-board .capacity>b{font-size:17px}.mobile-board .capacity>i{font-size:24px;font-style:normal;opacity:.6}body.schedule-modal-open{overflow:hidden}#slot-detail{position:fixed;z-index:100;inset:0;display:none;place-items:center;padding:18px;background:rgba(8,23,42,.58);backdrop-filter:blur(4px)}.schedule-modal-open #slot-detail{display:grid}#slot-detail .slot-panel{width:min(560px,100%);max-height:min(680px,88dvh);overflow:auto;margin:0;padding:20px;border:0;border-radius:22px;background:#fff;box-shadow:0 30px 80px rgba(5,22,43,.32)}#slot-detail .slot-panel[hidden]{display:none}#slot-detail .student-row a strong{color:var(--blue)}
@media(max-width:650px){body:has(.mobile-board) .day-tabs{gap:4px}body:has(.mobile-board) .day-tabs a{padding:9px 2px;border-radius:10px;font-size:11px}.schedule-wrap:has(.mobile-board) .mobile-board{grid-template-columns:1fr}.mobile-board .mobile-coach{padding:11px}.mobile-board .capacity{min-height:54px}#slot-detail{padding:10px}#slot-detail .slot-panel{padding:16px;border-radius:18px}#slot-detail .student-row{align-items:center;flex-direction:row}#slot-detail .actions{width:auto}#slot-detail .actions .btn{white-space:nowrap}}

/* Compact, actionable admin dashboard counters. */
.admin-compact-stats{gap:10px}.admin-compact-stats .stat{padding:0;overflow:hidden;border-radius:15px;box-shadow:0 6px 17px rgba(25,62,105,.07);transition:transform .16s,box-shadow .16s}.admin-compact-stats .stat:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(25,62,105,.13)}.admin-stat-link{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;min-height:72px;padding:10px 12px}.admin-stat-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#e9f3ff;color:var(--blue);font-size:19px;font-weight:950}.admin-compact-stats .stat:nth-child(2) .admin-stat-icon{background:#e5f8ef;color:#13825a}.admin-compact-stats .stat:nth-child(3) .admin-stat-icon{background:#fff0dc;color:#b35d0b}.admin-compact-stats .stat:nth-child(4) .admin-stat-icon{background:#f1eaff;color:#7044ce}.admin-stat-copy{min-width:0}.admin-stat-copy small,.admin-stat-copy strong{display:block;margin:0}.admin-stat-copy small{font-size:10px;line-height:1.2}.admin-stat-copy strong{font-size:23px;line-height:1.1}.admin-stat-link>i{color:#91a7c0;font-size:22px;font-style:normal}.operation-focus-panel{outline:4px solid rgba(23,104,219,.15);border-color:#8cbbea;scroll-margin-top:90px}
@media(max-width:650px){.admin-compact-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.admin-stat-link{grid-template-columns:32px 1fr auto;gap:7px;min-height:64px;padding:8px}.admin-stat-icon{width:32px;height:32px;font-size:16px}.admin-stat-copy small{font-size:9px}.admin-stat-copy strong{font-size:20px}.admin-stat-link>i{font-size:18px}}

.mobile-board .capacity>span small{margin-top:7px;line-height:1.25;letter-spacing:.01em}

.mobile-board .capacity:has(.schedule-session-label){grid-template-columns:minmax(70px,1fr) minmax(105px,1fr) minmax(46px,1fr);gap:8px}.mobile-board .schedule-session-label{display:block;color:inherit;font-size:14px;text-align:left}.mobile-board .schedule-session-time{display:block;margin:0;color:var(--muted);font-size:11px;line-height:1.25;text-align:center;white-space:nowrap}.mobile-board .schedule-session-count{display:block;font-size:17px;text-align:right}

.mobile-board .capacity{position:relative;display:flex!important;align-items:center;justify-content:space-between;gap:0}.mobile-board .schedule-session-label{width:34%;flex:0 0 34%;white-space:nowrap}.mobile-board .schedule-session-time{position:absolute;left:50%;width:auto;transform:translateX(-50%);white-space:nowrap}.mobile-board .schedule-session-count{width:34%;flex:0 0 34%;margin-left:auto;white-space:nowrap;text-align:right}

.mobile-board .capacity{display:grid!important;grid-template-columns:64px minmax(112px,1fr) 48px!important;column-gap:10px!important}.mobile-board .schedule-session-label{width:auto;min-width:0;flex:none;white-space:nowrap;text-align:left}.mobile-board .schedule-session-time{position:static;left:auto;width:100%;padding:2px 8px;border-right:1px solid rgba(79,115,154,.22);border-left:1px solid rgba(79,115,154,.22);transform:none;text-align:center;white-space:nowrap}.mobile-board .schedule-session-count{width:auto;min-width:0;flex:none;margin:0;text-align:right;white-space:nowrap}
@media(max-width:380px){.mobile-board .capacity{grid-template-columns:57px minmax(102px,1fr) 43px!important;column-gap:7px!important}.mobile-board .schedule-session-label{font-size:13px}.mobile-board .schedule-session-time{padding-inline:5px;font-size:10px}.mobile-board .schedule-session-count{font-size:15px}}

.mobile-board .capacity{grid-template-columns:max-content minmax(0,1fr) max-content!important;column-gap:14px!important}.mobile-board .schedule-session-label{justify-self:start;padding:7px 9px;border:1px solid rgba(23,104,219,.18);border-radius:9px;background:#fff;line-height:1}.mobile-board .schedule-session-time{justify-self:center;width:auto;min-width:108px;padding:7px 9px;border:0;border-radius:9px;background:rgba(255,255,255,.62);line-height:1;text-align:center}.mobile-board .schedule-session-count{justify-self:end;padding-left:3px}
@media(max-width:380px){.mobile-board .capacity{grid-template-columns:max-content minmax(0,1fr) max-content!important;column-gap:9px!important}.mobile-board .schedule-session-label{padding:6px 7px}.mobile-board .schedule-session-time{min-width:96px;padding:6px 5px}}

.mobile-board .capacity{display:flex!important;align-items:center;justify-content:space-between;gap:12px!important}.mobile-board .schedule-session-info{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 10px;border:1px solid rgba(23,104,219,.18);border-radius:9px;background:#fff;white-space:nowrap}.mobile-board .schedule-session-info .schedule-session-label{width:auto;padding:0;border:0;background:none;font-size:14px;line-height:1}.mobile-board .schedule-session-info>i{color:#6b86a5;font-size:13px;font-style:normal;font-weight:900}.mobile-board .schedule-session-info .schedule-session-time{position:static;width:auto;min-width:0;margin:0;padding:0;border:0;background:none;transform:none;color:var(--muted);font-size:11px;line-height:1}.mobile-board .schedule-session-count{width:auto;flex:0 0 auto;margin-left:auto;padding:0;font-size:17px;text-align:right}
@media(max-width:380px){.mobile-board .capacity{gap:8px!important}.mobile-board .schedule-session-info{gap:5px;padding:6px 7px}.mobile-board .schedule-session-info .schedule-session-label{font-size:12px}.mobile-board .schedule-session-info .schedule-session-time{font-size:9px}.mobile-board .schedule-session-count{font-size:15px}}

.mobile-board .schedule-session-info{display:block;min-width:0;padding:8px 10px;color:var(--blue);font-size:12px;font-weight:900;line-height:1;letter-spacing:0;white-space:nowrap}.mobile-board .schedule-session-count{flex:0 0 auto;margin-left:auto}
@media(max-width:380px){.mobile-board .schedule-session-info{padding:7px 8px;font-size:10px}}

.mobile-board .schedule-session-info,.mobile-board .schedule-session-count{font-size:clamp(14px,4.3vw,17px)}
@media(max-width:380px){.mobile-board .schedule-session-info,.mobile-board .schedule-session-count{font-size:14px}}

/* Searchable level selector for long question-bank lists. */
.bank-autocomplete{position:relative}.bank-select-native{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;opacity:0!important;pointer-events:none}.bank-autocomplete-input{min-height:48px;padding-right:42px;border:2px solid #b9d5f2;border-radius:14px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231768db' stroke-width='2.4'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") no-repeat right 14px center}.bank-autocomplete-input:focus{border-color:var(--blue)}.bank-autocomplete-results{position:absolute;z-index:70;top:calc(100% + 6px);right:0;left:0;max-height:300px;overflow:auto;padding:7px;border:1px solid #b9d5f2;border-radius:15px;background:#fff;box-shadow:0 18px 42px rgba(25,60,105,.22)}.bank-autocomplete-results[hidden]{display:none}.bank-autocomplete-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:11px;cursor:pointer}.bank-autocomplete-option:hover,.bank-autocomplete-option.active{background:linear-gradient(135deg,#e8f4ff,#f2edff)}.bank-autocomplete-option strong{color:#17355d;font-size:13px}.bank-autocomplete-option small{color:#55779d;font-size:11px;text-align:right}.bank-autocomplete-empty{padding:13px;color:#6e7f94;text-align:center;font-size:12px}.wib-time{white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:650px){.bank-autocomplete-input{min-height:52px}.bank-autocomplete-results{max-height:44vh}.bank-autocomplete-option{align-items:flex-start;flex-direction:column;gap:3px}.bank-autocomplete-option small{text-align:left}}

/* User and active-coach list becomes readable cards on phones. */
@media(max-width:650px){.user-role-panel{padding:0;border:0;background:transparent;box-shadow:none}.user-role-table,.user-role-table tbody{display:block;width:100%}.user-role-table thead{display:none}.user-role-table tbody{display:grid;gap:13px}.user-role-table tbody tr{display:grid;grid-template-columns:1fr auto;gap:10px 12px;padding:17px;border:1px solid #d9e6f4;border-radius:18px;background:linear-gradient(145deg,#fff,#f5f9ff);box-shadow:0 8px 22px rgba(24,61,104,.09)}.user-role-table tbody tr[hidden]{display:none!important}.user-role-table td{display:block;padding:0;border:0}.user-role-table td:first-child{grid-column:1/-1;padding-bottom:11px;border-bottom:1px solid #e3ebf4}.user-role-table td:first-child strong{display:block;color:var(--navy);font-size:19px;line-height:1.2}.user-role-table td:first-child .muted{display:block;margin-top:4px;overflow-wrap:anywhere;font-size:12px}.user-role-table td:nth-child(2){align-self:center}.user-role-table td:nth-child(3){align-self:center;color:#536a85;font-size:12px;text-align:right}.user-role-table td:nth-child(4),.user-role-table td:nth-child(5){grid-column:1/-1}.user-role-table td:nth-child(4)::before,.user-role-table td:nth-child(5)::before{display:block;margin-bottom:6px;color:#6b7f96;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.user-role-table td:nth-child(4)::before{content:'Reset account'}.user-role-table td:nth-child(5)::before{content:'Akses akun'}.user-role-table td form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin:0}.user-role-table td:nth-child(5) form{display:block}.user-role-table td:nth-child(5) .btn{width:100%}.user-role-table input{min-width:0;margin:0}.user-role-table .btn{white-space:nowrap}}

/* Live Listening speed control, available only in the Coach presenter. */
.presenter-controls:has(.presenter-live-speed){flex-wrap:wrap}.presenter-live-speed{order:-1;display:grid;grid-template-columns:auto minmax(180px,360px) 58px;align-items:center;justify-content:center;gap:10px;width:100%;margin:0;padding:2px 0 5px;color:#dbe9f8;font-size:12px;font-weight:900}.presenter-live-speed input[type="range"]{--range-progress:29%;height:7px;margin:0;padding:0;border:0;border-radius:999px;appearance:none;background:linear-gradient(90deg,#35a0ff 0 var(--range-progress),#3b4d64 var(--range-progress) 100%);cursor:pointer}.presenter-live-speed input[type="range"]::-webkit-slider-thumb{width:23px;height:23px;border:3px solid #fff;border-radius:50%;appearance:none;background:#2387ed;box-shadow:0 3px 12px rgba(30,137,239,.5)}.presenter-live-speed input[type="range"]::-moz-range-thumb{width:17px;height:17px;border:3px solid #fff;border-radius:50%;background:#2387ed;box-shadow:0 3px 12px rgba(30,137,239,.5)}.presenter-live-speed output{padding:6px 7px;border-radius:9px;background:#1768db;color:#fff;text-align:center;font-variant-numeric:tabular-nums}.summary-open .presenter-live-speed{display:none!important}
@media(max-width:650px){.presenter-live-speed{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr) 52px;gap:8px;padding:3px 5px 6px;font-size:11px}.presenter-live-speed output{padding:5px}.presenter-controls:has(.presenter-live-speed){grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Shared role experience refresh — mobile first, accessible, and data honest. */
:root{--radius-sm:14px;--radius-md:20px;--radius-lg:28px;--tap:48px;--focus:0 0 0 4px rgba(23,104,219,.18);--warm:#fffaf0;--purple:#7547df;--teal:#0fae98}
button,.btn,a,input,select,textarea{touch-action:manipulation}button,.btn,input,select{min-height:44px}.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #0b65c7;outline-offset:3px}.brand-logo{display:block;width:164px;max-height:52px;object-fit:contain}.brand-copy{display:none}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.state-card{padding:28px;border-radius:var(--radius-md);background:#fff}.empty-state{display:grid;justify-items:center;text-align:center;border:2px dashed #b7cce3}.empty-state>span{display:grid;width:58px;height:58px;place-items:center;border-radius:18px;background:#eaf4ff;color:var(--blue);font-size:28px}.empty-state h2,.empty-state h3{margin:14px 0 4px;color:var(--navy)}.empty-state p{max-width:520px;margin:0;color:var(--muted)}.module-note{padding:12px 14px;border-radius:14px;background:#eef6ff;color:#4e6682;font-size:13px}.form-submitting{pointer-events:none}.form-submitting button[type="submit"]{opacity:.72}.form-submitting button[type="submit"]::after{content:'…';font-weight:900}

/* Student home follows the supplied cheerful mockup while using real exercise data. */
.role-student{background:linear-gradient(180deg,#fffaf0 0,#f7fbff 55%,#fff 100%)}.role-student .topbar{background:rgba(255,255,255,.96);color:var(--navy);box-shadow:0 5px 20px rgba(34,59,91,.08)}.role-student.student-app .topbar .brand,.role-student.student-app .topbar .brand small,.role-student.student-app .top-actions>span{color:var(--navy)}.role-student .brand-mark{display:none}.role-student.student-app .topbar .btn.secondary{background:#eef5ff;color:#285ca8}.role-student .content{max-width:1120px;margin-right:auto}.student-welcome{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:190px;padding:34px clamp(22px,5vw,46px);overflow:hidden;border-radius:32px;background:radial-gradient(circle at 78% 35%,#fff 0 11%,transparent 12%),radial-gradient(circle at 88% 64%,#fff 0 8%,transparent 9%),linear-gradient(120deg,#fff7df 0,#fff 44%,#dff4ff 100%)}.student-welcome::after{content:'☀';position:absolute;right:15%;top:17%;color:#ffc929;font-size:78px;line-height:1;filter:drop-shadow(0 8px 12px rgba(249,174,25,.2))}.student-welcome .eyebrow{color:#f17824;font-size:13px}.student-welcome h1{margin:0;color:#092d66;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(38px,7vw,64px);line-height:1.05}.student-welcome p:not(.eyebrow){margin:8px 0;color:#536b86;font-size:clamp(16px,2.5vw,21px);font-weight:750}.student-level-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#e8f4ff;color:#1768db;font-size:12px;font-weight:900}.student-avatar-link{position:relative;z-index:1;display:grid;width:84px;height:84px;flex:0 0 84px;place-items:center;border:6px solid #fff;border-radius:50%;background:linear-gradient(145deg,#ffd65b,#ff9d38);box-shadow:0 12px 28px rgba(30,84,139,.18);color:#17355d;font-size:32px;font-weight:950}.student-practice-section,.student-play-section{margin-top:28px}.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 4px 14px}.section-title .eyebrow{margin-bottom:3px}.section-title h2{margin:0;color:#092d66;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(27px,4vw,38px)}.section-title>span{color:#607790;font-size:12px;font-weight:850}.student-practice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.student-practice-card{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr) 50px;align-items:center;gap:18px;min-height:150px;padding:17px 19px;overflow:hidden;border-radius:28px;background:#c9f1ff;box-shadow:0 12px 26px rgba(28,67,112,.12);transition:transform .18s ease,box-shadow .18s ease}.student-practice-card:nth-child(2n){background:#ffe1b8}.student-practice-card:nth-child(3n){background:#e4d5ff}.student-practice-card:nth-child(4n){background:#d7f6e7}.student-practice-card::after{content:'';position:absolute;right:-28px;bottom:-50px;width:140px;height:140px;border-radius:50%;background:rgba(255,255,255,.18)}.student-practice-card:hover{transform:translateY(-3px);box-shadow:0 17px 34px rgba(28,67,112,.17)}.practice-visual{position:relative;z-index:1;display:grid;width:112px;height:102px;place-items:center}.practice-visual img{display:block;width:110px;height:100px;object-fit:contain;filter:drop-shadow(0 8px 7px rgba(29,52,84,.18))}.practice-visual b{display:grid;min-width:86px;height:86px;padding:0 10px;place-items:center;border-radius:25px;background:rgba(255,255,255,.8);color:#6f3edb;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:48px;box-shadow:0 8px 18px rgba(58,50,96,.12)}.practice-copy{position:relative;z-index:1;min-width:0}.practice-copy strong,.practice-copy small,.practice-copy em{display:block}.practice-copy strong{color:#0b2f68;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(21px,2.4vw,28px);line-height:1.12}.practice-copy small{margin-top:5px;color:#3f5b7b;font-size:14px}.practice-copy em{width:max-content;margin-top:10px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.62);color:#164e86;font-size:11px;font-style:normal;font-weight:900}.practice-arrow{position:relative;z-index:1;display:grid;width:50px;height:50px;place-items:center;border-radius:50%;background:#248af1;color:#fff;font-size:31px;font-weight:850;box-shadow:0 8px 18px rgba(19,102,201,.24)}.student-more{margin-top:14px}.student-more summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 15px;border:1px solid #cbdced;border-radius:15px;background:#fff;color:#285886;font-weight:900;cursor:pointer;list-style:none}.student-more summary::-webkit-details-marker{display:none}.student-more summary span{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#e8f3ff;color:#1768db;font-size:11px}.student-more[open] summary{margin-bottom:14px}.kingdom-banner{position:relative;display:flex;min-height:245px;align-items:flex-end;padding:28px;overflow:hidden;border-radius:30px;background:linear-gradient(90deg,rgba(5,102,81,.95) 0,rgba(7,137,109,.78) 42%,rgba(7,137,109,.05) 70%),url('/assets/kingdom-v2/touch/village-tlogosari-v1.webp') center 58%/cover no-repeat;box-shadow:0 16px 32px rgba(12,97,77,.22);color:#fff}.kingdom-banner span{position:relative;z-index:1}.kingdom-banner small,.kingdom-banner strong,.kingdom-banner em{display:block}.kingdom-banner small{font-size:16px}.kingdom-banner strong{margin:3px 0 18px;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(28px,4vw,42px)}.kingdom-banner em{width:max-content;padding:13px 20px;border-radius:999px;background:#ffda3f;color:#17355d;box-shadow:0 7px 0 #e5a91c;font-style:normal;font-weight:950}.student-bottom-nav{display:none}
.practice-bayangan .practice-visual b,.practice-bayangan_addition .practice-visual b,.practice-multiplication .practice-visual b{width:112px;min-width:112px;height:102px;padding:0;border-radius:0;background-color:transparent;background-position:center;background-repeat:no-repeat;background-size:contain;box-shadow:none;color:transparent;font-size:0;filter:drop-shadow(0 8px 7px rgba(29,52,84,.18))}
.practice-bayangan .practice-visual b,.practice-bayangan_addition .practice-visual b{background-image:url('/assets/images/bayangan-card-icon-v1.png')}
.practice-multiplication .practice-visual b{background-image:url('/assets/images/multiplication-card-icon-v1.png')}

/* Coach: dense enough for daily operations, still part of the same visual family. */
.role-coach{background:#f4f8fc}.coach-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:24px 28px;border-radius:26px;background:linear-gradient(120deg,#123f82,#1768db 58%,#22a9a0);box-shadow:0 15px 34px rgba(22,78,143,.2);color:#fff}.coach-hero .eyebrow,.coach-hero h1,.coach-hero p{color:#fff}.coach-hero h1{margin:0;font-size:clamp(28px,4vw,42px)}.coach-hero p{margin:6px 0 0;opacity:.9}.coach-hero-icon{display:grid;width:70px;height:70px;flex:0 0 70px;place-items:center;border-radius:22px;background:rgba(255,255,255,.17);font-size:36px}.coach-quick-actions{margin-bottom:18px}.coach-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:18px}.coach-session-card{margin-top:13px;padding:15px;border:1px solid #d9e6f3;border-radius:18px;background:#f8fbff}.coach-session-card>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:11px;border-bottom:1px solid #dce6f2}.coach-session-card>header small,.coach-session-card>header strong{display:block}.coach-session-card>header small{color:#657b94;font-size:11px;font-weight:900;text-transform:uppercase}.coach-session-card>header strong{margin-top:3px;color:#17355d;font-size:19px}.coach-student-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #e1e9f2}.coach-student-row:last-child{border-bottom:0}.coach-student-row .student-main>div{min-width:0}.coach-student-row .student-main strong{color:#17355d}.coach-student-row .student-main p,.coach-student-row .student-main small{display:block;margin:2px 0;color:#647a92;font-size:11px}.coach-student-actions{display:flex;align-items:center;gap:8px}.coach-student-actions form{display:flex;align-items:center;gap:7px}.coach-student-actions label{margin:0}.coach-student-actions select{min-width:150px;margin:0}.coach-followup>a{display:block;padding:11px 0;border-bottom:1px solid var(--line)}.coach-followup>a strong,.coach-followup>a small{display:block}.coach-followup>a small{margin-top:3px;color:var(--muted)}.coach-notifications .notice{align-items:flex-start}.coach-notifications .notice p{margin:3px 0;color:var(--muted);font-size:11px}.coach-lesson-panel{margin-top:18px}.lesson-entry{display:grid;grid-template-columns:minmax(160px,.35fr) minmax(0,1fr);gap:18px;padding:18px 0;border-top:1px solid var(--line);scroll-margin-top:90px}.lesson-entry>div strong,.lesson-entry>div small{display:block}.lesson-entry>div small{margin-top:4px;color:var(--muted)}.lesson-entry label{margin:0}

/* Parent: warm, calm, and explicit about unavailable integrations. */
.role-parent{background:linear-gradient(155deg,#fffaf2,#f3f9ff)}.parent-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:28px;border:1px solid #f2dfc6;border-radius:28px;background:linear-gradient(125deg,#fff2d9,#fff 52%,#e9f7f1);box-shadow:0 14px 32px rgba(72,72,60,.08)}.parent-hero h1{margin:0;color:#17355d;font-size:clamp(30px,4vw,44px)}.parent-hero p{margin:7px 0 0;color:#60748b}.parent-hero-icon{display:grid;width:72px;height:72px;place-items:center;border-radius:24px;background:#ffe3b8;color:#c26d1c;font-size:38px}.child-switcher{display:flex;align-items:end;gap:12px;padding:14px 17px}.child-switcher label{flex:1;margin:0}.child-switcher select{margin-top:6px}.parent-child-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:18px 20px;border:1px solid var(--line);border-radius:21px;background:#fff;box-shadow:var(--shadow)}.parent-child-card h2{margin:0;color:#17355d}.parent-child-card p{margin:3px 0;color:var(--muted)}.parent-child-card .eyebrow{font-size:10px}.parent-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:18px}.parent-info-card{display:flex;gap:14px;min-height:150px;padding:18px;border:1px solid var(--line);border-radius:21px;background:#fff;box-shadow:0 9px 24px rgba(32,66,105,.08)}.parent-info-icon{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:15px;background:#e7f3ff;color:#1768db;font-size:24px}.parent-info-card.homework .parent-info-icon{background:#fff0d9;color:#ba6717}.parent-info-card.spr .parent-info-icon{background:#e6f7ed;color:#17805b}.parent-info-card small,.parent-info-card strong,.parent-info-card p{display:block}.parent-info-card small{color:#687d93;font-weight:850}.parent-info-card strong{margin-top:8px;color:#17355d;font-size:19px}.parent-info-card p{margin:5px 0 0;color:#687d93;font-size:12px}.parent-module-status p,.spr-private-state p{margin:0;color:#5f738a;line-height:1.6}

@media(max-width:900px){.coach-dashboard-grid{grid-template-columns:1fr}.parent-overview-grid{grid-template-columns:1fr 1fr}.lesson-entry{grid-template-columns:1fr}.student-practice-list{grid-template-columns:1fr}}
@media(max-width:650px){
  .brand-logo{width:132px;max-height:44px}.topbar{min-height:68px;height:68px}.role-student .mobile-menu{display:none}.role-student .top-actions .badge,.role-student .top-actions>span{display:none}.role-student .top-actions .btn{min-width:44px;padding:8px;font-size:0}.role-student .top-actions .btn::before{content:'↗';font-size:20px}.role-student .content{padding:14px 13px calc(102px + env(safe-area-inset-bottom))}.student-welcome{min-height:154px;padding:23px 18px;border-radius:24px}.student-welcome::after{right:16%;top:16%;font-size:52px}.student-welcome h1{max-width:245px;font-size:clamp(34px,10vw,45px)}.student-welcome p:not(.eyebrow){font-size:15px}.student-avatar-link{width:64px;height:64px;flex-basis:64px;border-width:4px;font-size:25px}.student-practice-section,.student-play-section{margin-top:22px}.section-title{align-items:center;margin-bottom:11px}.section-title h2{font-size:29px}.section-title .eyebrow{font-size:9px}.section-title>span{max-width:110px;text-align:right}.student-practice-list{gap:12px}.student-practice-card{grid-template-columns:84px minmax(0,1fr) 44px;gap:11px;min-height:118px;padding:12px 13px;border-radius:22px}.practice-visual{width:84px;height:86px}.practice-visual img{width:88px;height:82px}.practice-visual b{min-width:70px;height:70px;border-radius:21px;font-size:39px}.practice-copy strong{font-size:20px}.practice-copy small{font-size:12px;line-height:1.3}.practice-copy em{margin-top:7px}.practice-arrow{width:44px;height:44px;font-size:25px}.kingdom-banner{min-height:205px;padding:21px;border-radius:24px;background-position:57% 58%}.kingdom-banner small{font-size:13px}.kingdom-banner strong{max-width:210px;margin-bottom:14px;font-size:29px}.kingdom-banner em{padding:11px 16px}.student-bottom-nav{position:fixed;z-index:60;right:10px;bottom:max(8px,env(safe-area-inset-bottom));left:10px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));min-height:72px;padding:7px;border:1px solid #e4eaf1;border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 14px 40px rgba(21,52,91,.2);backdrop-filter:blur(16px)}.student-bottom-nav a{display:flex;min-height:58px;align-items:center;justify-content:center;flex-direction:column;gap:1px;border-radius:17px;color:#6c7c92}.student-bottom-nav a.active{background:#e8f4ff;color:#126bd3}.student-bottom-nav span{font-size:22px;line-height:1}.student-bottom-nav small{font-size:10px;font-weight:900}.parent-hero,.coach-hero{padding:20px;border-radius:22px}.parent-hero-icon,.coach-hero-icon{width:56px;height:56px;flex-basis:56px;border-radius:18px;font-size:28px}.parent-overview-grid{grid-template-columns:1fr}.parent-info-card{min-height:128px}.parent-child-card{align-items:flex-start;flex-direction:column}.parent-child-card .btn{width:100%}.child-switcher{align-items:stretch;flex-direction:column}.coach-student-row{grid-template-columns:1fr}.coach-student-actions{align-items:stretch;flex-direction:column}.coach-student-actions>.btn{width:100%}.coach-student-actions form{display:grid;grid-template-columns:1fr 1fr}.coach-student-actions select,.coach-student-actions button{width:100%;min-width:0}.coach-lesson-panel .form-grid{grid-template-columns:1fr 1fr}.coach-lesson-panel .form-grid .wide{grid-column:1/-1}.lesson-entry{padding-block:15px}
}
@media(max-width:390px){.student-practice-card{grid-template-columns:72px minmax(0,1fr) 40px;gap:8px}.practice-visual{width:72px}.practice-visual img{width:78px}.practice-visual b{min-width:62px;height:62px;font-size:34px}.practice-copy strong{font-size:18px}.practice-arrow{width:40px;height:40px}.student-welcome::after{display:none}.coach-lesson-panel .form-grid{grid-template-columns:1fr}}

.level-promotion-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.level-promotion-entry h2,.level-promotion-entry p{margin:3px 0}.promotion-report{display:grid;gap:18px}.promotion-header{border-top:5px solid #d97827}.promotion-level{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 18px;padding-bottom:14px;border-bottom:2px solid #e7b07e}.promotion-level small{font-weight:900;letter-spacing:.08em}.promotion-level strong{font-size:28px}.promotion-level span{color:var(--muted);font-weight:800}.promotion-meta,.promotion-grades,.promotion-sign-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.promotion-grades{grid-template-columns:repeat(2,minmax(0,1fr))}.promotion-score-list{display:grid;gap:12px}.promotion-score-card{min-width:0;margin:0;padding:15px;border:1px solid var(--line);border-radius:16px;background:#fbfdff}.promotion-score-card legend{padding:0 7px;color:#17355d;font-weight:900}.promotion-score-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.promotion-score-grid .wide{grid-column:1/-1}.promotion-result-row{display:grid;grid-template-columns:1.2fr repeat(5,minmax(70px,1fr));gap:10px;padding:13px 0;border-top:1px solid var(--line)}.promotion-result-row p{grid-column:1/-1;margin:0;color:var(--muted)}.promotion-signatures{display:grid;gap:16px}.promotion-sign-grid>label{display:grid;gap:8px}.spr-history-directory summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer}
@media(max-width:760px){.level-promotion-entry{align-items:stretch;flex-direction:column}.level-promotion-entry .actions,.level-promotion-entry .btn{width:100%}.promotion-meta,.promotion-grades,.promotion-sign-grid{grid-template-columns:1fr}.promotion-score-grid{grid-template-columns:1fr 1fr}.promotion-score-grid .wide{grid-column:1/-1}.promotion-result-row{grid-template-columns:1fr 1fr}.promotion-result-row strong,.promotion-result-row p{grid-column:1/-1}.promotion-level{align-items:flex-start;flex-direction:column}.promotion-report input,.promotion-report textarea{width:100%;min-width:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
.mobile-menu{min-width:44px}
.parent-overview-grid,.parent-info-card,.parent-info-card>div{min-width:0;max-width:100%}.parent-info-card strong,.parent-info-card p{overflow-wrap:anywhere}
.parent-hero-icon{text-decoration:none}.parent-setup-form{display:grid;gap:22px;max-width:820px}.device-choice{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0;padding:0;border:0}.device-choice legend{grid-column:1/-1;margin-bottom:4px;color:#17355d;font-size:1.15rem;font-weight:900}.device-choice label{display:flex;gap:12px;align-items:flex-start;padding:18px;border:2px solid var(--line);border-radius:18px;background:#f8fbff;cursor:pointer}.device-choice input{width:22px;height:22px;margin:2px 0 0}.device-choice span,.device-choice strong,.device-choice small{display:block}.device-choice small{margin-top:5px;color:var(--muted)}.device-choice label:has(input:checked){border-color:#1768db;background:#edf6ff;box-shadow:0 0 0 3px #1768db18}.parent-device-children{display:grid;gap:12px}.parent-device-children h2,.parent-device-children p{margin:0}.parent-device-children article{display:grid;grid-template-columns:minmax(220px,1fr) minmax(320px,1fr);align-items:center;gap:16px;padding:16px;border:1px solid var(--line);border-radius:18px}.parent-device-children .student-main small{display:block;margin-top:4px;color:var(--muted)}.segmented-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}.segmented-choice label{cursor:pointer}.segmented-choice input{position:absolute;opacity:0;pointer-events:none}.segmented-choice span{display:grid;min-height:46px;place-items:center;padding:8px;border:1px solid var(--line);border-radius:13px;background:#fff;color:#52677e;font-size:.82rem;font-weight:850;text-align:center}.segmented-choice input:checked+span{border-color:#1768db;background:#1768db;color:#fff}.parent-pin-field{padding:16px;border-radius:16px;background:#fff8e9}.parent-pin-field small{display:block;margin-top:5px;color:var(--muted)}.parent-child-card>.actions{display:flex;gap:9px;flex-wrap:wrap}.parent-child-card>.actions form{margin:0}
@media(max-width:700px){.device-choice{grid-template-columns:1fr}.device-choice legend{grid-column:auto}.parent-device-children article{grid-template-columns:1fr}.segmented-choice{grid-template-columns:1fr 1fr}.parent-child-card>.actions,.parent-child-card>.actions .btn,.parent-child-card>.actions form{width:100%}}
@media(max-width:650px){.role-student .content{padding-bottom:18px}.student-bottom-nav{position:sticky;right:auto;bottom:max(8px,env(safe-area-inset-bottom));left:auto;width:calc(100% - 20px);margin:10px auto max(8px,env(safe-area-inset-bottom))}}
@media(max-width:650px){.student-bottom-nav{position:static}}

/* Student mockup fidelity v2 — exact mobile composition, real data underneath. */
.student-welcome-art{display:block;width:clamp(150px,24vw,230px);height:170px;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(67,107,158,.12))}.student-avatar-link{overflow:hidden;background:#ffd84a url('/assets/images/student-boy-avatar-v2.png') center 49%/118% auto no-repeat}.student-avatar-link span{display:none}.kingdom-banner{background-image:linear-gradient(90deg,rgba(5,136,113,.96) 0,rgba(5,153,127,.78) 38%,rgba(5,153,127,.05) 61%),url('/assets/images/kingdom-castle-card-v2.png');background-position:center;background-size:cover}.kingdom-banner strong{line-height:1.02}.kingdom-banner small{margin-bottom:15px}
@media(max-width:650px){
  .role-student{background:#fffaf1}.role-student .topbar{height:94px;min-height:94px;padding:10px 22px;border:0;background:#fffaf1;box-shadow:none}.role-student .topbar .brand-logo{width:205px;max-height:70px}.role-student .top-actions{display:none}.role-student .content{padding:0 20px 8px}.student-welcome{min-height:166px;padding:24px 4px 7px;border-radius:0;background:transparent;overflow:visible}.student-welcome::after{display:none}.student-welcome>div{position:relative;z-index:2}.student-welcome h1{max-width:none;font-size:39px;line-height:1.05;white-space:nowrap}.student-welcome h1 span{display:inline-block;font-size:34px;transform:rotate(-8deg)}.student-welcome p:not(.eyebrow){margin-top:7px;color:#576982;font-size:16px;font-weight:750}.student-welcome-art{position:absolute;z-index:1;right:-11px;bottom:-10px;width:151px;height:145px}.student-avatar-link{position:absolute;z-index:70;top:-85px;right:-1px;width:68px;height:68px;min-height:68px;flex-basis:68px;border:0;box-shadow:none}.student-practice-section{margin-top:11px}.student-play-section{margin-top:25px}.section-title{margin:0 14px 12px 13px}.section-title h2{font-size:31px;line-height:1.05}.student-practice-section .section-title>span{display:none}.student-practice-list{gap:13px}.student-practice-card{grid-template-columns:101px minmax(0,1fr) 48px;gap:8px;min-height:111px;padding:9px 12px;border-radius:25px;box-shadow:0 8px 18px rgba(28,67,112,.12)}.student-practice-card:nth-child(1){background:#bcecff}.student-practice-card:nth-child(2){background:#ffddb0}.student-practice-card:nth-child(3){background:#dfcdff}.student-practice-card::after{right:-35px;bottom:-75px;width:150px;height:150px}.practice-visual{width:101px;height:94px}.practice-visual img{width:103px;height:94px}.practice-bayangan .practice-visual b,.practice-bayangan_addition .practice-visual b,.practice-multiplication .practice-visual b{width:103px;min-width:103px;height:94px}.practice-copy strong{font-size:21px;white-space:nowrap}.practice-copy small{margin-top:4px;color:#415574;font-size:12px;white-space:nowrap}.practice-copy em{display:none}.practice-arrow{width:48px;height:48px;background:#268ef2;font-size:31px}.student-practice-card:nth-child(2) .practice-arrow{background:#ff6656}.student-practice-card:nth-child(3) .practice-arrow{background:#7434e6}.student-more{margin-top:12px}.student-more[open] .student-practice-list{margin-top:0}.student-play-section .section-title{margin-bottom:10px}.kingdom-banner{min-height:176px;padding:17px 18px;border-radius:24px;background-image:linear-gradient(90deg,rgba(5,137,113,.98) 0,rgba(5,153,127,.84) 42%,rgba(5,153,127,.02) 67%),url('/assets/images/kingdom-castle-card-v2.png');background-position:54% center;box-shadow:0 10px 22px rgba(12,97,77,.19)}.kingdom-banner strong{max-width:190px;margin:0 0 7px;font-size:31px}.kingdom-banner small{margin:0 0 12px;font-size:13px}.kingdom-banner em{padding:11px 16px;font-size:15px;box-shadow:0 5px 0 #e5a91c}.student-bottom-nav{width:calc(100% - 20px);min-height:81px;margin:16px auto 8px;padding:6px;border:0;border-radius:24px;background:#fff;box-shadow:0 10px 25px rgba(33,58,91,.12)}.student-bottom-nav a{min-height:67px;border-radius:18px}.student-bottom-nav a.active{background:#e6f3ff}.student-bottom-nav span{font-size:25px}.student-bottom-nav small{font-size:11px}
}
@media(max-width:390px){.student-practice-card{grid-template-columns:92px minmax(0,1fr) 46px}.practice-visual{width:92px}.practice-visual img{width:96px}.practice-bayangan .practice-visual b,.practice-bayangan_addition .practice-visual b,.practice-multiplication .practice-visual b{width:96px;min-width:96px}.practice-copy strong{font-size:19px}.student-welcome h1{font-size:37px}.student-welcome-art{right:-15px;width:143px}.kingdom-banner{background-position:58% center}}

/* Keep the greeting and sun in separate visual zones; use the saved Kingdom look when present. */
.student-avatar-link.has-character{background:#ffd84a}.student-character-avatar{position:absolute;inset:0;display:block;width:100%;height:100%;border-radius:50%;background:#ffd84a;object-fit:cover}
@media(max-width:650px){.student-welcome>div{max-width:255px}.student-welcome h1{font-size:35px}.student-welcome h1 span{font-size:28px}.student-welcome-art{right:-8px;bottom:-5px;width:126px;height:126px}}
@media(max-width:370px){.student-welcome>div{max-width:235px}.student-welcome h1{font-size:32px}.student-welcome h1 span{font-size:25px}.student-welcome-art{right:-10px;width:112px;height:116px}.student-welcome p:not(.eyebrow){font-size:14px}}

.student-profile-logout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:20px;border:1px solid #ffd2d2;background:#fffafa}.student-profile-logout h2,.student-profile-logout p{margin:0}.student-profile-logout p{margin-top:4px}.student-profile-logout .btn{min-width:120px;background:#d93d3d;color:#fff}
@media(max-width:650px){.student-profile-logout{align-items:stretch;flex-direction:column}.student-profile-logout .btn{width:100%;min-height:48px}}

/* Phase 4 — Point, Reward, Achievement, and Claw Machine. */
.point-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.point-search label{margin:0}.point-student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:13px}.point-student-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:11px;padding:15px;border:1px solid #d8e5f3;border-radius:18px;background:linear-gradient(145deg,#fff,#f1f7ff);box-shadow:0 8px 22px rgba(24,61,104,.08)}.point-student-card:hover{border-color:#79afe8;transform:translateY(-2px)}.reward-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#2a7eea,#784fe8);color:#fff;font-size:22px;font-weight:950}.point-student-card>span:nth-child(2){min-width:0}.point-student-card strong,.point-student-card small{display:block}.point-student-card>span:nth-child(2)>small{margin-top:3px;overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.point-student-card>b{color:var(--blue);font-size:24px;text-align:right}.point-student-card>b small{font-size:9px;text-transform:uppercase}.point-student-card>i{grid-column:2/-1;color:#8055cf;font-size:11px;font-style:normal;font-weight:850;text-align:right}.reward-balance-hero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.reward-balance-hero>div{position:relative;overflow:hidden;padding:24px;border-radius:24px;background:linear-gradient(135deg,#1768db,#5c54e8);color:#fff;box-shadow:0 16px 35px rgba(30,91,190,.2)}.reward-balance-hero>div:last-child{background:linear-gradient(135deg,#ff8b24,#ef3f91)}.reward-balance-hero small,.reward-balance-hero strong,.reward-balance-hero span{display:block}.reward-balance-hero small{font-weight:950;letter-spacing:.12em}.reward-balance-hero strong{margin:5px 0;font-size:clamp(42px,8vw,74px);line-height:1}.reward-balance-hero span{opacity:.86;font-weight:800}.reward-admin-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.reward-admin-actions .panel{padding:18px}.checkline{display:flex;grid-column:auto!important;align-items:center;gap:8px}.checkline input{width:auto}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.achievement-card{display:grid;place-items:center;gap:7px;min-height:160px;padding:15px;border:1px solid #f1cf8b;border-radius:19px;background:linear-gradient(145deg,#fff9dc,#fff);text-align:center}.achievement-card>span{font-size:45px}.achievement-card strong{color:var(--navy)}.achievement-card small{color:var(--muted);font-size:10px}.achievement-card.locked{border-color:#dfe6ef;background:#f3f6fa;color:#9cabbc;filter:grayscale(.75)}.achievement-card.locked>span{font-size:39px}.point-ledger-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line)}.point-ledger-row:last-child{border-bottom:0}.point-ledger-row span strong,.point-ledger-row span small{display:block}.point-ledger-row span small{margin-top:3px;color:var(--muted);font-size:10px}.point-ledger-row>b{font-size:19px;white-space:nowrap}.point-ledger-row .credit{color:#118157}.point-ledger-row .debit{color:#d1435c}.redemption-confirm{max-width:600px;margin-inline:auto}.redemption-confirm dl{display:grid;gap:0;margin:0}.redemption-confirm dl>div{display:flex;justify-content:space-between;gap:20px;padding:14px;border-bottom:1px solid var(--line)}.redemption-confirm dt{color:var(--muted);font-weight:800}.redemption-confirm dd{margin:0;color:var(--navy);font-size:18px;font-weight:950;text-align:right}.redemption-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto minmax(170px,auto);align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.redemption-row>span:first-child strong,.redemption-row>span:first-child small{display:block}.redemption-row>span:first-child small{color:var(--muted);font-size:10px}.redemption-row form{display:flex;gap:6px}.redemption-row input{min-width:120px}.achievement-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:13px}.achievement-master-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:0}.achievement-master-card>span{font-size:42px}.achievement-master-card p{margin:4px 0;color:var(--muted);font-size:12px}.achievement-master-card small{color:#6a7d93}.result-reward-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin:18px 0;padding:22px;border-radius:24px;background:linear-gradient(135deg,#fff4bb,#e2f9ec);box-shadow:0 14px 35px rgba(39,90,80,.13)}.result-reward-panel h2{margin:3px 0 12px;color:var(--navy)}.earned-reward{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;margin-top:7px;border-radius:12px;background:rgba(255,255,255,.76)}.earned-reward strong{color:#118157}.earned-badge{display:flex;align-items:center;gap:12px;padding:10px;margin-top:7px;border-radius:14px;background:#fff}.earned-badge span{font-size:32px}.earned-badge strong{color:var(--navy)}
@media(max-width:700px){.point-search{grid-template-columns:1fr}.point-search .btn{width:100%}.point-student-grid{grid-template-columns:1fr}.point-student-card{grid-template-columns:42px minmax(0,1fr) auto;padding:13px}.reward-avatar{width:42px;height:42px}.point-student-card>b{font-size:20px}.reward-balance-hero{gap:8px}.reward-balance-hero>div{padding:17px;border-radius:19px}.reward-balance-hero strong{font-size:38px}.reward-admin-actions{grid-template-columns:1fr}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.achievement-card{min-height:135px;padding:11px}.achievement-card>span{font-size:36px}.redemption-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.redemption-row{grid-template-columns:1fr auto;gap:6px;padding:14px 2px}.redemption-row>span:first-child{grid-column:1/-1}.redemption-row form{grid-column:1/-1;display:grid;grid-template-columns:1fr auto}.achievement-admin-grid{grid-template-columns:1fr}.achievement-master-card{grid-template-columns:auto 1fr}.achievement-master-card .btn{grid-column:1/-1}.result-reward-panel{grid-template-columns:1fr;padding:16px;border-radius:19px}}
.point-wallet-summary{margin-bottom:16px;background:linear-gradient(145deg,#fffdf2,#f4fbff)}.point-wallet-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.point-wallet-numbers>div{padding:14px;border-radius:16px;background:#fff;border:1px solid #dce8f3;text-align:center}.point-wallet-numbers small,.point-wallet-numbers strong{display:block}.point-wallet-numbers small{color:var(--muted);font-weight:800}.point-wallet-numbers strong{margin-top:4px;color:var(--navy);font-size:28px}.reward-exchange-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}.reward-exchange-card{position:relative;overflow:hidden}.reward-exchange-card.claw{border-color:#ffd493;background:linear-gradient(145deg,#fffaf0,#fff)}.reward-exchange-card.kingdom{border-color:#b9e8dd;background:linear-gradient(145deg,#effff9,#fff)}.reward-exchange-icon{float:right;font-size:42px}.reward-exchange-card h3{margin-top:0}.reward-exchange-card>small{display:block;margin:-4px 0 12px;color:var(--muted);font-weight:800}.redemption-request-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid var(--line)}.redemption-request-row>span:first-child strong,.redemption-request-row>span:first-child small{display:block}.redemption-request-row>span:first-child small{color:var(--muted);font-size:10px}.redemption-request-row>b{color:#d1435c;white-space:nowrap}.pending-redemption-card{display:grid;grid-template-columns:minmax(210px,1fr) minmax(260px,auto) minmax(260px,auto);align-items:end;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.pending-redemption-card p{margin:5px 0;color:var(--navy);font-weight:850}.pending-redemption-card small{color:var(--muted)}.pending-redemption-card form{display:grid;grid-template-columns:minmax(130px,1fr) auto;gap:8px;align-items:end}.pending-redemption-card input{margin:0}
@media(max-width:700px){.point-wallet-numbers{gap:6px}.point-wallet-numbers>div{padding:10px 5px}.point-wallet-numbers small{font-size:9px}.point-wallet-numbers strong{font-size:22px}.reward-exchange-grid{grid-template-columns:1fr}.redemption-request-row{grid-template-columns:1fr auto}.redemption-request-row>.badge{grid-column:1/-1;width:max-content}.pending-redemption-card{grid-template-columns:1fr}.pending-redemption-card form{grid-template-columns:1fr}.pending-redemption-card .btn{width:100%}}
.credit{color:#118157!important}.debit{color:#d1435c!important}.profile-reward-card{display:grid;grid-template-columns:repeat(2,minmax(0,180px)) minmax(260px,1fr);align-items:center;gap:12px;margin:18px 0;padding:18px;border:1px solid #cfe1f2;border-radius:20px;background:linear-gradient(135deg,#edf7ff,#fff7d8)}.profile-reward-card>div:not(.actions){padding:10px 14px;border-radius:14px;background:#fff}.profile-reward-card small,.profile-reward-card strong{display:block}.profile-reward-card small{color:var(--muted);font-size:9px;font-weight:900}.profile-reward-card strong{color:var(--navy);font-size:27px}.profile-reward-card .actions{justify-content:flex-end}.point-report-filter{margin-top:18px}
@media(max-width:700px){.profile-reward-card{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.profile-reward-card .actions{grid-column:1/-1;display:grid;grid-template-columns:1fr}.profile-reward-card .btn{width:100%}}

/* Phase 5 — Challenge & Live Battle */
.competition-hero{position:relative;overflow:hidden;margin-bottom:18px;padding:28px;border-radius:28px;background:linear-gradient(135deg,#1768db,#754fe8 55%,#ed3e9b);color:#fff;box-shadow:0 18px 42px rgba(55,68,180,.22)}.competition-hero.challenge{background:linear-gradient(135deg,#7b43dc,#ee3d93,#ff902e)}.competition-hero.battle{background:linear-gradient(135deg,#073d82,#216be1,#3ecbd4)}.competition-hero h1{margin:3px 0 8px;color:#fff}.competition-hero p{margin:5px 0;color:#fff}.competition-hero .eyebrow{color:#fff5a5}.competition-state{display:inline-block;margin-top:10px;padding:7px 12px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(255,255,255,.16);font-size:11px;font-weight:950;letter-spacing:.08em}.battle-countdown{display:grid;place-items:center;width:82px;height:82px;margin:15px auto 0;border:4px solid #fff;border-radius:50%;background:#ffb122;color:#143a66;font-size:40px;box-shadow:0 8px 25px rgba(0,0,0,.18)}.competition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:13px}.competition-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:13px;padding:17px;border:1px solid #d5e4f3;border-radius:21px;background:linear-gradient(145deg,#fff,#f1f7ff);box-shadow:0 9px 24px rgba(25,61,105,.09)}.competition-card>span{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,#2682ef,#6e4bea);color:#fff;font-size:27px}.competition-card.challenge>span{background:linear-gradient(135deg,#853ee3,#f25194)}.competition-card small,.competition-card b{display:block}.competition-card h2{margin:2px 0 3px;font-size:19px}.competition-card p{margin:0;color:var(--muted);font-size:12px}.competition-card b{margin-top:6px;color:#1768db;font-size:10px}.competition-card>i{color:#f17d24;font-style:normal;font-weight:950}.competition-form{max-width:900px;margin-inline:auto}.student-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px;max-height:330px;overflow:auto;margin:8px 0 18px;padding:10px;border:1px solid var(--line);border-radius:16px;background:#f7faff}.student-check-grid .checkline{padding:9px;border-radius:10px;background:#fff}.battle-group-card{display:flex;align-items:center;gap:12px;margin-bottom:11px}.battle-group-card>div{flex:1}.battle-group-card h2,.battle-group-card p{margin:0}.lobby-list>div,.challenge-result-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:12px;padding:13px 5px;border-bottom:1px solid var(--line)}.lobby-list>div:last-child,.challenge-result-row:last-child{border:0}.battle-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.battle-actions form{flex:1}.battle-actions .btn{width:100%}.waiting-pulse{padding:18px;border-radius:17px;background:#fff4cf;color:#8a5a00;font-weight:900;text-align:center;animation:pulse-soft 1.4s infinite}.admin-resolve{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:18px}.podium{display:grid;gap:10px;padding:22px;border-radius:24px;background:#fff}.podium article{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px;border-radius:17px;background:#edf6ff}.podium article.rank-1{background:linear-gradient(135deg,#fff3a8,#fff9dd);box-shadow:0 8px 23px rgba(216,160,22,.18)}.podium article>b{font-size:30px}.podium article strong,.podium article small{display:block}.podium article small{color:var(--muted)}.podium article i{font-style:normal;font-weight:950}.competition-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.competition-summary>a{padding:18px;border-radius:20px;background:linear-gradient(135deg,#e9f4ff,#fff);box-shadow:0 8px 23px rgba(24,61,104,.09)}.competition-summary small,.competition-summary strong,.competition-summary span{display:block}.competition-summary strong{color:#1768db;font-size:34px}.competition-summary span{color:var(--muted);font-size:11px}.one-attempt-warning{border:2px solid #f2bb49;background:#fff9df}.positive-wait{text-align:center}.competition-result{max-width:760px;margin-inline:auto}
@keyframes pulse-soft{50%{transform:scale(.985);opacity:.75}}
@media(max-width:650px){.competition-hero{padding:21px 18px;border-radius:23px}.competition-grid{grid-template-columns:1fr}.competition-card{grid-template-columns:50px minmax(0,1fr) auto;padding:14px}.competition-card>span{width:50px;height:50px}.student-check-grid{grid-template-columns:1fr}.lobby-list>div{grid-template-columns:minmax(0,1fr) auto}.challenge-result-row{grid-template-columns:1fr auto}.challenge-result-row i{grid-column:1/-1}.competition-summary{gap:8px}.competition-summary>a{padding:14px}.admin-resolve{grid-template-columns:1fr}.podium{padding:14px}.podium article{grid-template-columns:40px minmax(0,1fr) auto;padding:12px}.battle-actions{display:grid;grid-template-columns:1fr}.competition-result .result-breakdown{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Phase 6 Adventure Game: lightweight, mobile-first presentation layer. */
.boss-meter-live{max-width:700px;margin:0 auto 14px;padding:12px 18px;border-radius:18px;background:linear-gradient(135deg,#311b63,#783a9f);color:#fff;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;text-align:center}.boss-meter-live span{font-weight:900}.boss-meter-live b{font-size:1.35rem;letter-spacing:3px}.boss-meter-live small{width:100%;opacity:.85}
.adventure-page{max-width:980px;margin:auto}.adventure-landing,.forest-hero,.stage-story{display:flex;align-items:center;justify-content:space-between;gap:24px;border-radius:32px;padding:28px;background:linear-gradient(135deg,#0ca678,#54d98c 48%,#ffe169);color:#083b32;box-shadow:0 18px 45px #0ca6782d;margin-bottom:24px;overflow:hidden}.adventure-landing h1,.forest-hero h1,.stage-story h1{font-size:clamp(2rem,6vw,4rem);margin:.15em 0}.adventure-character{font-size:clamp(4rem,14vw,8rem);animation:adventure-float 2.8s ease-in-out infinite}.world-card{display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:22px;padding:24px;border-radius:30px;background:linear-gradient(135deg,#126b42,#20a35d);color:#fff;text-decoration:none;box-shadow:0 18px 42px #0b683b3d;margin-bottom:24px}.world-card>span:nth-child(2){display:grid;gap:7px}.world-card strong{font-size:2rem}.world-art{font-size:5rem;text-align:center;position:relative}.world-art i{font-size:2rem;position:absolute;right:5px}.world-progress{height:12px;background:#ffffff42;border-radius:99px;overflow:hidden}.world-progress i{display:block;height:100%;background:#ffd43b;border-radius:inherit}.adventure-links{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.adventure-links a{display:grid;gap:5px;padding:22px;border-radius:24px;text-decoration:none;color:#fff;font-size:1.4rem;background:linear-gradient(135deg,#6f42c1,#c44dd8)}.adventure-links a+ a{background:linear-gradient(135deg,#ff922b,#ffd43b);color:#5a3300}.mission-panel{border:3px solid #ffb52e}.mission-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #dce6ef}.mission-row span{display:grid}.cosmetic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.cosmetic-grid article{display:grid;text-align:center;gap:5px;padding:16px;background:#f3f7ff;border-radius:18px}.cosmetic-grid article>span{font-size:2.5rem}.forest-hero{background:linear-gradient(135deg,#0b6e4f,#37b24d);color:white}.sound-toggle{border:2px solid #ffffff88;background:#ffffff2e;color:white;padding:12px 16px;border-radius:99px;font-weight:800;cursor:pointer}.adventure-map{position:relative;padding:18px 6%;background:linear-gradient(#e8fff0,#fff8d6);border-radius:36px;overflow:hidden}.adventure-map:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:8px dotted #84c985;transform:translateX(-50%)}.stage-node{width:56%;position:relative;margin:18px 0;z-index:1}.stage-node.right{margin-left:auto}.stage-card{display:flex;align-items:center;gap:14px;padding:17px;background:white;border:3px solid #50b96a;border-radius:24px;box-shadow:0 10px 25px #315d4030;color:#173b33;text-decoration:none}.stage-node.available .stage-card{border-color:#ff9f1c;animation:adventure-pulse 2s infinite}.stage-node.locked .stage-card{filter:grayscale(.75);opacity:.72}.stage-icon{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px;border-radius:18px;background:#e9fff0;font-size:2rem}.stage-card>div{display:grid;gap:4px}.stage-card strong{font-size:1.15rem}.stage-card small{font-weight:800;letter-spacing:.08em}.stage-card b{letter-spacing:2px}.stage-detail{max-width:780px;margin:auto}.stage-story{background:linear-gradient(135deg,#9be15d,#00e3ae)}.stage-story-art{font-size:5rem}.stage-detail.boss .stage-story{background:linear-gradient(135deg,#563d7c,#df4f80);color:white}.boss-preview{padding:22px;text-align:center;border-radius:24px;background:#25194c;color:white;margin:18px 0}.boss-preview>span{font-weight:900;letter-spacing:.12em}.boss-preview div{font-size:2rem;margin:12px}.star-guide{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.star-guide span{padding:12px;background:#fff8d6;border-radius:14px;text-align:center;font-weight:800}.adventure-result{max-width:760px;margin:0 auto 22px;text-align:center;padding:28px;border-radius:32px;background:linear-gradient(145deg,#fff3bf,#d3f9d8);box-shadow:0 16px 40px #617b5530}.adventure-result-stars{font-size:3.5rem;letter-spacing:8px;margin:14px}.adventure-result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:18px}.boss-defeated{font-size:1.4rem;font-weight:900;color:#7b2cbf}.adventure-home-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:20px;margin-bottom:20px;border-radius:24px;background:linear-gradient(135deg,#0ca678,#74d94c);color:white;text-decoration:none;box-shadow:0 12px 30px #0ca67835}.adventure-home-card>span:nth-child(2){display:grid}.adventure-home-card strong{font-size:1.5rem}.adventure-home-icon{font-size:3rem}.adventure-mission-option{grid-column:1/-1;padding:18px;border:2px solid #f7b32b;border-radius:18px;background:#fff9e8;margin:12px 0}.adventure-professional{border-left:6px solid #20a35d}.management-stage{display:grid;grid-template-columns:minmax(220px,1fr) minmax(300px,2fr);gap:16px;padding:13px 0;border-bottom:1px solid #dde7ef}.management-stage>span{display:grid}.management-stage form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.management-stage input{max-width:150px}
@keyframes adventure-float{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes adventure-pulse{50%{transform:scale(1.025);box-shadow:0 14px 30px #ff922b55}}
@media(prefers-reduced-motion:reduce){.adventure-character,.stage-node.available .stage-card{animation:none!important}}
@media(max-width:640px){.adventure-landing,.forest-hero,.stage-story{padding:20px;border-radius:24px}.adventure-character,.stage-story-art{font-size:3.8rem}.world-card{grid-template-columns:72px 1fr;padding:18px;gap:12px}.world-card em{grid-column:1/-1;text-align:right}.world-art{font-size:3.5rem}.world-card strong{font-size:1.55rem}.adventure-links{grid-template-columns:1fr 1fr}.adventure-links a{font-size:1.05rem;padding:17px}.adventure-map{padding:12px}.adventure-map:before{left:28px}.stage-node,.stage-node.right{width:100%;margin:14px 0;padding-left:20px}.stage-card{padding:14px;border-radius:20px}.stage-icon{width:50px;height:50px;flex-basis:50px}.star-guide{grid-template-columns:1fr}.mission-row{align-items:flex-start}.adventure-home-card{grid-template-columns:auto 1fr}.adventure-home-card>b{grid-column:1/-1;text-align:right}.management-stage{grid-template-columns:1fr}.adventure-result-stars{font-size:2.3rem}.forest-hero{align-items:flex-start;flex-direction:column}.sound-toggle{align-self:flex-end}}

/* Sempoa Kingdom — RPG village learning game */
.rpg-game{max-width:1120px;margin:0 auto;padding:18px;overflow:hidden;border-radius:32px;color:#163354;background:linear-gradient(180deg,#e8fbff 0,#fff8dc 34%,#f4e9ff 100%);box-shadow:0 22px 60px #1633541c}.rpg-hud{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 18px;border:3px solid #ffffff80;border-radius:25px;color:#fff;background:linear-gradient(135deg,#2458d8,#8338d7 58%,#ed3c94);box-shadow:0 12px 24px #4f46a535}.rpg-profile{display:flex;align-items:center;gap:12px}.rpg-profile>span{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#fff;font-size:32px;box-shadow:inset 0 -5px 0 #ffd67a}.rpg-profile small,.rpg-profile strong{display:block}.rpg-profile strong{font-size:1.25rem}.rpg-profile i{display:block;width:170px;height:8px;margin-top:5px;overflow:hidden;border-radius:10px;background:#ffffff42}.rpg-profile i b{display:block;height:100%;background:#ffd43b}.rpg-wallet{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.rpg-wallet span{padding:8px 11px;border:1px solid #ffffff62;border-radius:999px;background:#081c3f8c;white-space:nowrap}.rpg-wallet.professional{justify-content:flex-start;margin-top:18px}.rpg-quest{display:flex;align-items:center;gap:13px;margin:14px 0;padding:13px 16px;border:2px solid #ef9e20;border-radius:20px;color:#4f3213;background:linear-gradient(110deg,#fff2a8,#ffd35b);box-shadow:0 7px 0 #bd691f}.rpg-quest>span{font-size:34px}.rpg-quest div{flex:1}.rpg-quest small,.rpg-quest strong{display:block}.rpg-quest a{padding:10px 14px;border-radius:14px;color:#fff;background:#eb7124;font-weight:900;text-decoration:none}.rpg-village-scene{position:relative;aspect-ratio:2/2.55;overflow:hidden;border:5px solid #fff;border-radius:30px;background:#5ed2f1;box-shadow:0 18px 38px #1e4a5c38}.rpg-village-scene:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#061b3c22 0,transparent 28%,transparent 72%,#08254055)}.rpg-village-scene>img{display:block;width:100%;height:100%;object-fit:cover}.rpg-scene-title{position:absolute;z-index:2;top:3%;left:4%;max-width:55%;padding:13px 16px;border:2px solid #fff;border-radius:18px;background:#ffffffde;box-shadow:0 8px 22px #14314f38}.rpg-scene-title small{color:#ef6d23;font-weight:900;letter-spacing:.08em}.rpg-scene-title h1{margin:4px 0 0;font-size:clamp(1.15rem,3vw,2rem);line-height:1.08}.rpg-hotspot{position:absolute;z-index:3;display:grid;place-items:center;width:86px;height:86px;border:4px solid #fff;border-radius:50%;color:#fff;font-size:34px;text-decoration:none;box-shadow:0 7px 0 #11294d88,0 12px 25px #11294d66;animation:rpgFloat 2.2s ease-in-out infinite}.rpg-hotspot span{position:absolute;bottom:-10px;padding:4px 9px;border-radius:999px;color:#14345e;background:#fff;font-size:.72rem;font-weight:900;white-space:nowrap}.rpg-hotspot.work{top:47%;left:8%;background:linear-gradient(145deg,#ff9c28,#ed541f)}.rpg-hotspot.build{top:58%;right:10%;background:linear-gradient(145deg,#38d78f,#099e6b);animation-delay:.4s}.rpg-hotspot.store{right:14%;bottom:8%;background:linear-gradient(145deg,#b05cff,#7432d4);animation-delay:.8s}@keyframes rpgFloat{50%{transform:translateY(-7px)}}.rpg-tabs{position:sticky;z-index:15;bottom:8px;display:grid;grid-template-columns:repeat(5,1fr);gap:7px;width:min(94%,680px);margin:-18px auto 24px;padding:8px;border-radius:22px;background:#09274dea;box-shadow:0 10px 30px #061b3c55;backdrop-filter:blur(10px)}.rpg-tabs a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:14px;color:#fff;font-weight:800;text-decoration:none}.rpg-tabs a:hover{background:#2478e8}.rpg-tabs a:first-child{background:#18a96f}.rpg-section{margin:18px 0;padding:22px;scroll-margin-top:85px;border:2px solid #dbe8f4;border-radius:27px;background:#ffffffed;box-shadow:0 12px 28px #14365a16}.rpg-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}.rpg-section-head small{color:#ed7128;font-weight:900;letter-spacing:.11em}.rpg-section-head h2{margin:3px 0;font-size:clamp(1.5rem,4vw,2.25rem)}.rpg-section-head p{margin:0;color:#617289}.rpg-bubble{padding:9px 13px;border-radius:999px;color:#087a51;background:#d9fae7;font-size:.78rem;font-weight:900}.rpg-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rpg-card-grid>article{position:relative;display:flex;gap:14px;padding:18px;border:2px solid #dce7f2;border-radius:22px;background:#fff;box-shadow:0 7px 0 #c9d8e8}.rpg-card-grid.jobs>article:nth-child(5n+1){background:linear-gradient(135deg,#fff2d1,#fff)}.rpg-card-grid.jobs>article:nth-child(5n+2){background:linear-gradient(135deg,#dfffe9,#fff)}.rpg-card-grid.jobs>article:nth-child(5n+3){background:linear-gradient(135deg,#e9e0ff,#fff)}.rpg-card-grid.jobs>article:nth-child(5n+4){background:linear-gradient(135deg,#dcefff,#fff)}.rpg-card-grid.jobs>article:nth-child(5n){background:linear-gradient(135deg,#ffe1f0,#fff)}.rpg-card-icon{display:grid;place-items:center;flex:0 0 62px;height:62px;border-radius:18px;background:linear-gradient(145deg,#2782ef,#7444e4);box-shadow:inset 0 -6px 0 #1e3a8a44;font-size:32px}.rpg-card-grid h3{margin:3px 0;font-size:1.15rem}.rpg-card-grid p{margin:5px 0 10px;color:#617289;font-size:.9rem}.rpg-card-grid small{color:#3372c1;font-weight:900}.rpg-job.locked{filter:grayscale(.65);opacity:.68}.rpg-reward-preview,.rpg-cost,.rpg-pay-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.rpg-reward-preview span,.rpg-cost span,.rpg-pay-chips span{padding:6px 9px;border:1px solid #cfe1f6;border-radius:999px;background:#edf5ff;font-size:.78rem;font-weight:800}.rpg-building.built{border-color:#4bc78d;background:linear-gradient(135deg,#e3fff1,#fff)}.rpg-building.empty{background:#f5f7fa}.rpg-done{display:inline-block;padding:7px 11px;border-radius:999px;color:#087a51;background:#d9fae7}.rpg-card-grid.shop{grid-template-columns:repeat(3,minmax(0,1fr))}.rpg-card-grid.shop>article{display:block;text-align:center}.rpg-card-grid.shop .rpg-card-icon{margin:0 auto 8px}.rpg-locked-panel{padding:20px;border:2px dashed #a1b2c4;border-radius:18px;color:#5c6e80;background:#f3f7fb;text-align:center}.rpg-inventory,.rpg-recent{display:flex;flex-wrap:wrap;gap:12px}.rpg-inventory article{display:grid;place-items:center;min-width:120px;padding:16px;border:2px solid #f0c650;border-radius:18px;background:linear-gradient(145deg,#fff3c4,#fff)}.rpg-inventory article span{font-size:38px}.rpg-inventory small{color:#6d7280}.rpg-recent article{display:grid;grid-template-columns:auto 1fr;align-items:center;flex:1 1 210px;gap:2px 10px;padding:13px;border-radius:16px;background:#edf7ff}.rpg-recent article>span{grid-row:span 3;font-size:28px}.rpg-recent article div{display:flex;flex-wrap:wrap;gap:5px}.rpg-pay-result{max-width:680px;margin:0 auto 20px;padding:28px;border:4px solid #fff;border-radius:30px;background:linear-gradient(145deg,#fff1a8,#ddffe8,#e8dcff);box-shadow:0 18px 40px #15345b35;text-align:center}.rpg-pay-character{font-size:72px}.rpg-pay-result h2{margin:8px;font-size:2rem}.rpg-pay-chips{justify-content:center}.rpg-home-card{display:flex;align-items:center;gap:16px;margin:0 0 22px;padding:22px;border-radius:28px;color:#fff;background:linear-gradient(120deg,#147a52,#21b76a 45%,#6d42df);box-shadow:0 12px 0 #0b5b40,0 18px 35px #143d6b38;text-decoration:none}.rpg-home-card>span{font-size:55px}.rpg-home-card div{flex:1}.rpg-home-card small,.rpg-home-card strong,.rpg-home-card b{display:block}.rpg-home-card strong{font-size:1.7rem}.rpg-home-card p{margin:5px 0}.rpg-home-card em{padding:11px 14px;border-radius:14px;background:#ffb12b;font-style:normal;font-weight:900}.rpg-game .btn{border-radius:14px;font-weight:900}.rpg-game .btn.warning{color:#4b2c08;background:linear-gradient(135deg,#ff8a20,#ffbd33)}.rpg-game .btn.success{color:#fff;background:linear-gradient(135deg,#12a568,#42d88c)}
@media(max-width:700px){.rpg-game{margin:-12px;padding:8px;border-radius:0}.rpg-hud{display:block;padding:10px;border-radius:18px}.rpg-profile>span{width:46px;height:46px;font-size:25px}.rpg-profile strong{font-size:1rem}.rpg-profile i{width:130px}.rpg-wallet{justify-content:flex-start;gap:4px;margin-top:8px}.rpg-wallet span{padding:5px 8px;font-size:.75rem}.rpg-quest{padding:10px;font-size:.82rem}.rpg-quest>span{font-size:27px}.rpg-quest a{padding:8px}.rpg-village-scene{aspect-ratio:2/3.05;border-width:3px;border-radius:20px}.rpg-scene-title{max-width:71%;padding:9px 11px}.rpg-scene-title h1{font-size:1.05rem}.rpg-scene-title small{font-size:.62rem}.rpg-hotspot{width:66px;height:66px;font-size:26px}.rpg-hotspot span{font-size:.62rem}.rpg-tabs{grid-template-columns:repeat(5,1fr);gap:2px;width:98%;border-radius:17px}.rpg-tabs a{font-size:.75rem}.rpg-section{padding:14px;border-radius:20px}.rpg-section-head{display:block}.rpg-bubble{display:inline-block;margin-top:8px}.rpg-card-grid,.rpg-card-grid.shop{grid-template-columns:1fr}.rpg-card-grid>article{gap:11px;padding:13px}.rpg-card-icon{flex-basis:52px;height:52px;font-size:27px}.rpg-home-card{padding:15px;border-radius:20px}.rpg-home-card>span{font-size:38px}.rpg-home-card strong{font-size:1.25rem}.rpg-home-card p{font-size:.82rem}.rpg-home-card em{padding:8px;font-size:.72rem}.rpg-pay-result{padding:18px}.rpg-pay-character{font-size:55px}}.rpg-coach-missions{margin:14px 0;padding:17px;border:3px solid #9c57e8;border-radius:22px;background:linear-gradient(135deg,#f2e6ff,#fff)}.rpg-coach-missions h2{margin:3px 0 10px}.rpg-coach-missions>div small{color:#7b38c5;font-weight:900;letter-spacing:.1em}.rpg-coach-missions article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border-top:1px solid #dcc5f3}.rpg-coach-missions article>span{font-size:30px}.rpg-coach-missions strong,.rpg-coach-missions small{display:block}.rpg-coach-missions small{color:#6c7181}.rpg-coach-missions form{margin:0}@media(max-width:700px){.rpg-coach-missions article{grid-template-columns:auto 1fr}.rpg-coach-missions form{grid-column:1/-1}.rpg-coach-missions .btn{width:100%}}@media(prefers-reduced-motion:reduce){.rpg-hotspot{animation:none!important}}

.battle-invite-toast{position:fixed;z-index:120;top:max(14px,env(safe-area-inset-top));right:14px;left:14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;max-width:520px;margin:auto;padding:13px 14px;border:3px solid #fff1a8;border-radius:20px;background:linear-gradient(135deg,#ff7d29,#f33c96);color:#fff;box-shadow:0 14px 40px rgba(74,31,105,.32);opacity:0;pointer-events:none;transform:translateY(-140%);transition:.3s ease}.battle-invite-toast.show{opacity:1;pointer-events:auto;transform:translateY(0)}.battle-invite-toast>span{font-size:30px}.battle-invite-toast strong,.battle-invite-toast small{display:block}.battle-invite-toast small{margin-top:2px;color:#fff}.battle-invite-toast a{padding:9px 13px;border-radius:12px;background:#fff;color:#9d276b;font-weight:950}.race-event-list{display:grid;gap:10px}.race-event-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:2px solid #dce8f5;border-radius:18px;background:#fff;text-decoration:none}.race-event-card>span{font-size:28px}.race-event-card strong,.race-event-card small,.race-event-card b{display:block}.race-event-card small{color:var(--muted)}.race-event-card b{font-size:11px}.race-event-card.invited{border-color:#ff9a38;background:linear-gradient(135deg,#fff4bd,#ffd8ec);box-shadow:0 8px 24px rgba(241,92,115,.2);animation:pulse-soft 1.5s infinite}.race-event-card.invited b{color:#c0256f}.race-event-card.waiting{border-color:#72b8ff;background:linear-gradient(135deg,#e8f5ff,#eef0ff)}.race-event-card.waiting b{color:#1768db}.race-event-card.finished{opacity:.82;background:#f5f8fb}.race-event-card em{padding:7px 10px;border-radius:999px;background:#fff;color:#1768db;font-size:11px;font-style:normal;font-weight:950}

.race-event-card.invited{animation:none}

/* Sempoa SIP Kingdom V2 — isolated playable preview */
.kv2-shell{max-width:1180px;margin:0 auto;color:#17375e}.kv2-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px;padding:16px 22px;border-radius:24px;color:#fff;background:linear-gradient(115deg,#0d6dcf,#673bd3 60%,#ef4f97);box-shadow:0 12px 28px #1b3f7430}.kv2-title small{font-weight:900;letter-spacing:.1em}.kv2-title h1{margin:3px 0;font-size:clamp(1.55rem,4vw,2.6rem)}.kv2-title p{margin:0}.kv2-preview{padding:10px 14px;border:2px solid #ffffff8c;border-radius:999px;background:#0a214b66;font-weight:900;white-space:nowrap}.kv2-hud{position:sticky;z-index:22;top:8px;display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:96%;margin:0 auto -20px;padding:8px;border:3px solid #fff;border-radius:19px;background:#0a2854e8;box-shadow:0 8px 20px #061b3e55;backdrop-filter:blur(8px)}.kv2-hud span,.kv2-hud button{padding:7px 11px;border:0;border-radius:12px;color:#fff;background:#ffffff1f;font:inherit;font-weight:900}.kv2-hud button{cursor:pointer}.kv2-game-frame{position:relative;overflow:hidden;height:min(72vh,700px);min-height:510px;border:6px solid #fff;border-radius:30px;background:#72cc69;box-shadow:0 20px 50px #15385b42;touch-action:none}.kv2-game-frame canvas{display:block;width:100%;height:100%;object-fit:fill}.kv2-scene-label{position:absolute;top:25px;left:20px;padding:9px 14px;border:2px solid #fff;border-radius:999px;color:#fff;background:#0a2854d9;font-weight:900;box-shadow:0 6px 15px #0924484a}.kv2-joystick{position:absolute;left:22px;bottom:22px;width:112px;height:112px;border:4px solid #ffffffc7;border-radius:50%;background:#09295f7d;box-shadow:inset 0 0 0 15px #ffffff1f}.kv2-joystick i{position:absolute;top:32px;left:32px;width:40px;height:40px;border:3px solid #fff;border-radius:50%;background:#2b80e8;box-shadow:0 5px 12px #09244c88}.kv2-interact{position:absolute;right:22px;bottom:30px;max-width:48%;padding:16px 22px;border:4px solid #fff;border-radius:22px;color:#fff;background:linear-gradient(135deg,#ff7a1b,#ffc13a);box-shadow:0 8px 0 #a44b12;font-size:1rem;font-weight:1000}.kv2-interact:disabled{opacity:.55;filter:grayscale(.7)}.kv2-toast{position:absolute;z-index:25;top:75px;left:50%;transform:translateX(-50%);width:max-content;max-width:85%;padding:13px 18px;border:3px solid #fff;border-radius:17px;color:#fff;background:#172b53e8;box-shadow:0 9px 20px #061a3e70;font-weight:900;text-align:center}.kv2-help{margin:12px auto 0;color:#5c6b7f;text-align:center}.kv2-dialog,.kv2-avatar-picker{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:16px;background:#061a3b9c;backdrop-filter:blur(5px)}.kv2-dialog[hidden]{display:none}.kv2-dialog-card,.kv2-avatar-picker>div{position:relative;width:min(620px,96vw);max-height:88vh;overflow:auto;padding:26px;border:4px solid #fff;border-radius:28px;background:linear-gradient(145deg,#fff,#ecf7ff);box-shadow:0 25px 70px #06152b88}.kv2-close{position:absolute;top:10px;right:12px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;color:#fff;background:#e84c68;font-size:28px}.kv2-npc{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}.kv2-npc>span,.kv2-build-dialog>span{font-size:68px}.kv2-npc h2,.kv2-build-dialog h2{margin:3px 0}.kv2-npc form{margin:8px 0}.kv2-shop-grid{display:grid;gap:9px}.kv2-shop-grid article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px;border:2px solid #dce8f4;border-radius:15px;background:#fff}.kv2-shop-grid article>span{font-size:35px}.kv2-shop-grid small{display:block;color:#66748a}.kv2-shop-grid em{color:#118b5d;font-style:normal;font-weight:900}.kv2-inventory,.kv2-avatar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kv2-inventory article,.kv2-avatar-grid button{display:grid;place-items:center;padding:15px;border:2px solid #d8e5f2;border-radius:18px;background:#fff}.kv2-inventory span,.kv2-avatar-grid span{font-size:52px}.kv2-avatar-grid button{cursor:pointer;font:inherit}.kv2-avatar-grid button:hover{border-color:#2878e4;background:#eaf4ff;transform:translateY(-3px)}.kv2-build-dialog{text-align:center}.kv2-build-dialog p{padding:10px;border-radius:13px;background:#edf5ff}.kv2-shell .full{display:block;width:100%;margin-top:8px;text-align:center}
@media(max-width:700px){.kv2-shell{margin:-12px}.kv2-title{margin:0;padding:12px 14px;border-radius:0}.kv2-title h1{font-size:1.25rem}.kv2-title p{font-size:.76rem}.kv2-title small{font-size:.6rem}.kv2-preview{padding:7px;font-size:.65rem}.kv2-hud{top:4px;gap:3px;margin-bottom:-17px;padding:5px}.kv2-hud span,.kv2-hud button{padding:5px 7px;font-size:.72rem}.kv2-game-frame{height:calc(100dvh - 205px);min-height:530px;border-width:3px;border-radius:0}.kv2-scene-label{top:22px;left:10px;font-size:.72rem}.kv2-joystick{left:14px;bottom:18px;width:96px;height:96px}.kv2-joystick i{top:27px;left:27px;width:36px;height:36px}.kv2-interact{right:12px;bottom:25px;padding:13px 15px;border-width:3px;font-size:.76rem}.kv2-help{padding:0 12px;font-size:.72rem}.kv2-dialog-card,.kv2-avatar-picker>div{padding:20px 15px;border-radius:21px}.kv2-npc{grid-template-columns:1fr}.kv2-npc>span{font-size:52px}.kv2-shop-grid article{grid-template-columns:auto 1fr}.kv2-shop-grid article button,.kv2-shop-grid article em{grid-column:2}.kv2-avatar-grid{grid-template-columns:repeat(2,1fr)}}
.k3d-shell{width:min(1500px,calc(100vw - 24px));margin:-10px auto 28px;color:#123b67}.k3d-top{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:linear-gradient(110deg,#123b67,#267be3 55%,#8d58df);color:#fff;border-radius:24px 24px 0 0}.k3d-top small{font-weight:900;letter-spacing:.12em;color:#ffd34e}.k3d-top h1{font-size:clamp(21px,3vw,38px);margin:2px 0}.k3d-top h1 span{background:#ffd13b;color:#173f70;border-radius:10px;padding:2px 9px}.k3d-top>a{color:#173f70;background:#fff;text-decoration:none;font-weight:900;padding:10px 15px;border-radius:999px}.k3d-hud{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#102d50;color:#fff;position:relative;z-index:4}.k3d-hud span,.k3d-hud button{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:12px;padding:8px 12px;font-weight:900}.k3d-hud button{cursor:pointer}.k3d-game-frame{height:min(76vh,780px);min-height:560px;position:relative;overflow:hidden;background:#8bd56f;border:4px solid #102d50;border-top:0;box-shadow:0 24px 60px rgba(16,45,80,.28);touch-action:none}.k3d-game-frame canvas{display:block;width:100%;height:100%;outline:0}.k3d-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px rgba(5,24,47,.3);z-index:1}.k3d-scene-label{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:2;color:#fff;background:rgba(12,43,75,.82);backdrop-filter:blur(9px);font-weight:900;font-size:clamp(14px,2vw,20px);padding:8px 17px;border:1px solid rgba(255,255,255,.35);border-radius:999px;white-space:nowrap}.k3d-objective{position:absolute;top:16px;left:16px;z-index:2;background:linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,245,190,.94));padding:10px 14px;border-radius:14px;box-shadow:0 8px 25px rgba(21,55,89,.22);max-width:260px}.k3d-objective small{display:block;color:#ef7627;font-weight:900;letter-spacing:.1em}.k3d-objective b{display:block;margin-top:2px}.k3d-interact{z-index:3;bottom:24px;right:24px;background:linear-gradient(135deg,#ff8121,#ffc33e)!important;border:3px solid #fff!important;box-shadow:0 8px 0 #bd5108,0 15px 30px rgba(0,0,0,.28)!important;color:#fff!important;min-width:220px}.k3d-interact:disabled{filter:grayscale(.8);opacity:.55;box-shadow:none!important}.k3d-joystick{z-index:3;bottom:24px;left:24px;background:rgba(255,255,255,.5);border:3px solid rgba(255,255,255,.85)}.k3d-help{text-align:center;font-weight:700;background:#fff;padding:10px;border-radius:0 0 18px 18px;margin:0}.k3d-loading{position:absolute;inset:0;display:grid;place-content:center;gap:12px;text-align:center;background:linear-gradient(#85d6ff,#7bd168);color:#173f70;z-index:8}.k3d-loading div{width:52px;height:52px;border:7px solid rgba(255,255,255,.7);border-top-color:#1768db;border-radius:50%;animation:k3dSpin .8s linear infinite;margin:auto}@keyframes k3dSpin{to{transform:rotate(360deg)}}.rpg-home-card-3d{background:linear-gradient(120deg,#5638cf,#187deb 48%,#1dc995)!important}.rpg-home-card-3d>span{background:rgba(255,255,255,.2)!important}
@media(max-width:700px){.k3d-shell{width:calc(100vw + 0px);margin:-24px -16px 18px}.k3d-top{border-radius:0;padding:10px 12px}.k3d-top small{font-size:9px}.k3d-top h1{font-size:19px}.k3d-top>a{padding:8px 10px;font-size:12px}.k3d-hud{gap:5px;overflow-x:auto;padding:7px}.k3d-hud span,.k3d-hud button{padding:7px 9px;font-size:13px;white-space:nowrap}.k3d-game-frame{height:calc(100svh - 210px);min-height:520px;border-left:0;border-right:0}.k3d-objective{top:58px;right:9px;left:auto;padding:7px 10px;max-width:195px;font-size:12px}.k3d-objective small{font-size:9px}.k3d-scene-label{top:10px}.k3d-interact{bottom:22px;right:12px;min-width:160px;max-width:53%;font-size:12px;padding:12px 8px}.k3d-joystick{left:12px;bottom:18px}.k3d-help{font-size:12px}.k3d-vignette{box-shadow:inset 0 0 45px rgba(5,24,47,.23)}}
.k3d-guide{position:absolute;z-index:4;left:50%;bottom:96px;transform:translateX(-50%);display:flex;gap:8px;width:min(620px,calc(100% - 28px));justify-content:center;pointer-events:auto}.k3d-guide button{min-width:92px;border:2px solid rgba(255,255,255,.95);border-radius:16px;padding:8px 11px;background:linear-gradient(145deg,#176fdb,#5b58e7);color:#fff;box-shadow:0 6px 16px rgba(10,38,78,.28);font:inherit;cursor:pointer}.k3d-guide button:nth-child(2){background:linear-gradient(145deg,#17a66a,#44c99a)}.k3d-guide button:nth-child(3){background:linear-gradient(145deg,#f27a25,#ffb52d)}.k3d-guide button.free{background:rgba(17,45,78,.9)}.k3d-guide button span,.k3d-guide button b{display:block}.k3d-guide button span{font-size:21px}.k3d-guide button b{font-size:12px;margin-top:2px}.k3d-joystick{display:none}.k3d-free-walk .k3d-joystick{display:block}.k3d-free-walk .k3d-guide{bottom:105px}
@media(max-width:700px){.k3d-guide{bottom:82px;gap:5px;width:calc(100% - 14px)}.k3d-guide button{flex:1;min-width:0;padding:7px 3px;border-radius:13px}.k3d-guide button span{font-size:18px}.k3d-guide button b{font-size:10px}.k3d-free-walk .k3d-guide{bottom:112px;left:auto;right:9px;transform:none;width:104px}.k3d-free-walk .k3d-guide button:not(.free){display:none}}
.race-friend-chip{display:inline-flex;align-items:center;gap:8px;margin:5px;padding:8px 10px;border-radius:999px;background:#dff8ed;color:#12674d;font-weight:850}.race-friend-chip button{width:25px;height:25px;border:0;border-radius:50%;background:#12674d;color:#fff;font-weight:900}.form-error{display:block;padding:10px;color:#a12b22;font-weight:850}

/* Generator Intermediate 2: aligned dollar questions and touch-friendly money entry. */
.money-row{display:grid;grid-template-columns:1.2em 6ch;justify-content:end;align-items:baseline;min-width:230px}.money-symbol{text-align:left}.money-amount{text-align:right;white-space:pre;font-variant-numeric:tabular-nums}.money-answer{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.money-answer>span{font-size:34px;font-weight:950;color:var(--navy)}.money-answer .big-answer{text-align:left}.money-help{display:block;margin-top:6px;color:var(--muted);text-align:center}
@media(max-width:650px){.money-row{min-width:180px}.money-answer>span{font-size:28px}.money-help{font-size:11px}}

/* Generator lanjutan: akar penuh dan jawaban desimal presisi tetap. */
.radical-expression{display:flex!important;align-items:flex-start;justify-content:center;gap:0}.radical-symbol{font-family:Georgia,"Times New Roman",serif;font-size:1.18em;line-height:1.02;transform:translateY(.08em)}.radicand{display:inline-block;min-width:2ch;padding:.08em .1em 0;border-top:.09em solid currentColor;line-height:1}.decimal-exercise .big-answer{font-variant-numeric:tabular-nums}.decimal-exercise .equation-card{font-variant-numeric:tabular-nums}
@media(max-width:650px){.radical-expression{font-size:clamp(34px,12vw,58px)!important}.radicand{max-width:82vw;overflow-wrap:anywhere}}
.generator-simple{display:grid;gap:18px}.generator-simple .flow-step{margin:4px 0 0}.generator-simple .student-picker{max-height:340px;overflow:auto;margin:0}.generator-simple select[multiple]{min-height:150px}.generator-simple .btn.large{justify-self:start;min-width:220px}
@media(max-width:650px){.generator-simple{padding:14px}.generator-simple .form-grid{grid-template-columns:1fr}.generator-simple .student-picker{max-height:280px}.generator-simple .student-check-grid{grid-template-columns:1fr}.generator-simple .btn.large{width:100%}}

/* Teaching selector: generated questions by level and one or more active grids. */
.classroom-generator-picker{display:grid;gap:18px}.classroom-level-field{max-width:520px}.classroom-grid-fieldset,.classroom-count-mode{min-width:0;margin:0;padding:17px;border:1px solid var(--line);border-radius:18px;background:#f8fbff}.classroom-grid-fieldset:disabled{opacity:.65}.classroom-grid-fieldset legend,.classroom-count-mode legend{padding:0 8px;color:var(--navy);font-weight:950}.classroom-grid-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.classroom-grid-option{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:72px;padding:12px 14px;border:2px solid #dce7f4;border-radius:15px;background:#fff;cursor:pointer}.classroom-grid-option:hover,.classroom-grid-option.selected{border-color:var(--blue);background:#edf6ff}.classroom-grid-option>input{width:21px;height:21px;margin:0;accent-color:var(--blue)}.classroom-grid-option strong,.classroom-grid-option small{display:block}.classroom-grid-option small{margin-top:3px;color:var(--muted)}.classroom-rule-count{display:grid;grid-template-columns:auto 68px;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:900}.classroom-rule-count input{min-width:0;padding:9px}.classroom-count-mode{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.classroom-count-mode>label:not(.classroom-global-count){display:flex;align-items:center;gap:7px;font-weight:850}.classroom-count-mode input[type="radio"]{width:19px;height:19px;accent-color:var(--blue)}.classroom-global-count{display:flex;align-items:center;gap:9px;margin-left:auto}.classroom-global-count input{width:90px}.classroom-count-mode .random-note{width:100%;max-width:none;margin:0}
.classroom-math-operation{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:10px;min-width:0;margin:0;padding:17px;border:1px solid var(--line);border-radius:18px;background:#f8fbff}.classroom-math-operation:disabled{opacity:.65}.classroom-math-operation legend{padding:0 8px;color:var(--navy);font-weight:950}.classroom-math-operation label{position:relative;margin:0;cursor:pointer}.classroom-math-operation input{position:absolute;opacity:0;pointer-events:none}.classroom-math-operation label span{display:flex;align-items:center;gap:10px;padding:12px 15px;border:2px solid #dce7f4;border-radius:14px;background:#fff}.classroom-math-operation label b{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#edf6ff;color:var(--blue);font-size:21px}.classroom-math-operation input:checked+span{border-color:var(--blue);background:#edf6ff;box-shadow:0 0 0 3px rgba(23,104,219,.1)}.classroom-math-operation p{grid-column:1/-1;margin:2px 0 0;color:var(--muted);font-size:13px}
@media(max-width:700px){.classroom-grid-list{grid-template-columns:1fr}.classroom-grid-option{grid-template-columns:auto minmax(0,1fr)}.classroom-rule-count{grid-column:1/-1;justify-content:end}.classroom-count-mode{align-items:flex-start;flex-direction:column;gap:12px}.classroom-global-count{margin-left:0}.classroom-global-count input{width:110px}.classroom-math-operation{grid-template-columns:repeat(2,minmax(0,1fr));padding:13px}.classroom-math-operation label span{padding:10px}.classroom-math-operation label b{width:27px;height:27px;font-size:18px}}
.classroom-grid-option[hidden]{display:none!important}
.classroom-source-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:760px;margin:0 0 20px;padding:0;border:0}.classroom-source-choice legend{grid-column:1/-1;margin-bottom:4px;color:var(--navy);font-weight:950}.classroom-source-choice label{position:relative;margin:0;cursor:pointer}.classroom-source-choice input{position:absolute;opacity:0;pointer-events:none}.classroom-source-choice label>span{display:flex;min-height:88px;flex-direction:column;justify-content:center;padding:15px 17px;border:2px solid var(--line);border-radius:17px;background:#fff}.classroom-source-choice strong,.classroom-source-choice small{display:block}.classroom-source-choice small{margin-top:4px;color:var(--muted)}.classroom-source-choice input:checked+span{border-color:var(--blue);background:linear-gradient(145deg,#edf6ff,#fff);box-shadow:0 0 0 4px rgba(23,104,219,.1)}.classroom-custom-panel{margin:0;padding:19px;border:2px solid #b9d8f7;border-radius:18px;background:linear-gradient(145deg,#f2f8ff,#fff)}.classroom-custom-panel legend{padding:0 8px;color:var(--navy);font-weight:950}.classroom-custom-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.classroom-custom-panel[hidden]{display:none!important}
@media(max-width:700px){.classroom-source-choice,.classroom-custom-panel .form-grid{grid-template-columns:1fr}.classroom-source-choice label>span{min-height:76px}}
.level-aware-students.autocomplete-picker .student-check-grid{display:grid}.level-aware-students [data-student-option][hidden]{display:none!important}
.bead-level-lock{display:flex;align-items:center;gap:14px;max-width:420px;padding:17px 20px;border:2px solid #f0ba2e;border-radius:18px;background:linear-gradient(135deg,#fff9d9,#fff)}.bead-level-lock strong{font-size:22px;color:var(--navy)}.bead-settings{margin:12px 0 18px}.bead-options{display:flex;flex-wrap:wrap;gap:13px 24px;margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:18px;background:#f8fbff}.bead-options legend{padding:0 8px;font-weight:950;color:var(--navy)}.bead-options .check{min-width:260px}.bead-abacus{display:block;width:min(100%,620px);height:auto;margin:auto;overflow:visible}.abacus-frame,.abacus-rod{fill:none;stroke:#101820;stroke-width:6;stroke-linecap:round}.abacus-frame{stroke-width:8}.abacus-unit-dot{fill:#101820}.abacus-bead{fill:url(#beadGold);stroke:#8a541d;stroke-width:2.5;filter:url(#beadShadow)}.bead-student-stage{display:grid;place-items:center;min-height:min(58vh,560px);padding:16px;border-radius:24px;background:radial-gradient(circle at center,#fff 0,#fffaf0 72%,#fff2ca 100%)}.bead-student-stage .bead-visual{width:min(92vw,600px)}.bead-message{text-align:center;font-size:clamp(26px,5vw,58px);font-weight:950;color:#17355d}.bead-exercise .answer-card[hidden],.bead-visual[hidden]{display:none!important}.bead-exercise .answer-card{max-width:520px;margin:16px auto}.bead-wait{display:grid;place-items:center;gap:18px;min-height:70vh;text-align:center}.bead-wait h1{font-size:clamp(34px,7vw,68px)}.bead-presenter-page{margin:0;background:#eef5ff}.bead-presenter{display:grid;grid-template-rows:auto 1fr auto;min-height:100vh}.bead-presenter>header,.bead-presenter>footer{display:flex;align-items:center;gap:10px;padding:12px 18px;background:#102f58;color:#fff}.bead-presenter>header span{margin-left:auto}.bead-presenter button{padding:11px 15px;border:0;border-radius:12px;font-weight:850;cursor:pointer}.bead-presenter button.primary{background:#ffbf25;color:#482d00}.bead-presenter>section{display:grid;place-items:center;align-content:center;gap:10px;min-height:0;padding:15px}.bead-presenter .bead-visual{width:min(80vw,760px);max-height:68vh}.bead-presenter .bead-abacus{max-height:68vh}.bead-class-answer{font-size:clamp(80px,17vw,220px);font-weight:950;color:#1768db}.bead-timer{min-height:34px;font-size:25px;font-weight:900;color:#e05d21}.bead-presenter>footer{justify-content:center;flex-wrap:wrap}
@media(max-width:620px){.bead-options{display:grid}.bead-options .check{min-width:0}.bead-student-stage{min-height:46vh}.bead-presenter>header,.bead-presenter>footer{padding:8px}.bead-presenter button{padding:9px;font-size:12px}}
.bead-qa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.bead-qa-card h2{margin:0 0 10px}.bead-qa-card h2 small{font-size:.55em;color:var(--muted)}.bead-qa-card .bead-visual{min-height:310px}
.bead-integrated-entry{align-items:center;justify-content:space-between;width:100%;color:var(--navy);text-align:left;text-decoration:none;font:inherit;cursor:pointer;border-color:#f0b62d!important;background:linear-gradient(135deg,#fff8d0,#fff)!important}.bead-integrated-entry>b{color:var(--blue);white-space:nowrap}.bead-inline-panel{margin-top:20px}.bead-inline-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.bead-inline-head h2{margin:.15em 0}.bead-inline-head p{margin-bottom:0}@media(max-width:700px){.bead-inline-head{display:grid}.bead-inline-head .btn{width:100%}}.classroom-presenter .bead-presenter .presenter-stage{position:relative;padding:58px clamp(14px,5vw,70px) 24px}.classroom-presenter .bead-presenter .bead-message{top:16px;font-size:13px;color:#c9d9ea}.classroom-presenter .bead-presenter .bead-visual{width:min(72vw,720px);padding:18px;border-radius:28px;background:#fff;box-shadow:0 18px 55px #0005}.classroom-presenter .bead-presenter .bead-class-answer{right:24px;bottom:20px;font-size:clamp(22px,3vw,36px);color:#172a43}.classroom-presenter .bead-presenter .bead-timer{color:#ffbd4b}
.classroom-source-choice label.disabled{opacity:.48;cursor:not-allowed}.junior2-rule-card{display:grid;align-self:start;gap:10px;padding:14px 16px;border:2px solid #dbe7f0;border-radius:18px;background:#fff}.junior2-rule-card[hidden]{display:none!important}.junior2-rule-card>div:first-child{display:grid;gap:2px}.junior2-rule-card>div:first-child strong{color:var(--navy);font-size:17px;white-space:nowrap}.junior2-rule-card>div:first-child small{color:var(--muted);font-weight:750;white-space:nowrap}.junior2-row-choices{display:flex;flex-wrap:wrap;gap:7px}.junior2-row-choices label{display:grid;gap:8px;min-width:104px;min-height:0;padding:8px 10px;border:1px solid #cbd9e6;border-radius:12px;cursor:pointer;background:#f8fbff}.junior2-choice-line{display:flex;align-items:center;gap:7px}.junior2-row-choices input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--blue)}.junior2-row-choices b,.junior2-row-choices span{font-weight:850;color:var(--navy)}.junior2-rule-count{display:grid;gap:4px;font-size:12px}.junior2-rule-count[hidden]{display:none!important}.junior2-rule-count input[type="number"]{width:100%;min-width:0;padding:7px 8px}.junior2-rule-card.selected{border-color:#2f7de1;background:#f4f9ff;box-shadow:0 7px 20px #216ec21a}@media(max-width:520px){.junior2-rule-card{padding:13px}.junior2-row-choices{display:grid;grid-template-columns:repeat(3,1fr)}.junior2-row-choices label{min-width:0;padding:8px 5px}.junior2-choice-line{justify-content:center}.junior2-row-choices b,.junior2-row-choices span{font-size:13px}}
.bead-rule-card>label{display:flex;align-items:center;gap:11px;cursor:pointer}.bead-rule-card>label>input{width:20px;height:20px;margin:0;accent-color:var(--blue)}.bead-rule-card>label>span{display:grid;gap:3px}.bead-rule-card>label strong{color:var(--navy);font-size:17px}.bead-rule-card>label small{color:var(--muted);font-weight:750}.bead-card-settings{padding-top:11px;border-top:1px solid #dbe7f0}.bead-card-settings[hidden],.bead-shared-time[hidden],.bead-card-settings [hidden]{display:none!important}.bead-card-settings>label{display:grid;gap:6px;font-weight:850}.bead-card-settings select{min-height:42px}.bead-shared-time{margin:10px 0 18px}
.junior2-row-choices .junior2-choice-line{display:grid;grid-template-rows:auto auto;justify-items:center;align-content:center;gap:5px;min-height:51px;text-align:center}.junior2-row-choices .junior2-choice-line input[type="checkbox"]{grid-row:1}.junior2-row-choices .junior2-choice-line b{grid-row:2;line-height:1.1}.junior2-row-choices .junior2-rule-count{padding-top:8px;border-top:1px solid #dbe7f0;text-align:left}.junior2-row-choices .junior2-rule-count input{margin-top:2px;background:#fff}
.classroom-global-count[hidden]{display:none!important}
.classroom-generator-picker[hidden]{display:none!important}
.assignment-shared-level{display:block;max-width:520px;margin:4px 0 18px}.assignment-shared-level select{margin-top:7px;border-width:2px}
.classroom-material-choice{margin:0;padding:17px;border:1px solid var(--line);border-radius:18px;background:#fff8e8}.classroom-material-choice[hidden]{display:none!important}.classroom-material-choice legend{padding:0 8px;color:var(--navy);font-weight:950}.classroom-material-choice label{max-width:520px;margin:0}.classroom-material-choice select{min-height:48px;border-width:2px}
.classroom-material-choice{max-width:520px;margin:0;padding:17px;border:1px solid var(--line);border-radius:18px;background:#f8fbff}.classroom-material-choice[hidden]{display:none!important}.classroom-material-choice legend{padding:0 8px;color:var(--navy);font-weight:950}.classroom-material-choice label{margin:0}.classroom-material-choice select{min-height:48px;border-width:2px}
.assignment-step-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0 6px;padding:16px 18px;border:1px solid #cfe0f5;border-radius:18px;background:linear-gradient(135deg,#f3f8ff,#eefcf8);box-shadow:0 8px 22px rgba(21,63,107,.07)}.assignment-step-actions p{margin:0}.assignment-step-actions strong,.assignment-step-actions small{display:block}.assignment-step-actions small{margin-top:3px;color:var(--muted)}.assignment-step-actions .btn{flex:0 0 auto}.assignment-step-actions .btn:disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.5}.assignment-step-actions-split{background:#fff}.assignment-step-actions-split .btn:last-child{margin-left:auto}#assignment-step-questions,#assignment-step-students,#assignment-step-availability,[data-classroom-counts],[data-foundation-material],[data-foundation-submaterial],[data-classroom-grids],[data-classroom-custom-panel]{scroll-margin-top:100px}.assignment-step-focus{animation:assignment-step-pulse .7s ease}@keyframes assignment-step-pulse{0%{box-shadow:0 0 0 0 rgba(23,104,219,.28)}100%{box-shadow:0 0 0 12px rgba(23,104,219,0)}}
@media(max-width:620px){.assignment-step-actions{align-items:stretch;flex-direction:column}.assignment-step-actions .btn{width:100%;white-space:normal}.assignment-step-actions-split .btn:last-child{margin-left:0}}
.quick-wizard{box-sizing:border-box;width:100%;max-width:100%;overflow:hidden;padding-bottom:20px}.quick-wizard-progress{display:flex;gap:8px;margin:0 0 16px}.quick-wizard-progress-item{display:flex;min-width:0;flex:1;align-items:center;gap:8px;padding:9px 10px;border:1px solid #dce7f4;border-radius:14px;background:#f4f7fb;color:#6b7d90}.quick-wizard-progress-item b{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:10px;background:#dfe8f3;color:var(--navy)}.quick-wizard-progress-item small{overflow:hidden;font-size:11px;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.quick-wizard-progress-item.active{border-color:#2481df;background:#eaf5ff;color:var(--navy);box-shadow:0 0 0 3px rgba(36,129,223,.1)}.quick-wizard-progress-item.active b{background:var(--blue);color:#fff}.quick-wizard-progress-item.done{border-color:#a9dec9;background:#edfff7;color:#147556}.quick-wizard-progress-item.done b{background:#22a976;color:#fff}.quick-wizard-viewport{height:clamp(520px,68dvh,720px);overflow:hidden;border:1px solid #dce7f4;border-radius:20px;background:#fff}.quick-wizard-track{display:flex;width:100%;height:100%;transition:transform .38s cubic-bezier(.22,.75,.25,1);will-change:transform}.quick-wizard-slide{display:flex;min-width:100%;height:100%;box-sizing:border-box;flex:0 0 100%;flex-direction:column;padding:18px;background:linear-gradient(180deg,#fff,#fbfdff)}.quick-wizard-slide-content{min-height:0;flex:1;overflow-x:hidden;overflow-y:auto;padding:2px 4px 18px;overscroll-behavior:contain;scrollbar-gutter:stable}.quick-wizard-slide .flow-step{margin-top:0}.quick-wizard-actions{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;flex:0 0 auto;padding:14px 2px 0;border-top:1px solid var(--line);background:#fff}.quick-wizard-actions [data-wizard-error]{margin:0;color:#c83d3d;font-size:12px;font-weight:800;text-align:center}.quick-wizard-slide>.form-submit-bar{flex:0 0 auto;margin:10px 0 0;padding:14px 16px;border-radius:16px}.quick-wizard-slide>.form-submit-bar .btn{flex:0 0 auto}.quick-wizard [data-assignment-question-actions],.quick-wizard .assignment-step-actions{display:none!important}
@media(max-width:620px){.quick-wizard{margin-left:0;margin-right:0;padding:14px 10px}.quick-wizard-progress-item{justify-content:center;padding:7px}.quick-wizard-progress-item small{display:none}.quick-wizard-progress-item.active{flex:1.55}.quick-wizard-progress-item.active small{display:block}.quick-wizard-viewport{height:calc(100dvh - 210px);min-height:510px;max-height:680px}.quick-wizard-slide{padding:13px}.quick-wizard-actions{grid-template-columns:1fr 1fr}.quick-wizard-actions [data-wizard-error]{grid-column:1/-1;grid-row:1}.quick-wizard-actions .btn{grid-row:2;width:100%;padding-left:10px;padding-right:10px;white-space:normal}.quick-wizard-slide>.form-submit-bar{align-items:stretch;flex-direction:column}.quick-wizard-slide>.form-submit-bar .btn{width:100%}}
.soft-steps-form{box-sizing:border-box;overflow:visible}
.soft-form-step{box-sizing:border-box;margin:0 0 22px;padding:clamp(16px,3vw,26px);border:1px solid rgba(68,101,137,.16);border-radius:22px;box-shadow:0 12px 30px rgba(23,58,91,.07)}
.soft-form-step-1{background:linear-gradient(145deg,#eaf5ff,#f8fbff)}
.soft-form-step-2{background:linear-gradient(145deg,#f2edff,#fbf8ff)}
.soft-form-step-3{background:linear-gradient(145deg,#e9f9f2,#f8fffb)}
.soft-form-step-4{background:linear-gradient(145deg,#fff1e3,#fffaf3)}
.soft-form-step .flow-step{margin-top:0}
.soft-form-step-1 .flow-step>span{background:#438ad8}
.soft-form-step-2 .flow-step>span{background:#8268c8}
.soft-form-step-3 .flow-step>span{background:#3d9a77}
.soft-form-step-4 .flow-step>span{background:#df873e}
.soft-form-step .form-submit-bar{box-sizing:border-box;margin:24px 0 0;padding:18px;border-radius:17px}
@media(max-width:620px){.soft-form-step{margin-bottom:16px;padding:15px;border-radius:18px}.soft-form-step .form-submit-bar{margin-top:18px;padding:14px}}

/* Panel Cepat: semua pengaturan utama tetap terbuka dalam susunan yang ringkas. */
.quick-operation-form{max-width:1120px}.quick-operation-form .soft-form-step{padding:18px 20px}.quick-operation-form .flow-step{margin:0 0 12px;padding-bottom:9px}.quick-operation-form .flow-step>span{width:34px;height:34px;flex-basis:34px;border-radius:11px;font-size:16px}.quick-operation-form .flow-step h2{font-size:19px}.quick-operation-form .flow-step p{font-size:12px}.quick-operation-form .classroom-source-choice{max-width:none;margin-bottom:12px;gap:9px}.quick-operation-form .classroom-source-choice label>span{min-height:62px;padding:10px 13px;border-radius:14px}.quick-operation-form .classroom-source-choice small{font-size:11px}.quick-operation-form .classroom-generator-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.quick-operation-form .classroom-generator-picker>.classroom-grid-fieldset,.quick-operation-form .classroom-math-operation{grid-column:1/-1}.quick-operation-form .classroom-level-field,.quick-operation-form .classroom-material-choice{width:auto;max-width:none;margin:0}.quick-operation-form .classroom-level-field select,.quick-operation-form .classroom-material-choice select{min-height:42px;padding:9px 11px}.quick-operation-form .classroom-material-choice,.quick-operation-form .classroom-count-mode,.quick-operation-form .classroom-grid-fieldset{padding:11px 13px;border-radius:15px}.quick-operation-form .classroom-count-mode{align-content:center;gap:8px 14px}.quick-operation-form .classroom-count-mode legend,.quick-operation-form .classroom-grid-fieldset legend,.quick-operation-form .classroom-material-choice legend{font-size:13px}.quick-operation-form .classroom-count-mode>label:not(.classroom-global-count){font-size:13px}.quick-operation-form .classroom-global-count{gap:6px;font-size:13px}.quick-operation-form .classroom-global-count input{width:58px}.quick-operation-form .classroom-count-mode .random-note{padding:7px 10px;font-size:11px}.quick-operation-form .classroom-grid-list{gap:7px;margin-top:8px}.quick-operation-form .classroom-grid-option{min-height:54px;padding:8px 10px;border-radius:12px}.quick-operation-form .classroom-grid-option small{font-size:11px}.quick-operation-form .junior2-rule-card{grid-template-columns:minmax(120px,.8fr) minmax(0,1.4fr);align-items:center;gap:8px;padding:9px 11px;border-radius:14px}.quick-operation-form .junior2-rule-card>div:first-child strong{font-size:14px}.quick-operation-form .junior2-rule-card>div:first-child small{font-size:10px}.quick-operation-form .junior2-row-choices{justify-content:flex-end;gap:5px}.quick-operation-form .junior2-row-choices label{min-width:76px;padding:6px;border-radius:10px}.quick-operation-form .junior2-row-choices label:has(.junior2-rule-count:not([hidden])){min-width:190px}.quick-operation-form .junior2-row-choices .junior2-choice-line{min-height:42px}.quick-operation-form .junior2-row-choices b,.quick-operation-form .junior2-row-choices span{font-size:12px}.quick-operation-form .form-grid{gap:10px}.quick-operation-form .form-grid label{font-size:13px}.quick-operation-form .form-grid input,.quick-operation-form .form-grid select{min-height:42px;padding:9px 11px}.quick-operation-form .completion-choice{gap:8px}.quick-operation-form .completion-choice label>span{min-height:82px;padding:10px}.quick-operation-form .completion-choice small{font-size:11px}.quick-operation-form .assignment-shared-level{max-width:none;margin:0 0 10px}.quick-operation-form .soft-form-step .form-submit-bar{margin-top:15px}.quick-operation-page .classroom-page-head{margin-bottom:12px}.quick-operation-page .classroom-page-head h1{font-size:clamp(27px,4vw,42px)}.quick-operation-page .classroom-workflow-tabs,.quick-operation-page .pr-workflow-tabs{margin-bottom:12px}.quick-operation-page .workflow-tabs a{min-height:58px;padding:8px 10px}.quick-count-presets{display:flex;align-items:center;gap:6px;margin-left:auto}.quick-count-presets strong{margin-right:2px;color:var(--muted);font-size:11px}.quick-count-preset,.quick-stepper-button{display:grid;place-items:center;min-width:34px;height:34px;padding:0 8px;border:1px solid #b8cce1;border-radius:10px;background:#fff;color:var(--blue);font:900 13px/1 inherit;cursor:pointer}.quick-count-preset:hover,.quick-stepper-button:hover{border-color:var(--blue);background:#eaf5ff}.quick-stepper{display:inline-grid;grid-template-columns:30px 54px 30px;align-items:center;gap:4px}.quick-stepper-button{display:inline-grid;min-width:30px;height:30px;padding:0;font-size:18px}.quick-stepper-input{display:inline-block!important;width:54px!important;min-height:30px!important;padding:5px!important;text-align:center}.quick-operation-form .classroom-rule-count,.quick-operation-form .junior2-rule-count{display:flex;align-items:center;justify-content:space-between;gap:6px}.quick-operation-form .junior2-rule-count .quick-stepper-input,.quick-operation-form .junior2-rule-count .quick-stepper-button{margin:0}
@media(max-width:700px){.quick-operation-form.legacy-flow-form{padding:10px}.quick-operation-form .soft-form-step{margin-bottom:12px;padding:12px;border-radius:17px}.quick-operation-form .flow-step{gap:9px;margin-bottom:9px}.quick-operation-form .flow-step p{margin-top:1px;line-height:1.25}.quick-operation-form .classroom-source-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.quick-operation-form .classroom-source-choice label>span{min-height:58px;padding:8px 9px}.quick-operation-form .classroom-source-choice strong{font-size:12px}.quick-operation-form .classroom-source-choice small{font-size:9px;line-height:1.2}.quick-operation-form .classroom-generator-picker{grid-template-columns:1fr;gap:8px}.quick-operation-form .classroom-generator-picker>*{grid-column:1}.quick-operation-form .classroom-count-mode{align-items:center;flex-direction:row;gap:8px 10px}.quick-operation-form .classroom-count-mode>label:not(.classroom-global-count){font-size:12px}.quick-operation-form .classroom-global-count{margin-left:0}.quick-operation-form .quick-count-presets{width:100%;margin:0}.quick-operation-form .quick-count-presets strong{margin-right:auto}.quick-operation-form .classroom-grid-list{grid-template-columns:1fr}.quick-operation-form .junior2-rule-card{grid-template-columns:minmax(92px,.7fr) minmax(0,1.3fr);padding:8px}.quick-operation-form .junior2-row-choices{display:flex;justify-content:flex-end}.quick-operation-form .junior2-row-choices label{min-width:66px;padding:5px 3px}.quick-operation-form .junior2-row-choices label:has(.junior2-rule-count:not([hidden])){min-width:178px}.quick-operation-form .junior2-row-choices .junior2-rule-count{align-items:center;font-size:10px}.quick-operation-form .quick-stepper{grid-template-columns:30px 48px 30px}.quick-operation-form .completion-choice{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:9px}.quick-operation-form .completion-choice label{min-width:0}.quick-operation-form .completion-choice label>span{box-sizing:border-box;width:100%;min-width:0;min-height:140px;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;align-content:start;justify-items:center;gap:7px;padding:12px 8px;overflow:hidden;text-align:center}.quick-operation-form .completion-choice b{grid-row:auto;width:46px;height:46px;border-radius:14px;font-size:22px}.quick-operation-form .completion-choice strong,.quick-operation-form .completion-choice small{box-sizing:border-box;width:100%;min-width:0;overflow-wrap:anywhere}.quick-operation-form .completion-choice strong{font-size:14px;line-height:1.18}.quick-operation-form .completion-choice small{font-size:10px;line-height:1.35}.quick-operation-page .page-head.classroom-page-head>div:first-child>p.muted{display:none}.quick-operation-page .workflow-tabs a{min-height:50px}.quick-operation-page .workflow-tabs span{font-size:10px}}
@media(max-width:700px){.quick-operation-form .classroom-count-mode>label:not(.classroom-global-count){white-space:nowrap}.quick-operation-form .junior2-rule-card{grid-template-columns:1fr;align-items:stretch}.quick-operation-form .junior2-rule-card>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.quick-operation-form .foundation1-rule-card>div:first-child{display:grid;justify-content:stretch;gap:2px}.quick-operation-form .foundation1-rule-card>div:first-child strong{white-space:nowrap}.quick-operation-form .foundation1-rule-card>div:first-child small{display:block;white-space:normal;line-height:1.25;overflow-wrap:anywhere}.quick-operation-form .junior2-rule-card>div:first-child strong,.quick-operation-form .junior2-rule-card>div:first-child small{white-space:normal}.quick-operation-form .foundation1-rule-card>div:first-child strong{white-space:nowrap}.quick-operation-form .junior2-row-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;width:100%}.quick-operation-form .junior2-row-choices label{box-sizing:border-box;width:auto;min-width:0;padding:6px}.quick-operation-form .junior2-row-choices label:has(.junior2-rule-count:not([hidden])){grid-column:1/-1;grid-template-columns:72px minmax(0,1fr);align-items:center;width:100%;min-width:0;padding:7px 8px}.quick-operation-form .junior2-row-choices label:has(.junior2-rule-count:not([hidden])) .junior2-choice-line{min-height:40px}.quick-operation-form .junior2-row-choices .junior2-rule-count{min-width:0;padding:0 0 0 8px;border-top:0;border-left:1px solid #dbe7f0;white-space:nowrap}.quick-operation-form .quick-stepper{flex:0 0 auto;grid-template-columns:30px 46px 30px}.quick-operation-form .quick-stepper-input{width:46px!important}}

/* Presenter desktop: maximize the teaching canvas while preserving tablet/mobile layout. */
@media(min-width:1100px){.presenter-shell{grid-template-rows:42px minmax(0,1fr) 44px}.presenter-top{gap:12px;padding:5px 14px}.presenter-top>div{gap:9px}.presenter-top button{padding:5px 9px;border-radius:9px;font-size:12px}.presenter-stage{padding:34px 12px 8px}.presenter-status{top:6px;padding:4px 10px;font-size:10px}.presenter-question-no{margin:0 0 2px;font-size:18px}.presenter-rows,.presenter-rows.presenter-equation{max-width:min(1400px,96vw)}.presenter-row{width:min(var(--number-width,5ch),94vw)}.presenter-answer{right:14px;bottom:10px;padding:9px 14px;font-size:clamp(24px,2.2vw,34px)}.presenter-controls{gap:7px;padding:4px 12px}.presenter-controls button{min-height:34px;padding:5px 13px;border-radius:9px;font-size:12px}.presenter-controls button.primary{min-width:112px}.presenter-shortcuts{display:none}.presenter-live-speed{grid-template-columns:auto minmax(160px,300px) 52px;width:auto;padding:0;font-size:11px}}
/* Semua varian jumlah baris tetap satu deret agar kartu jenis soal ringkas. */
.row-count-card>div:first-child{justify-items:center;text-align:center}.row-count-choices{display:grid!important;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);grid-template-columns:none!important;width:100%;gap:6px}.row-count-choices label{box-sizing:border-box;width:auto;min-width:0!important;padding:7px 5px}.row-count-choices .junior2-choice-line{min-height:42px}.row-count-choices .junior2-choice-line b{white-space:nowrap}
.row-count-choices.row-choice-wrap{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(5,minmax(0,1fr))!important}.digit-row-rule-card>div:first-child strong{font-size:16px;letter-spacing:.01em}
/* Mode per jenis: jumlah tetap berada di bawah kode B tanpa melebarkan atau memindahkan kartu. */
.quick-operation-form .row-count-choices label:has(.junior2-rule-count:not([hidden])){grid-column:auto!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:start!important;width:auto!important;min-width:0!important;padding:6px 4px!important}.quick-operation-form .row-count-choices label:has(.junior2-rule-count:not([hidden])) .junior2-choice-line{min-height:38px}.quick-operation-form .row-count-choices .junior2-rule-count{display:grid!important;justify-items:center;gap:3px;min-width:0;padding:6px 0 0!important;border-top:1px solid #dbe7f0!important;border-left:0!important;white-space:normal!important;font-size:0!important}.quick-operation-form .row-count-choices .quick-stepper{display:block;width:100%}.quick-operation-form .row-count-choices .quick-stepper-button{display:none!important}.quick-operation-form .row-count-choices .quick-stepper-input{display:block!important;width:min(52px,100%)!important;min-height:30px!important;margin:0 auto!important;padding:4px!important;font-size:13px!important;text-align:center}
.quick-operation-form [data-rule-count-wrap][hidden]{display:none!important}.quick-operation-form .row-count-choices [data-rule-count-wrap]:not([hidden]){place-items:center;justify-content:center;width:100%;box-sizing:border-box}.quick-operation-form .row-count-choices [data-rule-count-wrap]:not([hidden]) input[type="number"]{display:block;margin-inline:auto!important;text-align:center}
.sync-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:16px 0}.sync-records{display:grid;gap:8px;max-height:520px;overflow:auto}.sync-records .notice small{display:block;margin-top:4px;color:var(--muted)}.inline-mapping{display:flex;align-items:center;gap:8px}.inline-mapping input{width:150px}@media(max-width:650px){.sync-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-mapping{width:100%}.inline-mapping input{width:100%}}

/* Desktop monitor mode: maximize the question canvas and move all chrome to the bottom. */
@media(min-width:1100px){
  .classroom-presenter .presenter-shell{position:relative;grid-template-rows:minmax(0,1fr) 58px;height:100dvh;overflow:hidden}
  .classroom-presenter .presenter-top{position:absolute;z-index:7;inset:auto 0 0;height:58px;padding:0;border:0;background:transparent;pointer-events:none}
  .classroom-presenter .presenter-top>div:first-child{position:fixed;z-index:5;left:16px;top:50%;display:grid;grid-template-columns:10px auto;grid-template-rows:auto auto;gap:2px 9px;max-width:165px;transform:translateY(-50%);text-align:left}
  .classroom-presenter .presenter-top>div:first-child .live-dot{grid-row:1/3;align-self:center;width:9px;height:9px;box-shadow:0 0 0 5px rgba(75,211,141,.12)}
  .classroom-presenter .presenter-top>div:first-child strong{font-size:12px;line-height:1.2}
  .classroom-presenter .presenter-top>div:first-child small{color:#ffb54a;font-size:10px;line-height:1.2}
  .classroom-presenter .presenter-top>div:last-child{position:absolute;right:12px;bottom:8px;display:flex;gap:6px;pointer-events:auto}
  .classroom-presenter .presenter-top [data-presenter-progress]{margin-right:4px;color:#cbd9e8;font-size:11px;white-space:nowrap}
  .classroom-presenter .presenter-top button{min-height:36px;padding:5px 9px;border-radius:9px;font-size:11px}
  .classroom-presenter .presenter-stage{grid-row:1;justify-content:center;padding:2px 10px 6px}
  .classroom-presenter .presenter-status{top:5px;padding:3px 9px;font-size:9px}
  .classroom-presenter .presenter-question-no{display:none}
  .classroom-presenter .presenter-rows{width:100%;height:100%;max-width:min(1500px,98vw);transform:translateY(-5px)}
  .classroom-presenter .presenter-row{width:min(var(--number-width,5ch),96vw);line-height:.9}
  .classroom-presenter .presenter-controls{z-index:6;grid-row:2;justify-content:flex-start;min-width:0;height:58px;box-sizing:border-box;padding:7px 330px 7px 12px;background:rgba(4,17,34,.88)}
  .classroom-presenter .presenter-controls button{min-height:36px;padding:5px 12px;border-radius:9px;font-size:11px;white-space:nowrap}
  .classroom-presenter .presenter-controls button.primary{min-width:104px}
  .classroom-presenter .presenter-shortcuts{display:none}
  .classroom-presenter .presenter-answer{right:14px;bottom:70px}
  .classroom-presenter .presenter-live-speed{grid-template-columns:auto minmax(150px,260px) 50px;width:min(390px,32vw);padding:0;font-size:10px}
}
.student-directory-filters{display:grid;grid-template-columns:minmax(280px,2fr) minmax(150px,1fr) minmax(150px,1fr) auto auto;align-items:end;gap:12px}.student-directory-filters label{margin:0}.student-directory-search{position:relative}.student-directory-search label{margin:0 0 7px}.directory-autocomplete-results{position:absolute;z-index:80;top:calc(100% + 6px);right:0;left:0;max-height:min(320px,42vh);overflow:auto;padding:7px;border:1px solid #b9d5f2;border-radius:15px;background:#fff;box-shadow:0 18px 42px rgba(25,60,105,.22);overscroll-behavior:contain}.directory-autocomplete-results[hidden]{display:none}.directory-autocomplete-option{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:0;border-radius:11px;background:#fff;color:var(--navy);text-align:left;cursor:pointer}.directory-autocomplete-option:hover,.directory-autocomplete-option.active{background:linear-gradient(135deg,#e8f4ff,#f2edff)}.directory-autocomplete-option strong{font-size:14px}.directory-autocomplete-option small{padding:4px 7px;border-radius:999px;background:#edf5ff;color:#3871ae;font-size:10px;white-space:nowrap}.directory-autocomplete-empty{padding:13px;color:var(--muted);text-align:center;font-size:12px}.student-directory-filters>strong{align-self:center;color:var(--navy);white-space:nowrap}.student-directory-cards{display:none}.student-directory-card[hidden],.student-directory-table tr[hidden]{display:none!important}.student-directory-card-head{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:11px}.student-directory-card-head .avatar{width:46px;height:46px}.student-directory-card-head h2{margin:0;font-size:17px;line-height:1.25}.student-directory-card-head small{color:var(--muted);font-weight:750}.student-directory-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.student-directory-meta span{min-width:0;padding:10px;border-radius:12px;background:#f5f8fc}.student-directory-meta small,.student-directory-meta strong{display:block}.student-directory-meta small{margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.student-directory-meta strong{overflow-wrap:anywhere;color:var(--navy);font-size:13px}.student-directory-panel>.empty:not([hidden]){display:block}.student-account-state{display:grid;min-width:145px;gap:7px}.student-account-state .badge{justify-self:start}.student-account-state strong{font-size:12px}.student-account-state form,.student-account-card form{margin:0}.student-account-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 13px;padding:11px 12px;border:1px solid #d7e5f2;border-radius:14px;background:#f6faff}.student-account-card small,.student-account-card strong{display:block}.student-account-card small{margin-bottom:2px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.student-account-card strong{color:var(--navy);font-size:13px}.student-credential-panel{max-width:720px;margin-inline:auto}.student-credential-name{display:flex;align-items:center;gap:12px;margin-bottom:18px}.student-credential-name .avatar{width:50px;height:50px}.student-credential-name strong,.student-credential-name small{display:block}.student-credential-name small{margin-top:3px;color:var(--muted)}.student-credential-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.student-credential-grid>div{padding:18px;border:2px solid #c7ddf4;border-radius:16px;background:#f7fbff}.student-credential-grid small,.student-credential-grid strong{display:block}.student-credential-grid small{margin-bottom:7px;color:var(--muted);font-weight:800}.student-credential-grid strong{color:var(--navy);font-size:22px;letter-spacing:.04em;overflow-wrap:anywhere}
.student-share-box{display:grid;gap:10px;margin-top:18px;padding:16px;border:1px solid #c9ddf1;border-radius:18px;background:linear-gradient(145deg,#f7fbff,#fffaf1)}.student-share-box label{margin:0;color:var(--navy);font-weight:900}.student-share-box textarea{width:100%;min-height:260px;margin:0;padding:15px;border:2px solid #c7ddf4;border-radius:14px;background:#fff;color:#183552;font:700 15px/1.48 Nunito,sans-serif;resize:vertical}.student-share-box textarea:focus{border-color:#2182e3;outline:3px solid rgba(33,130,227,.12)}.student-share-box .copy-success{background:#15966d}.student-copy-status{min-height:20px;margin:0;color:#117757;font-size:13px;font-weight:800;text-align:center}
.schedule-backdate-notice{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}.schedule-backdate-notice strong{white-space:nowrap}.schedule-attendance-row{display:grid;grid-template-columns:minmax(190px,1fr) auto;gap:12px}.schedule-attendance-row>.schedule-attendance-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(150px,.8fr) minmax(190px,1.4fr) auto;align-items:end;gap:10px;width:100%;margin:2px 0 0;padding:12px;border:1px solid #c8ddf2;border-radius:14px;background:#f5faff}.schedule-attendance-form label{display:grid;gap:5px;margin:0;color:var(--navy);font-size:12px;font-weight:850}.schedule-attendance-form select,.schedule-attendance-form input{min-height:42px;padding:9px 11px}.schedule-attendance-form .btn{min-height:42px;white-space:nowrap}
.schedule-attendance-overview{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;padding:10px 12px;border-radius:13px;background:#eef6ff}.schedule-attendance-overview strong{color:#b35a08}.schedule-attendance-overview span{color:#17784b;font-weight:850}.schedule-attendance-complete{margin:8px 0 12px;padding:13px;border-radius:13px;background:#e8f8ef;color:#17784b;font-weight:850;text-align:center}.schedule-recorded-group{margin-top:12px;border:1px solid #c9e8d7;border-radius:14px;background:#f6fcf8}.schedule-recorded-group>summary{padding:13px 14px;color:#17784b;font-weight:900;cursor:pointer}.schedule-recorded-rows{padding:0 14px}.schedule-recorded-rows .attendance-recorded{opacity:.88}.schedule-recorded-rows .student-row:last-child{border-bottom:0}
.admin-absence-alert{display:flex;align-items:center;justify-content:space-between;gap:18px;border-color:#f1c7a0;background:linear-gradient(135deg,#fff8ed,#fff)}.admin-absence-alert h2,.admin-absence-alert p{margin:0}.admin-absence-alert p:not(.eyebrow){margin-top:5px;color:var(--muted)}.absence-student-group>summary,.absence-scheduled>summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}.absence-student-group>summary>span:nth-child(2){min-width:0;flex:1}.absence-student-group>summary strong,.absence-student-group>summary small{display:block}.absence-student-group>summary small{margin-top:3px;color:var(--muted)}.absence-occurrences{display:grid;gap:14px;margin-top:18px}.absence-occurrence{padding:16px;border:1px solid #f0d4bd;border-radius:16px;background:#fffaf5}.absence-occurrence>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.absence-occurrence>header strong,.absence-occurrence>header small{display:block}.absence-occurrence>header small{margin-top:4px;color:var(--muted)}.absence-replacement-form{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr auto;align-items:end;gap:9px;margin-top:14px;padding:12px;border-radius:13px;background:#f4f9ff}.absence-replacement-form h3{grid-column:1/-1}.absence-replacement-form label{margin:0}.absence-final-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.absence-final-actions form{display:grid;grid-template-columns:1fr auto;gap:8px}.absence-final-actions input{min-width:0}.absence-scheduled{margin-top:20px}.absence-scheduled>summary{justify-content:space-between}
@media(max-width:650px){.schedule-backdate-notice{display:grid}.schedule-attendance-row{grid-template-columns:1fr}.schedule-attendance-row>.actions{justify-content:flex-start}.schedule-attendance-row>.schedule-attendance-form{grid-template-columns:1fr}.schedule-attendance-form .btn{width:100%}}
@media(max-width:850px){.absence-replacement-form{grid-template-columns:1fr 1fr}.absence-replacement-form h3,.absence-replacement-form label:last-of-type,.absence-replacement-form .btn{grid-column:1/-1}.absence-final-actions{grid-template-columns:1fr}.admin-absence-alert{align-items:stretch;flex-direction:column}.admin-absence-alert .btn{width:100%}}
@media(max-width:900px){.student-directory-filters{grid-template-columns:1fr 1fr}.student-directory-search{grid-column:1/-1}.student-directory-filters>strong{justify-self:end}}
@media(max-width:650px){.student-directory-filters{position:sticky;top:70px;z-index:12;grid-template-columns:1fr 1fr;padding:13px;margin-bottom:12px;border-radius:16px}.student-directory-filters .student-directory-search{grid-column:1/-1}.student-directory-filters label{font-size:12px}.student-directory-filters input,.student-directory-filters select{min-height:44px;padding:10px}.student-directory-filters .btn{padding:10px}.student-directory-filters>strong{font-size:12px}.directory-autocomplete-results{max-height:34vh}.directory-autocomplete-option{min-height:48px}.student-directory-panel{padding:0;border:0;background:transparent;box-shadow:none}.student-directory-desktop{display:none}.student-directory-cards{display:grid;gap:11px}.student-directory-card{padding:14px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(23,53,93,.08)}.student-directory-card .actions{display:grid;grid-template-columns:1fr 1fr}.student-directory-card .btn{width:100%}.student-account-card .btn{width:auto}.student-credential-grid{grid-template-columns:1fr}.student-credential-grid strong{font-size:20px}}
.schedule-student-back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;white-space:nowrap}
@media(max-width:650px){.schedule-student-back{box-sizing:border-box;width:100%;min-height:48px;margin-top:4px}}
.multiplication-table-card{display:grid;box-sizing:border-box;width:100%;max-width:100%;min-width:0;gap:12px;overflow:hidden}
.multiplication-table-card>div{min-width:0}.multiplication-table-card>div:first-child small{white-space:normal}
.multiplication-table-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;min-width:0;gap:10px}
.multiplication-table-pair{display:grid;grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr);min-width:0;overflow:hidden;border:1px solid #dbe7f0;border-radius:14px;background:#f8fbff}
.multiplication-table-pair>[data-classroom-rule]{display:grid;box-sizing:border-box;width:100%;min-width:0;padding:9px 10px;overflow:hidden}
.multiplication-table-pair>[data-classroom-rule]+[data-classroom-rule]{border-left:1px solid #dbe7f0}
.multiplication-table-pair>[data-classroom-rule]>span:first-child{display:flex;align-items:center;min-width:0;gap:7px;white-space:nowrap}
.multiplication-table-pair input[type="checkbox"]{box-sizing:border-box;flex:0 0 22px;width:22px!important;height:22px!important;min-width:22px;min-height:22px;max-width:22px;max-height:22px;margin:0;padding:0;accent-color:var(--blue)}
.multiplication-table-pair b{font-size:.95rem}
.multiplication-table-mixed{grid-column:1/-1;grid-template-columns:1fr}
.multiplication-table-mixed>[data-classroom-rule]>span:first-child{justify-content:center}
.multiplication-table-choices .junior2-rule-count{margin-top:7px}
@media(max-width:720px){.multiplication-table-choices{grid-template-columns:1fr;gap:7px}.multiplication-table-pair{grid-template-columns:minmax(64px,.65fr) minmax(0,1.35fr)}.multiplication-table-pair.multiplication-table-mixed{grid-template-columns:1fr}.multiplication-table-pair>[data-classroom-rule]{padding:8px}.multiplication-table-pair b{font-size:.88rem}}

.missing-factor-box{display:inline-block;box-sizing:border-box;width:.82em;height:.82em;border:.065em solid currentColor;border-radius:.08em;vertical-align:-.07em}
.presenter-row .missing-factor-box{width:.86em;height:.86em;border-width:.06em;vertical-align:-.06em}

/* Classroom Flashcard split: enabled only when the available screen can hold two useful canvases. */
.classroom-split-entry{display:none;box-sizing:border-box;max-width:1040px;margin:0 auto 16px;padding:13px 18px;border:2px solid #86c6f3;border-radius:18px;background:linear-gradient(135deg,#eaf7ff,#fff7dd);color:var(--navy);box-shadow:0 9px 24px rgba(23,104,219,.1)}
.classroom-split-entry span{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:14px;background:#1768db;color:#fff;font-size:27px}.classroom-split-entry strong,.classroom-split-entry small{display:block}.classroom-split-entry strong{font-size:16px}.classroom-split-entry small{color:var(--muted);font-size:12px}
@media(min-width:900px){.classroom-split-entry{display:flex;align-items:center;gap:13px}}
.classroom-split-page{height:100dvh;margin:0;overflow:hidden;background:#07172b;color:#fff}.classroom-split-shell{height:100dvh;display:grid;grid-template-rows:58px minmax(0,1fr)}
.split-master-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 14px;border-bottom:1px solid rgba(255,255,255,.14);background:linear-gradient(90deg,#0b2442,#173f6c)}.split-master-bar>div:first-child{display:grid;grid-template-columns:auto auto;align-items:center;gap:0 12px}.split-master-bar a{grid-row:1/3;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.1);color:#fff;font-weight:850}.split-master-bar strong{font-size:17px}.split-master-bar small{color:#9fbbd8;font-size:10px}.split-master-actions{display:flex;gap:7px}.split-master-actions button,.split-pane>header button{border:1px solid rgba(255,255,255,.16);border-radius:9px;background:rgba(255,255,255,.1);color:#fff;font-weight:850;cursor:pointer}.split-master-actions button{min-height:38px;padding:7px 12px}.split-master-actions button:first-child{border-color:#4b9fff;background:#1768db}.split-master-actions button.active{border-color:#ffbe4c;background:#8d5c0b}
.split-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;gap:3px;background:#07172b}.split-pane{min-width:0;display:grid;grid-template-rows:48px minmax(0,1fr);overflow:hidden;border:1px solid #315675;background:#102c4a}.split-pane>header{display:flex;align-items:center;gap:8px;padding:5px 9px;background:#0d2743}.split-pane>header>strong{color:#ffbe4c;font-size:11px;white-space:nowrap}.split-pane>header nav{display:flex;min-width:0;gap:4px}.split-pane>header button{padding:6px 8px;font-size:10px;white-space:nowrap}.split-pane>header button.active{border-color:#60b3ff;background:#1768db}.split-pane>header button:disabled{opacity:.38;cursor:not-allowed}.split-pane>header>span{margin-left:auto;padding:4px 7px;border-radius:999px;background:#173e66;color:#cce2f6;font-size:9px;font-weight:900;white-space:nowrap}.split-pane iframe{width:100%;height:100%;border:0;background:#f4f8fd}.split-device-warning{display:none}
@media(max-width:899px){.classroom-split-shell{display:block;padding:24px}.split-master-bar,.split-workspace{display:none}.split-device-warning{display:block;max-width:520px;margin:12vh auto 0;padding:28px;border-radius:22px;background:#fff;color:var(--ink);text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.28)}.split-device-warning strong{font-size:25px}.split-device-warning p{color:var(--muted);line-height:1.5}.split-device-warning a{display:inline-block;padding:12px 16px;border-radius:12px;background:#1768db;color:#fff;font-weight:900}}

html.classroom-split-embed,html.classroom-split-embed body{min-width:0;background:#f4f8fd}html.classroom-split-embed .app-shell{display:block}html.classroom-split-embed .topbar,html.classroom-split-embed .sidebar,html.classroom-split-embed .menu-backdrop{display:none!important}html.classroom-split-embed .content{box-sizing:border-box;max-width:none;min-width:0;padding:12px}html.classroom-split-embed .classroom-page-head{margin-bottom:8px}html.classroom-split-embed .classroom-page-head .eyebrow,html.classroom-split-embed .classroom-page-head .muted,html.classroom-split-embed .classroom-page-head .actions{display:none}html.classroom-split-embed .classroom-page-head h1{font-size:24px}html.classroom-split-embed .classroom-workflow-tabs{display:none}html.classroom-split-embed .legacy-flow-form{padding:12px}html.classroom-split-embed .soft-form-step{padding:12px}html.classroom-split-embed .flow-step p{display:none}

.split-presenter-panel .presenter-shell{grid-template-rows:34px minmax(0,1fr) auto;height:100dvh}.split-presenter-panel .presenter-top{position:static;z-index:auto;min-height:34px;padding:3px 7px;background:#071a30;pointer-events:auto}.split-presenter-panel .presenter-top>div:first-child{position:static;display:flex;max-width:none;transform:none}.split-presenter-panel .presenter-top>div:first-child .live-dot{width:7px;height:7px;box-shadow:0 0 0 3px rgba(75,211,141,.12)}.split-presenter-panel .presenter-top strong{font-size:10px}.split-presenter-panel .presenter-top small{max-width:180px;overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.split-presenter-panel .presenter-top>div:last-child{position:static;margin-left:auto}.split-presenter-panel .presenter-top [data-fullscreen]{display:none}.split-presenter-panel .presenter-top button{min-height:26px;padding:3px 6px;font-size:9px}.split-presenter-panel .presenter-top [data-presenter-progress]{font-size:9px}.split-presenter-panel .presenter-stage{grid-row:2;padding:2px 6px}.split-presenter-panel .presenter-status{top:3px;padding:3px 7px;font-size:8px}.split-presenter-panel .presenter-question-no{display:none}.split-presenter-panel .presenter-rows{width:100%;height:100%;max-width:98%}.split-presenter-panel .presenter-row{width:min(var(--number-width,5ch),96%);line-height:.9}.split-presenter-panel .presenter-controls{grid-row:3;display:flex;flex-wrap:wrap;gap:4px;padding:5px;background:#071a30}.split-presenter-panel .presenter-controls button{min-width:0;min-height:31px;padding:4px 7px;border-radius:8px;font-size:9px}.split-presenter-panel .presenter-controls button.primary{min-width:75px}.split-presenter-panel .presenter-shortcuts{display:none}.split-presenter-panel .presenter-answer{right:7px;bottom:48px;padding:7px 9px;font-size:18px}.presenter-panel-audio{display:flex;align-items:center;gap:4px;margin-left:auto}.presenter-panel-audio input{width:72px;accent-color:#49a5ff}.presenter-panel-audio button.active{border-color:#ffbe4c;background:#8d5c0b}
.split-presenter-panel .presenter-shell{grid-template-rows:34px minmax(0,1fr) auto;height:100dvh}.split-presenter-panel .presenter-top{position:static;z-index:auto;min-height:34px;padding:3px 7px;background:#071a30;pointer-events:auto}.split-presenter-panel .presenter-top>div:first-child{position:static;display:flex;max-width:none;transform:none}.split-presenter-panel .presenter-top>div:first-child .live-dot{width:7px;height:7px;box-shadow:0 0 0 3px rgba(75,211,141,.12)}.split-presenter-panel .presenter-top strong{font-size:10px}.split-presenter-panel .presenter-top small{max-width:180px;overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.split-presenter-panel .presenter-top>div:last-child{position:static;margin-left:auto}.split-presenter-panel .presenter-top [data-fullscreen]{display:none}.split-presenter-panel .presenter-top button{min-height:26px;padding:3px 6px;font-size:9px}.split-presenter-panel .presenter-top [data-presenter-progress]{font-size:9px}.split-presenter-panel .presenter-stage{grid-row:2;padding:2px 6px}.split-presenter-panel .presenter-status{top:3px;padding:3px 7px;font-size:8px}.split-presenter-panel .presenter-question-no{display:none}.split-presenter-panel .presenter-rows{width:100%;height:100%;max-width:98%}.split-presenter-panel .presenter-row{width:min(var(--number-width,5ch),96%);line-height:.9}.split-presenter-panel .presenter-controls{grid-row:3;display:flex;flex-wrap:wrap;gap:4px;padding:5px;background:#071a30}.split-presenter-panel .presenter-controls button{min-width:0;min-height:31px;padding:4px 7px;border-radius:8px;font-size:9px}.split-presenter-panel .presenter-controls button.primary{min-width:75px}.split-presenter-panel .presenter-shortcuts{display:none}.split-presenter-panel .presenter-answer{right:7px;bottom:48px;padding:7px 9px;font-size:18px}.presenter-panel-audio{display:flex;align-items:center;gap:4px;margin-left:auto}.presenter-panel-audio input{width:72px;accent-color:#49a5ff}.presenter-panel-audio button.active{border-color:#ffbe4c;background:#8d5c0b}.split-presenter-panel .presenter-live-speed{grid-template-columns:auto minmax(90px,1fr) 44px;width:100%;padding:1px 3px;font-size:9px}.split-presenter-panel .presenter-live-speed input[type="range"]{min-width:70px}.split-presenter-panel .presenter-live-speed output{padding:4px}

/* Kelas Tambahan uses any free place within the normal six-seat capacity. */
.additional-class-button{background:#6f4cc3}.schedule-capacity-note{display:inline-flex;margin:0 0 18px;padding:7px 14px;border-radius:999px;background:#edf3fb;color:#526780;font-weight:800}.additional-class-slot{width:100%;margin:0 0 12px;background:#f1ebff;color:#5b36ad}.additional-class-form{max-width:760px}.emergency-seat-option{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:12px;padding:14px;border:1px solid #f0c47b;border-radius:14px;background:#fff8e9}.emergency-seat-option input{width:20px;height:20px;margin:2px 0}.emergency-seat-option strong,.emergency-seat-option small{display:block}.emergency-seat-option small{margin-top:4px;color:var(--muted);font-weight:600}.additional-history .student-row{align-items:center}.payroll-additional-note{margin-bottom:18px;background:#f1ebff}.payroll-additional-note span{color:var(--muted)}
.emergency-merge-button{background:#c13e45}.emergency-merge-form{max-width:760px}
.capacity.emergency-merged{border-color:#c13e45;background:#fdebec;color:#9a2830}.capacity.emergency-merged .schedule-session-count{color:#9a2830}
.schedule-attendance-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 15px;margin:0 0 12px;padding:9px 12px;border-radius:12px;background:#f5f8fc;color:#536d86;font-size:11px;font-weight:850}.schedule-attendance-legend span{display:flex;align-items:center;gap:6px}.schedule-attendance-legend i{width:10px;height:10px;border-radius:50%;background:#27a46f}.schedule-attendance-legend span:last-child i{background:#ec8a24}.mobile-board .capacity.schedule-needs-attendance,.schedule-server-board .capacity.schedule-needs-attendance{flex-wrap:wrap!important;border:2px solid #efa554!important;background:linear-gradient(135deg,#fff5e6,#fffaf3)!important;color:#9b520c!important}.mobile-board .capacity.schedule-attendance-done,.schedule-server-board .capacity.schedule-attendance-done{flex-wrap:wrap!important;border:2px solid #79cea7!important;background:linear-gradient(135deg,#e9f9f0,#f7fffb)!important;color:#167148!important}.schedule-attendance-chip{order:5;flex:0 0 100%;display:block!important;margin:5px 0 0!important;padding:6px 9px;border-radius:8px;background:rgba(255,255,255,.78);color:inherit!important;font-size:10px!important;font-weight:900!important;line-height:1.1;text-align:left}.attendance-pending{margin-block:5px;padding:12px!important;border:1px solid #f1c181!important;border-radius:13px;background:#fff8ed}.attendance-recorded{margin-block:5px;padding:12px!important;border:1px solid #b8e1ca!important;border-radius:13px;background:#f1fbf5}
@media(max-width:650px){.schedule-attendance-legend{justify-content:flex-start}.schedule-attendance-chip{text-align:center}}
.emergency-targets{margin:16px 0;padding:16px;border:1px solid #efb3b7;border-radius:16px}.emergency-targets legend{padding:0 8px;font-weight:900}.emergency-targets legend small{color:var(--muted);font-weight:700}.emergency-targets>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.emergency-targets .checkline{margin:0;background:#fff8f8}@media(max-width:650px){.emergency-targets>div{grid-template-columns:1fr}}
@media(max-width:650px){.additional-class-button,.emergency-merge-button,.additional-class-slot{width:100%}.schedule-capacity-note{display:flex;justify-content:center;width:100%;box-sizing:border-box}.additional-class-form,.emergency-merge-form{padding:16px}.emergency-seat-option{grid-template-columns:auto minmax(0,1fr)}.payroll-additional-note{align-items:flex-start;flex-direction:column}}
.listening-activity-switch{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 1rem}.listening-activity-switch a{border:1px solid #cad8e8;border-radius:999px;padding:.65rem 1rem;background:#fff;color:#29415f;font-weight:800;text-decoration:none}.listening-activity-switch a.active{background:#1768db;color:#fff;border-color:#1768db}.two-step-factors{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,.65fr);align-items:center;gap:.7rem}.two-step-factors input{min-width:0;width:100%;font-size:clamp(2rem,8vw,4rem);font-weight:900;text-align:center;border:2px solid #cbd9e8;border-radius:18px;padding:.55rem}.two-step-factors b{font-size:clamp(2rem,8vw,4rem)}
.two-step-classroom-presenter{min-height:calc(100vh - 3rem);display:grid;grid-template-rows:auto 1fr auto;gap:1rem}.two-step-classroom-presenter>header,.two-step-classroom-presenter>footer{display:flex;gap:.6rem;align-items:center;justify-content:center;flex-wrap:wrap}.two-step-classroom-presenter>header strong{font-size:1.25rem;margin:auto}.two-step-classroom-presenter>section{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:2px solid #d9e5f1;border-radius:28px;padding:2rem}.two-step-classroom-presenter h1{font-size:clamp(2rem,5vw,4.5rem)}.two-step-classroom-presenter p{font-size:clamp(1.2rem,2vw,2rem)}.two-step-classroom-answer{display:grid;gap:.5rem;margin-top:1rem;padding:1.2rem 2rem;border-radius:22px;background:#eef6ff}.two-step-classroom-answer strong{font-size:clamp(2rem,5vw,4rem)}.two-step-classroom-answer small{font-size:1.1rem}.two-step-classroom-answer b{font-size:clamp(1.4rem,3vw,2.4rem)}
.two-step-stable-presenter .two-step-listening-stage{gap:14px;min-height:0}.two-step-stable-presenter .listening-speaker{font-size:clamp(52px,9vw,104px);filter:drop-shadow(0 10px 18px #0005)}.two-step-stable-presenter [data-stage]{margin:0;color:#fff;font-size:clamp(34px,6vw,76px);line-height:1.08;text-shadow:0 8px 30px #0006}.two-step-stable-presenter .two-step-classroom-answer{display:grid;gap:5px;margin:0;padding:12px 18px;background:#ffb52e}.two-step-stable-presenter .two-step-classroom-answer[hidden]{display:none!important}.two-step-stable-presenter .two-step-classroom-answer strong{font-size:clamp(22px,3vw,36px)}.two-step-stable-presenter .two-step-classroom-answer small{font-size:12px}.two-step-stable-presenter .two-step-classroom-answer span{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.two-step-stable-presenter .two-step-classroom-answer b{font-size:clamp(16px,2vw,25px)}.two-step-stable-presenter .presenter-controls{flex-wrap:wrap}.two-step-stable-presenter button:disabled{opacity:.45;cursor:wait}
@media(max-width:650px){.two-step-stable-presenter .presenter-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.two-step-stable-presenter .presenter-controls button{white-space:normal}.two-step-stable-presenter .two-step-classroom-answer{max-width:calc(100vw - 20px);padding:8px 11px}.two-step-stable-presenter .two-step-classroom-answer span{gap:6px}}

/* Student practice cards: resilient two-column layout with the whole card as the action. */
.student-practice-card{box-sizing:border-box;grid-template-columns:112px minmax(0,1fr);height:auto;min-height:150px;gap:18px}
.student-practice-card .practice-copy{min-width:0;align-self:center}
.student-practice-card .practice-copy strong,.student-practice-card .practice-copy small{display:-webkit-box;overflow:hidden;white-space:normal!important;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.student-practice-card .practice-copy small{line-height:1.35}
.student-practice-card .practice-arrow{display:none!important}
.practice-division .practice-visual b{width:112px;min-width:112px;height:102px;padding:0;border-radius:0;background:transparent url('/assets/images/division-card-icon-v1.png') center/contain no-repeat;color:transparent;font-size:0;box-shadow:none}
.student-welcome h1{display:-webkit-box;overflow:hidden;white-space:normal!important;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.student-play-section .section-title h2{white-space:nowrap}
.kingdom-banner>span{min-width:0;max-width:min(54%,260px)}
.kingdom-banner strong{max-width:none;overflow-wrap:normal}
.kingdom-banner em{padding:11px 17px;font-size:15px}

@media(max-width:650px){
  .student-welcome{display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:6px;min-height:170px;padding:22px 4px 8px}
  .student-welcome>div{max-width:none;min-width:0}
  .student-welcome h1{max-width:none;font-size:clamp(30px,8.8vw,35px);line-height:1.04}
  .student-welcome-art{position:static;width:112px;height:126px;justify-self:end}
  .student-practice-card{grid-template-columns:clamp(76px,24vw,96px) minmax(0,1fr);gap:10px;min-height:116px;padding:11px 13px}
  .student-practice-card .practice-visual{width:clamp(76px,24vw,96px);height:92px}
  .student-practice-card .practice-visual img{width:100%;height:90px}
  .practice-bayangan .practice-visual b,.practice-bayangan_addition .practice-visual b,.practice-multiplication .practice-visual b,.practice-division .practice-visual b{width:100%;min-width:0;height:90px}
  .student-practice-card .practice-copy strong{font-size:clamp(18px,5.3vw,21px);line-height:1.14}
  .student-practice-card .practice-copy small{font-size:clamp(11px,3.2vw,13px)}
  .student-play-section .section-title{margin-right:4px;margin-left:4px}
  .student-play-section .section-title h2{font-size:clamp(26px,7.8vw,31px)}
  .kingdom-banner{min-height:176px;padding:17px 18px;background-position:61% center}
  .kingdom-banner>span{max-width:55%}
  .kingdom-banner strong{margin-bottom:7px;font-size:clamp(23px,7vw,29px);line-height:1.04}
  .kingdom-banner small{margin-bottom:11px;font-size:12px;line-height:1.25}
  .kingdom-banner em{padding:10px 14px;font-size:14px;box-shadow:0 4px 0 #e5a91c}
}

@media(max-width:350px){
  .student-welcome{grid-template-columns:minmax(0,1fr) 90px;min-height:165px}
  .student-welcome h1{font-size:29px}
  .student-welcome-art{width:90px;height:112px}
  .student-practice-card{grid-template-columns:74px minmax(0,1fr);gap:8px;padding:10px 11px}
  .student-practice-card .practice-visual{width:74px;height:86px}
  .student-practice-card .practice-visual img,.practice-bayangan .practice-visual b,.practice-bayangan_addition .practice-visual b,.practice-multiplication .practice-visual b,.practice-division .practice-visual b{height:84px}
  .student-practice-card .practice-copy strong{font-size:18px}
  .student-play-section .section-title h2{font-size:26px}
  .kingdom-banner{padding-right:13px;padding-left:13px}
  .kingdom-banner strong{font-size:22px}
  .kingdom-banner em{padding:9px 12px;font-size:13px}
}

/* Focused student question screen: warm, compact, and driven by the existing answer form. */
body:has(.student-question-exercise){overflow:auto;background:#fff9ee}
body:has(.student-question-exercise) .topbar,body:has(.student-question-exercise) .sidebar,body:has(.student-question-exercise) .menu-backdrop,body:has(.student-question-exercise) .student-bottom-nav{display:none!important}
.content:has(.student-question-exercise){box-sizing:border-box;max-width:none;min-height:100dvh;margin:0!important;padding:0!important;background:radial-gradient(circle at 4% 25%,#ffd44e 0 5px,transparent 6px),radial-gradient(circle at 96% 31%,#8ed8ff 0 6px,transparent 7px),radial-gradient(circle at 6% 61%,#ffb9c1 0 5px,transparent 6px),radial-gradient(circle at 94% 72%,#83de8c 0 5px,transparent 6px),#fff9ee}
.student-question-exercise{position:relative;box-sizing:border-box;width:min(100%,820px);max-width:none;min-height:100dvh;margin:0 auto;padding:16px clamp(14px,4vw,34px) calc(20px + env(safe-area-inset-bottom));overflow:visible}
.student-question-exercise .exercise-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,180px) minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:5px 12px;min-height:86px;font-size:14px}
.student-question-exercise .exercise-exit{display:flex;min-width:0;min-height:44px;align-items:center;gap:8px;color:#12336b;font-weight:850;line-height:1.15}
.student-question-exercise .exercise-exit span{font-size:26px}.student-question-exercise .exercise-exit b{font-weight:850}
.student-question-exercise .exercise-logo{display:block;width:auto;max-width:168px;height:auto;max-height:92px;justify-self:center;object-fit:contain}
.student-question-exercise .exercise-kind{display:flex;min-width:0;align-items:flex-end;justify-content:center;flex-direction:column;gap:3px;color:#1768db;font-size:16px;font-weight:850;text-align:right}
.student-question-exercise .exercise-top>strong{grid-column:1/-1;justify-self:center;color:#12336b;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(20px,4vw,28px);line-height:1.1;text-align:center}
.student-question-exercise .attempt-timer{min-width:62px;padding:4px 8px;font-size:14px}
.student-question-exercise>.progress{height:10px;margin:8px 0 14px;background:#dcecff;box-shadow:inset 0 1px 3px rgba(18,51,107,.08)}
.student-question-exercise>.progress i{background:linear-gradient(90deg,#ffb52e,#ffe34f)}
.exercise-instruction{width:max-content;max-width:calc(100% - 24px);margin:0 auto 12px;padding:9px 18px;border-radius:999px;background:#dcecff;color:#12336b;font-size:clamp(14px,3.5vw,18px);font-weight:900;text-align:center}
.student-question-exercise .question-stage{min-height:205px;padding:0;border-radius:0;background:transparent;overflow:visible}
.student-question-exercise .question-rows{box-sizing:border-box;display:grid;width:100%;min-width:0;max-width:100%;min-height:205px;margin:0;padding:24px;grid-template-columns:max-content;grid-auto-flow:row;place-content:center;border-radius:28px;background:#fff;box-shadow:0 14px 36px rgba(32,62,99,.09)}
.student-question-exercise .question-stage.question-display-ended .question-rows{visibility:hidden!important}
.student-question-exercise .equation-card{max-width:100%;padding:0;border-radius:0;background:transparent;box-shadow:none;color:#12336b;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(44px,12vw,82px);line-height:1.05;text-align:center;white-space:nowrap}
.student-question-exercise .flash-row{width:auto;min-width:0;justify-self:stretch;align-self:center;color:#12336b;font-size:clamp(38px,10vw,66px);text-align:right}
.student-question-exercise .answer-card{position:static;box-sizing:border-box;width:100%;margin:14px 0 0;padding:14px;border:0;border-radius:26px;background:#fff;box-shadow:0 14px 36px rgba(32,62,99,.09);overflow:visible}
.student-question-exercise .answer-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.student-question-exercise .answer-card label{margin:0;color:#12336b;font-size:14px;font-weight:900}
.student-question-exercise .answer-card input{box-sizing:border-box;width:100%;height:64px;margin-top:7px;border:3px solid #d8cafa;border-radius:18px;background:#fff;color:#12336b;font-size:30px;font-weight:900;text-align:center;caret-color:#2388f5}
.student-question-exercise .answer-card input:focus{border-color:#2388f5;outline:3px solid rgba(35,136,245,.12);box-shadow:none}
.student-question-exercise .answer-card>.big-answer{margin-top:0}
.student-question-exercise .keypad,.student-question-exercise .answer-card .keypad{display:none!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:13px}
.student-question-exercise .answer-card.keypad-open .keypad{display:grid!important}
.student-question-exercise .keypad button{box-sizing:border-box;min-width:0;min-height:54px;padding:6px;border:0;border-radius:16px;background:#dfedff;color:#12336b;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:26px;font-weight:900;box-shadow:0 4px 12px rgba(40,88,145,.07);cursor:pointer}
.student-question-exercise .keypad button:nth-child(n+4):nth-child(-n+6){background:#dcf7ee}.student-question-exercise .keypad button:nth-child(n+7):nth-child(-n+9){background:#eee6ff}
.student-question-exercise .keypad .keypad-delete{background:#ffe1e5;color:#12336b;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:14px}
.student-question-exercise .keypad .keypad-submit{background:linear-gradient(135deg,#2388f5,#1672e6);color:#fff;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:17px;box-shadow:0 7px 16px rgba(35,136,245,.25)}
.student-question-exercise .keypad .keypad-submit span{display:block}.student-question-exercise .answer-submit{min-height:52px;margin-top:10px;background:#2388f5}
.student-question-exercise .answer-card:not(.keypad-open) .btn{display:block}

@media(max-width:650px){
  .student-question-exercise{height:auto;min-height:100dvh;padding:10px 12px calc(14px + env(safe-area-inset-bottom));overflow:visible}
  .student-question-exercise .exercise-top{grid-template-columns:minmax(0,1fr) minmax(108px,132px) minmax(0,1fr);min-height:102px;gap:4px 8px;font-size:12px}
  .student-question-exercise .exercise-exit{gap:5px}.student-question-exercise .exercise-exit span{font-size:22px}.student-question-exercise .exercise-logo{max-width:128px;max-height:76px}.student-question-exercise .exercise-kind{font-size:14px}
  .student-question-exercise .exercise-top>strong{max-width:none;font-size:21px}.student-question-exercise>.progress{margin:6px 0 11px}
  .exercise-instruction{margin-bottom:10px;padding:8px 15px;font-size:15px}
  .student-question-exercise .question-stage{height:auto;min-height:148px;padding:0}.student-question-exercise .question-rows{min-height:148px;padding:17px;border-radius:23px}.student-question-exercise .equation-card{font-size:clamp(43px,14vw,62px)}
  .student-question-exercise .answer-card{left:auto;right:auto;bottom:auto;max-height:none;margin-top:11px;padding:11px;border-radius:22px;overflow:visible}
  .student-question-exercise .answer-card input{height:56px;margin-top:5px;border-radius:15px;font-size:26px}.student-question-exercise .answer-split{gap:9px}
  .student-question-exercise .keypad,.student-question-exercise .answer-card .keypad{gap:7px;margin-top:10px}.student-question-exercise .keypad button{min-height:52px;border-radius:14px;font-size:23px}
}
@media(max-width:350px),(max-height:740px){
  .student-question-exercise{padding-top:7px}.student-question-exercise .exercise-top{min-height:86px}.student-question-exercise .exercise-logo{max-width:98px;max-height:58px}.student-question-exercise .exercise-top>strong{font-size:19px}
  .student-question-exercise>.progress{height:8px;margin-bottom:8px}.exercise-instruction{margin-bottom:8px;padding:7px 13px;font-size:13px}
  .student-question-exercise .question-stage,.student-question-exercise .question-rows{min-height:128px}.student-question-exercise .question-rows{padding:13px}.student-question-exercise .equation-card{font-size:clamp(39px,13vw,54px)}
  .student-question-exercise .answer-card{margin-top:8px;padding:9px}.student-question-exercise .answer-card input{height:50px;font-size:23px}.student-question-exercise .keypad,.student-question-exercise .answer-card .keypad{gap:6px;margin-top:8px}.student-question-exercise .keypad button{min-height:48px;border-radius:12px;font-size:21px}
}

/* Standard classroom presenter: high-contrast monitor layout; split-screen mode stays compact. */
.classroom-presenter:not(.split-presenter-panel){background:#071b34;color:#fffdf7}
.classroom-presenter:not(.split-presenter-panel) .presenter-shell{position:relative;isolation:isolate;height:100dvh;grid-template-rows:86px minmax(0,1fr) 96px;background:radial-gradient(circle at 50% 42%,#123f6c 0,#0b3158 42%,#071b34 100%);overflow:hidden}
.classroom-presenter:not(.split-presenter-panel) .presenter-shell::before,.classroom-presenter:not(.split-presenter-panel) .presenter-shell::after{content:'';position:absolute;z-index:-1;width:28vw;height:58vh;border:2px solid rgba(83,164,235,.16);border-radius:50%;pointer-events:none}
.classroom-presenter:not(.split-presenter-panel) .presenter-shell::before{left:-22vw;top:17vh}.classroom-presenter:not(.split-presenter-panel) .presenter-shell::after{right:-23vw;top:-23vh}
.classroom-presenter:not(.split-presenter-panel) .presenter-top{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);height:auto;padding:12px 28px;border-bottom:1px solid rgba(147,194,235,.18);background:rgba(4,23,44,.72);pointer-events:auto}
.classroom-presenter:not(.split-presenter-panel) .presenter-top>.presenter-brand{position:static;inset:auto;display:flex;max-width:none;align-items:center;gap:12px;transform:none;text-align:left}
.classroom-presenter:not(.split-presenter-panel) .presenter-brand>div{display:block}.classroom-presenter:not(.split-presenter-panel) .presenter-top>.presenter-brand strong{font-size:22px!important;line-height:1.1}.classroom-presenter:not(.split-presenter-panel) .presenter-top>.presenter-brand small{color:#ffc94a;font-size:11px!important;line-height:1.2}
.presenter-class-icon{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:50%;background:linear-gradient(145deg,#1e64a3,#0d3d70);color:#fff;font-size:20px;box-shadow:inset 0 1px rgba(255,255,255,.18)}
.classroom-presenter:not(.split-presenter-panel) [data-presenter-progress]{justify-self:center;align-self:center;margin:0;color:#fffdf7;font-size:20px;font-weight:900;white-space:nowrap}
.classroom-presenter:not(.split-presenter-panel) .presenter-top>.presenter-actions{position:static;inset:auto;display:flex;justify-self:end;gap:12px;pointer-events:auto}
.classroom-presenter:not(.split-presenter-panel) .presenter-top button{min-height:48px;padding:9px 16px;border-color:rgba(167,203,235,.32);border-radius:14px;background:rgba(255,255,255,.05);font-size:14px}
.classroom-presenter:not(.split-presenter-panel) .presenter-stage{grid-row:2;justify-content:flex-start;padding:22px clamp(20px,5vw,82px) 15px}
.classroom-presenter:not(.split-presenter-panel) .presenter-status{position:static;margin:0 0 9px;padding:7px 19px;background:rgba(111,174,224,.28);color:#d8ecff;font-size:13px}
.classroom-presenter:not(.split-presenter-panel) .presenter-question-no{display:block;margin:0;color:#ffc94a;font-size:clamp(30px,3vw,48px);line-height:1;font-weight:950}
.classroom-presenter:not(.split-presenter-panel) .presenter-rows{width:100%;height:auto;min-height:0;max-width:min(1320px,92vw);flex:1;margin:6px auto 0;transform:none;overflow:hidden}
.classroom-presenter:not(.split-presenter-panel) .presenter-row{width:min(var(--number-width,5ch),90vw);max-width:100%;padding-right:.06em;color:#fffdf7;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-weight:850;line-height:.92;letter-spacing:0;text-shadow:0 7px 28px rgba(0,0,0,.28)}
.classroom-presenter:not(.split-presenter-panel) .presenter-countdown{right:3%;bottom:5px;left:3%;height:8px;border-radius:999px;background:rgba(126,171,210,.22);overflow:hidden}
.classroom-presenter:not(.split-presenter-panel) .presenter-countdown i{background:linear-gradient(90deg,#2388f5 0 33%,#57d7ae 33% 66%,#ffd45a 66% 100%)}
.classroom-presenter:not(.split-presenter-panel) .presenter-controls{z-index:2;grid-row:3;display:flex;box-sizing:border-box;width:100%;height:auto;min-height:96px;align-items:center;justify-content:center;gap:12px;padding:14px clamp(18px,4vw,72px);background:rgba(4,23,44,.84)}
.classroom-presenter:not(.split-presenter-panel) .presenter-controls button{min-width:0;min-height:58px;flex:1 1 150px;padding:10px 14px;border-color:rgba(167,203,235,.3);border-radius:15px;background:rgba(255,255,255,.06);font-size:16px;white-space:nowrap}
.classroom-presenter:not(.split-presenter-panel) .presenter-controls button.primary{min-width:150px;border-color:#43a2ff;background:#167ff0;box-shadow:0 8px 22px rgba(22,127,240,.24)}
.classroom-presenter:not(.split-presenter-panel) .presenter-controls button.active{border-color:#ffd05a;background:#8b5d11;color:#fff}.classroom-presenter:not(.split-presenter-panel) .presenter-shortcuts{display:none}
.classroom-presenter:not(.split-presenter-panel) .presenter-panel-audio{width:min(330px,25vw);margin:0}.classroom-presenter:not(.split-presenter-panel) .presenter-answer{right:4vw;bottom:23px;padding:15px 22px;background:#ffc94a;color:#102f58}
@media(max-width:1099px){.classroom-presenter:not(.split-presenter-panel) .presenter-shell{grid-template-rows:auto minmax(0,1fr) auto}.classroom-presenter:not(.split-presenter-panel) .presenter-top{grid-template-columns:1fr auto;padding:10px 14px}.classroom-presenter:not(.split-presenter-panel) [data-presenter-progress]{grid-column:1/-1;grid-row:2;margin-top:5px;font-size:15px}.classroom-presenter:not(.split-presenter-panel) .presenter-brand small{display:none}.classroom-presenter:not(.split-presenter-panel) .presenter-top button{min-height:44px;padding:8px 10px}.classroom-presenter:not(.split-presenter-panel) .presenter-stage{padding-top:14px}.classroom-presenter:not(.split-presenter-panel) .presenter-controls{flex-wrap:wrap;padding:9px}.classroom-presenter:not(.split-presenter-panel) .presenter-controls button{min-height:48px;flex:1 1 130px;font-size:13px}.classroom-presenter:not(.split-presenter-panel) .presenter-panel-audio{width:100%}}

/* Official TC Tlogosari logo in the shared dashboard header. */
.brand-logo{width:auto;max-width:112px;max-height:64px;content:url('/assets/images/sempoa-sip-logo-tc-tlogosari.png?v=198')}
@media(max-width:650px){
  .brand-logo{width:auto;max-width:112px;max-height:68px}
  .role-student .topbar{height:106px;min-height:106px;padding-block:8px}
  .role-student .topbar .brand-logo{width:auto;max-width:132px;max-height:88px}
}

/* Stable mobile chrome: the content moves, while navigation stays anchored. */
@media(max-width:650px){
  body.role-student{overscroll-behavior-y:none}
  .role-student .topbar{position:fixed;z-index:80;inset:0 0 auto;height:78px;min-height:78px;padding:5px 18px;transform:translateZ(0);backface-visibility:hidden}
  .role-student .topbar .brand-logo{width:auto;max-width:112px;max-height:68px}
  .role-student .content{padding-top:78px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .role-student .student-welcome .student-avatar-link{position:fixed;z-index:90;top:7px;right:18px;width:64px;height:64px;min-height:64px;flex-basis:64px}
  .role-student .student-bottom-nav{position:fixed!important;z-index:85;right:12px!important;bottom:max(6px,env(safe-area-inset-bottom))!important;left:12px!important;width:auto!important;height:60px;min-height:60px;margin:0!important;padding:4px!important;border:1px solid rgba(213,224,236,.9);border-radius:20px;box-shadow:0 8px 24px rgba(25,52,87,.16);transform:translateZ(0);backface-visibility:hidden;contain:layout paint}
  .role-student .student-bottom-nav a{min-height:52px;border-radius:16px;gap:0}
  .role-student .student-bottom-nav span{font-size:20px}
  .role-student .student-bottom-nav small{font-size:9px;line-height:1.15}
  body.role-student:has(.student-question-exercise){height:100dvh;overflow:hidden!important;overscroll-behavior:none}
  body.role-student:has(.student-question-exercise) .content{height:100dvh;min-height:0;padding:0!important;overflow:hidden!important}
  .student-question-exercise{height:100dvh;min-height:0;overflow:hidden}
}
@media(max-width:650px) and (max-height:640px){
  body.role-student:has(.student-question-exercise),body.role-student:has(.student-question-exercise) .content,.student-question-exercise{height:auto;min-height:100dvh;overflow:auto!important}
}

/* Child-friendly notifications: quiet home indicator, details live on their own page. */
.student-practice-title{align-items:center}.student-practice-title>div{display:grid;gap:5px}.student-new-work{width:max-content;padding:4px 9px;border-radius:999px;background:#fff0b8;color:#9a5700;font-size:11px;font-weight:950}.student-news-link{position:relative;display:flex;min-width:64px;min-height:54px;align-items:center;justify-content:center;flex-direction:column;border:2px solid #d9e9f8;border-radius:18px;background:#fff;color:#285886;box-shadow:0 6px 14px rgba(35,82,132,.08)}.student-news-link>span{font-size:22px;line-height:1}.student-news-link small{font-size:10px;font-weight:900}.student-news-link b{position:absolute;top:-7px;right:-7px;display:grid;min-width:23px;height:23px;padding:0 5px;place-items:center;border:3px solid #fff;border-radius:999px;background:#ff6b55;color:#fff;font-size:10px}.student-bottom-nav a{position:relative}.student-nav-new{position:absolute;top:1px;right:calc(50% - 22px);display:grid;width:17px;height:17px;place-items:center;border:2px solid #fff;border-radius:50%;background:#ffb51f;color:#fff;font-size:9px;line-height:1}.student-news-page{max-width:760px;margin:0 auto}.student-news-hero{display:flex;align-items:center;gap:16px;margin:14px 0 18px;padding:19px;border-radius:24px;background:linear-gradient(135deg,#fff3ba,#e8f6ff)}.student-news-hero>span{display:grid;width:58px;height:58px;flex:0 0 58px;place-items:center;border-radius:18px;background:#fff;font-size:28px}.student-news-hero h1,.student-news-hero p{margin:0}.student-news-hero p:last-child{margin-top:4px;color:#60748b}.student-news-read-all{display:flex;justify-content:flex-end;margin-bottom:12px}.student-news-page .app-notification-center{margin-bottom:0}.student-news-page .app-notification-center>.panel-head{display:none}@media(max-width:650px){.student-news-page{padding:12px 0}.student-news-hero{padding:15px}.student-news-hero h1{font-size:26px}.student-news-page .notice{align-items:stretch;flex-direction:column}.student-news-page .notice .actions,.student-news-page .notice .actions>*{width:100%}.student-news-page .notice .btn{width:100%}.student-news-read-all .btn{width:100%}}

/* Greeting text must never be clipped by the former two-line clamp. */
.student-welcome h1{display:block;overflow:visible;white-space:normal!important;overflow-wrap:normal;word-break:normal;-webkit-box-orient:initial;-webkit-line-clamp:unset;line-height:1.12;padding:.04em 0 .1em;text-wrap:balance}
@media(max-width:650px){
  .student-welcome>div{align-self:center;overflow:visible}
  .student-welcome h1{max-width:100%;line-height:1.12}
}
/* Student Progress Report V1 */
.spr-date-filter{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:20px}.spr-date-filter label{min-width:220px}.spr-session{margin-bottom:20px}.spr-roster{display:grid;gap:12px}.spr-roster-card{padding:16px;border:1px solid var(--line,#dce6f2);border-radius:18px;background:#fff}.spr-roster-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.spr-roster-card h3{margin:0 0 4px}.spr-roster-card p{margin:0;color:#687993}.spr-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px}.spr-card-actions form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spr-card-actions select{min-width:145px}.spr-context-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 20px}.spr-context-strip>div,.spr-last-books>div{padding:14px;border:1px solid #dce6f2;border-radius:16px;background:#f7faff}.spr-context-strip small,.spr-last-books small,.spr-report-grid small,.spr-internal small,.spr-coach-note small{display:block;margin-bottom:5px;color:#687993;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.spr-context-strip strong,.spr-last-books strong{display:block;color:#17355d}.spr-form{display:grid;gap:18px}.spr-last-books{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.spr-books{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.spr-books fieldset{min-width:0;margin:0;padding:14px;border:1px solid #dce6f2;border-radius:16px}.spr-books legend{padding:0 6px;color:#17355d;font-weight:900}.spr-material-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.spr-material-picker label{display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;border:1px solid #dce6f2;border-radius:14px;background:#f7faff;cursor:pointer}.spr-material-picker input{width:20px;height:20px}.spr-timeline{display:grid;gap:18px}.spr-timeline-card header{display:flex;justify-content:space-between;gap:16px}.spr-timeline-card h2{margin:4px 0}.spr-timeline-card header p{margin:0;color:#687993}.spr-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.spr-report-grid>div,.spr-internal,.spr-coach-note{padding:14px;border-radius:16px;background:#f7faff}.spr-report-grid strong{display:block;margin-top:5px}.spr-internal{margin-top:12px;border-left:4px solid #f3a640}.spr-coach-note{margin-top:12px;border-left:4px solid #1768db}.spr-internal p,.spr-coach-note p{margin:0}.text-error{color:#b42318!important;font-weight:700}.parent-info-card.spr{text-decoration:none;color:inherit}
@media(max-width:760px){.spr-context-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.spr-books,.spr-last-books,.spr-material-picker,.spr-report-grid{grid-template-columns:1fr}.spr-roster-card header,.spr-timeline-card header{align-items:flex-start;flex-direction:column}.spr-card-actions{align-items:stretch;justify-content:stretch}.spr-card-actions form{display:grid;grid-template-columns:1fr auto;width:100%}.spr-card-actions .btn{width:100%}}
.coach-context-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px;padding:16px 18px;border:2px solid #f59e0b;border-radius:16px;background:#fff7db;box-shadow:0 8px 24px rgba(180,83,9,.08)}
.coach-context-banner div{display:grid;gap:3px}.coach-context-banner small{font-weight:800;letter-spacing:.08em;color:#92400e}.coach-context-banner strong{font-size:1.15rem;color:#713f12}.coach-context-banner span{color:#78350f}
.coach-switch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.coach-switch-card{display:flex;align-items:center;justify-content:space-between;gap:16px}.coach-switch-card h2{margin:0 0 4px}.coach-switch-card p{margin:0}.coach-switch-card form{flex:0 0 auto}
@media(max-width:700px){.coach-context-banner,.coach-switch-card{align-items:stretch;flex-direction:column}.coach-context-banner .btn,.coach-switch-card .btn{width:100%}}
.spr-identity-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:20px}.spr-identity-grid>div{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}.spr-identity-grid small{color:var(--muted);font-weight:800}.spr-identity-grid strong{color:var(--navy)}.spr-book-rows{display:grid;gap:10px;margin-top:18px}.spr-book-row{display:grid;grid-template-columns:90px 1fr 1fr;align-items:end;gap:12px;padding:12px;border-radius:14px;background:#f7faff}.spr-book-row>strong{align-self:center}.spr-book-row label{margin:0}.spr-topic-group{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:15px}.spr-topic-group legend{padding:0 8px;font-weight:900;color:var(--navy)}.spr-topic-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}.spr-topic-options .checkline,.spr-package-check{display:flex;align-items:flex-start;gap:9px;margin:0;padding:11px;border-radius:12px;background:#f7faff}.spr-topic-options input,.spr-package-check input{width:auto;margin-top:3px}.spr-package-check span{display:grid;gap:3px}.spr-package-check small{color:var(--muted);font-weight:600}.spr-required-backlog{border:2px solid #f7b955}
.spr-book-row:has(.spr-book-pages-field){grid-template-columns:90px minmax(0,1fr)}.spr-book-pages-field{display:grid;gap:6px}.spr-book-pages-field small{color:var(--muted);font-weight:600;line-height:1.35}.spr-book-pages-field input{width:100%}
.spr-manual-material{display:grid;gap:8px;padding:14px;border:1px solid #f2c36d;border-radius:15px;background:#fffaf0}.spr-manual-material strong{color:var(--navy)}.spr-manual-material small{color:var(--muted);font-weight:600;line-height:1.45}.spr-manual-material textarea{min-height:120px;background:#fff}
.spr-correction-action{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.spr-correction-action details>summary{display:inline-flex;cursor:pointer;list-style:none}.spr-correction-action details>summary::-webkit-details-marker{display:none}.spr-correction-action form{display:grid;gap:10px;margin-top:12px;padding:14px;border:1px solid #f2c36d;border-radius:15px;background:#fffaf0}.spr-correction-action textarea{min-height:95px}.spr-correction-admin-link{margin-bottom:14px}.spr-correction-list{display:grid;gap:16px}.spr-correction-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.spr-correction-card header small,.spr-correction-card header p{color:var(--muted)}.spr-correction-card header h2,.spr-correction-card header p{margin:3px 0}.spr-correction-reason{margin:14px 0;padding:13px;border-radius:14px;background:#f7faff}.spr-correction-reason small{font-weight:850;color:var(--muted)}.spr-correction-reason p{margin:6px 0 0}.spr-correction-card>.actions{align-items:flex-end}.spr-correction-card>.actions form{display:grid;grid-template-columns:minmax(190px,1fr) auto;align-items:end;gap:8px}.spr-correction-card>.actions input{margin:0}
@media(max-width:760px){.spr-identity-grid{grid-template-columns:repeat(2,1fr)}.spr-book-row,.spr-book-row:has(.spr-book-pages-field){grid-template-columns:1fr}.spr-book-row>strong{grid-column:1/-1}.spr-topic-options{grid-template-columns:1fr}.spr-correction-card header{flex-direction:column}.spr-correction-card>.actions,.spr-correction-card>.actions form{display:grid;grid-template-columns:1fr;width:100%}.spr-correction-card>.actions .btn{width:100%}}
.spr-form,.spr-form .panel,.spr-material-dropdowns,.spr-material-card-list,.spr-material-card{box-sizing:border-box;width:100%;min-width:0;max-width:100%}.spr-material-card-list{display:grid;gap:12px}.spr-material-card{padding:14px;border:1px solid var(--line);border-radius:16px;background:#f7faff;overflow:hidden}.spr-material-card header{display:flex;align-items:center;justify-content:space-between;gap:10px}.spr-material-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.spr-material-fields label{min-width:0}.spr-material-fields select{display:block;min-width:0;max-width:100%}.spr-add-material{margin-top:12px}
.spr-material-guide{margin:8px 0 14px;padding:10px 12px;border-radius:12px;background:#eaf3ff;color:#174f97;font-weight:750}.spr-material-fields select:disabled{cursor:not-allowed;background:#eef2f7;color:#718096}
.spr-field-question{grid-column:1/-1;margin:0;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.spr-field-question legend{padding:0 6px;color:var(--navy);font-weight:850}.spr-question-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.spr-question-options .checkline{display:flex;align-items:flex-start;gap:9px;margin:0;padding:10px;border-radius:11px;background:#f2f7ff}.spr-question-options input{width:auto;margin-top:3px}
@media(max-width:760px){.spr-form{display:block;max-width:100%;overflow-x:hidden}.spr-form>.panel{margin-bottom:14px;padding:14px}.spr-identity-grid{grid-template-columns:1fr;max-width:100%;overflow-x:hidden}.spr-material-fields{grid-template-columns:1fr}.spr-question-options{grid-template-columns:1fr}.spr-material-card{padding:12px}.spr-book-row{gap:8px;padding:10px}.spr-book-row input{min-width:0;padding:10px 8px}.spr-notes textarea{min-height:110px}}
.spr-obstacle-templates{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px}.spr-obstacle-templates .btn{white-space:normal;text-align:left}.spr-optional-label{float:right;color:var(--muted,#687993);font-size:.82rem;font-weight:600}
.spr-required-label{display:inline-flex;width:max-content;margin:0 0 7px 8px;padding:3px 8px;border-radius:999px;background:#ffe1e1;color:#b42318;font-size:.72rem;font-weight:900;line-height:1.2;text-transform:uppercase;letter-spacing:.04em}.spr-notes>label>.spr-required-label,.spr-manual-material>.spr-required-label{float:right}.spr-publish-invalid{border-color:#dc2626!important;box-shadow:0 0 0 2px rgba(220,38,38,.12)}.spr-publish-errors{display:block;border:2px solid #dc2626;background:#fff5f5}.spr-publish-errors strong,.spr-publish-errors span{display:block}.spr-publish-errors ul{margin:8px 0 0;padding-left:20px;color:#991b1b}
.spr-published-books{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.spr-published-books>div{padding:15px;border:1px solid var(--line);border-radius:15px;background:#f7faff}.spr-published-books small,.spr-published-material small,.spr-published-notes small{display:block;margin-bottom:5px;color:var(--muted);font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.spr-published-material-list{display:grid;gap:12px}.spr-published-material{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:#f7faff}.spr-published-material .wide{grid-column:1/-1}.spr-published-material p,.spr-published-material-manual p{margin:0;line-height:1.55}.spr-published-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.spr-published-notes>div{padding:15px;border-radius:15px;background:#f7faff}.spr-published-notes p{margin:0;line-height:1.55}.spr-published-notes .parent-note{grid-column:1/-1;border-left:4px solid #1768db;background:#eef6ff}.spr-report-grid .spr-published-material{grid-template-columns:1fr;padding:10px}.spr-report-grid .spr-published-material .wide{grid-column:auto}.spr-report-grid .spr-published-material-list{margin-top:6px}
@media(max-width:760px){.spr-published-books,.spr-published-material,.spr-published-notes{grid-template-columns:1fr}.spr-published-material .wide,.spr-published-notes .parent-note{grid-column:auto}}
.spr-position-meta{margin-top:3px;color:#1768db;font-size:.82rem;font-weight:800}

/* Login V224 — one-screen official Sempoa SIP welcome. */
.login-page-v224{box-sizing:border-box;height:100dvh;min-height:0;padding:clamp(14px,3vh,28px);overflow:hidden;background:linear-gradient(155deg,#c9f0ff 0 18%,#fffaf0 18.2% 78%,#d9f7c7 78.2% 100%)}
.login-page-v224 *{box-sizing:border-box}
.login-page-v224::before{top:-9vw;left:-8vw;width:28vw;height:28vw;border:0;background:rgba(255,255,255,.72);filter:none}
.login-page-v224::after{right:-7vw;bottom:-12vw;width:31vw;height:31vw;border:0;background:rgba(113,210,105,.34);filter:none}
.login-page-v224 .login-shell{grid-template-columns:minmax(0,1.08fr) minmax(350px,.92fr);width:min(1040px,100%);height:min(720px,calc(100dvh - clamp(28px,6vh,56px)));min-height:0;border:5px solid rgba(255,255,255,.88);border-radius:34px;background:#fffaf0;box-shadow:0 22px 70px rgba(34,74,108,.2)}
.login-page-v224 .login-story{align-items:center;justify-content:flex-start;padding:24px 30px 0;background:radial-gradient(circle at 82% 20%,#b9ebff 0 17%,transparent 17.3%),linear-gradient(180deg,#fffaf0 0 76%,#b9ee9a 76.3% 100%);text-align:center}
.login-page-v224 .login-story::before{right:-7%;bottom:-20%;width:58%;height:39%;border:0;border-radius:50% 50% 0 0;background:#78da70;opacity:.82}
.login-page-v224 .login-logo{z-index:4;width:clamp(154px,23vw,226px);height:auto;max-height:132px;padding:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain}
.login-page-v224 .login-location{z-index:4;margin:0;color:#102f63;background:transparent;padding:0;font-size:clamp(10px,1.1vw,13px);letter-spacing:.13em}
.login-page-v224 .login-story-copy{z-index:4;width:100%;margin:8px 0 0;padding:0}
.login-page-v224 .login-story h1{max-width:none;margin:0;color:#082e6a;font-size:clamp(37px,4.1vw,53px);line-height:.96;text-wrap:balance}
.login-page-v224 .login-story-copy p{max-width:none;margin:8px 0 0;color:#173968;font-size:clamp(13px,1.45vw,17px);font-weight:800;line-height:1.2}
.login-page-v224 .login-characters{position:absolute;z-index:3;right:50%;bottom:-4px;width:min(59%,330px);height:auto;max-height:47%;object-fit:contain;object-position:center bottom;transform:translateX(50%);filter:drop-shadow(0 9px 12px rgba(60,72,41,.13))}
.login-cloud{position:absolute;z-index:1;width:92px;height:33px;border-radius:99px;background:rgba(255,255,255,.86)}
.login-cloud::before,.login-cloud::after{position:absolute;bottom:0;border-radius:50%;background:inherit;content:''}.login-cloud::before{left:13px;width:42px;height:42px}.login-cloud::after{right:12px;width:53px;height:53px}
.login-cloud-one{top:19%;left:-22px;transform:scale(.85)}.login-cloud-two{top:31%;right:-28px;transform:scale(.65)}
.login-star{position:absolute;z-index:2;width:24px;height:24px;background:#ffc62f;clip-path:polygon(50% 0,61% 35%,98% 36%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 36%,39% 35%)}
.login-star-one{top:28%;left:10%}.login-star-two{top:18%;right:13%;width:17px;height:17px}
.login-page-v224 .login-card.login-form-card{justify-content:center;padding:clamp(28px,4.2vw,54px);background:#fff}
.login-page-v224 .login-form-card h2{margin:0 0 6px;color:#082e6a;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(29px,3vw,38px);line-height:1.1;text-align:center}
.login-page-v224 .login-form-card .flash{margin:8px 0 0;padding:9px 12px;border-radius:12px;font-size:12px;line-height:1.25}
.login-page-v224 .login-form{display:grid;gap:13px;margin-top:10px}
.login-page-v224 .login-form label{display:grid;gap:6px;margin:0;color:#102f63}
.login-page-v224 .login-form label>span:first-child{font-size:14px;font-weight:900}
.login-input-wrap{position:relative;display:block;min-width:0}
.login-input-wrap>svg{position:absolute;z-index:2;top:50%;left:15px;width:23px;height:23px;fill:none;stroke:#61708c;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform:translateY(-50%);pointer-events:none}
.login-page-v224 .login-form input{width:100%;height:52px;padding:0 48px;border:2px solid #d9deea;border-radius:14px;background:#fff;font-size:14px;color:#17355d}
.login-page-v224 .login-form input::placeholder{color:#8c98af;opacity:1}
.login-page-v224 .login-password input{padding-right:52px}
.login-page-v224 .login-password button{top:50%;right:5px;display:grid;width:44px;height:44px;min-height:44px;padding:0;place-items:center;border-radius:11px;background:transparent;color:#61708c;transform:translateY(-50%)}
.login-page-v224 .login-password button:hover,.login-page-v224 .login-password button:focus-visible{background:#eef6ff;color:#1768db}
.login-page-v224 .login-password button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.login-page-v224 .login-password .eye-closed,.login-page-v224 .login-password button.is-visible .eye-open{display:none}.login-page-v224 .login-password button.is-visible .eye-closed{display:block}
.login-page-v224 .login-submit{min-height:50px;margin-top:2px;border:0;border-radius:15px;background:linear-gradient(135deg,#ff7a10,#ff9d1c);box-shadow:0 8px 18px rgba(235,106,7,.22);font-size:17px;font-weight:900}
.login-page-v224 .login-submit:hover{transform:none;box-shadow:0 8px 18px rgba(235,106,7,.22)}
.login-page-v224 .login-submit:disabled{cursor:wait;opacity:.72}
.login-admin-link{align-self:center;margin-top:15px;color:#1768db;font-size:13px;font-weight:850;text-align:center;text-decoration:none}.login-admin-link:hover{text-decoration:underline}
.login-page-v224 .login-footer{margin:19px 0 0;color:#465e82;font-size:11px;font-weight:750}

@media(max-width:820px){
  .login-page-v224{display:block;padding:0}
  .login-page-v224 .login-shell{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,44%) minmax(0,56%);width:100%;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none}
  .login-page-v224 .login-story{min-height:0;padding:calc(8px + env(safe-area-inset-top)) 16px 0;border-radius:0;background:radial-gradient(circle at 92% 20%,#c6efff 0 22%,transparent 22.4%),linear-gradient(180deg,#fffaf0 0 76%,#b9ee9a 76.3% 100%)}
  .login-page-v224 .login-logo{width:clamp(112px,31vw,144px);max-width:none;max-height:85px}
  .login-page-v224 .login-location{font-size:9px}
  .login-page-v224 .login-story-copy{margin-top:5px}
  .login-page-v224 .login-story h1{font-size:clamp(27px,8vw,35px);line-height:.94}
  .login-page-v224 .login-story-copy p{margin-top:5px;font-size:clamp(11px,3.2vw,14px)}
  .login-page-v224 .login-characters{width:min(54%,225px);max-height:45%;bottom:-2px}
  .login-cloud-one{top:25%;left:-37px;transform:scale(.65)}.login-cloud-two{top:35%;right:-38px;transform:scale(.5)}
  .login-star-one{top:42%;left:9%;width:18px;height:18px}.login-star-two{top:28%;right:10%;width:14px;height:14px}
  .login-page-v224 .login-card.login-form-card{min-height:0;padding:15px clamp(18px,7vw,32px) calc(9px + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}
  .login-page-v224 .login-form-card h2{font-size:clamp(25px,7vw,31px)}
  .login-page-v224 .login-form{gap:10px;margin-top:7px}
  .login-page-v224 .login-form label{gap:5px}
  .login-page-v224 .login-form label>span:first-child{font-size:13px}
  .login-page-v224 .login-form input{height:50px}
  .login-page-v224 .login-submit{min-height:50px}
  .login-admin-link{margin-top:10px;font-size:12px}
  .login-page-v224 .login-footer{margin-top:10px}
}
@media(max-width:820px) and (max-height:650px){
  .login-page-v224 .login-shell{grid-template-rows:minmax(0,34%) minmax(0,66%)}
  .login-page-v224 .login-story{padding-top:calc(3px + env(safe-area-inset-top))}
  .login-page-v224 .login-logo{width:104px;max-height:59px}
  .login-page-v224 .login-location{font-size:7px;line-height:1}
  .login-page-v224 .login-story-copy{margin-top:2px}
  .login-page-v224 .login-story h1{font-size:25px;line-height:.9}
  .login-page-v224 .login-story-copy p{margin-top:3px;font-size:10px}
  .login-page-v224 .login-characters{width:145px;max-height:43%}
  .login-page-v224 .login-card.login-form-card{justify-content:flex-start;padding-top:9px;padding-bottom:6px}
  .login-page-v224 .login-form-card h2{font-size:24px}
  .login-page-v224 .login-form{gap:7px;margin-top:4px}
  .login-page-v224 .login-form label{gap:3px}
  .login-page-v224 .login-form label>span:first-child{font-size:12px;line-height:1.15}
  .login-page-v224 .login-form input{height:48px}
  .login-page-v224 .login-submit{min-height:48px}
  .login-admin-link{margin-top:7px;font-size:11px}
  .login-page-v224 .login-footer{margin-top:6px;font-size:10px}
}
@media(min-width:821px) and (max-width:1024px){.login-page-v224 .login-shell{grid-template-columns:1.03fr .97fr}.login-page-v224 .login-card.login-form-card{padding:34px}.login-page-v224 .login-characters{width:64%}}
@media(prefers-reduced-motion:reduce){.login-page-v224 *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Login V225 — portrait composition matched to the approved classic illustration. */
.login-page-v225{display:grid;box-sizing:border-box;width:100%;height:calc(100dvh - 24px);min-height:0;padding:0;place-items:center;overflow:hidden;background:radial-gradient(circle at 12% 18%,rgba(255,213,75,.22),transparent 18%),radial-gradient(circle at 88% 82%,rgba(157,121,233,.14),transparent 21%),#dff5ff}
.login-page-v225 *{box-sizing:border-box}
.login-page-v225::before,.login-page-v225::after{display:none}
.login-page-v225 .login-shell{position:relative;display:block;width:min(560px,100%);height:min(920px,calc(100dvh - 24px));min-height:0;overflow:hidden;border:0;border-radius:0;background:#fffaf0;box-shadow:0 18px 60px rgba(28,72,111,.18)}
.login-page-v225 .login-story{position:absolute;z-index:1;inset:0 0 auto;display:block;width:100%;height:52%;min-height:0;padding:0;overflow:hidden;border-radius:0;background:radial-gradient(ellipse at 50% -10%,#fffaf0 0 60%,transparent 60.4%),linear-gradient(180deg,#bcecff 0 69%,#a9e779 69.3% 100%);text-align:center}
.login-page-v225 .login-story::before{position:absolute;right:-15%;bottom:-17%;width:72%;height:34%;border:0;border-radius:50% 50% 0 0;background:#79d966;content:'';opacity:1}
.login-page-v225 .login-story::after{position:absolute;bottom:-21%;left:-17%;width:78%;height:38%;border-radius:50% 50% 0 0;background:#a9ec72;content:''}
.login-page-v225 .login-logo{position:absolute;z-index:7;top:calc(4px + env(safe-area-inset-top));left:50%;display:block;width:48%;height:auto;max-height:none;padding:0;border-radius:0;background:transparent;box-shadow:none;object-fit:contain;transform:translateX(-50%)}
.login-page-v225 .login-story-copy{position:absolute;z-index:7;top:clamp(116px,15dvh,138px);left:4%;width:92%;max-width:none;margin:0;padding:0}
.login-page-v225 .login-story h1{max-width:none;margin:0;color:#082e6a;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(35px,9.5vw,45px);font-weight:900;line-height:.91;letter-spacing:-.025em;text-wrap:balance}
.login-page-v225 .login-story-copy p{max-width:none;margin:9px 0 0;color:#173968;font-size:clamp(14px,3.7vw,17px);font-weight:800;line-height:1.15}
.login-page-v225 .login-characters{position:absolute;z-index:6;right:50%;bottom:12px;width:96%;height:auto;max-height:42%;object-fit:contain;object-position:center bottom;transform:translateX(50%);filter:drop-shadow(0 8px 7px rgba(60,73,38,.16))}
.login-page-v225 .login-cloud{position:absolute;z-index:2;width:100px;height:34px;border-radius:99px;background:rgba(255,255,255,.9)}
.login-page-v225 .login-cloud::before,.login-page-v225 .login-cloud::after{position:absolute;bottom:0;border-radius:50%;background:inherit;content:''}.login-page-v225 .login-cloud::before{left:14px;width:42px;height:42px}.login-page-v225 .login-cloud::after{right:10px;width:58px;height:58px}
.login-page-v225 .login-cloud-one{top:16%;left:-45px;transform:scale(.8)}.login-page-v225 .login-cloud-two{top:25%;right:-39px;transform:scale(.7)}
.login-page-v225 .login-star{position:absolute;z-index:3;width:25px;height:25px;background:#ffc52d;clip-path:polygon(50% 0,61% 35%,98% 36%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 36%,39% 35%)}
.login-page-v225 .login-star-one{top:27%;left:8%}.login-page-v225 .login-star-two{top:19%;right:10%;width:18px;height:18px}
.login-house{position:absolute;z-index:3;bottom:63px;width:62px;height:58px;border-radius:22px 22px 7px 7px;background:#ffb8ce;box-shadow:inset 0 -8px rgba(255,255,255,.2)}
.login-house::before{position:absolute;top:-22px;left:-7px;width:76px;height:38px;border-radius:50% 50% 12px 12px;background:#ff9452;content:''}.login-house::after{position:absolute;bottom:0;left:22px;width:20px;height:32px;border-radius:11px 11px 0 0;background:#bfefff;content:''}
.login-house-left{left:-12px;transform:scale(.85)}.login-house-right{right:-11px;background:#dfb6f5;transform:scale(.92)}.login-house-right::before{background:#8c65dc}
.login-garden{position:absolute;z-index:4;right:0;bottom:17px;left:0;height:70px;background:radial-gradient(circle at 5% 56%,#fff 0 4px,#ffdc39 4.5px 6px,transparent 6.5px),radial-gradient(circle at 93% 38%,#fff 0 4px,#ffdc39 4.5px 6px,transparent 6.5px),radial-gradient(ellipse at 13% 100%,#49c46b 0 16%,transparent 16.5%),radial-gradient(ellipse at 88% 100%,#3bb963 0 17%,transparent 17.5%);pointer-events:none}
.login-page-v225 .login-card.login-form-card{position:absolute;z-index:10;top:48.5%;left:4%;display:flex;width:92%;height:44%;min-width:0;min-height:0;justify-content:center;margin:0;padding:clamp(17px,4.8vw,27px);overflow:visible;border:1px solid rgba(228,232,240,.9);border-radius:27px;background:rgba(255,255,255,.98);box-shadow:0 14px 34px rgba(37,69,104,.15)}
.login-page-v225 .login-form-card h2{margin:0 0 7px;color:#082e6a;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(29px,8vw,36px);line-height:1.08;text-align:center}
.login-page-v225 .login-form-card .flash{margin:0 0 5px;padding:7px 11px;border-radius:11px;font-size:12px;line-height:1.2}
.login-page-v225 .login-form{display:grid;gap:9px;width:100%;margin:0}
.login-page-v225 .login-form label{display:grid;gap:5px;margin:0;color:#102f63}
.login-page-v225 .login-form label>span:first-child{font-size:clamp(14px,3.8vw,16px);font-weight:900;line-height:1.1}
.login-page-v225 .login-input-wrap{position:relative;display:block;width:100%;min-width:0}
.login-page-v225 .login-input-wrap>svg{position:absolute;z-index:2;top:50%;left:15px;width:25px;height:25px;fill:none;stroke:#64728d;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform:translateY(-50%);pointer-events:none}
.login-page-v225 .login-form input{display:block;width:100%;height:54px;padding:0 48px;border:2px solid #d8deea;border-radius:14px;background:#fff;color:#17355d;font-size:clamp(14px,3.8vw,16px);font-weight:700}
.login-page-v225 .login-form input::placeholder{color:#8995aa;opacity:1;font-weight:650}
.login-page-v225 .login-form input:focus{border-color:#2a8dea;background:#fff;box-shadow:0 0 0 4px rgba(42,141,234,.11);outline:0}
.login-page-v225 .login-password input{padding-right:54px}
.login-page-v225 .login-password button{position:absolute;z-index:3;top:50%;right:5px;display:grid;width:44px;height:44px;min-height:44px;padding:0;place-items:center;border:0;border-radius:11px;background:transparent;color:#64728d;transform:translateY(-50%);cursor:pointer}
.login-page-v225 .login-password button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.login-page-v225 .login-password .eye-closed,.login-page-v225 .login-password button.is-visible .eye-open{display:none}.login-page-v225 .login-password button.is-visible .eye-closed{display:block}
.login-page-v225 .login-submit{min-height:54px;margin-top:3px;border:0;border-radius:16px;background:linear-gradient(135deg,#ff7610,#ff9818);box-shadow:0 8px 18px rgba(234,104,9,.24);font-size:18px;font-weight:900}
.login-page-v225 .login-submit:hover{transform:none;box-shadow:0 8px 18px rgba(234,104,9,.24)}.login-page-v225 .login-submit:disabled{cursor:wait;opacity:.72}
.login-page-v225 .login-admin-link{align-self:center;margin-top:14px;color:#1768db;font-size:clamp(13px,3.6vw,15px);font-weight:850;line-height:1.2;text-align:center;text-decoration:none}
.login-page-v225 .login-footer{position:absolute;z-index:12;right:0;bottom:calc(10px + env(safe-area-inset-bottom));left:0;margin:0;color:#40597e;font-size:12px;font-weight:750;line-height:1.2;text-align:center}

@media(max-width:820px){.login-page-v225{height:100dvh}.login-page-v225 .login-shell{height:100dvh}}

@media(max-width:820px) and (max-height:650px){
  .login-page-v225 .login-story{height:42%}
  .login-page-v225 .login-logo{top:calc(1px + env(safe-area-inset-top));width:106px}
  .login-page-v225 .login-story-copy{top:61px}
  .login-page-v225 .login-story h1{font-size:25px;line-height:.9}
  .login-page-v225 .login-story-copy p{margin-top:3px;font-size:10px}
  .login-page-v225 .login-characters{bottom:2px;width:235px;max-height:43%}
  .login-page-v225 .login-star,.login-page-v225 .login-cloud-two,.login-page-v225 .login-house{display:none}
  .login-page-v225 .login-cloud-one{top:19%;transform:scale(.52)}
  .login-page-v225 .login-card.login-form-card{top:39%;height:54%;justify-content:flex-start;padding:11px 16px;border-radius:23px}
  .login-page-v225 .login-form-card h2{margin-bottom:3px;font-size:24px}
  .login-page-v225 .login-form-card .flash{margin-bottom:2px;padding:5px 9px;font-size:10px}
  .login-page-v225 .login-form{gap:6px}
  .login-page-v225 .login-form label{gap:3px}
  .login-page-v225 .login-form label>span:first-child{font-size:12px}
  .login-page-v225 .login-form input{height:48px;font-size:13px}
  .login-page-v225 .login-submit{min-height:48px;margin-top:1px;font-size:16px}
  .login-page-v225 .login-admin-link{margin-top:6px;font-size:11px}
  .login-page-v225 .login-footer{bottom:5px;font-size:10px}
}
@media(min-width:821px){.login-page-v225{height:100dvh;padding:0}.login-page-v225 .login-shell{border-radius:32px}.login-page-v225 .login-story h1{font-size:45px}.login-page-v225 .login-form label>span:first-child,.login-page-v225 .login-form input{font-size:16px}}
@media(prefers-reduced-motion:reduce){.login-page-v225 *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Sempoa SIP Tlogosari login — colorful, child-friendly, and responsive. */
.login-page{position:relative;display:grid;min-height:100dvh;place-items:center;padding:clamp(18px,4vw,48px);overflow-x:hidden;background:radial-gradient(circle at 8% 9%,#ffe477 0 7%,transparent 7.2%),radial-gradient(circle at 92% 15%,#c8f0ff 0 10%,transparent 10.2%),radial-gradient(circle at 88% 88%,#e5d7ff 0 13%,transparent 13.2%),linear-gradient(145deg,#fff8df 0,#eef9ff 53%,#fff0f6 100%)}.login-page::before,.login-page::after{position:fixed;z-index:0;border-radius:50%;content:'';filter:blur(1px);pointer-events:none}.login-page::before{top:-90px;left:-70px;width:250px;height:250px;border:34px solid rgba(255,151,42,.13)}.login-page::after{right:-70px;bottom:-100px;width:280px;height:280px;border:42px solid rgba(117,71,223,.1)}.login-shell{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);width:min(1080px,100%);min-height:650px;overflow:hidden;border:8px solid rgba(255,255,255,.92);border-radius:38px;background:#fff;box-shadow:0 30px 90px rgba(35,62,105,.2)}.login-story{position:relative;display:flex;min-width:0;flex-direction:column;padding:38px 42px;overflow:hidden;background:radial-gradient(circle at 88% 10%,rgba(255,255,255,.82) 0 6px,transparent 7px),radial-gradient(circle at 82% 16%,rgba(255,255,255,.7) 0 4px,transparent 5px),linear-gradient(145deg,#ffe66e 0,#ffb23f 42%,#ff805c 100%)}.login-story::before{position:absolute;right:-75px;bottom:-92px;width:310px;height:310px;border:45px solid rgba(255,255,255,.16);border-radius:50%;content:''}.login-logo{position:relative;z-index:2;display:block;width:min(330px,76%);height:auto;padding:11px 17px;border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 12px 25px rgba(143,65,18,.14);object-fit:contain}.login-story-copy{position:relative;z-index:2;max-width:510px;margin-top:auto;padding-bottom:116px}.login-location{display:inline-flex;padding:7px 11px;border-radius:999px;background:#7a3be2;color:#fff;font-size:11px;font-weight:950;letter-spacing:.09em}.login-story h1{max-width:480px;margin:15px 0 10px;color:#17355d;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:clamp(36px,4.3vw,54px);line-height:1.02;letter-spacing:-.02em}.login-story p{max-width:470px;margin:0;color:#503f46;font-size:16px;font-weight:750;line-height:1.55}.login-role-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.login-role-chips span{padding:8px 11px;border:2px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(255,255,255,.78);color:#234365;font-size:12px;font-weight:900}.login-sun{position:absolute;z-index:1;right:-14px;bottom:-22px;width:205px;height:205px;object-fit:contain;filter:drop-shadow(0 12px 18px rgba(123,74,22,.16))}.login-spark{position:absolute;z-index:1;color:#fff;text-shadow:0 5px 15px rgba(100,49,20,.15)}.spark-one{top:190px;right:56px;font-size:32px;transform:rotate(16deg)}.spark-two{top:250px;right:112px;font-size:21px}.login-abacus{position:absolute;z-index:2;bottom:35px;left:42px;width:245px;padding:12px 16px;border:6px solid #7547df;border-radius:20px;background:rgba(255,255,255,.86);box-shadow:0 10px 0 rgba(76,45,143,.18);transform:rotate(-2deg)}.login-abacus i{position:relative;display:block;height:5px;margin:12px 0;border-radius:99px;background:#936d55}.login-abacus i::before{position:absolute;top:50%;left:12%;width:25px;height:17px;border:2px solid rgba(117,58,23,.18);border-radius:8px;background:#ff6656;box-shadow:29px 0 #ff6656,91px 0 #29a7ef,120px 0 #29a7ef,149px 0 #29a7ef;content:'';transform:translateY(-50%)}.login-abacus i:nth-child(2)::before{left:27%;background:#ffc429;box-shadow:29px 0 #ffc429,58px 0 #ffc429,116px 0 #36c789}.login-abacus i:nth-child(3)::before{left:8%;background:#45c986;box-shadow:29px 0 #45c986,58px 0 #45c986,116px 0 #8a58e8,145px 0 #8a58e8}.login-abacus i:nth-child(4)::before{left:34%;background:#2ea8ef;box-shadow:29px 0 #2ea8ef,58px 0 #ff7cac}.login-card.login-form-card{display:flex;width:auto;min-width:0;flex-direction:column;justify-content:center;margin:0;padding:clamp(34px,5vw,64px);border:0;border-radius:0;background:#fff;box-shadow:none}.login-form-heading{display:flex;align-items:center;gap:13px}.login-wave{display:grid;width:52px;height:52px;flex:0 0 52px;place-items:center;border-radius:17px;background:#fff1b9;font-size:27px;transform:rotate(-4deg)}.login-form-heading .eyebrow{margin-bottom:3px}.login-form-heading h2{margin:0;color:#17355d;font-family:SempoaComic,"Comic Sans MS",system-ui,sans-serif;font-size:34px;line-height:1.05}.login-intro{margin:13px 0 8px;color:#64748b}.login-form label{gap:8px;margin-top:18px;color:#294565}.login-form label>span:first-child{font-size:13px;font-weight:900}.login-form input{height:54px;padding:0 15px;border:2px solid #dce8f4;border-radius:16px;background:#f9fcff;font-size:15px;transition:border-color .18s,box-shadow .18s,background .18s}.login-form input:focus{border-color:#2a8dea;background:#fff;box-shadow:0 0 0 5px rgba(42,141,234,.12);outline:0}.login-password{position:relative;display:block}.login-password input{padding-right:72px}.login-password button{position:absolute;top:7px;right:7px;min-height:40px;padding:0 12px;border:0;border-radius:11px;background:#e9f3ff;color:#1768db;font-size:12px;font-weight:900;cursor:pointer}.login-submit{min-height:56px;margin-top:23px;border-radius:17px;background:linear-gradient(135deg,#f57b22,#ffad2e);box-shadow:0 8px 0 #ce5d13,0 14px 25px rgba(239,105,24,.2);font-size:16px}.login-submit:hover{transform:translateY(1px);box-shadow:0 7px 0 #ce5d13,0 12px 22px rgba(239,105,24,.18)}.login-submit b{font-size:23px;line-height:1}.login-help{display:flex;align-items:center;gap:11px;margin-top:26px;padding:12px 14px;border-radius:16px;background:#f0f8ff;color:#536c88}.login-help>span{font-size:22px}.login-help p,.login-help strong,.login-help small{display:block;margin:0}.login-help strong{color:#234365;font-size:12px}.login-help small{margin-top:2px;font-size:10px;line-height:1.35}.login-footer{margin:24px 0 0;color:#8b99aa;font-size:10px;font-weight:850;text-align:center}.login-form-card .flash{margin:14px 0 0}.password-change-page .login-card{border-radius:28px}.password-change-page .login-card h1{margin-top:12px}
@media(max-width:820px){.login-page{display:block;padding:0;background:#fff}.login-shell{display:block;width:100%;min-height:100dvh;border:0;border-radius:0;box-shadow:none}.login-story{min-height:300px;padding:22px 22px 25px;border-radius:0 0 34px 34px}.login-logo{width:245px;max-width:74%;padding:7px 11px;border-radius:18px}.login-story-copy{margin-top:26px;padding:0 112px 0 0}.login-location{padding:5px 8px;font-size:8px}.login-story h1{margin:10px 0 7px;font-size:31px}.login-story p{font-size:13px;line-height:1.4}.login-role-chips{gap:5px;margin-top:11px}.login-role-chips span{padding:5px 7px;font-size:9px}.login-sun{right:-16px;bottom:-11px;width:142px;height:142px}.login-abacus{display:none}.spark-one{top:105px;right:36px;font-size:24px}.spark-two{display:none}.login-card.login-form-card{padding:28px 22px calc(30px + env(safe-area-inset-bottom))}.login-form-heading h2{font-size:29px}.login-intro{font-size:14px}.login-help{margin-top:23px}}
@media(max-width:390px){.login-story{min-height:280px}.login-logo{width:218px}.login-story-copy{padding-right:78px}.login-story h1{font-size:27px}.login-story p{font-size:12px}.login-role-chips span:nth-child(3){display:none}.login-sun{right:-29px;width:126px;height:126px}.login-card.login-form-card{padding:24px 18px 28px}.login-form-heading h2{font-size:27px}.login-form input{height:51px}}

/* Keep the V225 portrait shell isolated from legacy login spacing. */
.login-page.login-page-v225{display:grid;height:100dvh;min-height:0;padding:0;overflow:hidden;background:radial-gradient(circle at 12% 18%,rgba(255,213,75,.22),transparent 18%),radial-gradient(circle at 88% 82%,rgba(157,121,233,.14),transparent 21%),#dff5ff}

/* Login V226 — exact classic reference artwork with a real interactive form. */
.login-page.login-page-v226{display:grid;width:100%;height:100dvh;min-height:0;padding:0;place-items:center;overflow:hidden;background:#dff4ff;font-family:Nunito,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.login-page-v226::before,.login-page-v226::after{display:none}
.login-page-v226 .login-shell{position:relative;isolation:isolate;display:block;width:min(460px,100%);height:100dvh;min-height:0;margin:0;padding:0;overflow:hidden;border:0;border-radius:0;background:#fff9ed;box-shadow:0 14px 50px rgba(24,67,105,.16)}
.login-reference-visual{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}
.login-reference-visual img{display:block;width:100%;height:auto;max-width:none;object-fit:contain;object-position:center top}
.login-page-v226 .login-card.login-form-card{position:absolute;z-index:3;top:min(492px,107vw);left:4.22%;display:flex;width:91.56%;height:min(406px,88.2vw);min-width:0;min-height:0;justify-content:center;margin:0;padding:clamp(17px,2.2vh,22px) clamp(18px,5vw,28px);overflow:visible;border:1px solid rgba(235,237,242,.95);border-radius:clamp(24px,6.5vw,29px);background:#fff;box-shadow:0 16px 42px rgba(25,68,107,.13)}
.login-page-v226 .login-form-card h2{margin:0 0 clamp(7px,1.15vh,10px);color:#0d3269;font-family:SempoaComic,"Comic Sans MS",Nunito,sans-serif;font-size:clamp(27px,3.8vh,32px);font-weight:900;line-height:1;text-align:center}
.login-page-v226 .login-form-card .flash{margin:0 0 4px;padding:6px 10px;border-radius:10px;font-size:11px;line-height:1.18}
.login-page-v226 .login-form{display:grid;gap:clamp(5px,.75vh,7px);width:100%;margin:0}
.login-page-v226 .login-form label{display:grid;gap:5px;margin:0;color:#0d3269;font-size:clamp(13px,1.8vh,16px);font-weight:900;line-height:1.05}
.login-page-v226 .login-input-wrap{position:relative;display:block;width:100%;min-width:0}
.login-page-v226 .login-input-wrap>svg{position:absolute;z-index:2;top:50%;left:15px;width:23px;height:23px;fill:none;stroke:#687a98;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform:translateY(-50%);pointer-events:none}
.login-page-v226 .login-form input{display:block;width:100%;height:clamp(50px,6.4vh,54px);padding:0 49px 0 47px;border:2px solid #dce3ee;border-radius:17px;outline:0;background:#fbfdff;color:#0d3269;font-size:clamp(14px,1.85vh,16px);font-weight:700;line-height:1}
.login-page-v226 .login-form input::placeholder{color:#8f9bb0;opacity:1;font-weight:600}
.login-page-v226 .login-form input:focus{border-color:#2d91ee;box-shadow:0 0 0 4px rgba(45,145,238,.13)}
.login-page-v226 .login-password input{padding-right:51px}
.login-page-v226 .login-password button{position:absolute;z-index:3;top:50%;right:5px;display:grid;width:44px;height:44px;min-height:44px;padding:0;place-items:center;border:0;border-radius:13px;background:transparent;color:#667f9f;transform:translateY(-50%);cursor:pointer}
.login-page-v226 .login-password button svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.login-page-v226 .login-password .eye-closed,.login-page-v226 .login-password button.is-visible .eye-open{display:none}.login-page-v226 .login-password button.is-visible .eye-closed{display:block}
.login-page-v226 .login-submit{width:100%;min-height:clamp(50px,6.4vh,54px);margin:2px 0 0;border:0;border-radius:17px;background:linear-gradient(100deg,#ff7413,#ff971c);box-shadow:0 8px 16px rgba(232,97,11,.2);color:#fff;font-size:clamp(17px,2.35vh,20px);font-weight:900;line-height:1;cursor:pointer}
.login-page-v226 .login-submit:hover{transform:none;box-shadow:0 8px 16px rgba(232,97,11,.2)}.login-page-v226 .login-submit:disabled{cursor:wait;opacity:.7}
.login-page-v226 .login-admin-link{display:grid;min-height:28px;margin:0;place-items:center;color:#1678dc;font-size:clamp(12px,1.65vh,14px);font-weight:850;line-height:1;text-align:center;text-decoration:none}
.login-page-v226 .login-footer{display:none}
.login-page-v226 .login-form-card:has(.flash){top:min(475px,103vw);height:min(430px,93vw);padding-top:14px;padding-bottom:14px}.login-page-v226 .login-form-card:has(.flash) .login-form{gap:4px}.login-page-v226 .login-form-card:has(.flash) .login-form input{height:50px}.login-page-v226 .login-form-card:has(.flash) .login-submit{min-height:50px}

@media(max-height:700px){
  .login-page-v226 .login-shell::after{position:absolute;z-index:1;inset:38% 0 0;display:block;background:#fff9ed;content:''}
  .login-page-v226 .login-card.login-form-card{top:40%;left:4%;width:92%;height:53%;justify-content:flex-start;padding:12px 16px;border-radius:22px}
  .login-page-v226 .login-form-card h2{margin-bottom:5px;font-size:23px}
  .login-page-v226 .login-form{gap:5px}
  .login-page-v226 .login-form label{gap:3px;font-size:12px}
  .login-page-v226 .login-form input{height:48px;border-radius:14px;font-size:13px}
  .login-page-v226 .login-submit{min-height:48px;border-radius:14px;font-size:16px}
  .login-page-v226 .login-admin-link{min-height:24px;font-size:11px}
  .login-page-v226 .login-footer{position:absolute;z-index:5;right:0;bottom:4px;left:0;display:block;margin:0;color:#40597e;font-size:10px;font-weight:800;text-align:center}
  .login-page-v226 .login-form-card:has(.flash){top:36%;height:57%}
}
@media(max-height:610px){.login-page-v226 .login-shell::after{inset:42% 0 0}.login-page-v226 .login-card.login-form-card{top:44%;height:49%;padding:8px 14px}.login-page-v226 .login-form-card h2{font-size:21px}.login-page-v226 .login-form input{height:44px}.login-page-v226 .login-submit{min-height:44px}.login-page-v226 .login-form-card:has(.flash){top:38%;height:55%}}
@media(min-width:720px){.login-page-v226 .login-shell{border-radius:30px}.login-page-v226 .login-card.login-form-card{left:4.22%;width:91.56%}}
@media(prefers-reduced-motion:reduce){.login-page-v226 *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.admin-monitor-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;margin-bottom:18px;border-radius:28px;color:#fff;background:linear-gradient(125deg,#1168d8 0%,#6950db 55%,#e34f9a 100%);box-shadow:0 18px 40px rgba(54,75,170,.2)}
.admin-monitor-hero h1{margin:3px 0 8px;font-size:clamp(28px,4vw,44px);line-height:1.05}.admin-monitor-hero p{margin:0;max-width:680px;color:rgba(255,255,255,.9)}.admin-monitor-hero .eyebrow{color:#ffe79b}.admin-monitor-hero .actions{display:flex;flex-wrap:wrap;justify-content:flex-end}.admin-monitor-hero .btn{background:#fff;color:#194e91;border-color:#fff}.admin-monitor-hero .btn.secondary{background:rgba(255,255,255,.14);color:#fff}
.admin-monitor-filter{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto auto auto;align-items:end;gap:12px;margin-bottom:18px}.admin-monitor-filter label{display:grid;gap:6px;font-weight:800;color:#294766}.admin-monitor-filter input,.admin-monitor-filter select{min-width:0}
.admin-monitor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.admin-monitor-card{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value" "text text" "link link";gap:2px 14px;min-height:170px;padding:22px;border:1px solid rgba(37,75,118,.1);border-radius:24px;color:#173957;text-decoration:none;overflow:hidden;box-shadow:0 10px 28px rgba(46,78,109,.09);transition:transform .16s ease,box-shadow .16s ease}.admin-monitor-card:hover,.admin-monitor-card:focus-visible{transform:translateY(-3px);box-shadow:0 16px 35px rgba(46,78,109,.15)}.admin-monitor-card>span{grid-area:icon;display:grid;place-items:center;width:52px;height:52px;border-radius:17px;background:rgba(255,255,255,.72);font-size:26px}.admin-monitor-card small{grid-area:label;font-weight:850;color:#47647c}.admin-monitor-card strong{grid-area:value;font-size:32px;line-height:1.05}.admin-monitor-card p{grid-area:text;margin:12px 0 4px;color:#506a7e}.admin-monitor-card b{grid-area:link;margin-top:auto;color:#155fc3}.admin-monitor-card.blue{background:linear-gradient(145deg,#eaf5ff,#f7fbff)}.admin-monitor-card.violet{background:linear-gradient(145deg,#f0ecff,#fbf9ff)}.admin-monitor-card.green{background:linear-gradient(145deg,#e8fbf3,#f7fffb)}.admin-monitor-card.orange{background:linear-gradient(145deg,#fff3df,#fffaf3)}.admin-monitor-card.pink{background:linear-gradient(145deg,#ffedf6,#fff9fc)}.admin-monitor-card.teal{background:linear-gradient(145deg,#e4fafa,#f7ffff)}
.admin-monitor-section{padding:24px;margin-bottom:18px;border:1px solid #dfebf4;border-radius:26px;background:#fff;box-shadow:0 10px 28px rgba(46,78,109,.07)}.admin-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-action-grid>a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:16px;border:1px solid #e1eaf2;border-radius:18px;color:#183b59;text-decoration:none;background:#fbfdff}.admin-action-grid>a:hover{border-color:#86b8ee;background:#f5faff}.admin-action-grid p{margin:3px 0 0;color:#647b8e}.alert-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:14px;font-size:21px;font-weight:900}.alert-icon.red{background:#ffeaec;color:#c73548}.alert-icon.orange{background:#fff0da;color:#b96b00}.alert-icon.violet{background:#efe9ff;color:#6744c8}.alert-icon.blue{background:#e4f2ff;color:#1767bd}
.admin-coach-monitor{margin-bottom:18px}.admin-coach-table td{vertical-align:middle}.admin-coach-table td>strong,.admin-coach-table td>b,.admin-coach-table td>small{display:block}.admin-coach-table td small{margin-top:4px;color:#708497}.admin-coach-table tr.selected td{background:#edf8ff}.admin-coach-mobile{display:none}.admin-quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.admin-quick-actions>a{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:17px;border:1px solid #dce8f2;border-radius:19px;background:#fff;color:#183b59;text-decoration:none}.admin-quick-actions>a:hover{border-color:#5ba4e9}.admin-quick-actions span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#e9f4ff;color:#1767bd;font-size:22px}.admin-quick-actions strong,.admin-quick-actions small{display:block}.admin-quick-actions small{color:#6c8295}
@media(max-width:1050px){.admin-monitor-filter{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.admin-monitor-hero{display:block;padding:23px 20px;border-radius:22px}.admin-monitor-hero .actions{justify-content:flex-start;margin-top:18px}.admin-monitor-filter{grid-template-columns:1fr 1fr;padding:17px}.admin-monitor-filter label:nth-child(3),.admin-monitor-filter .btn{grid-column:1/-1}.admin-monitor-filter>a{min-width:0;padding-inline:10px}.admin-monitor-grid{grid-template-columns:1fr;gap:12px}.admin-monitor-card{min-height:145px;padding:18px}.admin-action-grid{grid-template-columns:1fr}.admin-monitor-section{padding:18px}.admin-coach-monitor .schedule-wrap{display:none}.admin-coach-mobile{display:grid;gap:12px}.admin-coach-mobile article{padding:16px;border:1px solid #dce8f2;border-radius:18px;background:#fbfdff}.admin-coach-mobile header{display:flex;justify-content:space-between;gap:12px;align-items:start}.admin-coach-mobile header strong,.admin-coach-mobile header small{display:block}.admin-coach-mobile header small{margin-top:3px;color:#6b8193}.admin-coach-mobile article>div{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.admin-coach-mobile article>div span{padding:10px;border-radius:12px;background:#eef6fc}.admin-coach-mobile article>div small,.admin-coach-mobile article>div b{display:block}.admin-coach-mobile article>div small{color:#6e8395}.admin-coach-mobile .full{width:100%;text-align:center}.admin-quick-actions{grid-template-columns:1fr}.admin-monitor-section .panel-head{align-items:flex-start}}

/* Scalable assignment reporting: filters + compact paginated rows. */
.assignment-report-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.assignment-report-summary article{padding:17px 19px;border:1px solid #dbe8f4;border-radius:18px;background:linear-gradient(145deg,#fff,#f3f8ff);box-shadow:0 8px 22px rgba(31,71,115,.07)}.assignment-report-summary small,.assignment-report-summary strong{display:block}.assignment-report-summary small{color:#698096;font-weight:800}.assignment-report-summary strong{margin-top:6px;color:#173b62;font-size:29px}.assignment-report-filter form{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));align-items:end;gap:10px}.assignment-report-filter label{margin:0}.assignment-report-filter-actions{display:flex;gap:7px;grid-column:1/-1;justify-content:flex-end}.assignment-report-list{max-width:1180px}.assignment-month-label{margin:18px 0 8px;padding:7px 11px;border-radius:10px;background:#edf5fd;color:#3f6384;font-size:13px}.assignment-report-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid #e0e9f1}.assignment-report-row:last-of-type{border-bottom:0}.assignment-report-main{min-width:0}.assignment-report-main>small,.assignment-report-main>strong{display:block}.assignment-report-main>small{color:#718599;font-weight:750}.assignment-report-main>strong{margin-top:2px;color:#173b62;font-size:16px}.assignment-report-main>strong em{color:#58718a;font-style:normal;font-weight:750}.assignment-report-main>p{margin:3px 0;color:#61768a;font-size:12px}.assignment-compact-dates{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:7px;color:#718398;font-size:10px}.assignment-compact-dates b{color:#375777}.assignment-report-progress{display:grid;grid-template-columns:70px 70px auto auto;align-items:center;gap:9px}.assignment-report-progress>span:not(.badge){text-align:center}.assignment-report-progress b,.assignment-report-progress small{display:block}.assignment-report-progress b{color:#173b62;font-size:18px}.assignment-report-progress small{color:#718599}.assignment-pagination{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:20px}.assignment-pagination span{font-weight:850;color:#57718a}
.assignment-target-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:13px;margin-bottom:17px}.assignment-target-overview>article{display:grid;grid-template-columns:1fr auto auto;gap:10px 14px;padding:18px;border:1px solid #dce7f1;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(27,62,103,.07)}.assignment-target-overview>article>div:first-child{min-width:0}.assignment-target-overview>article>div:first-child strong,.assignment-target-overview>article>div:first-child a{display:block}.assignment-target-overview>article>div:first-child a{margin-top:3px;color:#1768db;font-size:12px;font-weight:800}.assignment-target-overview>article>span{text-align:center}.assignment-target-overview>article>span small,.assignment-target-overview>article>span b{display:block}.assignment-target-overview>article>span small{color:#718599;font-size:10px}.assignment-target-overview>article>span b{margin-top:3px;color:#173b62;font-size:22px}.assignment-target-overview .assignment-report-dates{grid-column:1/-1;margin:0}.assignment-attempt-table-wrap{max-width:100%;overflow-x:auto!important}.assignment-attempt-table{min-width:850px}.assignment-attempt-mobile{display:none}
@media(max-width:1050px){.assignment-report-filter form{grid-template-columns:repeat(3,minmax(0,1fr))}.assignment-report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-report-row{align-items:start}.assignment-report-progress{grid-template-columns:60px 60px;justify-items:stretch}.assignment-report-progress .badge,.assignment-report-progress .btn{grid-column:auto}.assignment-report-progress .btn{white-space:nowrap}}
@media(max-width:680px){.assignment-report-head .btn{width:100%}.assignment-report-summary{gap:8px}.assignment-report-summary article{padding:13px}.assignment-report-summary strong{font-size:24px}.assignment-report-filter{padding:13px}.assignment-report-filter form{grid-template-columns:1fr 1fr;gap:8px}.assignment-report-filter label:nth-of-type(n+3){grid-column:1/-1}.assignment-report-filter-actions{display:grid;grid-template-columns:1fr 1fr}.assignment-report-list{padding:14px}.assignment-report-row{grid-template-columns:auto minmax(0,1fr);gap:10px;padding:14px 0}.assignment-report-row .result-operation{width:44px;height:44px;flex-basis:44px;border-radius:13px;font-size:21px}.assignment-report-progress{grid-column:1/-1;grid-template-columns:1fr 1fr auto;gap:7px;padding-left:54px}.assignment-report-progress .btn{grid-column:1/-1;width:100%}.assignment-compact-dates{display:grid;gap:4px}.assignment-pagination{display:grid;grid-template-columns:1fr 1fr}.assignment-pagination span{grid-column:1/-1;grid-row:1;text-align:center}.assignment-target-overview{grid-template-columns:1fr}.assignment-target-overview>article{grid-template-columns:minmax(0,1fr) auto auto;padding:15px}.assignment-attempt-table-wrap{display:none}.assignment-attempt-mobile{display:grid;gap:11px}.assignment-attempt-mobile>article{padding:15px;border:1px solid #dce8f2;border-radius:17px;background:#fbfdff}.assignment-attempt-mobile header{display:flex;justify-content:space-between;gap:10px;align-items:start}.assignment-attempt-mobile header strong,.assignment-attempt-mobile header small{display:block}.assignment-attempt-mobile header small{margin-top:3px;color:#718599}.attempt-mobile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}.attempt-mobile-stats span{min-width:0;padding:8px 4px;border-radius:10px;background:#eef5fb;text-align:center}.attempt-mobile-stats small,.attempt-mobile-stats b{display:block}.attempt-mobile-stats small{font-size:9px;color:#718599}.attempt-mobile-stats b{margin-top:3px;color:#173b62;font-size:13px}.assignment-attempt-mobile .btn.full{margin-top:12px}}
.parent-feed{display:grid;gap:12px}.parent-feed-item{display:flex;align-items:center;justify-content:space-between;color:inherit;text-decoration:none}.parent-feed-item h2{font-size:1rem;margin:8px 0 4px}.parent-feed-item p{margin:0 0 6px}.parent-feed-item.unread{border-left:5px solid #1768db;background:#f5f9ff}.parent-practice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.practice-result-card{color:inherit;text-decoration:none}.result-score{display:flex;align-items:end;gap:8px;margin:18px 0}.result-score strong{font-size:2.4rem;color:#1768db}.result-score span{padding-bottom:6px;color:#687993}.parent-report-head{padding:24px;margin-bottom:18px;border-radius:24px;background:linear-gradient(135deg,#1768db,#41a3ed);color:#fff}.parent-report-head .eyebrow,.parent-report-head p{color:#e9f5ff}.parent-report-detail h3{margin:20px 0 6px;font-size:.95rem}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.parent-ack{display:flex;align-items:center;justify-content:space-between;gap:16px}.parent-score-strip{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.parent-score-strip span{min-width:100px;padding:12px;border-radius:14px;background:#ffffff24;display:grid}.parent-score-strip strong{font-size:1.25rem}.parent-chat{display:grid;gap:14px}.chat-bubble{max-width:78%;padding:14px 16px;border-radius:6px 18px 18px 18px;background:#eef4fb}.chat-bubble.mine{margin-left:auto;border-radius:18px 6px 18px 18px;background:#dcecff}.chat-bubble p{margin:5px 0}.parent-message-new{margin-bottom:18px}.badge.red{background:#ffe8e8;color:#a32222}@media(max-width:720px){.parent-report-head{padding:20px}.parent-score-strip span{min-width:calc(50% - 8px)}.parent-ack{display:grid}.chat-bubble{max-width:92%}.parent-feed-item{padding:16px}}
.student-parent-access{margin-top:20px}.student-parent-access .parent-activation-form{margin-top:20px;padding-top:20px;border-top:1px solid #dce6f2}.parent-activation-form h3{margin-top:0}.student-parent-access .student-row{gap:16px}@media(max-width:720px){.student-parent-access .student-row{align-items:flex-start}.student-parent-access .actions{width:100%;justify-content:space-between}.parent-activation-form .grid.split{display:grid;grid-template-columns:1fr}}

/* SPR history by attendance date for Admin and Superadmin. */
.spr-admin-links{margin:0 0 16px}.spr-history-head{align-items:flex-start}.spr-history-head>.actions{justify-content:flex-end}.spr-history-presets{display:flex;flex-wrap:wrap;gap:8px;margin:-4px 0 14px}.spr-history-filter{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));align-items:end;gap:12px;margin-bottom:15px}.spr-history-filter label{display:grid;gap:6px;margin:0;color:#294766;font-weight:800}.spr-history-filter input,.spr-history-filter select{min-width:0}.spr-history-filter>.actions{grid-column:1/-1;justify-content:flex-end}.spr-history-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:22px}.spr-history-summary>a{display:grid;gap:3px;padding:17px 18px;border:1px solid #dce8f2;border-radius:19px;background:linear-gradient(145deg,#fff,#f3f8ff);color:#173b62;text-decoration:none;box-shadow:0 8px 22px rgba(31,71,115,.07)}.spr-history-summary>a.green{background:linear-gradient(145deg,#ecfbf3,#fafffc)}.spr-history-summary>a.orange{background:linear-gradient(145deg,#fff3df,#fffbf4)}.spr-history-summary>a.red{background:linear-gradient(145deg,#ffedf0,#fff9fa)}.spr-history-summary small{color:#698096;font-weight:850}.spr-history-summary strong{font-size:30px;line-height:1.05}.spr-history-summary span{color:#6c8092;font-size:11px;font-weight:750}.spr-history-result-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:0 2px 12px}.spr-history-result-head h2{margin:3px 0 0;font-size:20px}.spr-history-coaches{display:grid;gap:15px}.spr-history-coach>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:13px;border-bottom:1px solid #e0e9f1}.spr-history-coach header small,.spr-history-coach header h2{display:block;margin:0}.spr-history-coach header small{color:#6d8296;font-weight:850}.spr-history-students{display:grid}.spr-history-student{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #e2eaf1}.spr-history-student:last-child{padding-bottom:0;border-bottom:0}.spr-history-student .student-main{min-width:0}.spr-history-student .student-main>div{min-width:0}.spr-history-student .student-main strong,.spr-history-student .student-main p,.spr-history-student .student-main small{display:block}.spr-history-student .student-main p{margin:3px 0;color:#5e7487;font-size:13px}.spr-history-student .student-main small{color:#7890a2}.spr-history-student>.actions{flex:0 0 auto;justify-content:flex-end}
@media(max-width:800px){.spr-history-filter{grid-template-columns:1fr 1fr}.spr-history-filter label:nth-of-type(n+3){grid-column:1/-1}.spr-history-summary{grid-template-columns:1fr 1fr}.spr-history-head>.actions{width:100%;justify-content:flex-start}.spr-history-student{align-items:flex-start}.spr-history-student>.actions{display:grid;justify-items:end}}
@media(max-width:520px){.spr-admin-links{display:grid}.spr-admin-links .btn{width:100%}.spr-history-head>.actions{display:grid}.spr-history-head>.actions .btn{width:100%}.spr-history-filter{grid-template-columns:1fr;padding:15px}.spr-history-filter label,.spr-history-filter label:nth-of-type(n+3),.spr-history-filter>.actions{grid-column:1}.spr-history-filter>.actions{display:grid;grid-template-columns:1fr 1fr}.spr-history-summary{gap:8px}.spr-history-summary>a{padding:13px}.spr-history-summary strong{font-size:25px}.spr-history-result-head{align-items:flex-start}.spr-history-student{display:grid}.spr-history-student>.actions{display:flex;width:100%;justify-content:flex-start;padding-left:54px}.spr-history-student>.actions .btn{margin-left:auto}.spr-history-student .student-main p{line-height:1.35}}

/* Professional published SPR document and predictable return flow. */
.spr-report-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#718399;font-size:12px}.spr-report-breadcrumb a{color:#1768db;font-weight:850;text-decoration:none}.spr-report-breadcrumb strong{min-width:0;overflow:hidden;color:#395570;text-overflow:ellipsis;white-space:nowrap}.spr-report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.spr-report-document{max-width:1040px;margin:0 auto;border:1px solid #dbe6ef;border-radius:26px;background:#fff;box-shadow:0 18px 50px rgba(31,63,95,.1);overflow:hidden}.spr-report-cover{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;background:linear-gradient(125deg,#0d4f9e,#176fd5 60%,#3c92e7);color:#fff}.spr-report-cover .eyebrow{margin:0 0 5px;color:#bfe3ff}.spr-report-cover h1{margin:0;font-size:clamp(26px,4vw,40px);line-height:1.1}.spr-report-cover p{margin:7px 0 0;color:#e7f4ff}.spr-report-status{flex:0 0 auto;padding:10px 13px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(255,255,255,.16);font-size:11px;font-weight:950;letter-spacing:.06em}.spr-report-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid #e1e9f0;background:#f8fbfe}.spr-report-overview>div{display:grid;align-content:start;gap:5px;min-width:0;padding:18px;border-right:1px solid #e1e9f0}.spr-report-overview>div:last-child{border-right:0}.spr-report-overview small,.spr-report-footer small{color:#6d8193;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.spr-report-overview strong{color:#173b62;font-size:17px;line-height:1.25}.spr-report-overview span,.spr-report-footer span{color:#718599;font-size:11px;line-height:1.35}.spr-report-section{padding:26px 30px;border-bottom:1px solid #e4ebf1}.spr-report-section>header{display:flex;align-items:center;gap:13px;margin-bottom:17px}.spr-report-section>header>span{display:grid;width:39px;height:39px;flex:0 0 39px;place-items:center;border-radius:12px;background:#eaf4ff;color:#1768db;font-size:12px;font-weight:950}.spr-report-section>header .eyebrow{margin:0;color:#e97816}.spr-report-section>header h2{margin:3px 0 0;color:#173b62;font-size:20px}.spr-report-book-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.spr-report-book-list>div{display:grid;gap:5px;padding:16px;border:1px solid #dce7f0;border-radius:15px;background:#f8fbfe}.spr-report-book-list span{color:#6c8295;font-size:11px;font-weight:850;text-transform:uppercase}.spr-report-book-list strong{color:#173b62;font-size:17px}.spr-report-section .spr-published-material{border-color:#dce7f0;background:#f8fbfe}.spr-report-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.spr-report-notes>div{padding:16px;border:1px solid #dce7f0;border-radius:15px;background:#f8fbfe}.spr-report-notes small{display:block;margin-bottom:6px;color:#6c8295;font-size:10px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.spr-report-notes p{margin:0;color:#294963;line-height:1.6}.spr-report-notes .parent-note{grid-column:1/-1;border:1px solid #b9d8f7;border-left:5px solid #1768db;background:#eef7ff}.spr-report-notes .parent-note small{color:#1768db}.spr-report-notes .parent-note p{color:#143c61;font-size:16px;font-weight:700}.spr-report-empty{margin:0;padding:15px;border-radius:14px;background:#f7f9fb;color:#738699}.spr-report-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;padding:20px 30px;background:#f8fbfe}.spr-report-footer>div{display:grid;gap:4px}.spr-report-footer>div:last-child{text-align:right}.spr-report-footer strong{color:#274a68}.spr-report-bottom-actions{display:flex;justify-content:space-between;gap:12px;max-width:1040px;margin:15px auto 0}
@media(max-width:760px){.spr-report-breadcrumb{margin-top:-4px}.spr-report-toolbar{position:sticky;z-index:4;top:8px;padding:8px;border:1px solid #deE8f1;border-radius:16px;background:rgba(255,255,255,.95);box-shadow:0 8px 22px rgba(31,63,95,.09);backdrop-filter:blur(8px)}.spr-report-toolbar .btn{min-width:0;padding-inline:12px}.spr-report-document{border-radius:20px}.spr-report-cover{display:grid;gap:16px;padding:22px 19px}.spr-report-status{justify-self:start}.spr-report-overview{grid-template-columns:1fr 1fr}.spr-report-overview>div:nth-child(2){border-right:0}.spr-report-overview>div:nth-child(-n+2){border-bottom:1px solid #e1e9f0}.spr-report-overview>div{padding:15px}.spr-report-section{padding:21px 17px}.spr-report-book-list,.spr-report-notes{grid-template-columns:1fr}.spr-report-notes .parent-note{grid-column:auto}.spr-report-footer{display:grid;padding:18px}.spr-report-footer>div:last-child{text-align:left}.spr-report-bottom-actions{display:grid;grid-template-columns:1fr}.spr-report-bottom-actions .btn{width:100%}}
@media(max-width:410px){.spr-report-overview{grid-template-columns:1fr}.spr-report-overview>div{border-right:0;border-bottom:1px solid #e1e9f0}.spr-report-overview>div:last-child{border-bottom:0}.spr-report-toolbar button{display:none}.spr-report-cover h1{font-size:25px}}
@media print{.topbar,.sidebar,.menu-backdrop,.spr-report-breadcrumb,.spr-report-toolbar,.spr-report-bottom-actions{display:none!important}.app-shell,.content{display:block!important;margin:0!important;padding:0!important;background:#fff!important}.spr-report-document{max-width:none;border:0;border-radius:0;box-shadow:none}.spr-report-cover{-webkit-print-color-adjust:exact;print-color-adjust:exact}.spr-report-section{break-inside:avoid}}

/* One-time student opening balances at production cutover. */
.opening-balance-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;border-left:6px solid #f0a126;background:linear-gradient(135deg,#fff8e9,#fff)}.opening-balance-callout.complete{border-left-color:#28a76f;background:linear-gradient(135deg,#edfbf4,#fff)}.opening-balance-callout h2,.opening-balance-callout p{margin:4px 0}.opening-balance-head{align-items:flex-start}.opening-balance-filter{display:grid;grid-template-columns:minmax(220px,420px) auto;align-items:end;gap:12px;margin-bottom:16px}.opening-balance-filter label{margin:0}.opening-balance-list{display:grid;gap:11px}.opening-balance-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding:16px 19px}.opening-balance-row.pending{border-left:5px solid #efa12d}.opening-balance-row.locked{border-left:5px solid #2caf77}.opening-balance-state{display:grid;gap:5px;text-align:right}.opening-balance-state small{color:#73879a}.opening-balance-profile{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:20px;border-left:5px solid #2caf77}.opening-balance-profile.pending{border-left-color:#efa12d}.opening-balance-profile h2,.opening-balance-profile p{margin:4px 0}.opening-balance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:18px}.opening-balance-summary article{display:grid;gap:4px;padding:16px;border:1px solid #dce8f2;border-radius:18px;background:#fff}.opening-balance-summary small{color:#71869a;font-weight:800}.opening-balance-summary strong{color:#173b62;font-size:21px}.opening-balance-form{max-width:900px}.opening-form-intro{display:flex;gap:13px;align-items:start;margin:5px 0 16px}.opening-form-intro>span{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border-radius:12px;background:#1768db;color:#fff;font-weight:900}.opening-form-intro h2,.opening-form-intro p{margin:0}.opening-form-intro p{margin-top:3px;color:#71869a}.opening-debt-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:22px}.opening-debt-grid label{margin:0}.opening-balance-form>.notice{margin:18px 0}.opening-balance-form>.notice strong,.opening-balance-form>.notice span{display:block}
@media(max-width:720px){.opening-balance-callout,.opening-balance-profile{display:grid}.opening-balance-callout .btn,.opening-balance-profile .btn{width:100%}.opening-balance-filter{grid-template-columns:1fr}.opening-balance-row{grid-template-columns:minmax(0,1fr) auto;gap:11px;padding:15px}.opening-balance-row>.btn{grid-column:1/-1;width:100%}.opening-balance-state{text-align:right}.opening-balance-summary{grid-template-columns:1fr 1fr}.opening-debt-grid{grid-template-columns:minmax(0,1fr) 110px}}
/* Coach UX Phase 1 */
.coach-today-hero,.class-workspace-head,.student-context-head,.student-workspace-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;padding:24px;border-radius:24px;background:linear-gradient(135deg,#0f5fc7,#2689e9);color:#fff;box-shadow:0 16px 34px #0f5fc72b}.coach-today-hero h1,.class-workspace-head h1,.student-context-head h1,.student-workspace-head h1{margin:4px 0;font-size:clamp(1.55rem,3vw,2.35rem)}.coach-today-hero p,.class-workspace-head p,.student-context-head p,.student-workspace-head p{margin:0;color:#e9f5ff}.coach-today-hero .eyebrow,.class-workspace-head .eyebrow,.student-context-head .eyebrow,.student-workspace-head .eyebrow{color:#bfe2ff}.coach-today-hero input{min-width:155px;background:#fff}.section-title{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:26px 0 12px}.section-title h2{margin:2px 0}.coach-pending,.coach-today-classes{max-width:980px}.coach-task-card,.coach-session-today{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:16px 18px;margin-bottom:10px;border:1px solid #dbe7f3;border-radius:18px;background:#fff;box-shadow:0 6px 20px #17355d0c}.coach-task-card div,.session-time{display:grid;gap:3px}.coach-task-card small,.session-time small{color:#6a7c93}.coach-session-today{grid-template-columns:minmax(210px,1fr) minmax(190px,1fr) auto;border-left:5px solid #9bb0c8}.coach-session-today.sedang_berlangsung{border-left-color:#1f7ae0}.coach-session-today.administrasi_belum_selesai{border-left-color:#f3a322}.coach-session-today.selesai{border-left-color:#27a66f}.session-state{display:flex;align-items:center;gap:8px}.status-dot{width:10px;height:10px;border-radius:50%;background:#9bb0c8}.sedang_berlangsung .status-dot{background:#1f7ae0;box-shadow:0 0 0 5px #1f7ae018}.administrasi_belum_selesai .status-dot{background:#f3a322}.selesai .status-dot{background:#27a66f}.coach-empty-ok{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid #bfe9d4;border-radius:18px;background:#f2fbf6}.coach-empty-ok>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#27a66f;color:#fff;font-weight:900}.coach-empty-ok div{display:grid}.coach-empty-ok small{color:#547064}
.coach-workspace-tabs{display:flex;gap:7px;margin:0 0 20px;padding:5px;overflow-x:auto;border:1px solid #dce7f2;border-radius:16px;background:#f4f8fc;scrollbar-width:none}.coach-workspace-tabs a{flex:1;min-width:max-content;padding:11px 14px;border-radius:12px;color:#53667d;text-align:center;font-weight:750}.coach-workspace-tabs a.active{background:#fff;color:#1768db;box-shadow:0 4px 12px #17355d17}.coach-roster-grid,.coach-directory-grid,.student-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.coach-roster-card{display:grid;gap:16px;padding:18px;border:1px solid #dce7f2;border-radius:20px;background:#fff}.coach-roster-card header{display:flex;justify-content:space-between;gap:10px}.coach-roster-card h2{margin:0;font-size:1.15rem}.coach-roster-card p{margin:4px 0;color:#65778d}.coach-roster-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.coach-roster-context>div,.previous-grid>div,.student-facts>div{display:grid;align-content:start;gap:4px;padding:12px;border-radius:14px;background:#f4f8fc}.coach-roster-context small,.previous-grid small,.student-facts small{color:#718197}.coach-roster-context strong{font-size:.88rem}.coach-context-actions{margin-top:16px}.coach-context-actions summary,.previous-meeting summary{min-height:44px;display:flex;align-items:center;font-weight:800;cursor:pointer}.attendance-quick-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,240px);align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid #e6edf5}.attendance-quick-row div{display:grid}.attendance-quick-row small{color:#718197}.coach-mobile-save{display:none;margin-top:16px}.coach-student-list{display:grid;gap:10px}.coach-student-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px 16px;border:1px solid #dce7f2;border-radius:16px;background:#fff}.coach-student-list article>div{display:grid}.coach-student-list small{color:#718197}.completion-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.completion-summary>div{display:grid;gap:5px;padding:14px;border-radius:15px;background:#f4f8fc}.coach-spr-checklist{display:grid;gap:8px;margin:14px 0}.coach-spr-checklist>div{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid #e5edf5}
.student-context-head{background:linear-gradient(135deg,#23415f,#376987)}.student-workspace-head{justify-content:flex-start;background:linear-gradient(135deg,#563bb8,#7f62df)}.student-workspace-head .avatar{width:62px;height:62px;font-size:1.5rem;background:#fff;color:#563bb8}.previous-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.coach-student-form{display:grid;gap:14px}.coach-book-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.coach-topic-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px}.coach-topic-list .checkline{margin:0;padding:12px;border:1px solid #dce7f2;border-radius:14px}.coach-topic-list .checkline span{display:grid}.coach-topic-list small{color:#718197}.internal-notes{border-left:5px solid #66798d;background:#f8fafc}.parent-visible-note{border-left:5px solid #2a9d68;background:#f5fcf8}.completion-chip{padding:6px 10px;border-radius:999px;background:#fff3d8;color:#9a6511;font-size:.78rem;font-weight:800}.completion-chip.complete{background:#dff7e9;color:#18724b}.practice-last,.home-practice-choice{display:flex;justify-content:space-between;align-items:center;gap:12px}.practice-last>div{display:grid}.home-practice-choice{margin-top:14px;padding-top:14px;border-top:1px solid #e4ecf4}.coach-form-actions{position:sticky;bottom:12px;z-index:8;display:flex;justify-content:flex-end;gap:10px;padding:12px;border:1px solid #d7e3ef;border-radius:17px;background:#ffffffed;box-shadow:0 12px 30px #17355d24;backdrop-filter:blur(10px)}
.coach-field-label{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.contextual-student-card{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:18px;border:1px solid #cfe7da;border-radius:16px;background:#f5fcf8}.contextual-student-card .avatar{width:42px;height:42px;background:#dff7e9;color:#18724b}.contextual-student-card>div{display:grid;flex:1}.contextual-student-card small{color:#66798d}.coach-practice-history{display:grid;gap:10px}.coach-practice-history article{display:flex;justify-content:space-between;gap:14px;padding:14px;border:1px solid #e1e9f2;border-radius:14px}.coach-practice-history article>div{display:grid;align-content:start;gap:4px}.coach-practice-history article>div:last-child{text-align:right;justify-items:end}.coach-practice-history small{color:#66798d}
.coach-student-search{display:grid;gap:6px;margin-bottom:16px}.coach-directory-grid>a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px;border:1px solid #dce7f2;border-radius:17px;color:#203851}.coach-directory-grid>a:hover{border-color:#8ab9ef;background:#f6faff}.coach-directory-grid a>div{display:grid}.coach-directory-grid small{color:#718197}.student-tabs a{font-size:.9rem}.student-facts{display:grid;gap:9px}.learning-timeline{position:relative;display:grid;gap:12px;padding-left:20px}.learning-timeline:before{content:"";position:absolute;left:5px;top:8px;bottom:8px;width:2px;background:#cbdced}.learning-timeline article{position:relative}.learning-timeline article:before{content:"";position:absolute;left:-21px;top:23px;width:11px;height:11px;border:3px solid #fff;border-radius:50%;background:#1768db;box-shadow:0 0 0 2px #1768db}.learning-timeline header{display:flex;justify-content:space-between}.coach-history{display:grid;gap:8px}.coach-history>a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:14px;color:#203851}.coach-history>a:hover{background:#f4f8fc}.coach-history a>div{display:grid}.coach-history small{color:#718197}.coach-mobile-nav{display:none}
@media(max-width:760px){body.role-coach .sidebar,body.role-coach .menu-backdrop,body.role-coach .mobile-menu{display:none!important}body.role-coach .content{padding-bottom:88px}.coach-mobile-nav{position:fixed;z-index:40;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);height:68px;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));border-top:1px solid #d8e4ef;background:#fffffff5;box-shadow:0 -8px 24px #17355d17;backdrop-filter:blur(12px)}.coach-mobile-nav a{display:grid;place-items:center;align-content:center;gap:2px;min-height:52px;border-radius:12px;color:#65778d}.coach-mobile-nav a.active{background:#e9f3ff;color:#1768db}.coach-mobile-nav span{font-size:1.15rem}.coach-mobile-nav small{font-size:.7rem;font-weight:800}.coach-today-hero,.class-workspace-head,.student-context-head{align-items:flex-start;padding:18px;border-radius:20px}.coach-today-hero{display:grid}.coach-today-hero form,.coach-today-hero label,.coach-today-hero input{width:100%}.coach-task-card,.coach-session-today{grid-template-columns:1fr auto}.coach-task-card .btn,.coach-session-today .btn{grid-column:1/-1;width:100%}.session-state{justify-content:flex-end;font-size:.8rem}.section-title{align-items:center}.coach-roster-grid,.coach-directory-grid,.student-summary-grid{grid-template-columns:1fr}.coach-roster-context{grid-template-columns:1fr 1fr}.coach-roster-context>div:last-child{grid-column:1/-1}.coach-workspace-tabs{margin-inline:-4px}.coach-workspace-tabs a{padding:10px;font-size:.78rem}.coach-bulk-attendance .panel-head .btn{display:none}.coach-mobile-save{display:block}.attendance-quick-row{grid-template-columns:1fr 145px}.coach-student-list article{grid-template-columns:1fr auto}.coach-student-list article .btn{grid-column:1/-1}.completion-summary{grid-template-columns:1fr 1fr}.completion-summary>div:first-child{grid-column:1/-1}.previous-grid,.coach-book-inputs,.coach-topic-list{grid-template-columns:1fr}.previous-meeting:not([open]){padding-bottom:14px}.coach-form-actions{bottom:76px}.coach-form-actions .btn{flex:1}.student-workspace-head{padding:18px}.student-tabs a{font-size:.75rem}.coach-history>a{align-items:flex-start;flex-direction:column}}
@media(min-width:761px){body.role-coach .content{max-width:1180px}.coach-student-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.coach-student-form>.panel:first-child,.coach-student-form>.panel:nth-child(2),.coach-student-form>.coach-form-actions{grid-column:1/-1}.coach-student-form .internal-notes,.coach-student-form .parent-visible-note{height:100%}.home-practice-context{grid-column:1/-1}}
@media(max-width:760px){body.role-coach .topbar{display:none!important}}
