:root{--navy:#14224c;--navy2:#263970;--ink:#25234a;--violet:#6247bd;--gold:#f7cc63;--cream:#fff8e9;--parch:#f7f0df;--shadow:0 15px 35px rgba(20,29,66,.24);--green:#177648;--red:#aa3744}
*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:linear-gradient(#c5d9fbdb,#bed1efdd),url('assets/fantasy-background.webp') center/cover fixed}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:#263ed1}#app{min-height:100vh}
.nav{background:linear-gradient(100deg,#172251,#344588);color:#fff;border-bottom:3px solid #ffd777;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 25px;flex-wrap:wrap;box-shadow:var(--shadow)}.logo{font-weight:900;letter-spacing:.8px;font-size:clamp(20px,2.3vw,30px);color:#ffe6a3;text-shadow:0 2px 4px #182047}.logo small{font-size:12px;color:#ebecff;display:block;font-weight:500}.nav-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nav-right span{font-size:13px}.nav-link{color:white;text-decoration:none;font-weight:700;padding:8px 13px;border:1px solid #879de4;border-radius:10px;background:#344a9a}
.wrapper{max-width:1320px;margin:0 auto;padding:24px}.card{background:linear-gradient(180deg,#fffcf6,#f9f0df);border:3px solid #dcb965;border-radius:22px;padding:24px;box-shadow:var(--shadow)}.card-dark{background:linear-gradient(145deg,#273b7b,#131b49);color:#fff;border-color:#a5a2d8}.eyebrow{color:#8068b5;letter-spacing:1px;font-size:13px;font-weight:900}.card-dark .eyebrow{color:#ffdd89}h1{font-size:clamp(32px,4vw,58px);margin:10px 0 16px;color:#322663}h2{font-size:clamp(24px,2.5vw,36px);margin:2px 0 14px}h3{font-size:21px;margin:0 0 14px}.muted{color:#766e82}.card-dark .muted{color:#d4d9f8}.lead{line-height:1.8;font-size:18px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stack{display:grid;gap:16px}.hero{display:grid;grid-template-columns:350px 1fr;gap:22px;min-height:590px}.illustration{background:linear-gradient(180deg,#4259a066,#171f4c88),url('assets/adventurer.webp') center bottom/cover;border:4px solid #ddbc77;border-radius:22px;box-shadow:var(--shadow);display:flex;align-items:end;padding:24px}.illustration blockquote{margin:0;background:#182958d6;color:#ffe7b5;padding:14px 18px;border-radius:15px;line-height:1.8;font-weight:650}.hero-main{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.big-title{text-shadow:0 3px 3px #ead4a2}.crest{font-size:60px;line-height:1}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn{border:0;border-radius:14px;padding:13px 22px;font-weight:800;box-shadow:0 5px 0 rgba(56,50,95,.18);transition:transform .16s;color:#2b2354}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn.gold{background:linear-gradient(#ffe6a2,#f3b83e);border:2px solid #d99d2f;font-size:19px}.btn.purple{background:linear-gradient(#7664d1,#4e3baf);color:#fff;border:2px solid #9a8fda}.btn.gray{background:#e9e7ed;border:2px solid #cfc9d9}.btn.green{background:linear-gradient(#43b77d,#207e50);color:white;border:2px solid #157746}.btn.small{font-size:13px;padding:9px 12px}.field{display:grid;gap:6px;text-align:left;font-size:14px;font-weight:750}.field input,.field select,.input{border:1.5px solid #bfb7ce;background:white;border-radius:12px;padding:12px;color:#28233d;min-width:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-card{max-width:630px;margin:0 auto}.seg{display:flex;gap:6px;background:#e8e2f0;padding:5px;border-radius:12px}.seg button{flex:1;border:0;padding:10px;border-radius:9px;background:transparent;font-weight:750}.seg button.active{background:white;box-shadow:0 2px 6px #bcb0cc}.error{color:#a72f41;font-weight:700}.success{color:#157f50;font-weight:700}.notice{background:#eff5ff;border-left:5px solid #477cd4;border-radius:10px;padding:12px 15px;font-size:14px;line-height:1.65}.warn{background:#fff7e7;border-left:5px solid #d9a641}.statline{display:flex;gap:10px;flex-wrap:wrap}.pill{background:#e8e7ff;padding:8px 12px;border-radius:99px;font-size:13px;font-weight:780;color:#4d4093}.stars{color:#dca729;font-size:22px;letter-spacing:3px}.map-shell{background:linear-gradient(#eef1ffe3,#faf7efdf),url('assets/map-background.webp') center/cover;border-radius:24px;padding:25px;min-height:610px;border:3px solid #e6c679}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:18px auto;max-width:940px}.stage{border:3px solid #d0b979;border-radius:18px;background:#fffcf5ed;padding:15px;text-align:center;min-height:175px;box-shadow:0 7px 15px #26355c26;position:relative}.stage.selected{border-color:#6b4fd3;box-shadow:0 0 0 4px #e8deff}.stage.locked{filter:grayscale(.7);opacity:.68}.stage.boss{background:linear-gradient(145deg,#3b2268,#12194c);color:#fff;border-color:#c5a8f5}.stage-icon{font-size:35px}.stage-title{font-size:20px;font-weight:950;margin:6px 0}.stage-desc{font-size:13px;opacity:.76;min-height:34px}.stage-score{font-weight:800;font-size:14px;margin:8px 0}.stage .btn{font-size:13px;padding:7px 14px}.quiz-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px}.question{font-size:clamp(24px,2.6vw,34px);font-weight:720;line-height:1.8;background:white;border:2px solid #e8d6aa;padding:27px;border-radius:17px;text-align:center;min-height:150px;display:grid;place-items:center}.answers{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:18px}.choice{border:2px solid #c6ade2;border-radius:13px;background:white;text-align:left;min-height:100px;padding:15px;font-size:clamp(16px,1.5vw,22px);display:flex;align-items:center;gap:14px;overflow:auto}.choice:hover:not(:disabled){border-color:#6247bd;background:#f7f5ff}.choice span{background:#5e4bb8;color:white;border-radius:10px;min-width:36px;min-height:36px;display:grid;place-items:center;font-weight:900}.choice.wrong{background:#ffecec;border-color:#df8991}.choice.correct{background:#e8fbec;border-color:#3caa6a}.choice:disabled:not(.correct):not(.wrong){opacity:.7}.answer-body{flex:1}.feedback{font-size:16px;line-height:1.9;background:#fff;min-height:210px;padding:19px;border:2px solid #e6d2a0;border-radius:15px;white-space:normal}.feedback h3{font-size:24px}.feedback .math{line-height:2}.score-mark{font-size:clamp(45px,8vw,104px);color:#5c3898;text-shadow:0 4px 8px #ddc9f4;font-weight:1000}.progress{height:13px;background:#ebe4f4;border-radius:99px;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,#6656cf,#e5b74f)}.data-table{border-collapse:collapse;min-width:820px;width:100%;font-size:14px;background:#fff}.data-table th,.data-table td{border:1px solid #cfd2df;padding:11px 10px;text-align:center;white-space:nowrap}.data-table th{background:#263970;color:#fff;position:sticky;top:0}.data-table tbody tr:nth-child(even){background:#f8f8ff}.table-scroll{overflow:auto;border:1px solid #d6c6ad;border-radius:12px}.metric{background:#fff;border:2px solid #e9d5a6;border-radius:16px;padding:15px;text-align:center}.metric strong{display:block;font-size:34px;color:#42366b;margin:5px 0}.metric small{font-weight:700;color:#7a7288}.rank{font-size:62px;font-weight:1000;display:inline-grid;place-items:center;background:linear-gradient(140deg,#ffe5a8,#f0c458);color:#61376c;border-radius:20px;min-width:100px;padding:10px}.rank.A{background:linear-gradient(140deg,#e7dcff,#c9b2ff)}.rank.B{background:linear-gradient(140deg,#cae7ff,#8fc3ff)}.rank.C{background:linear-gradient(140deg,#e9f6e9,#b1dfb2)}.sparse{max-width:900px;margin:auto}.divider{height:1px;background:#dac9ba;margin:20px 0}.wrong-list{display:grid;gap:14px}.hide{display:none!important}.qrbox{background:#fff;border:2px dashed #d6ac65;padding:18px;border-radius:14px;text-align:center;min-height:170px}.teacher-filters{display:grid;grid-template-columns:1fr 1fr 1fr 1.3fr auto;gap:12px;align-items:end}.teacher-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.bar-row{display:grid;grid-template-columns:128px 1fr 50px;align-items:center;gap:12px;margin:15px 0}.bar-bg{background:#e7e0f6;border-radius:9px;height:19px;overflow:hidden}.bar-fg{height:100%;background:#6b55c1}.inline-label{font-size:14px;font-weight:850}.footer{text-align:center;padding:26px 0;color:#3c4772;font-size:13px} .math{overflow-x:auto;max-width:100%}.scroll{overflow:auto}
@media(max-width:980px){.hero{grid-template-columns:1fr}.illustration{min-height:230px;background-size:cover;background-position:center 35%}.quiz-layout{grid-template-columns:1fr}.grid.three,.map-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-metrics{grid-template-columns:repeat(2,1fr)}.teacher-filters{grid-template-columns:repeat(2,1fr)}.nav{padding:12px}}
@media(max-width:570px){.wrapper{padding:12px}.card{padding:16px}.grid.two,.grid.three,.form-grid,.map-grid,.answers,.teacher-metrics,.teacher-filters{grid-template-columns:1fr}.question{padding:15px;font-size:23px}.choice{min-height:70px}.title-big{font-size:32px}.stage{min-height:135px}.illustration{display:none}.btn{padding:12px 15px}.rank{font-size:42px}.nav-link{font-size:12px}}
/* Student-only refinements */
.logo{text-decoration:none;color:#ffe6a3}.nav-link{font:inherit;font-weight:750;color:#fff;cursor:pointer}.nav-link:hover{background:#4c5da8}.glow{color:#7455b5}.name-field{width:min(100%,390px);text-align:left;display:grid;gap:7px;font-size:14px;font-weight:750;margin:2px 0 18px}.name-field input{padding:13px 15px;border:2px solid #d5be88;background:#fff;border-radius:13px;font-size:17px;outline-color:#7455b5}.hero-stats{display:flex;gap:14px;justify-content:center;margin:17px 0;flex-wrap:wrap}.hero-stats span{padding:10px 14px;border-radius:12px;background:#efe8fd;color:#524085}.hero-main .notice{max-width:620px;text-align:left}.active-hint{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.stage.selected{border-color:#7b50ce;box-shadow:0 0 0 4px #d6baff,0 8px 28px #2d255352}.stage.boss .stage-desc{color:#f2e8ff}.map-title{text-align:center;color:#322663;margin:0 0 18px}.quiz-heading{margin-bottom:16px}.quiz-layout .card{min-width:0}.feedback-panel{align-self:start}.question-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.feedback-panel .btn.block{display:block;width:100%;margin-top:16px}.feedback-panel .feedback{min-height:210px}.answer-explanation{padding:15px;background:#f2f4ff;border-radius:11px;line-height:1.9;font-size:17px;overflow:auto}.choice{min-height:105px}.choice.correct{opacity:1!important}.choice.wrong{opacity:.72}.choice .answer-body{text-align:left;overflow-wrap:anywhere}.result-hero{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.result-emblem{font-size:90px;line-height:1}.result-score{font-size:clamp(30px,4vw,48px);font-weight:950;color:#c25840}.tabs{display:flex;gap:9px;border-bottom:1px solid #e8d5aa;padding-bottom:11px}.tabs button{border:1px solid #bbb0d2;background:#f1edf6;color:#4d3f88;padding:9px 16px;border-radius:12px;cursor:pointer;font-weight:750}.tabs button.active{background:#6452ba;color:white}.mistake-card .question{text-align:left;min-height:110px;margin:15px 0;font-size:22px}.mistake-card summary{cursor:pointer;color:#5a42af;font-weight:750;padding:9px 0}.mini-answers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.mini-option{background:#fff;border:1px solid #d6c8a8;padding:12px;display:flex;align-items:start;gap:8px;border-radius:10px;overflow:auto}.mini-option.correct{background:#ebfaed;border-color:#65b785}.rank small{font-weight:500}.outof{font-size:18px;color:#847d98}.empty{text-align:center;padding:35px}.qrbox{display:grid;place-items:center;min-height:260px;max-width:300px;margin:0 auto;background:#fff}.qrbox img{max-width:100%}.boot{display:grid;place-items:center;min-height:80vh;font-size:24px;font-weight:800;color:#342c6c}.field input{width:100%}.stage .btn{margin-top:5px}.footer{line-height:1.8}.logo small{opacity:.9}
@media(max-width:980px){.hero{min-height:auto}.map-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:570px){.nav{gap:10px}.nav-right{gap:6px}.nav-link{padding:8px;font-size:12px}.map-shell{padding:12px}.hero-main .notice{font-size:12px}.map-grid,.mini-answers{grid-template-columns:1fr}.stage{min-height:150px}.stage-icon{font-size:30px}.question{min-height:130px;font-size:23px;padding:15px}.answers{gap:10px}.choice{min-height:80px}.feedback{min-height:140px}.result-emblem{font-size:62px}.hero-stats{font-size:13px}}
@media(max-width:570px){
 .illustration{display:flex;min-height:200px;background-position:center 38%;padding:14px;align-items:end}
 .illustration blockquote{font-size:13px;padding:9px 12px;line-height:1.5}
}
