@charset "UTF-8";
:root{--bg:#f3f6fb;--card:#fff;--ink:#192d4a;--muted:#61728a;--blue:#1265ed;--light:#e9f1ff;--border:#e1e8f1;--green:#13855b;--red:#ba3443;--shadow:0 8px 32px #223a6010;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;line-height:1.5}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:wait;opacity:.55}a{color:var(--blue)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #f3b544;outline-offset:3px}[hidden]{display:none!important}.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px max(24px,calc((100vw - 1240px)/2));background:#ffffffd9;border-bottom:1px solid var(--border);gap:16px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:19px}.brand strong{font-weight:750}.brand small{display:block;letter-spacing:1.6px;font-size:9px;color:var(--muted);margin-top:1px}.brandmark{background:var(--blue);color:#fff;font-size:28px;width:45px;height:45px;display:grid;place-items:center;border-radius:13px}.topright{display:flex;align-items:center;gap:22px}.topright img{opacity:.8}.connection{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}.connection:before{content:"";width:7px;height:7px;background:var(--green);border-radius:50%}.connection.offline{color:var(--red)}.connection.offline:before{background:var(--red)}main{margin:auto;padding:46px 28px 0}.teacher-main{max-width:1240px}.intro{margin-bottom:32px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:750;color:var(--blue)}h1{font-size:clamp(32px,4vw,48px);line-height:1.12;letter-spacing:-1.8px;margin:13px 0 18px;font-weight:750}h1 span{color:var(--blue)}h2{font-size:21px;letter-spacing:-.45px;line-height:1.25;margin:0 0 8px}h3{font-size:17px;margin:0 0 12px}p{color:var(--muted);margin:10px 0 20px}.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:28px;box-shadow:var(--shadow)}.setup-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,1fr);gap:26px}.section-title{display:flex;align-items:center;gap:14px;margin-bottom:26px}.section-title p{margin:2px 0;font-size:14px}.number{display:grid;place-items:center;background:var(--light);color:var(--blue);border:1px solid #d9e5ff;border-radius:12px;width:45px;height:45px;font-size:13px;font-weight:750;flex-shrink:0}label{display:block;font-size:13px;font-weight:650;margin-bottom:18px}input,select{display:block;width:100%;border:1px solid #ced9e7;background:#f9fbfe;color:var(--ink);min-height:49px;border-radius:10px;padding:11px 13px;font-size:16px;margin-top:7px}select{padding-right:24px}input:focus,select:focus{border-color:var(--blue);background:#fff}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.primary,.secondary,.danger{min-height:48px;padding:12px 21px;border-radius:10px;border:1px solid transparent;font-weight:650;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:16px;text-decoration:none}.primary{background:var(--blue);color:#fff;box-shadow:0 4px 10px #1265ed22}.primary:hover{background:#0955cf}.secondary{background:white;color:var(--ink);border-color:#ced9e7}.danger{background:#fff0f1;color:var(--red);border-color:#f0d0d5}form>.primary{width:100%;justify-content:space-between}.hint{font-size:12px;line-height:1.65;color:var(--muted)}.error{color:var(--red);font-size:14px;overflow-wrap:anywhere}.error:empty{display:none}.side-notes{display:flex;flex-direction:column;gap:22px}.blue-note{background:var(--blue);border-color:var(--blue);color:#fff;padding:32px}.blue-note p{color:#d8e7ff;font-size:15px}.blue-note h2{font-size:28px;margin-top:28px}.big-symbol{font-size:45px;letter-spacing:3px;font-weight:300}.note-rule{height:1px;background:#ffffff40;margin:30px 0 22px}.pill{display:inline-block;background:var(--light);color:#29598d;border-radius:7px;font-size:12px;font-weight:600;padding:5px 10px}.pill.light{background:#ffffff20;color:white}.compact p{font-size:14px;line-height:1.8}details{border-top:1px solid var(--border);padding-top:16px;margin-top:20px}summary{font-size:13px;font-weight:650;cursor:pointer;min-height:32px}.rules p{font-size:12px}.rules table{font-size:12px}.rules td,.rules th{padding:5px 10px}.rules{overflow:auto}footer{display:flex;align-items:center;gap:20px;justify-content:space-between;border-top:1px solid var(--border);padding:24px 0;margin-top:42px;color:var(--muted);font-size:11px}footer span{margin-left:auto}.link-button{border:0;background:none;color:var(--blue);padding:8px 0;min-height:36px;font-size:12px;text-decoration:underline}.dashboard-title{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}.dashboard-title h1{font-size:36px}.dashboard-title p{font-size:14px;margin:0}.room-code{background:var(--card);border:1px solid #cbdcfa;padding:18px 25px;border-radius:16px;text-align:center;min-width:220px}.room-code small{display:block;font-size:10px;letter-spacing:2px;color:var(--muted)}.room-code strong{font-size:34px;letter-spacing:5px;display:block;font-variant-numeric:tabular-nums}.room-code button{display:block;margin:auto}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0 26px}.stats .card{padding:20px 24px}.stats small{font-size:10px;letter-spacing:1.1px;color:var(--muted);display:block}.stats strong{font-size:30px;display:block;margin-top:8px;line-height:1.2}.stats em{font-style:normal;font-size:16px;color:#8694a6}.toolbar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:22px 0}.segmented{display:flex;border:1px solid #d6e0ee;background:#eaf0f8;border-radius:10px;padding:4px}.segmented button{background:none;border:0;border-radius:7px;min-height:38px;padding:7px 16px;color:var(--muted);font-size:13px}.segmented .selected{background:#fff;color:var(--ink);box-shadow:0 2px 5px #182d4810}.toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}.join-guide{display:flex;gap:20px;margin-bottom:24px;box-shadow:none;background:#edf4ff}.join-guide p{font-size:14px;max-width:700px;margin:5px 0 8px}.join-guide a{font-size:13px}.table-card{padding:0;overflow:hidden}.table-title{display:flex;align-items:center;justify-content:space-between;padding:24px 26px;gap:16px}.table-title h2{font-size:19px;margin:0}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:13px}th{font-size:10px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);background:#f8fafd;font-weight:650}th,td{padding:15px 18px;border-bottom:1px solid #e9eef5}tbody tr:last-child td{border-bottom:0}.rank{display:inline-grid;place-items:center;font-weight:750;width:29px;height:29px;border-radius:9px;background:#f0f4fa}.rank.r1{background:#fff1c6;color:#956811}.rank.r2{background:#e9edf4;color:#55657c}.rank.r3{background:#f7e6d8;color:#9c622b}.name-cell{font-weight:650}.name-cell small{font-size:10px;color:var(--muted);font-weight:400;display:block}.score{font-weight:750;color:var(--blue);font-size:16px}.bar{display:block;width:90px;height:5px;background:#eaf0f8;border-radius:5px;margin-top:5px;overflow:hidden}.bar span{display:block;height:100%;background:var(--blue)}.status{font-size:11px;display:inline-block;color:var(--green)}.status.away{color:#a36d12}.empty{text-align:center;padding:32px;font-size:14px}.celebration-heading{text-align:center;padding-top:20px}.celebration-heading h2{font-size:30px;margin-top:10px}.podium{display:flex;align-items:flex-end;justify-content:center;gap:14px;margin:34px auto 20px;max-width:650px;min-height:240px}.podium-step{width:30%;text-align:center;border-radius:16px 16px 4px 4px;padding:20px 8px 12px;overflow-wrap:anywhere;min-width:0}.podium-step.p1{background:linear-gradient(#ffedb0,#f8d77a);min-height:235px;order:2}.podium-step.p2{background:linear-gradient(#e6edf8,#cfd9e9);min-height:190px;order:1}.podium-step.p3{background:linear-gradient(#f6e1d3,#e2b698);min-height:155px;order:3}.trophy{font-size:36px;display:block}.podium-step strong{display:block;margin:8px 0;font-size:16px}.podium-step small{font-size:12px}.honors{display:flex;justify-content:center;gap:16px;margin-bottom:26px;flex-wrap:wrap}.honor{background:white;border:1px solid var(--border);padding:12px 24px;border-radius:12px;font-size:13px}.results-actions{display:flex;gap:12px;margin:24px 0;flex-wrap:wrap}#analysis{margin:24px 0}#analysis details{margin:10px 0}dialog{border:1px solid var(--border);border-radius:18px;padding:30px;max-width:480px;width:calc(100% - 40px);color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#132b4b77}.student-main{max-width:680px;padding-top:38px}.student-main .intro{text-align:center}.student-main .intro h1{font-size:44px}.student-main #join-form{max-width:460px;margin:auto}.student-main h2{margin-bottom:24px}.student-strip{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:18px;flex-wrap:wrap}.student-strip>span:first-child{font-weight:700;max-width:220px;overflow:hidden;text-overflow:ellipsis}.student-strip strong{color:var(--blue)}.waiting{text-align:center;padding:45px 30px}.waiting-icon{font-size:48px;display:block;color:var(--blue);margin-bottom:15px}.waiting h1{font-size:32px;letter-spacing:-1px}.waiting p{font-size:15px}.task-card{padding:28px}.task-meta{display:flex;justify-content:space-between;font-size:11px;font-weight:650;letter-spacing:1px;color:var(--muted)}#attempts{color:var(--blue)}.progress-track{height:5px;background:#eaf0f8;margin:16px 0 26px;border-radius:5px;overflow:hidden}.progress-track div{height:100%;background:var(--blue);transition:width .3s}.task-heading{display:flex;justify-content:space-between;align-items:center}.timer{font-size:20px;font-weight:750;font-variant-numeric:tabular-nums}.timer.urgent{color:var(--red)}.question{font-size:clamp(26px,4vw,36px);font-weight:650;letter-spacing:-.7px;line-height:1.45;text-align:center;margin:30px 0 18px;overflow-wrap:anywhere;white-space:pre-wrap}.task-card>.hint{text-align:center;font-size:11px;margin-bottom:20px}#answer{text-align:center;font-size:24px;font-weight:600;min-height:60px;margin-bottom:12px}.numpad{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:12px 0}.numpad button{background:#f4f7fc;border:1px solid var(--border);border-radius:9px;min-height:47px;font-size:18px;color:var(--ink)}.numpad button:active,.choice-grid button:active{background:#dce9ff}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.choice-grid button{background:#f5f8fe;border:1.5px solid #d9e3f3;min-height:74px;border-radius:12px;font-size:24px;color:var(--ink);font-weight:650;overflow-wrap:anywhere}.choice-grid button:hover{border-color:var(--blue)}.feedback{padding:13px 15px;border-radius:9px;background:#f4f7fc;font-size:13px;text-align:center;margin-top:18px;min-height:46px}.feedback.correct{background:#e8f7ef;color:#13724e}.feedback.wrong,.feedback.skip{background:#fff2e4;color:#92580e}.personal-result{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.personal-result div{border:1px solid var(--border);border-radius:12px;padding:14px}.personal-result strong{font-size:26px;display:block;color:var(--blue)}.personal-result small{font-size:11px;color:var(--muted)}.mini-ranking{text-align:left}.mini-row{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--border);padding:12px 0;font-size:14px}.mini-row strong:last-child{margin-left:auto}.confetti{position:fixed;top:-20px;width:9px;height:14px;pointer-events:none;z-index:100;animation:fall 3.5s ease-in forwards}@keyframes fall{to{transform:translate3d(30px,105vh,0) rotate(640deg)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.landing{max-width:1000px;padding-top:80px}.landing h1{font-size:64px}.landing-links{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:36px 0}.landing-links a{text-decoration:none;color:var(--ink)}.landing-links .big-symbol{color:var(--blue)}.landing-links strong{color:var(--blue);font-size:14px}.projector .topbar,.projector footer{display:none}.projector main{max-width:1600px;padding-top:25px}.projector .join-guide{display:none}.projector table{font-size:20px}.projector th{font-size:13px}.projector .room-code strong{font-size:48px}.projector .score{font-size:24px}.projector .name-cell small{display:none}.projector .rank{width:40px;height:40px}
@media(max-width:800px){.setup-layout{grid-template-columns:1fr}.side-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{padding:22px}.stats{gap:10px}.stats .card{padding:17px}.stats small{font-size:9px}.stats strong{font-size:25px}.dashboard-title h1{font-size:30px}.toolbar{flex-wrap:wrap}.table-card{padding:0}.topbar{padding:16px 24px}.room-code{min-width:190px}.blue-note h2{font-size:25px}.student-main .card{padding:24px}}
@media(max-width:540px){main{padding:28px 18px 0}.topbar{padding:12px 18px}.brand{font-size:15px;gap:9px}.brand small{font-size:7px;letter-spacing:1px}.brandmark{width:36px;height:36px;font-size:23px}.topright{gap:10px}.topright img{width:38px;height:38px}.connection{font-size:10px;max-width:98px;line-height:1.3}.field-grid{gap:12px}.side-notes{grid-template-columns:1fr}.blue-note{display:none}.dashboard-title{flex-direction:column;align-items:stretch}.room-code{text-align:left;position:relative}.room-code button{margin:0;position:absolute;right:18px;top:35px;max-width:100px}.stats{grid-template-columns:1fr 1fr}.toolbar-actions{width:100%}.toolbar-actions button{flex:1}.stats small{font-size:10px}.table-title{padding:18px}.table-title .pill{font-size:9px}.join-guide{gap:12px}.join-guide .number{display:none}.student-main .intro h1{font-size:38px}.student-strip{gap:8px}.student-strip>span:first-child{max-width:130px}footer{flex-wrap:wrap;gap:8px}footer span{margin:0}.landing h1{font-size:48px}.landing-links{grid-template-columns:1fr}.podium{gap:7px}.podium-step strong{font-size:12px}.podium-step small{font-size:10px}.trophy{font-size:27px}.podium-step.p1{min-height:210px}.podium-step.p2{min-height:175px}.podium-step.p3{min-height:145px}.honor{padding:10px 13px}.personal-result strong{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.confetti{display:none}}
