:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#1d2433;background:#f6f7fb;--accent: #3a5bd9}*{box-sizing:border-box}body{margin:0}.center{margin:10vh auto}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 4px #00000014}.narrow{max-width:420px}label{display:block;margin:12px 0;font-size:14px}input,select,textarea{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid #ccd;border-radius:8px;font:inherit}label.check{display:flex;gap:8px;align-items:flex-start}label.check input{width:auto;margin-top:3px}fieldset.subjects{border:1px solid #e3e5ee;border-radius:8px;padding:8px 12px;margin:12px 0}button{font:inherit;border-radius:8px;padding:9px 14px;border:1px solid transparent;cursor:pointer}.primary{background:var(--accent);color:#fff}.primary:disabled{opacity:.5}.ghost{background:transparent;border-color:#ccd}.small{font-size:13px}.muted{color:#667}.error{color:#b3261e;margin-top:12px}.steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.step{font-size:12px;padding:4px 8px;border-radius:999px;background:#eef0f6;color:#667}.step.on{background:#eef1fd;color:var(--accent);font-weight:600}.step.done{background:#e6f6ea;color:#1b7a3a}.app{display:grid;grid-template-columns:240px minmax(0,1fr);height:100vh;height:100dvh}.app>aside{background:#fff;border-right:1px solid #e3e5ee;padding:16px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0}.app>aside .top{display:flex;flex-direction:column;gap:6px}.app>aside nav{display:flex;flex-direction:column;gap:2px}.app>aside .views{margin-top:8px}.app.exam{grid-template-columns:minmax(0,1fr)}.app.exam>aside{display:none}.vh{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0!important}.brand{font-weight:700;margin-bottom:8px}.nav{text-align:left;background:transparent}.nav.on{background:#eef1fd}.nav:disabled{color:#5b6170;background:transparent;border:1px dashed #b9bdc9;cursor:not-allowed}.nav:disabled .why{font-size:11px;display:block;color:#5b6170}.streak{font-size:13px;display:inline-flex;gap:4px;align-items:center;background:#fff1e6;color:#8a3b00;border-radius:999px;padding:3px 10px;align-self:flex-start;white-space:nowrap}.badges{display:flex;flex-wrap:wrap;gap:4px}.badge{font-size:11px;background:#fff4d6;border-radius:10px;padding:2px 8px}main{overflow:hidden;position:relative;min-width:0;min-height:0}.chat{display:flex;flex-direction:column;height:100%;min-height:0}.chat header{padding:12px 20px;border-bottom:1px solid #e3e5ee;background:#fff}.chat header h2{margin:0;font-size:18px}.log{flex:1;min-height:0;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}.msg{max-width:720px;padding:10px 14px;border-radius:12px;line-height:1.5}.msg.user{align-self:flex-end;background:var(--accent);color:#fff}.msg.assistant{background:#fff}.notice{margin:0 20px;padding:8px 12px;background:#fff4d6;border-radius:8px;font-size:14px}.composer{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px;background:#fff;border-top:1px solid #e3e5ee;align-items:center}.composer textarea{flex:1 1 240px;margin:0;resize:none;min-width:0}.attach{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0;cursor:pointer;border:1px solid #ccd;border-radius:8px;background:#fff;font-size:20px;line-height:1}.attach:focus-within{outline:2px solid var(--accent);outline-offset:2px}.attach svg{width:22px;height:22px}.composer .preview{flex:1 1 100%;display:flex;align-items:center;gap:8px}.thumb{position:relative;display:inline-block}.thumb img{display:block;width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid #ccd}.thumb .remove{position:absolute;top:-8px;right:-8px;width:24px;height:24px;padding:0;border-radius:50%;background:#1d2433;color:#fff;font-size:14px;line-height:24px}.msg.user img{display:block;max-width:220px;max-height:220px;border-radius:8px;margin-bottom:6px;background:#fff3}.panel{padding:24px;overflow-y:auto;height:100%}.toast{position:absolute;top:12px;right:12px;pointer-events:none;background:#1b7a3a;color:#fff;padding:10px 14px;border-radius:10px;z-index:5;max-width:320px;font-size:14px}.coverage{display:grid;gap:8px;margin:16px 0}.cov{display:grid;grid-template-columns:120px 1fr auto;gap:8px;align-items:center}.bar{height:8px;background:#e3e5ee;border-radius:4px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}.day-card{background:#fff;border-radius:12px;padding:14px;margin:10px 0;box-shadow:0 1px 3px #0000000f}.day-card.revision{border-left:4px solid #f0b429}.day-card.compact{padding:10px 12px}.day-head{display:flex;gap:8px;align-items:center;margin-bottom:6px}.tag{font-size:11px;background:#fff4d6;border-radius:8px;padding:2px 8px}.checklist{list-style:none;padding:0;margin:0}.checklist li{margin:6px 0}.kind{font-size:11px;text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:1px 6px;margin-right:4px}.kind.learn{background:#eef1fd;color:var(--accent)}.kind.review{background:#e6f6ea;color:#1b7a3a}.kind.weak{background:#fdecea;color:#b3261e}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:12px}.badge-card{background:#fafbfd;border-radius:12px;padding:14px;border:1px dashed #ccd;color:#4a5060}.badge-card .bar{margin-top:8px}.badge-card .left{margin-top:4px;font-size:12px}.badge-card.on{border:1px solid #f0b429;background:#fff;color:inherit;box-shadow:0 1px 4px #0000000f}.badge-name{font-weight:600;margin-bottom:4px}.cheer{margin-top:8px;font-size:13px;color:#1b7a3a}.quiz-card{background:#fff;border:1px solid #c9d4f7;border-radius:12px;padding:14px;max-width:720px}.quiz-stem{font-weight:600;margin-bottom:10px}.quiz-choices{display:grid;gap:8px}.quiz-choice{text-align:left}.quiz-choice.picked{border-color:var(--accent);background:#eef1fd}.quiz-choice.right{border-color:#2e7d32;background:#e6f6ea}.quiz-choice:disabled{color:inherit;cursor:default}.quiz-result{max-width:720px;padding:10px 14px;border-radius:10px;background:#e6f6ea}.quiz-result.wrong{background:#fff4d6}.papers h3{margin:18px 0 8px}.papers .card{margin-bottom:12px}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.row label{min-width:160px}.grow{flex:1}.disclaimer{background:#fff4d6;border:1px solid #f0d58a;border-radius:8px;padding:8px 12px;font-size:13px;margin:8px 0 12px}.tag{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#eef1fd;color:var(--accent);border-radius:6px;padding:2px 6px}.progress{margin-top:10px;font-size:14px}.progress progress{display:block;width:100%}.paper-list{list-style:none;padding:0}.paper-list li{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.link{background:none;border:none;color:var(--accent);text-decoration:underline;padding:4px}.test{display:flex;flex-direction:column;height:100%;overflow:hidden}.testbar{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid #e3e5ee;padding:8px 20px;display:flex;flex-direction:column;gap:6px}.testbar .t1,.testbar .t2{display:flex;gap:10px;align-items:center;min-width:0}.testbar .title,.testbar .t2 .saved{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.test .disclaimer{margin:8px 20px 0}.sections{display:flex;gap:6px;padding:8px 20px;overflow-x:auto;scrollbar-width:thin;flex-shrink:0}.test>.testbar,.test>.disclaimer{flex-shrink:0}.sections button{flex:0 0 auto;white-space:nowrap}.clock{font-variant-numeric:tabular-nums;font-weight:700;font-size:18px}.clock.low{color:#b3261e}.testbody{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;padding:0 20px 20px;overflow:hidden}.question{overflow-y:auto;min-width:0}.options{display:flex;flex-direction:column;gap:8px;margin:12px 0}.option{display:flex;gap:8px;align-items:baseline;border:1px solid #ccd;border-radius:8px;padding:8px 12px;cursor:pointer;margin:0}.option input{width:auto;margin:0}.option.on{border-color:var(--accent);background:#eef1fd}.option p{margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.palette{overflow-y:auto}.legend{display:flex;flex-wrap:wrap;gap:6px 10px;margin-bottom:10px}.legend i{margin-right:4px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px;margin:6px 0 12px}.grid .p{min-height:36px}.p{display:inline-block;min-width:14px;min-height:14px;padding:6px 0;border-radius:6px;border:1px solid #ccd;background:#fff;font-size:13px}i.p{padding:0;width:14px;height:14px;vertical-align:middle}.p.answered{background:#2e7d32;color:#fff;border-color:#2e7d32}.p.not_answered{background:#c62828;color:#fff;border-color:#c62828}.p.review{background:#6a1b9a;color:#fff;border-color:#6a1b9a}.p.answered_review{background:#6a1b9a;color:#fff;border-color:#2e7d32;box-shadow:inset 0 -4px #66bb6a}.p.cur{outline:2px solid var(--accent);outline-offset:1px}.report{display:flex;flex-direction:column;gap:8px;margin-top:8px;border:1px solid #ccd}.score .big{font-size:32px;font-weight:700}table.card{width:100%;border-collapse:collapse}table.card td,table.card th{text-align:left;padding:6px 8px;border-bottom:1px solid #eef}.review.correct{border-left:4px solid #2e7d32}.review.incorrect{border-left:4px solid #c62828}.review.unattempted{border-left:4px solid #ccd}li.key{font-weight:700;color:#2e7d32}@media(max-width:900px){.test{overflow-y:auto}.testbody{grid-template-columns:minmax(0,1fr);overflow:visible;flex:none}.question,.palette{overflow:visible}}.setup .notice{margin:12px 0 0}.admin{max-width:1200px;margin:0 auto}.admin header{align-items:center;gap:8px}.admin table{width:100%;border-collapse:collapse;font-size:14px}.admin th,.admin td{border-bottom:1px solid #e3e3ea;padding:8px;vertical-align:top;text-align:left}.admin .stem{white-space:pre-wrap;margin:4px 0}.admin td button{display:block;margin-bottom:6px}.admin-login{max-width:360px}.scroll-x{overflow-x:auto;max-width:100%}.scroll-x>table{min-width:480px}.admin .group-claims{display:flex;flex-direction:column;gap:8px}.admin .claim{border-left:3px solid #ccd;padding-left:8px}.admin .claim.auto{border-color:#6a1b9a}.landing h1{margin:0 0 4px}.landing .value{font-size:17px;margin:0 0 12px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:0;list-style:none}.chip{font-size:13px;border-radius:999px;padding:4px 10px;background:#eef1fd;color:var(--accent)}.landing .terms{margin-top:16px;font-size:12px}.landing .terms a{color:var(--accent)}.legal{max-width:820px;margin:24px auto;line-height:1.55}.legal h1{margin:12px 0 4px}.legal h2{font-size:17px;margin:22px 0 6px}.legal h3{font-size:15px;margin:10px 0 4px}.legal a{color:var(--accent)}.legal-nav{display:flex;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:12px}.draft-banner{background:#fff4d6;border:1px solid #e0b84a;color:#5c4400;border-radius:10px;padding:10px 14px;font-size:14px;margin:8px 0}mark.tbd{background:#ffe08a;color:#4a3800;padding:0 4px;border-radius:4px;font-weight:600}.legal table.retention{width:100%;border-collapse:collapse;font-size:14px}.legal table.retention th,.legal table.retention td{text-align:left;vertical-align:top;border-bottom:1px solid #e3e5ee;padding:6px 8px}.grievance{background:#f6f7fb;border-radius:10px;padding:8px 14px}@media(max-width:720px){.legal{margin:0;border-radius:0;padding:16px}.legal table.retention{font-size:13px}.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.app>aside{flex-direction:column;gap:6px;padding:8px 12px;border-right:0;border-bottom:1px solid #e3e5ee;overflow:visible}.app>aside .top{flex-direction:row;align-items:center;gap:8px}.app>aside .brand{margin:0;flex:1;min-width:0;white-space:nowrap}.app>aside .badges{display:none}.app>aside .subjects{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.app>aside .subjects .nav{text-align:center;padding:8px 4px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #e3e5ee}.app>aside .subjects .nav.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}.app>aside .subjects .nav:disabled{border-style:dashed;border-color:#b9bdc9}.app>aside .subjects .nav .long{display:none}.app>aside .subjects .nav .why{display:none}.app>aside .views{flex-direction:row;flex-wrap:wrap;margin:0;gap:3px}.app>aside .views>*{flex:0 0 auto;white-space:nowrap;font-size:13px;padding:6px}.chat header{padding:8px 12px}.chat header .muted{display:none}.log{padding:12px}.notice{margin:0 12px}.composer{padding:8px 12px;gap:6px}.composer textarea{flex:1 1 100%;order:-1}.composer .preview{order:-2}.composer .primary{margin-left:auto}.panel{padding:16px 12px}.toast{left:12px;right:12px;max-width:none}.testbar,.sections{padding:8px 12px}.testbody{padding:0 12px 16px}.test .disclaimer{margin:8px 12px 0}.card{padding:16px}.row label{min-width:0;flex:1 1 140px}.scroll-x>table.admin-queue{min-width:0}.papers .scroll-x>table.card{min-width:0;font-size:13px}.papers table.card td,.papers table.card th{padding:6px 4px}.papers table.card td:first-child{min-width:110px}.admin-queue .stem,.admin-queue td{overflow-wrap:anywhere}.admin-queue thead{display:none}.admin-queue,.admin-queue tbody,.admin-queue tr,.admin-queue td{display:block;width:100%}.admin-queue tr{background:#fff;border-radius:12px;margin:0 0 12px;padding:8px;box-shadow:0 1px 3px #0000000f}.admin-queue td{border:0;padding:4px 0}.admin-queue td[data-label]:before{content:attr(data-label);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#667}.admin-queue td button{display:inline-block;margin:0 6px 6px 0}}.danger{background:#b3261e;color:#fff}.danger:disabled{opacity:.5}.account .card{margin-bottom:14px}.account h3{margin:0 0 8px}.account ul{padding-left:18px;line-height:1.5}.account label{display:block;max-width:220px;margin:8px 0}.danger-zone{border:1px solid #f3c7c3}.ok{color:#1b7a3a}.deletion-scheduled{max-width:460px}.deletion-scheduled h2{color:#b3261e}.deletion-scheduled .primary{width:100%;margin:4px 0 8px}.deletion-scheduled h3{margin:18px 0 6px;font-size:15px}.admin-accounts{margin:12px 0}.admin-accounts .row input{max-width:200px}.admin-accounts .confirm{margin-top:10px;padding:12px;border:1px solid #f3c7c3;border-radius:8px;background:#fff7f6}.account .signed-in{align-items:center;margin-bottom:8px}.account .signed-in p{margin:0}.app-error{max-width:28rem;margin:15vh auto 0;padding:0 16px}.app-error .card p{margin-top:0}.msg-row{display:flex;flex-direction:column;align-items:flex-start;max-width:720px}.msg-row.user{align-self:flex-end;align-items:flex-end}.msg-row .msg{position:relative;max-width:100%}.quiz-item{display:flex;flex-direction:column;gap:10px;max-width:720px}.msg-actions{position:absolute;top:-14px;display:flex;gap:2px;padding:2px;background:#fff;border:1px solid #d9dce8;border-radius:999px;box-shadow:0 1px 4px #141e3c1f;opacity:0;pointer-events:none;transition:opacity .12s;z-index:2}.msg.assistant .msg-actions{right:-8px}.msg.user .msg-actions{left:-8px}.msg:hover .msg-actions,.msg:focus-within .msg-actions,.msg.active .msg-actions{opacity:1;pointer-events:auto}.icon-btn{min-width:30px;height:30px;padding:0 6px;border:0;border-radius:999px;background:transparent;color:#333a52;font-size:16px;line-height:1;cursor:pointer}.icon-btn:hover,.icon-btn:focus-visible{background:#eef1fd}.icon-btn[aria-pressed=true]{background:#dfe5fc}.react-picker{position:absolute;top:18px;right:-8px;display:flex;gap:2px;padding:4px;background:#fff;border:1px solid #d9dce8;border-radius:999px;box-shadow:0 2px 8px #141e3c29;z-index:3}.msg.user .react-picker{right:auto;left:-8px}.reaction-pill{margin-top:-6px;padding:1px 8px;font-size:14px;line-height:20px;border-radius:999px;background:#fff;border:1px solid #d9dce8;position:relative;z-index:1}.msg-row.assistant .reaction-pill{margin-left:10px}.msg-row.user .reaction-pill{margin-right:10px}button.reaction-pill{cursor:pointer}.quote{font-size:13px;line-height:1.35;padding:4px 8px;margin-bottom:6px;border-left:3px solid rgba(0,0,0,.25);border-radius:4px;background:#0000000f;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.msg.user .quote{border-left-color:#ffffffb3;background:#ffffff2e}.quote-who{font-weight:600}.reply-preview{flex:1 1 100%;display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:3px solid var(--accent);background:#f2f4fb;border-radius:6px;font-size:13px;min-width:0}.reply-preview .reply-label{font-weight:600;white-space:nowrap}.reply-preview .reply-snippet{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4a5068}.reply-preview .remove{width:24px;height:24px;padding:0;border-radius:50%;background:#1d2433;color:#fff;font-size:14px;line-height:24px;flex:none}@media(hover:none){.msg:hover .msg-actions{opacity:0;pointer-events:none}.msg.active .msg-actions,.msg:focus-within .msg-actions{opacity:1;pointer-events:auto}.icon-btn{min-width:36px;height:36px}}@media(max-width:720px){.composer .reply-preview{order:-3}}.chat{position:relative}.chat.dropping .log,.chat.dropping .composer{opacity:.45}.drop-hint{position:absolute;top:12px;right:12px;bottom:12px;left:12px;z-index:5;display:flex;align-items:center;justify-content:center;border:2px dashed #4b5bd6;border-radius:14px;background:#f0f2ffd9;color:#2d3aa8;font-weight:600;pointer-events:none}:root{--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.3, 1.4, .5, 1)}.crew{display:flex;justify-content:center;gap:14px;margin:-4px 0 14px}.crew .mascot{filter:drop-shadow(0 4px 6px rgba(30,40,90,.12))}.crew-member{display:inline-flex;animation:crew-in .5s var(--ease-spring) both}.small-crew{justify-content:flex-start;gap:8px;margin:0 0 6px}.small-crew .mascot{animation:crew-in .45s var(--ease-spring) both}.small-crew .mascot:nth-child(2){animation-delay:.08s}.small-crew .mascot:nth-child(3){animation-delay:.16s}.landing h1,.landing .value{text-align:center}.landing .chips{justify-content:center}.chip .muted{color:#6a72a8}fieldset.subjects label.check{align-items:center}fieldset.subjects .mascot{margin-top:-2px}.nav-mascot{margin-right:8px;vertical-align:-6px}.chat header{display:flex;align-items:center;gap:12px}.chat header .who{min-width:0}.card,.panel,.chat{animation:page-in .32s var(--ease-out) both}.msg-row,.quiz-item{animation:msg-in .26s var(--ease-out) both}.msg-row.user{animation-name:msg-in-user}.quiz-result{animation:result-in .35s var(--ease-spring) both}.quiz-result:not(.wrong){position:relative}.toast{animation:toast-in .35s var(--ease-spring) both}button{transition:transform .12s var(--ease-out),box-shadow .15s,background-color .15s,border-color .15s,opacity .15s}button:not(:disabled):active{transform:translateY(1px) scale(.97)}.primary:not(:disabled):hover{box-shadow:0 4px 12px #3a5bd947}.ghost:not(:disabled):hover{border-color:#aab;background:#fafbff}.quiz-choice:not(:disabled):hover{transform:translate(2px)}.quiz-item{position:relative}.quiz-burst{top:70%;left:30%}.party{position:fixed;top:60px;left:auto;right:180px}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}@keyframes msg-in{0%{opacity:0;transform:translateY(6px) scale(.985)}}@keyframes msg-in-user{0%{opacity:0;transform:translate(10px,4px) scale(.985)}}@keyframes result-in{0%{opacity:0;transform:scale(.96)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px) scale(.95)}}@keyframes crew-in{0%{opacity:0;transform:translateY(14px) scale(.8)}}@media(max-width:720px){.app>aside .nav .nav-mascot{display:none}.crew{gap:8px}.party{right:50%}.chat header{gap:10px}}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;scroll-behavior:auto!important}button:not(:disabled):active,.quiz-choice:not(:disabled):hover{transform:none}}.eq-btn{font-size:15px;color:inherit;padding:0}.eq-btn.on{background:#eef1fd;border-color:var(--accent);color:var(--accent)}.eq-panel{margin:0 20px;padding:10px 12px 6px;background:#fff;border:1px solid #dfe3f3;border-bottom:0;border-radius:14px 14px 0 0;box-shadow:0 -6px 18px #1e285a12;animation:eq-up .24s var(--ease-out) both;max-height:70vh;overflow:auto}.eq-head{display:flex;align-items:center;gap:10px}.eq-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}.eq-row{display:flex;gap:8px;align-items:stretch;margin-top:8px}.eq-host{flex:1;min-width:0;min-height:48px;display:flex;align-items:center}.eq-field{width:100%;min-height:48px;font-size:22px;padding:4px 10px;border:1.5px solid #ccd;border-radius:10px;background:#fbfcff;--caret-color: var(--accent);--selection-background-color: #dfe5ff;--contains-highlight-background-color: #f1f3ff;--primary: var(--accent)}.eq-field:focus-within{border-color:var(--accent);outline:2px solid #c9d3fb;outline-offset:1px}.eq-field::part(virtual-keyboard-toggle),.eq-field::part(menu-toggle){display:none}.eq-insert{min-width:84px}.eq-source{margin:6px 2px;overflow-x:auto;white-space:nowrap}.eq-source code{background:#f3f4f8;padding:1px 6px;border-radius:6px}.eq-keyboard{position:relative;margin:4px -12px 0}.eq-keyboard .ML__keyboard,.eq-panel{--keyboard-background: #f3f5fc;--keyboard-border: transparent;--keyboard-accent-color: var(--accent);--keycap-background: #fff;--keycap-background-hover: #eef1fd;--keycap-background-active: #dfe5ff;--keycap-border: #dfe3f3;--keycap-border-bottom: #c9cfe6;--keycap-text: #1d2433;--keycap-secondary-background: #e7eaf6;--keycap-secondary-text: #1d2433;--keyboard-toolbar-text: #4b5370;--keyboard-toolbar-text-active: var(--accent);--keyboard-toolbar-background-hover: #eef1fd;--keyboard-zindex: 5;--keycap-height: 46px;--keycap-max-width: 76px;--keycap-gap: 5px;--keycap-font-size: 20px;--keycap-small-font-size: 14px}.eq-keyboard .ML__keyboard{position:relative!important;inset:auto!important;height:auto!important}.eq-keyboard .MLK__backdrop,.eq-keyboard .MLK__plate{position:relative!important;inset:auto!important;transform:none!important}@keyframes eq-up{0%{opacity:0;transform:translateY(12px)}}@media(max-width:720px){.eq-panel{position:fixed;left:0;right:0;bottom:0;margin:0;z-index:30;max-height:82dvh;border-radius:16px 16px 0 0;padding:8px 8px 0;box-shadow:0 -10px 30px #141e3c2e}.eq-title .muted{display:none}.eq-field{font-size:20px}.eq-keyboard{margin:4px -8px 0}.eq-panel{--keycap-height: 40px;--keycap-gap: 3px;--keycap-font-size: 18px;--keycap-small-font-size: 12px}}.msg .katex-display{margin:.5em 0;overflow-x:auto;overflow-y:hidden;padding:2px 0}.md-inline .katex{font-size:1.05em}.msg.user .katex{color:#fff}.quiz-choice .md-inline p{display:inline;margin:0}.eq-keyboard .MLK__toolbar{overflow-x:auto;scrollbar-width:none}.eq-keyboard .MLK__toolbar .left{flex-wrap:nowrap;white-space:nowrap}.ncert{display:inline-block;margin-left:.4em;padding:0 .45em;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;line-height:1.6;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.admin{max-width:1320px;padding:16px}.admin-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px;margin-bottom:14px}.admin-head h2{margin:0 0 2px}.admin-head p{margin:0}.admin-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.admin-tile{background:#fff;border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px #0000000f;border-top:4px solid #d6dbea;min-width:0}.admin-tile p{margin:6px 0 0}.admin-tile .hint{font-size:11px;color:#889;overflow-wrap:anywhere}.admin-tile.state.ok{border-top-color:#2e7d32}.admin-tile.state.warn{border-top-color:#c77700}.admin-tile.state.stop{border-top-color:#b3261e;background:#fff7f6}.tile-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#667}.tile-value{font-size:22px;font-weight:700;margin-top:4px;line-height:1.25}.tile-sub{font-size:14px;font-weight:400;color:#556}.admin-tile.state.ok .tile-value{color:#1b5e20}.admin-tile.state.warn .tile-value{color:#8a5300}.admin-tile.state.stop .tile-value{color:#b3261e}.bar.meter{position:relative;margin-top:10px;height:10px;overflow:visible}.bar.meter i{border-radius:5px}.bar.meter.warn i{background:#c77700}.bar.meter.stop i{background:#b3261e}.bar.meter b{position:absolute;top:-3px;width:2px;height:16px;background:#556}ul.plain{margin:6px 0 0;padding-left:18px}ul.plain li{margin:2px 0}.admin-cols{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:14px;align-items:start}.admin-main,.admin-side{display:flex;flex-direction:column;gap:14px;min-width:0}.admin .card,.admin-accounts{margin:0}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px;margin-bottom:8px}.section-head h3{margin:0}.count{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:#e6f6ea;color:#1b7a3a}.count.warn{background:#fff3e0;color:#8a5300}.empty{border:1.5px dashed #d6dbea;border-radius:10px;padding:14px 16px;background:#fafbfe}.empty p{margin:4px 0 0}.empty-hint{margin:8px 0 0}.admin .lookup{display:flex;flex-direction:column;gap:8px}.admin .lookup label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#445}.admin .lookup input{width:100%;max-width:none;box-sizing:border-box;font-size:16px}.admin .lookup button{align-self:flex-start}.student-card{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f6f7fb}.student-card .admin-student{margin:0 0 6px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}dl.kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:6px 0}dl.kv>div{min-width:0}dl.kv dt{font-size:11px;color:#667;text-transform:uppercase;letter-spacing:.04em}dl.kv dd{margin:0;overflow-wrap:anywhere}.danger-tag{background:#fdecea;color:#b3261e;margin-left:6px}.admin tr.attn td{background:#fffaf0}.admin .spenders td{vertical-align:middle}.admin .spenders td button{margin:0}.ncert.untagged{background:#f3f3f6;color:#667}.chapter-counts{list-style:none;padding:0;margin:6px 0;display:flex;flex-wrap:wrap;gap:6px 10px}.chapter-counts .ncert{margin-left:0}@media(max-width:1100px){.admin-cols{grid-template-columns:minmax(0,1fr)}.admin-side{order:-1}}@media(max-width:720px){.admin{padding:10px}.admin-status{grid-template-columns:minmax(0,1fr);gap:8px}.admin-tile{padding:12px}.tile-value{font-size:19px}.admin-head{align-items:flex-start}.admin-actions button{padding:7px 10px}.admin .scroll-x>table.admin-pool{min-width:0;font-size:13px}.admin-pool th,.admin-pool td{padding:6px 4px}}.admin-accounts .notice,.admin-accounts .error{display:block;margin:8px 0 0}label.check .item-text{min-width:0;flex:1}label.check .item-text .ncert{margin-left:.3em}
