:root{--sky: #c8f2ff;--sky-strong: #43bde9;--mint: #55d7b6;--mint-soft: #daf8ee;--lemon: #ffd758;--lemon-soft: #fff3bc;--coral: #ff746d;--coral-deep: #ef5d58;--violet: #887cff;--violet-soft: #ebe8ff;--grass: #76c96c;--cream: #fff8e8;--paper: #ffffff;--ink: #26314f;--ink-soft: #52607f;--muted: #7380a0;--line: rgba(63, 102, 128, .15);--radius: 8px;--shadow: 0 22px 54px rgba(38, 76, 111, .2);--shadow-soft: 0 12px 28px rgba(38, 76, 111, .13);--font: "Nunito", "Comic Sans MS", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-display: "ZCOOL KuaiLe", "YouSheBiaoTiHei", "Alimama ShuHeiTi", "Microsoft YaHei UI", var(--font);--mono: "Cascadia Code", "Consolas", monospace}*{box-sizing:border-box}html,body,#root{min-width:0;min-height:100%}body{min-width:0;min-height:100vh;margin:0;color:var(--ink);font-family:var(--font);letter-spacing:0;background:#dff3ff url(/assets/kids-math-adventure-bg.png) center top / cover fixed no-repeat}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:not-allowed}svg{flex:0 0 auto}.app-shell{min-height:100vh;overflow-x:hidden;background:transparent}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(210px,1fr) auto;gap:18px;align-items:center;padding:14px 28px;border-bottom:2px solid rgba(255,255,255,.72);background:#ffffffb8;box-shadow:0 10px 30px #2a5d7e1f;-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2)}.brand{display:inline-flex;align-items:center;min-width:0;gap:12px}.brandMark{position:relative;width:46px;height:46px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.86);border-radius:var(--radius);color:#fff;font-family:var(--font-display);font-size:23px;font-weight:1000;text-shadow:0 2px 0 rgba(74,83,140,.22);background:linear-gradient(135deg,var(--coral),var(--lemon) 52%,var(--mint));box-shadow:0 10px 22px #ff746d47;transform:rotate(-4deg)}.brandMark:after{content:"";position:absolute;top:-7px;right:-5px;width:14px;height:14px;background:var(--lemon);clip-path:polygon(50% 0,63% 36%,100% 50%,63% 64%,50% 100%,37% 64%,0 50%,37% 36%)}.brand strong{display:block;overflow:hidden;color:var(--ink);font-family:var(--font-display);font-size:21px;line-height:1.05;white-space:nowrap;text-overflow:ellipsis}.brand span:last-child{display:block;margin-top:3px;color:var(--ink-soft);font-size:12px;font-weight:900}.viewSwitch{display:grid;grid-template-columns:repeat(2,minmax(104px,1fr));gap:8px;padding:6px;border:2px solid rgba(255,255,255,.84);border-radius:999px;background:#ffffffb8;box-shadow:inset 0 0 0 1px #43bde929,0 10px 24px #486a821a}.viewSwitch button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;border-radius:999px;color:var(--ink-soft);font-weight:1000;background:transparent;transition:transform .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.viewSwitch button:hover{transform:translateY(-1px)}.viewSwitch button.active{color:var(--paper);background:linear-gradient(135deg,var(--coral),#ffab5f);box-shadow:0 8px 20px #ff746d42}.topChips{display:flex;justify-content:flex-end;gap:10px;min-width:0}.topChips span{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:2px solid rgba(255,255,255,.74);border-radius:999px;color:var(--ink-soft);font-size:13px;font-weight:1000;white-space:nowrap;background:#ffffffb8}.studentView{position:relative;min-height:calc(100vh - 76px);padding:34px 28px 42px;overflow:hidden;background:transparent}.floaters{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.floaters span{position:absolute;width:42px;height:42px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.82);border-radius:var(--radius);color:#fff;font-size:22px;font-weight:1000;text-shadow:0 2px 0 rgba(40,54,84,.18);box-shadow:0 12px 26px #41638029;animation:bob 6s ease-in-out infinite}.floaters span:nth-child(1){top:21%;left:4%;background:var(--coral);transform:rotate(-9deg)}.floaters span:nth-child(2){top:18%;right:6%;background:var(--violet);transform:rotate(10deg);animation-delay:-1.2s}.floaters span:nth-child(3){bottom:12%;left:9%;background:var(--mint);transform:rotate(8deg);animation-delay:-2.4s}.floaters span:nth-child(4){right:11%;bottom:17%;color:#9b6b16;background:var(--lemon);transform:rotate(-7deg);animation-delay:-3.1s}@keyframes bob{0%,to{translate:0 0}50%{translate:0 -12px}}@keyframes spin{to{transform:rotate(360deg)}}.studentGrid{position:relative;z-index:1;width:min(1220px,100%);min-height:100%;display:grid;grid-template-columns:minmax(0,.98fr) minmax(360px,.72fr);gap:22px;align-items:stretch;margin:0 auto}.questBoard,.playPanel,.adminShell,.adminMain,.reportDock{border:2px solid rgba(255,255,255,.78);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2)}.questBoard{align-self:stretch;padding:clamp(22px,4vw,42px);background:linear-gradient(145deg,#ffffffe6,#daf8eed1 58%,#fff3bcc2),linear-gradient(135deg,#ff746d12,#887cff14)}.heroCopy h1{max-width:720px;margin:0 0 12px;color:#26314f;font-family:var(--font-display);font-size:clamp(42px,6.2vw,76px);line-height:.98;letter-spacing:0;text-shadow:0 4px 0 rgba(255,255,255,.96),0 10px 24px rgba(70,93,130,.22)}.heroCopy h1 span{display:inline-block;margin-left:.18em;color:transparent;background:linear-gradient(135deg,#ff625c,#f08d22 34%,#0f9f91 64%,#6864e8);-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:.45px rgba(38,49,79,.18);filter:drop-shadow(0 3px 0 rgba(255,255,255,.94))}.heroCopy p{max-width:680px;margin:0 0 22px;color:var(--ink-soft);font-size:17px;font-weight:850;line-height:1.8}.studentForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}.field{min-width:0}.field span{min-height:20px;display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;color:var(--muted);font-size:12px;font-weight:1000}.field input,.field select,.toolbar select,.searchBox{width:100%;min-width:0;height:46px;border:2px solid #e6d5ab;border-radius:var(--radius);color:var(--ink);font-weight:900;background:#fff8e8eb;outline:0;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.field input,.field select,.toolbar select{padding:0 12px}.field input:focus,.field select:focus,.toolbar select:focus,.searchBox:focus-within{border-color:var(--sky-strong);background:var(--paper);box-shadow:0 0 0 4px #43bde933}.field input:disabled,.field select:disabled{cursor:not-allowed;color:var(--ink-soft);border-color:#b1c4d17a;background:#f5fafcc7;box-shadow:inset 0 0 0 1px #ffffff8f}.startError{margin:-8px 0 14px;padding:10px 12px;border:2px solid rgba(239,93,88,.28);border-radius:var(--radius);color:#a43b34;font-size:13px;font-weight:1000;background:#ffebe6e0}.resumeNotice{margin:-8px 0 14px;padding:9px 12px;border:2px solid rgba(85,215,182,.28);border-radius:var(--radius);color:#257866;font-size:13px;font-weight:1000;background:#e5fff6d6}.journeyRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end}.pathMap{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:16px;border:2px dashed rgba(255,171,95,.62);border-radius:var(--radius);background:#fff3bcb8}.pathMap:before{content:"";position:absolute;top:48px;left:10%;right:10%;height:8px;border-radius:999px;background:repeating-linear-gradient(90deg,#ffb95b 0,#ffb95b 22px,#fff3bc 22px,#fff3bc 34px);opacity:.58}.islandTile{position:relative;z-index:1;min-width:0;display:grid;justify-items:center;gap:8px;text-align:center}.islandIcon{width:64px;height:64px;display:grid;place-items:center;border:3px solid rgba(255,255,255,.9);border-radius:var(--radius);color:var(--paper);box-shadow:0 12px 18px #80622329}.islandTile[data-tone=coral] .islandIcon{background:linear-gradient(135deg,var(--coral),#ffb15d)}.islandTile[data-tone=sky] .islandIcon{background:linear-gradient(135deg,var(--sky-strong),#6ce4cd)}.islandTile[data-tone=violet] .islandIcon{background:linear-gradient(135deg,var(--violet),#c89bff)}.islandTile[data-tone=mint] .islandIcon{background:linear-gradient(135deg,var(--grass),var(--lemon))}.islandTile strong{min-height:38px;display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:13px;font-weight:1000;line-height:1.45}.islandTile span{color:var(--muted);font-size:12px;font-weight:900}.primaryBtn,.secondaryBtn,.tinyBtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:1000;white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.primaryBtn{min-height:58px;padding:0 22px;border:3px solid rgba(255,255,255,.86);border-radius:999px;color:#fff;font-size:17px;text-shadow:0 2px 0 rgba(119,57,18,.22);background:linear-gradient(135deg,var(--coral-deep),#ffab5f 54%,var(--lemon));box-shadow:0 16px 30px #ff746d47}.secondaryBtn{min-height:42px;padding:0 15px;border:2px solid #d8ecf7;border-radius:999px;color:var(--ink-soft);background:#ffffffd6}.tinyBtn{min-height:32px;padding:0 11px;border-radius:999px;color:#fff;font-size:12px;background:linear-gradient(135deg,var(--mint),var(--sky-strong));box-shadow:0 8px 16px #54b8c333}.primaryBtn:hover,.secondaryBtn:hover,.tinyBtn:hover{transform:translateY(-2px);filter:saturate(1.08)}.primaryBtn:disabled,.secondaryBtn:disabled,.tinyBtn:disabled{opacity:.68;transform:none;filter:grayscale(.18)}.startBtn{align-self:stretch}.completionStrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.completionStrip>div{min-width:0;padding:13px;border:2px solid rgba(255,255,255,.82);border-radius:var(--radius);background:#ffffffbd;box-shadow:var(--shadow-soft)}.completionStrip b{display:block;margin-bottom:5px;color:var(--ink);font-size:15px}.completionStrip span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:13px;font-weight:850;line-height:1.5}.playPanel{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:16px;padding:18px;overflow:hidden;background:linear-gradient(160deg,#ffffffe6,#e1f9ffd1 48%,#ffe2dfbd)}.resultPanel{grid-template-rows:auto auto minmax(0,1fr);overflow-y:auto}.readyPanel{grid-template-rows:auto minmax(260px,1fr) auto}.readyCloud{min-height:260px;display:grid;place-items:center;align-content:center;gap:12px;padding:28px;border:2px dashed rgba(136,124,255,.36);border-radius:var(--radius);color:var(--ink);text-align:center;background:radial-gradient(circle at 24% 22%,rgba(255,216,88,.42),transparent 24%),radial-gradient(circle at 78% 72%,rgba(85,215,182,.36),transparent 25%),#ffffffb8}.readyCloud svg{color:var(--coral);filter:drop-shadow(0 8px 14px rgba(255,116,109,.2))}.readyCloud h2{margin:0;font-family:var(--font-display);font-size:30px}.readyCloud p{max-width:300px;margin:0;color:var(--ink-soft);font-size:15px;font-weight:900;line-height:1.7}.readyChecklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.readyChecklist span{min-height:38px;display:grid;place-items:center;padding:0 10px;border:2px solid rgba(255,255,255,.8);border-radius:var(--radius);color:var(--ink-soft);font-size:12px;font-weight:1000;text-align:center;background:var(--lemon-soft)}.mascotCard{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:2px solid rgba(255,216,88,.58);border-radius:var(--radius);background:linear-gradient(135deg,#fff8e8eb,#daf8eee0)}.mascotCard img{width:132px;aspect-ratio:1;object-fit:cover;border:3px solid rgba(255,255,255,.94);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.mascotCard h2,.questionHeader h2,.adminTitle h1,.reportDock h2{margin:0;color:var(--ink);font-family:var(--font-display);letter-spacing:0}.mascotCard h2{font-size:25px;line-height:1.1}.mascotCard p{margin:8px 0 0;color:var(--ink-soft);font-size:14px;font-weight:850;line-height:1.6}.resultActionRow{display:flex;justify-content:flex-end}.resultReportBtn{min-height:46px;border-color:#54b8c357;color:var(--ink);background:linear-gradient(135deg,#fffffff5,#daf8eee6);box-shadow:0 12px 22px #54b8c329}.starMeter{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.starMeter span{height:38px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.8);border-radius:var(--radius);color:#a96b0b;background:var(--lemon-soft)}.starMeter span.active{color:#fff;background:linear-gradient(135deg,#ffbf3e,var(--coral));text-shadow:0 2px 0 rgba(130,64,12,.2)}.questionBox{min-width:0;display:grid;gap:14px;padding:18px;border:2px solid rgba(191,232,247,.84);border-radius:var(--radius);background:#ffffffeb;box-shadow:inset 0 -6px #bfe8f752}.resultBox{min-height:260px;place-items:center;text-align:center}.scoreBadge{width:120px;height:120px;display:grid;place-items:center;border:10px solid var(--lemon);border-bottom-color:var(--mint);border-left-color:var(--coral);border-radius:50%;color:var(--ink);font-family:var(--mono);font-size:34px;font-weight:1000;background:#fff;box-shadow:inset 0 0 0 6px #fff7df}.resultCopy h2{margin:0 0 8px;font-family:var(--font-display);font-size:30px}.resultCopy p{max-width:340px;margin:0;color:var(--ink-soft);font-size:14px;font-weight:900;line-height:1.7}.scoreOverview{display:grid;grid-template-columns:168px minmax(0,1fr);gap:18px;align-items:center;padding:18px;border:2px solid rgba(191,232,247,.84);border-radius:var(--radius);background:#ffffffe6;box-shadow:inset 0 -6px #bfe8f747}.scoreDonut{position:relative;width:156px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;box-shadow:0 18px 28px #41638024}.scoreDonut:after{content:"";position:absolute;top:15px;right:15px;bottom:15px;left:15px;border-radius:50%;background:radial-gradient(circle at 50% 38%,#fffffffa,#ffffffeb),#fff;box-shadow:inset 0 0 0 2px #ffffffd1}.donutCenter{position:relative;z-index:1;display:grid;place-items:center;gap:3px;color:var(--ink)}.donutCenter strong{font-family:var(--mono);font-size:36px;line-height:1}.donutCenter span{color:var(--muted);font-size:12px;font-weight:1000}.donutLegend{display:grid;gap:9px}.legendItem{min-width:0;display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 10px;border:2px solid rgba(226,237,247,.86);border-radius:var(--radius);color:var(--ink-soft);font-size:13px;font-weight:1000;background:#ffffffc7}.legendItem i{width:12px;height:12px;border-radius:50%}.legendItem span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.legendItem b{color:var(--ink);font-family:var(--mono);font-size:13px}.diagnosisReport{display:grid;gap:12px}.diagnosisReport>h2{margin:0;color:var(--ink);font-family:var(--font-display);font-size:26px}.reportCards{display:grid;gap:10px}.moduleReportCard{min-width:0;padding:13px;border:2px solid rgba(226,237,247,.88);border-radius:var(--radius);background:#ffffffe0;box-shadow:var(--shadow-soft)}.moduleReportCard header{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:10px}.moduleReportCard header span{width:12px;height:12px;border-radius:50%}.moduleReportCard h3{margin:0;color:var(--ink);font-size:15px}.moduleReportCard header b{padding:4px 8px;border-radius:999px;color:var(--ink-soft);font-size:12px;background:var(--lemon-soft)}.moduleReportCard dl{display:grid;gap:8px;margin:0}.moduleReportCard dl div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px}.moduleReportCard dt{color:var(--muted);font-size:12px;font-weight:1000}.moduleReportCard dd{min-width:0;margin:0;color:var(--ink-soft);font-size:13px;font-weight:900;line-height:1.55}.questionHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.questionHeader h2{font-size:26px}.questionHeader span{min-height:30px;padding:5px 10px;border-radius:999px;color:#fff;font-size:12px;font-weight:1000;background:var(--violet)}.questionText{margin:0;padding:18px;border:2px solid #f4e2bd;border-radius:var(--radius);color:var(--ink);font-size:18px;font-weight:900;line-height:1.7;background:var(--cream)}.mathText{display:inline;white-space:pre-wrap}.mathSqrt,.mathFraction,.mathPower{display:inline-flex;align-items:center;vertical-align:middle}.mathSqrt{gap:1px}.mathRadical{font-family:Times New Roman,"Cambria Math",serif;font-size:1.12em;line-height:1}.mathRadicand{display:inline-flex;align-items:center;min-height:1.18em;padding:0 2px 0 1px;border-top:1.7px solid currentColor;line-height:1}.mathFraction{min-width:1.05em;flex-direction:column;justify-content:center;margin:0 .08em;line-height:1;transform:translateY(.02em)}.mathFractionTop,.mathFractionBottom{display:block;width:100%;min-width:1em;padding:0 .15em;font-size:.78em;line-height:1.05;text-align:center}.mathFractionTop{border-bottom:1.6px solid currentColor}.mathPower{align-items:baseline}.mathPower sup{margin-left:.04em;font-size:.68em;line-height:0}.answerList{display:grid;gap:10px}.answerOption{width:100%;min-height:48px;display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:center;padding:7px 12px;border:2px solid #dfeef8;border-radius:var(--radius);color:var(--ink);text-align:left;font-weight:900;background:#ffffffe6;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.answerOption b{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius);color:#fff;background:var(--sky-strong)}.answerOption:hover,.answerOption.selected{border-color:var(--coral);background:#fff7ed;box-shadow:0 10px 18px #ff746d24;transform:translateY(-1px)}.questionActions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.adminView{min-height:calc(100vh - 76px);padding:28px;background:linear-gradient(180deg,#fff8e8e0,#e8faffdb),url(/assets/kids-math-adventure-bg.png) center top / cover fixed no-repeat}.adminLoginView{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:28px;background:#dff3ff url(/assets/kids-math-adventure-bg.png) center top / cover fixed no-repeat}.adminLoginCard{width:min(430px,100%);display:grid;gap:14px;padding:28px;border:2px solid rgba(255,255,255,.82);border-radius:var(--radius);background:#ffffffe6;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2)}.adminLoginCard h1{margin:0;color:var(--ink);font-family:var(--font-display);font-size:34px;line-height:1.08}.adminLoginCard p{margin:0;color:var(--ink-soft);font-size:14px;font-weight:900;line-height:1.7}.loginBadge{width:fit-content;min-height:30px;display:inline-flex;align-items:center;padding:0 11px;border-radius:999px;color:#5750bc;font-size:12px;font-weight:1000;background:var(--violet-soft)}.adminShell{width:min(1320px,100%);display:grid;grid-template-columns:194px minmax(0,1fr) 304px;gap:16px;margin:0 auto;padding:16px;background:#ffffffc7}.adminSidebar{align-self:start;display:grid;align-content:start;gap:10px;padding:12px;border-radius:var(--radius);background:#ffffffa8}.adminTitle{padding:10px 8px 14px}.adminTitle h1{font-size:28px;line-height:1.05}.adminTitle p{margin:7px 0 0;color:var(--muted);font-size:13px;font-weight:900;line-height:1.5}.adminNav{display:grid;gap:8px}.adminNav button{min-height:44px;display:flex;align-items:center;gap:9px;padding:0 12px;border:2px solid transparent;border-radius:var(--radius);color:var(--ink-soft);font-weight:1000;text-align:left;background:transparent}.adminNav button.active{color:#fff;border-color:#ffffffd6;background:linear-gradient(135deg,#6bc7f1,var(--mint));box-shadow:0 10px 20px #52aec72e}.adminMain{min-width:0;display:grid;gap:15px;padding:16px;background:#ffffffe0}.statRow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat{min-width:0;padding:13px;border:2px solid #e3f1f7;border-radius:var(--radius);background:linear-gradient(135deg,#ffffffeb,#ebf8ffe6)}.stat span{display:block;color:var(--muted);font-size:12px;font-weight:1000}.stat strong{display:block;margin-top:6px;color:var(--ink);font-family:var(--mono);font-size:28px}.toolbar{display:grid;grid-template-columns:minmax(180px,1fr) 132px 132px auto;gap:10px;align-items:center}.searchBox{display:flex;align-items:center;gap:8px;padding:0 12px}.searchBox input{min-width:0;width:100%;border:0;outline:0;color:var(--ink);font-weight:900;background:transparent}.recordTable{min-width:0;max-height:440px;overflow:auto;border:2px solid #edf2f7;border-radius:var(--radius);background:#ffffffeb}.recordTable table{width:100%;min-width:850px;border-collapse:collapse}.recordTable th,.recordTable td{padding:13px 12px;border-bottom:1px solid #edf2f7;color:var(--ink-soft);font-size:13px;font-weight:900;text-align:left;white-space:nowrap}.recordTable th{position:sticky;top:0;z-index:1;color:var(--muted);font-size:12px;background:#f7fbff}.recordTable tr:last-child td{border-bottom:0}.recordTable tr.selectedRow td{color:var(--ink);background:linear-gradient(90deg,#daf8eebd,#fff8e8a8)}.recordActions{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.reportBtn{background:linear-gradient(135deg,var(--violet),#43bde9);box-shadow:0 8px 16px #6076d62e}.nameCell{display:inline-flex;align-items:center;gap:9px;color:var(--ink);font-weight:1000}.avatar{width:32px;height:32px;display:grid;place-items:center;border:2px solid #fff;border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,var(--coral),var(--violet));box-shadow:0 6px 14px #736fb829}.status{min-height:26px;display:inline-flex;align-items:center;padding:0 9px;border-radius:999px;font-size:12px;font-weight:1000}.status.done{color:#237b4e;background:#dcf8e9}.status.wait{color:#a15c09;background:#fff0c9}.status.review{color:#5750bc;background:#eeebff}.adminDetailPanel{min-width:0;display:grid;gap:12px;padding:14px;border:2px solid #e3f1f7;border-radius:var(--radius);background:linear-gradient(135deg,#fffffff0,#ebf8ffe0),#ffffffe6}.detailPanelHeader{display:flex;align-items:end;justify-content:space-between;gap:14px}.detailPanelHeader span,.reportDockHeader span{display:inline-flex;color:var(--muted);font-size:12px;font-weight:1000}.detailPanelHeader h2{margin:4px 0 0;color:var(--ink);font-family:var(--font-display);font-size:25px;line-height:1.1}.detailSummary{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.detailSummary b,.detailSummary span{min-height:30px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;color:var(--ink-soft);font-size:12px;font-weight:1000;background:var(--lemon-soft)}.detailSummary span{color:#fff;background:linear-gradient(135deg,var(--coral),var(--violet))}.adminEmptyState{min-height:112px;display:grid;place-items:center;padding:18px;border:2px dashed rgba(136,124,255,.3);border-radius:var(--radius);color:var(--muted);font-size:14px;font-weight:1000;line-height:1.6;text-align:center;background:#ffffff9e}.answerDetailList{display:grid;gap:12px}.answerDetailCard{min-width:0;display:grid;gap:12px;padding:13px;border:2px solid rgba(226,237,247,.94);border-radius:var(--radius);background:#ffffffe6;box-shadow:var(--shadow-soft)}.answerDetailHeader{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.answerDetailHeader h3{margin:7px 0 0;color:var(--ink);font-size:16px;font-weight:1000;line-height:1.65}.answerCheckpoint{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:999px;color:#5750bc;font-size:12px;font-weight:1000;background:var(--violet-soft)}.answerResult{min-height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:1000}.answerResult.correct{color:#237b4e;background:#dcf8e9}.answerResult.wrong{color:#a43b34;background:#ffe9e4}.answerMeta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.answerMeta div{min-width:0;padding:9px;border:2px solid #edf2f7;border-radius:var(--radius);background:#f7fbffb8}.answerMeta span{display:block;margin-bottom:5px;color:var(--muted);font-size:12px;font-weight:1000}.answerMeta b{min-width:0;display:block;overflow-wrap:anywhere;color:var(--ink);font-size:13px;line-height:1.55}.answerOptionGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.answerOptionMini{min-width:0;display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center;padding:8px;border:2px solid #edf2f7;border-radius:var(--radius);color:var(--ink-soft);font-size:13px;font-weight:900;line-height:1.55;background:#ffffffc7}.answerOptionMini b{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--radius);color:#fff;background:var(--sky-strong)}.answerOptionMini.selected{border-color:#887cff6b;background:var(--violet-soft)}.answerOptionMini.correct{border-color:#55d7b694;background:#dcf8e9d1}.answerOptionMini.wrong{border-color:#ff746d7a;background:#ffe9e4c7}.resourceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.resourceTile{min-height:86px;display:grid;align-content:center;gap:5px;padding:12px;border:2px solid #e3f1f7;border-radius:var(--radius);background:#ffffffe0}.resourceTile b{color:var(--ink);font-size:14px}.resourceTile span{color:var(--muted);font-size:12px;font-weight:850}.reportDock{align-self:start;min-width:0;max-height:calc(100vh - 132px);display:grid;align-content:start;gap:14px;padding:16px;overflow-y:auto;background:#ffffffe0}.reportDock h2{font-size:27px}.reportDockHeader h2{margin:3px 0 0}.adminReportSummary{display:grid;gap:12px;justify-items:center;padding:13px;border:2px solid rgba(191,232,247,.84);border-radius:var(--radius);background:#ffffffd6}.adminScoreDonut{width:138px}.adminReportModules{display:grid;gap:10px}.adminModuleReport{min-width:0;display:grid;gap:9px;padding:12px;border:2px solid rgba(226,237,247,.92);border-radius:var(--radius);background:#ffffffe0;box-shadow:var(--shadow-soft)}.adminModuleReport header{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:8px;align-items:center}.adminModuleReport header span{width:12px;height:12px;border-radius:50%}.adminModuleReport h3{margin:0;color:var(--ink);font-size:14px}.adminModuleReport header b{padding:4px 8px;border-radius:999px;color:var(--ink-soft);font-size:12px;background:var(--lemon-soft)}.miniScoreBar{height:9px;overflow:hidden;border-radius:999px;background:#e8eff6}.miniScoreBar i{display:block;height:100%;border-radius:inherit}.adminModuleReport dl{display:grid;gap:7px;margin:0}.adminModuleReport dl div{display:grid;gap:3px}.adminModuleReport dt{color:var(--muted);font-size:12px;font-weight:1000}.adminModuleReport dd{margin:0;color:var(--ink-soft);font-size:12px;font-weight:900;line-height:1.55}.reportTemplateOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:start center;padding:42px 24px;overflow:auto;background:#19274257;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.reportTemplateSheet{width:min(1040px,100%);display:grid;gap:22px;padding:34px;border:1px solid #dce5ee;border-radius:8px;color:#263247;background:#fff;box-shadow:0 26px 70px #1f36583d}.reportTemplateHeader{display:flex;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:2px solid #e8eef5}.reportTemplateHeader h2{margin:6px 0 0;color:#1f2d44;font-family:var(--font-display);font-size:31px;line-height:1.18}.reportTemplateActions{display:inline-flex;align-items:start;gap:8px}.reportDownloadBtn{color:#fff;background:linear-gradient(135deg,var(--violet),var(--sky-strong))}.reportPdfError{margin:-8px 0 0;padding:10px 12px;border:1px solid #ffc5bd;border-radius:8px;color:#a43b34;font-size:13px;font-weight:900;background:#fff2ef}.tinyIconBtn{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:8px;color:#5d6a7f;cursor:pointer;background:#edf3f8}.reportTemplateBlock{display:grid;gap:14px}.reportTemplateBlock h3{margin:0;color:#1f2d44;font-size:18px;font-weight:1000}.reportTalkCard{border:1px solid #d7e2ee;background:#f8fbff}.reportTalkCard.aiSummary{border-color:#cfdbea;background:#fbfdff}.reportTalkCard p{margin:0;padding:16px 18px;color:#17233a;font-size:15px;font-weight:850;line-height:2.05}.reportInfoTable{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #d7e2ee;background:#fff}.reportInfoTable th,.reportInfoTable td{padding:12px 14px;border:1px solid #d7e2ee;color:#1f2d44;font-size:14px;font-weight:900;line-height:1.65;text-align:left;vertical-align:top;overflow-wrap:anywhere}.reportInfoTable th{color:#24446d;font-weight:1000;background:#eaf1f8}.reportInfoTable td:nth-child(1),.reportInfoTable td:nth-child(3){width:18%;color:#17233a;font-weight:1000;background:#f8fbff}.reportInfoMobileList{display:none}.reportInfoMobileItem{display:grid;gap:4px;padding:12px;border:1px solid #d7e2ee;border-radius:8px;background:#f8fbff}.reportInfoMobileItem span{color:#62718a;font-size:12px;font-weight:1000}.reportInfoMobileItem b{color:#17233a;font-size:14px;line-height:1.55;overflow-wrap:anywhere}.reportAnswerList{display:grid;gap:12px}.reportAnswerCard{display:grid;gap:12px;padding:16px;border:1px solid #dce5ee;border-radius:8px;background:linear-gradient(180deg,#fff,#f8fbff)}.reportAnswerCard,.templateModule,.reportTalkCard,.reportInfoTable,.reportInfoMobileItem,.reportTemplateTable tr,.reportConclusionTable tr,.reportAiState{break-inside:avoid;page-break-inside:avoid}.reportAnswerHeader{display:flex;justify-content:space-between;gap:14px}.reportAnswerHeader h4{margin:10px 0 0;color:#17233a;font-size:15px;font-weight:1000;line-height:1.65}.reportAnswerBadge{min-width:62px;height:30px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;font-size:12px;font-weight:1000;white-space:nowrap}.reportAnswerBadge.correct{color:#158052;background:#dcf8e7}.reportAnswerBadge.wrong{color:#c13a30;background:#ffe7e3}.reportAnswerMeta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.reportAnswerMeta div{min-height:58px;display:grid;align-content:center;gap:5px;padding:10px 12px;border:1px solid #dce5ee;border-radius:8px;background:#f8fbff}.reportAnswerMeta span{color:#62718a;font-size:12px;font-weight:1000}.reportAnswerMeta b{color:#314f78;font-size:12px;font-weight:1000;overflow-wrap:anywhere}.reportAnswerOptions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reportAnswerOption{min-height:40px;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:10px;padding:8px 10px;border:1px solid #e0e9f2;border-radius:8px;color:#314f78;font-size:13px;font-weight:900;background:#fff;overflow-wrap:anywhere}.reportAnswerOption b{width:26px;height:26px;display:grid;place-items:center;border-radius:8px;color:#fff;font-size:12px;background:#49bee3}.reportAnswerOption.correct{border-color:#7adfbd;background:#ddf8eb}.reportAnswerOption.wrong{border-color:#ff8b7e;background:#ffebe8}.reportAnswerEmpty{padding:16px;border:1px dashed #cfdbea;border-radius:8px;color:#62718a;font-size:13px;font-weight:900;text-align:center;background:#f8fbff}.templateModuleList{display:grid;gap:16px}.templateModule{display:grid;gap:10px}.templateModule header{display:flex;align-items:center;justify-content:space-between;gap:12px}.templateModule h4{margin:0;color:#263247;font-size:16px;font-weight:1000}.templateModule header span{min-height:28px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;color:#30518a;font-size:12px;font-weight:1000;background:#edf4ff}.reportTemplateTable{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #dce5ee}.reportTemplateTable th,.reportTemplateTable td{padding:12px;border:1px solid #dce5ee;color:#263247;font-size:13px;font-weight:850;line-height:1.65;vertical-align:top;text-align:left}.reportTemplateTable th{color:#1f2d44;font-weight:1000;background:#eaf1f8}.reportTemplateTable th:first-child,.reportTemplateTable td:first-child{width:92px}.reportTemplateConclusion{padding-top:4px}.reportTemplateConclusion h4{margin:0 0 10px;color:#1f2d44;font-size:18px;font-weight:1000;line-height:1.45}.reportAiState{min-height:74px;display:inline-flex;align-items:center;gap:8px;padding:16px 18px;border:1px dashed #c7d7e8;border-radius:8px;color:#314f78;font-size:14px;font-weight:1000;background:#f8fbff}.reportAiState svg{flex:0 0 auto}.reportAiState .lucide-loader-circle{animation:spin 1s linear infinite}.reportAiState.error{color:#b6342b;border-color:#ffb4aa;background:#fff1ef}.reportConclusionTable{width:100%;border-collapse:collapse;table-layout:fixed;border:1px solid #cfdbea;background:#fff}.reportConclusionTable th,.reportConclusionTable td{padding:14px 16px;border:1px solid #cfdbea;color:#263247;font-size:14px;font-weight:850;line-height:1.8;vertical-align:top;text-align:left}.reportConclusionTable th{color:#1f2d44;font-weight:1000;background:#eaf1f8}.reportConclusionTable th:first-child,.reportConclusionTable td:first-child{width:140px;text-align:center}.reportConclusionTable td:first-child{color:#1f2d44;font-weight:1000;background:#f8fbff}.reportConclusionTable ol{display:grid;gap:6px;margin:0;padding-left:20px}.reportConclusionTable li{padding-left:2px}.scoreRing{width:108px;height:108px;display:grid;place-items:center;margin:0 auto;border:10px solid var(--lemon);border-bottom-color:var(--mint);border-left-color:var(--coral);border-radius:50%;color:var(--ink);font-family:var(--mono);font-size:28px;font-weight:1000;background:#fff;box-shadow:inset 0 0 0 6px #fff7df}.scoreBars{display:grid;gap:10px}.barLine{display:grid;grid-template-columns:82px minmax(0,1fr) 38px;gap:9px;align-items:center;color:var(--ink-soft);font-size:12px;font-weight:1000}.barLine i{height:10px;overflow:hidden;border-radius:999px;background:#e8eff6}.barLine i:before{content:"";display:block;width:var(--value);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--coral),var(--lemon),var(--mint))}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:700px){.reportTemplateOverlay{padding:14px 8px}.reportTemplateSheet{gap:16px;padding:18px 12px}.reportTemplateHeader{display:grid;gap:12px}.reportTemplateHeader h2{font-size:24px}.reportTemplateActions{width:100%;justify-content:space-between}.reportDownloadBtn{min-height:38px;padding:0 14px}.reportInfoTable{display:none}.reportInfoMobileList{display:grid;gap:8px}.reportAnswerHeader,.templateModule header{display:grid;gap:10px}.reportAnswerMeta,.reportAnswerOptions{grid-template-columns:1fr}.reportTemplateTable,.reportTemplateTable tbody,.reportTemplateTable tr,.reportTemplateTable td,.reportConclusionTable,.reportConclusionTable tbody,.reportConclusionTable tr,.reportConclusionTable td{display:block;width:100%}.reportTemplateTable,.reportConclusionTable{border:0;background:transparent}.reportTemplateTable thead,.reportConclusionTable thead{display:none}.reportTemplateTable tr,.reportConclusionTable tr{border:1px solid #dce5ee;border-radius:8px;overflow:hidden;background:#fff}.reportTemplateTable td,.reportConclusionTable td{border:0;border-bottom:1px solid #edf2f7;padding:11px 12px}.reportTemplateTable td:last-child,.reportConclusionTable td:last-child{border-bottom:0}.reportTemplateTable td:before,.reportConclusionTable td:before{content:attr(data-label);display:block;margin-bottom:5px;color:#62718a;font-size:12px;font-weight:1000}.reportTemplateTable td:first-child,.reportConclusionTable td:first-child{width:100%;text-align:left}}@media print{@page{size:A4;margin:12mm}html,body,#root{width:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-shell,.app-shell main,.studentView,.studentGrid,.adminView,.adminShell{width:100%!important;min-height:0!important;display:block!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.topbar,.studentView>.floaters,.studentView .questBoard,.studentView .playPanel,.adminShell>.adminSidebar,.adminShell>.adminMain,.adminShell>.reportDock,.reportTemplateActions{display:none!important}.reportTemplateOverlay{position:static!important;inset:auto!important;z-index:auto!important;display:block!important;padding:0!important;overflow:visible!important;background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.reportTemplateSheet{width:100%!important;max-width:none!important;display:block!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}.reportTemplateBlock,.reportAnswerList,.templateModuleList{display:block!important;break-inside:auto!important;page-break-inside:auto!important}.reportTemplateBlock{margin-bottom:18px!important}.reportAnswerCard,.templateModule,.reportTalkCard{margin-bottom:12px!important}.reportTemplateHeader,.reportAnswerCard,.templateModule,.reportTalkCard,.reportTemplateTable tr,.reportConclusionTable tr{break-inside:avoid;page-break-inside:avoid}}@media(max-width:1160px){.studentGrid,.adminShell{grid-template-columns:1fr}.adminShell{width:min(920px,100%)}.adminSidebar{grid-template-columns:minmax(190px,auto) minmax(0,1fr);align-items:center}.adminNav{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){body,.adminView{background-attachment:scroll}.topbar{grid-template-columns:1fr;justify-items:stretch;padding:12px}.brand,.topChips{justify-content:center}.studentView,.adminView{padding:18px 12px 28px}.studentForm{grid-template-columns:repeat(2,minmax(0,1fr))}.studentForm .field:first-child{grid-column:span 2}.journeyRow,.pathMap,.completionStrip,.statRow,.toolbar,.resourceGrid,.answerMeta,.answerOptionGrid{grid-template-columns:1fr}.pathMap:before{display:none}.pathMap{display:none}.adminSidebar{grid-template-columns:1fr}.adminNav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.brand strong{font-size:18px}.topChips{display:none}.viewSwitch{grid-template-columns:repeat(2,minmax(0,1fr))}.viewSwitch button{padding:0 10px}.questBoard{padding:20px 14px}.heroCopy h1{font-size:41px}.heroCopy h1 span{margin-left:0}.heroCopy p{font-size:15px}.studentForm,.mascotCard,.questionHeader{grid-template-columns:1fr}.studentForm .field:first-child{grid-column:auto}.mascotCard img{width:118px;justify-self:center}.starMeter span{height:32px}.adminShell{padding:10px}.adminNav,.questionActions,.detailPanelHeader,.answerDetailHeader{display:grid;grid-template-columns:1fr}.detailSummary{justify-content:start}.primaryBtn,.secondaryBtn{width:100%}}@media(max-width:430px){.studentView{padding:10px 8px 18px;overflow:visible}.studentGrid{gap:12px;align-items:start}.questBoard,.playPanel{border-width:1px;box-shadow:0 12px 28px #264c6f24;-webkit-backdrop-filter:blur(8px) saturate(1.05);backdrop-filter:blur(8px) saturate(1.05)}.questBoard{padding:14px 12px}.playPanel{grid-template-rows:auto auto auto;gap:10px;padding:12px;overflow:visible}.heroCopy h1{font-size:34px;line-height:1.05}.heroCopy p{margin-bottom:16px;font-size:13px;line-height:1.6}.field input,.field select{height:42px}.mascotCard{grid-template-columns:64px minmax(0,1fr);gap:10px;padding:10px}.mascotCard img{width:64px;justify-self:auto}.mascotCard h2{font-size:20px}.mascotCard p{margin-top:5px;font-size:12px;line-height:1.45}.starMeter{gap:6px}.starMeter span{height:28px}.starMeter svg{width:15px;height:15px}.questionBox{gap:10px;padding:12px;box-shadow:none}.questionHeader{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px}.questionHeader h2{font-size:22px;line-height:1.25;overflow-wrap:anywhere}.questionHeader span{min-height:28px;padding:4px 9px;font-size:11px;white-space:nowrap}.questionText{padding:12px;font-size:16px;line-height:1.6;overflow-wrap:anywhere}.answerList{gap:8px}.answerOption{min-height:44px;grid-template-columns:32px minmax(0,1fr);gap:8px;padding:6px 10px;font-size:15px}.answerOption b{width:30px;height:30px}.questionActions{gap:8px}.questionActions .primaryBtn,.questionActions .secondaryBtn{min-height:44px;padding:0 12px;font-size:14px}.reportTemplateOverlay{padding:8px}.reportTemplateSheet{gap:12px;padding:14px 12px 18px}.reportTemplateHeader{grid-template-columns:minmax(0,1fr) 36px;align-items:start;gap:8px 10px;padding-bottom:12px}.reportTemplateHeader>div:first-child{min-width:0}.reportTemplateHeader h2{margin:0;font-size:21px;line-height:1.28;overflow-wrap:anywhere}.reportTemplateActions{display:contents}.reportTemplateHeader .tinyIconBtn{grid-column:2;grid-row:1;justify-self:end;width:34px;height:34px}.reportTemplateHeader .reportDownloadBtn{grid-column:1 / -1;grid-row:2;justify-self:start;min-height:34px;padding:0 12px;font-size:12px}.reportTemplateBlock{gap:10px}.reportTemplateBlock h3{font-size:17px}.reportTalkCard p{padding:13px 14px;font-size:14px;line-height:1.85}}
