:root{--ink:#14211b;--muted:#5f6d66;--line:#dfe5e1;--bg:#f6f7f4;--card:#fff;--brand:#0f3d2e;--go:#16a34a;--go-soft:#dcfce7;--warn:#b45309;--bad:#dc2626;--radius:14px;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}a{color:inherit}img{max-width:100%;display:block}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--go);margin:0 0 6px;font-size:12px;font-weight:700}.muted{color:var(--muted);font-weight:400}.small{font-size:13px}.warn{color:var(--warn)}.btn{appearance:none;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;padding:10px 16px;font-size:15px;font-weight:600;transition:transform 80ms,background .15s}.btn:active{transform:scale(.97)}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.ghost{background:0 0}.btn.ghost.on{background:var(--ink);color:#fff}.btn.small{padding:7px 12px;font-size:13px}.btn.wide{width:100%}.btn.correct{background:var(--go);border-color:var(--go);color:#fff}.btn.wrong{background:var(--bad);border-color:var(--bad);color:#fff}.btn.partial{color:#1f1300;background:#f59e0b;border-color:#f59e0b}.lede{color:var(--muted);max-width:600px;font-size:18px;line-height:1.55}.toolbar{background:var(--card);border-bottom:1px solid var(--line);z-index:5;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex;position:sticky;top:0}.toolbar-title{flex:1;min-width:160px;display:grid}.toolbar-title span{color:var(--muted);font-size:13px}.back{color:var(--muted);margin-right:6px;font-weight:600;text-decoration:none}.check{align-items:center;gap:6px;font-size:14px;display:flex}.print-tip{max-width:760px;color:var(--muted);margin:16px auto 0;padding:0 16px;font-size:14px;line-height:1.5}.sheets{justify-content:center;gap:28px;padding:24px 16px 64px;display:grid}.sheet{margin:0}.sheet-svg{aspect-ratio:8.5/11;background:#fff;width:min(720px,100vw - 32px);box-shadow:0 2px 14px #0000001f}.sheet-svg svg{width:100%;height:100%;display:block}.sheet figcaption{text-align:center;color:var(--muted);margin-top:8px;font-size:13px}@media print{@page{size:letter;margin:0}body,.print-page{background:#fff}.no-print{display:none!important}.sheets{padding:0;display:block}.sheet{break-after:page;page-break-after:always}.sheet-svg{width:8.5in;height:11in;box-shadow:none}}.snap-page{flex-direction:column;min-height:100vh;display:flex}.stage{border-radius:var(--radius);background:#0b0f0d;width:min(100%,960px,178vh - 391.6px);max-height:calc(100vh - 220px);margin:16px auto 0;position:relative;overflow:hidden}.stage-media{position:absolute;inset:0}.stage-media.mirrored{transform:scaleX(-1)}.stage video,.stage .overlay{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.guide{aspect-ratio:8.5/11;pointer-events:none;border:3px dashed #ffffffbf;border-radius:8px;place-items:end center;height:86%;padding-bottom:14px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.guide span{color:#fff;background:#0000008c;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600}.flash{background:#fff;animation:.35s ease-out forwards flash;position:absolute;inset:0}@keyframes flash{0%{opacity:.9}to{opacity:0}}.processing,.cam-error{text-align:center;color:#fff;background:#0b0f0db3;place-items:center;padding:24px;font-size:18px;font-weight:600;line-height:1.5;display:grid;position:absolute;inset:0}.debug{color:#d1fae5;background:#000000b3;border-radius:8px;gap:0;margin:0;padding:8px 10px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;display:grid;position:absolute;top:8px;left:8px}.debug div{gap:8px;display:flex}.debug dt{color:#86efac;min-width:52px}.debug dd{margin:0}.status{background:var(--card);border:1px solid var(--line);border-radius:999px;align-items:center;gap:12px;width:min(100% - 32px,960px);margin:14px auto 0;padding:8px 18px 8px 8px;transition:background .2s,border-color .2s;display:flex}.status.ready{background:var(--go-soft);border-color:var(--go)}.status-text{font-size:17px;font-weight:600}.ring{flex:none;width:44px;height:44px;transform:rotate(-90deg)}.ring-bg{fill:none;stroke:var(--line);stroke-width:5px}.ring-fg{fill:none;stroke:var(--go);stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .12s linear}.snap-actions{justify-content:center;padding:14px 16px 32px;display:flex}.tutorial{z-index:20;background:#0b0f0d99;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.tutorial-card{background:var(--card);border-radius:20px;gap:14px;width:min(420px,100%);padding:20px;display:grid}.seg{background:var(--bg);border-radius:999px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.seg button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:8px;font-weight:600}.seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 4px #0000001f}.tut-svg{background:#eef2ef;border-radius:12px;width:100%;height:auto}.tut-steps{gap:6px;margin:0;padding-left:22px;font-weight:600;display:grid}.tut-steps li{animation:3.6s infinite step-glow}@keyframes step-glow{0%,30%{color:var(--go)}34%,to{color:var(--ink)}}.tut-wobble{transform-origin:160px 110px;animation:3.6s ease-in-out infinite wobble}@keyframes wobble{0%{transform:skewY(5deg)rotate(-3deg)}8%{transform:skewY(-5deg)rotate(3deg)}16%{transform:skewY(4deg)rotate(-2deg)}24%,to{transform:none}}.tut-folder{animation:3.6s ease-in-out infinite folder}@keyframes folder{0%,22%{opacity:0}30%,to{opacity:1}}.tut-grip{fill:#16a34a59;stroke:var(--go);stroke-width:2px;animation:3.6s infinite grip}@keyframes grip{0%,30%{opacity:0}40%,70%{opacity:1}to{opacity:.4}}.tut-nocorner{animation:3.6s infinite nocorner}@keyframes nocorner{0%,45%{opacity:0}55%,85%{opacity:1}to{opacity:0}}.tut-finger{animation:3.6s ease-in-out infinite finger}@keyframes finger{0%,30%{opacity:0;transform:translate(0)scale(1)}36%{opacity:1}42%{transform:translate(0)scale(.8)}48%{transform:translate(0)scale(1)}60%{transform:translate(-10px,-86px)}80%{opacity:1;transform:translate(-10px,-86px)}to{opacity:0;transform:translate(-10px,-86px)}}.tut-marker{animation:3.6s infinite marker}@keyframes marker{0%,70%{fill:#111}80%,to{fill:var(--go)}}.tut-phone{animation:3.6s ease-in-out infinite phone}@keyframes phone{0%{transform:translate(40px,30px)rotate(8deg)}35%,to{transform:none}}.tut-outline{stroke:#f59e0b;animation:3.6s infinite outline}@keyframes outline{0%,55%{stroke:#f59e0b}65%,to{stroke:var(--go)}}.results{gap:16px;width:min(100% - 32px,820px);margin:20px auto 48px;display:grid}.name-pick{gap:6px;font-weight:600;display:grid}.name-pick select{font:inherit;border:1px solid var(--line);border-radius:10px;padding:8px 10px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.panel h3{margin:0 0 12px;font-size:17px}.panel h3 .muted{margin-left:6px;font-size:13px}.swipe-card{border:1px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:#fff;border-radius:16px;padding:14px;transition:transform .2s,border-color .15s;position:relative;box-shadow:0 6px 22px #00000014}.swipe-card.dragging{cursor:grabbing;transition:none}.swipe-card img{pointer-events:none;border-radius:8px;width:100%;margin-top:10px}.swipe-q{font-size:15px}.swipe-card.hint-correct{border-color:var(--go)}.swipe-card.hint-wrong{border-color:var(--bad)}.swipe-card.hint-partial{border-color:#f59e0b}.swipe-stamp{text-transform:uppercase;letter-spacing:.06em;background:#fff;border:3px solid;border-radius:8px;padding:6px 12px;font-weight:800;position:absolute;top:14px;right:14px}.hint-correct .swipe-stamp{color:var(--go)}.hint-wrong .swipe-stamp{color:var(--bad)}.hint-partial .swipe-stamp{color:#d97706}.swipe-buttons{grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 8px;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}code{background:#e9ece8;border-radius:5px;padding:1px 5px;font:.92em ui-monospace,SFMono-Regular,Menlo,monospace}.app-page{min-height:100vh}.wrap{gap:28px;width:min(100% - 32px,1080px);margin:24px auto 64px;display:grid}.btn.disabled,.btn:disabled{opacity:.45;pointer-events:none}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn.danger{color:var(--bad)}.btn small{opacity:.8;margin-left:1px;font-size:.7em}.template-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.template{text-align:left;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);font:inherit;cursor:pointer;gap:6px;padding:18px;transition:border-color .15s,transform .15s;display:grid}.template:hover{border-color:var(--go);transform:translateY(-2px)}.template strong{font-size:17px}.template span{color:var(--muted);font-size:14px;line-height:1.4}.builder{grid-template-columns:minmax(0,1fr) minmax(300px,420px);align-items:start;gap:20px;width:min(100% - 32px,1240px);margin:20px auto 64px;display:grid}@media (width<=900px){.builder{grid-template-columns:1fr}.builder-preview{position:static!important}}.builder-form{gap:16px;min-width:0;display:grid}.builder-preview{gap:10px;display:grid;position:sticky;top:76px}.preview-sheet{aspect-ratio:8.5/11;background:#fff;box-shadow:0 2px 14px #0000001f}.preview-sheet svg{width:100%;height:100%;display:block}.fit{align-items:center;gap:10px;font-size:13px;font-weight:600;display:flex}.fit-bar{background:var(--line);border-radius:99px;flex:1;height:8px;overflow:hidden}.fit-bar span{background:var(--go);border-radius:99px;height:100%;transition:width .2s;display:block}.fit.over{color:var(--bad)}.fit.over .fit-bar span{background:var(--bad);width:100%!important}.block{border:1px solid var(--line);background:#fbfcfa;border-radius:12px;gap:10px;margin-bottom:12px;padding:12px;display:grid}.block-head{justify-content:space-between;align-items:center;display:flex}.block-kind{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px;font-weight:700}.block-tools{gap:4px;display:flex}.icon-btn{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;width:30px;height:30px;font-size:15px;line-height:1}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.danger{color:var(--bad)}.block-fields{flex-wrap:wrap;gap:10px;display:flex}.block-fields.column{flex-direction:column}.field{color:var(--muted);gap:4px;min-width:120px;font-size:13px;font-weight:600;display:grid}.field.grow{flex:220px}.field.narrow{width:90px;min-width:80px}.field input,.field select,.option-field input[type=text],.option-field input:not([type]){font:inherit;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:9px;width:100%;padding:8px 10px;font-weight:400}.options-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.option-field{border:1px solid var(--line);background:#fff;border-radius:10px;align-items:center;gap:6px;padding:4px 8px;display:flex}.option-field input:not([type=radio]){border:0;padding:6px 4px}.option-field.is-answer{border-color:var(--go);background:var(--go-soft)}.option-field .letter{color:var(--muted);font-weight:700}.q-list{gap:8px;margin:0;padding-left:26px;display:grid}.q-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.q-text{font-weight:600}.q-options{color:var(--muted);flex-wrap:wrap;gap:4px 12px;font-size:13px;display:flex}.q-options .opt.correct{color:var(--go);font-weight:700}.q-options em{font-size:12px}.add-row{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{border:1px solid var(--line);color:var(--ink);background:#eef2ef;border-radius:999px;align-items:center;gap:6px;padding:5px 6px 5px 11px;font-size:13px;font-weight:500;display:inline-flex}.chip button{cursor:pointer;color:var(--muted);background:0 0;border:0;font-size:15px;line-height:1}.chip-input{border:1px dashed var(--line);font:inherit;background:#fff;border-radius:999px;min-width:150px;padding:6px 11px;font-size:13px}.chip.toggle{cursor:pointer;font:inherit;padding:6px 12px;font-size:14px}.chip.toggle.on{background:var(--brand);border-color:var(--brand);color:#fff}.chip kbd{opacity:.6;font:11px ui-monospace,Menlo,monospace}.key{width:min(100% - 32px,900px);margin:24px auto 64px}.key h1{margin:0 0 4px}.key h2{margin:28px 0 10px;font-size:18px}.key-table{border-collapse:collapse;width:100%;font-size:15px}.key-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line);padding:6px 8px;font-size:12px}.key-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 8px}.key-answer{color:var(--go);white-space:nowrap;font-weight:700}.key-open{border-bottom:1px solid var(--line);gap:4px;padding:10px 0;display:grid}@media print{.key{margin:.4in auto}.app-page{background:#fff}}.mistake{color:var(--warn);font-weight:600}.reason-picks{gap:6px;margin-top:12px;display:grid}.points-buttons{gap:8px;margin:14px 0 8px;display:grid}.swipe-q{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.check select{font:inherit;border:1px solid var(--line);border-radius:8px;padding:4px 6px}.submit-screen{width:min(100% - 32px,900px);margin:24px auto 48px}.submit-grid{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;gap:24px;display:grid}@media (width<=700px){.submit-grid{grid-template-columns:1fr}.submit-page{width:auto;max-height:46vh;margin:0 auto}}.submit-page{border:1px solid var(--line);border-radius:10px;width:100%;box-shadow:0 2px 12px #00000014}.submit-info h2{letter-spacing:-.02em;margin:0 0 12px;font-size:30px}.checklist{gap:8px;margin:16px 0;padding:0;font-size:16px;list-style:none;display:grid}.checklist li:before{content:"✓";background:var(--go-soft);width:22px;height:22px;color:var(--go);border-radius:50%;place-items:center;margin-right:8px;font-size:13px;font-weight:800;display:inline-grid}.checklist li.warn{color:var(--warn)}.checklist li.warn:before{content:"!";color:var(--warn);background:#ffedd5}.submit-actions{gap:10px;justify-content:inherit;flex-wrap:wrap;margin-top:18px;display:flex}.submit-actions .btn{padding:12px 22px;font-size:17px}.submit-screen.done{text-align:center;justify-items:center;padding-top:40px;display:grid}.submit-screen.done h2{margin:8px 0;font-size:36px}.submit-screen.done .submit-actions{justify-content:center}.big-check{background:var(--go);color:#fff;border-radius:50%;place-items:center;width:88px;height:88px;font-size:46px;font-weight:800;animation:.35s ease-out pop;display:grid}@keyframes pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.empty{text-align:center;padding:40px 18px}.grid-scroll{margin:-4px;padding:4px;overflow-x:auto}.row-link{cursor:pointer}.row-link:hover td{background:#f3f7f3}.row-missing td{color:var(--muted)}.link-btn{font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:600}.unsure{color:#7c3aed;vertical-align:super;margin-left:2px;font-size:11px;font-weight:800;display:inline-block}.pct{font-variant-numeric:tabular-nums}.pct.low{color:var(--bad)}.legend{margin:12px 0 0}.reteach{gap:10px;margin:0;padding:0;list-style:none;display:grid}.reteach li{align-items:baseline;gap:8px;line-height:1.4;display:flex}.drawer-backdrop{z-index:30;background:#0b0f0d66;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--card);align-content:start;gap:14px;width:min(520px,100%);height:100%;padding:20px;animation:.2s ease-out slide;display:grid;overflow-y:auto;box-shadow:-8px 0 30px #00000026}@keyframes slide{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}.drawer-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.drawer-head h3{margin:0;font-size:24px}.detail-list{gap:10px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.detail-list li{border-bottom:1px solid var(--line);padding-bottom:10px}.detail-list li.ok strong{color:var(--go)}.detail-list li.bad strong{color:var(--bad)}.detail-crop{border:1px solid var(--line);border-radius:8px;margin-top:6px}.detail-page{border:1px solid var(--line);border-radius:8px}.grade-wrap{gap:12px;width:min(100% - 32px,760px);margin:18px auto 48px;display:grid}.progress{background:var(--line);border-radius:99px;height:6px;overflow:hidden}.progress span{background:var(--go);height:100%;transition:width .25s;display:block}.grade-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.grade-done{text-align:center;justify-items:center;gap:6px;padding:36px 18px;display:grid}.grade-done .submit-actions{justify-content:center}.q-switch{font:inherit;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.slip-sheets{justify-content:center;gap:24px;padding:20px 16px 64px;display:grid}.slip-sheet{aspect-ratio:8.5/11;background:#fff;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;width:min(816px,100vw - 32px);display:grid;box-shadow:0 2px 14px #0000001f}.slip{color:#1d2b6b;border:1px dashed #c9c9c9;flex-direction:column;gap:4px;padding:.35in .32in;font-family:Patrick Hand,Comic Sans MS,Bradley Hand,cursive;font-size:clamp(11px,2vw,17px);line-height:1.25;display:flex;overflow:hidden}.slip-head{border-bottom:2px solid #1d2b6b;justify-content:space-between;align-items:baseline;padding-bottom:4px;display:flex}.slip-name{font-size:1.5em}.slip-score{color:#b91c1c;font-size:1.9em;transform:rotate(-4deg)}.slip-score small{font-size:.55em}.slip-title{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;font-family:ui-sans-serif,system-ui,sans-serif;font-size:.65em}.slip-cheer{color:#15803d;margin:4px 0;font-size:1.25em}.slip-line{margin:0}.slip-line.fix{color:#9a3412}@media print{.slips-page{background:#fff}.slip-sheets{padding:0;display:block}.slip-sheet{width:8.5in;height:11in;box-shadow:none;break-after:page;page-break-after:always}.slip{font-size:15px}}.toggle-field{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;flex:280px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.toggle-field input{width:18px;height:18px;accent-color:var(--brand);margin-top:3px}.toggle-field span{gap:2px;font-size:14px;display:grid}.toggle-field em{font-size:13px;font-style:normal}.badges{flex-wrap:wrap;gap:4px;display:flex}.badge{color:var(--muted);background:#eef2ef;border-radius:999px;padding:3px 8px;font-size:11.5px;font-weight:700}.badge.hw{color:#1d4ed8;background:#e0ecff}.badge.reteach{color:#9a3412;background:#fff7ed}.late-tag{text-transform:uppercase;letter-spacing:.05em;color:#b45309;background:#fef3c7;border-radius:6px;margin-left:6px;padding:2px 6px;font-size:11px;font-weight:800}.banner{color:#1e3a8a;background:#eef4ff;border-radius:10px;margin:0;padding:10px 14px}.drawer-backdrop.center{justify-content:center;align-items:center;padding:16px}.dialog{background:var(--card);border-radius:18px;gap:14px;width:min(560px,100%);max-height:90vh;padding:20px;animation:.2s ease-out pop;display:grid;overflow-y:auto;box-shadow:0 20px 50px #00000040}.skill-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.skill-list label{border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.skill-list label:has(input:checked){border-color:var(--brand);background:#f3f8f5}.skill-list input{width:18px;height:18px;accent-color:var(--brand);margin-top:3px}.skill-list span{gap:2px;display:grid}.narrow-inline{align-items:center;gap:10px;display:flex}.narrow-inline select{width:auto}.per-student td{white-space:nowrap}.page-progress{color:#1e3a8a;background:#eef4ff;border:1px solid #c7d7fe;border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;width:min(100% - 32px,960px);margin:14px auto 0;padding:10px 14px;display:flex}.page-progress strong{flex:1;min-width:200px}.page-chips{gap:6px;display:flex}.page-chip{color:#64748b;background:#fff;border:1px dashed #93c5fd;border-radius:999px;padding:5px 10px;font-size:13px;font-weight:700}.page-chip.done{background:var(--go);border:1px solid var(--go);color:#fff}.submit-pages{gap:10px;display:grid}.submit-pages.multi{grid-template-columns:1fr 1fr}.detail-page+.detail-page{margin-top:8px}.preview-pages{gap:12px;display:grid}.preview-label{color:var(--muted);text-align:center;margin-top:4px;font-size:12px}.blank-back{place-items:center;display:grid}@media print{.blank-back{box-shadow:none}}.builder-preview{max-height:calc(100vh - 90px);padding-bottom:12px;overflow-y:auto}.seg.three{grid-template-columns:repeat(3,1fr)}.seg.small-seg{grid-template-columns:auto auto;width:fit-content}.seg.small-seg button{padding:6px 14px;font-size:14px}.assign-block{border-top:1px solid var(--line);gap:10px;padding-top:14px;display:grid}.assign-block h4{margin:0;font-size:15px}.link-row{gap:8px;display:flex}.link-row input{border:1px solid var(--line);background:#f8faf8;border-radius:9px;flex:1;min-width:0;padding:9px 10px;font:13px ui-monospace,Menlo,monospace}.assign-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.classroom-btn{background:#1e8e3e;border-color:#1e8e3e}.gc-icon{margin-right:4px;display:inline-block}.badge.digital{color:#6d28d9;background:#ede9fe}.source-tag{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:#eef2ef;border-radius:6px;margin-left:6px;padding:2px 6px;font-size:11px;font-weight:800}.source-tag.digital{color:#6d28d9;background:#ede9fe}.do-page{align-content:start;gap:16px;width:min(100% - 28px,760px);min-height:100vh;margin:0 auto;padding:22px 0 64px;display:grid}.do-card{background:var(--card);border:1px solid var(--line);border-radius:18px;gap:10px;padding:24px;display:grid}.do-card.center{text-align:center;justify-items:center;padding:48px 24px}.do-card h1,.do-head h1{letter-spacing:-.02em;color:var(--brand);margin:0;font-size:clamp(26px,6vw,34px)}.do-card h3{margin:14px 0 0}.name-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.name-btn{font:inherit;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;padding:16px 12px;font-size:17px;font-weight:600}.name-btn:hover{border-color:var(--go);background:var(--go-soft)}.do-head{background:var(--bg);z-index:3;border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding:10px 0;display:flex;position:sticky;top:0}.do-progress{color:var(--muted);font-size:15px}.do-progress strong{color:var(--brand);font-size:24px}.do-note{background:#fff7ed;border-radius:12px;margin:0;padding:10px 14px}.do-section{gap:14px;display:grid}.do-label{letter-spacing:.12em;text-transform:uppercase;color:#9ca3af;margin:8px 0 0;font-size:12px;font-weight:800}.do-mc,.do-open{background:var(--card);border:1px solid var(--line);border-radius:16px;gap:12px;padding:16px;display:grid}.do-q-head{justify-content:space-between;gap:10px;font-size:18px;display:flex}.do-options{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;display:grid}.do-option{font:inherit;text-align:left;border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;align-items:center;gap:10px;min-height:52px;padding:12px 14px;font-size:17px;display:flex}.do-option:hover{border-color:#9ca3af}.do-option.on{border-color:var(--brand);background:#e8f2ec;font-weight:700}.do-letter{width:28px;height:28px;color:var(--muted);border:1.5px solid #9ca3af;border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:inline-grid}.do-option.on .do-letter{background:var(--brand);border-color:var(--brand);color:#fff}.do-unsure{font:inherit;color:#6d28d9;cursor:pointer;background:#fff;border:1.5px dashed #a78bfa;border-radius:999px;justify-self:start;padding:6px 12px;font-size:14px}.do-unsure.on{background:#ede9fe;border-style:solid;font-weight:700}.do-open textarea{font:inherit;border:1px solid var(--line);resize:vertical;border-radius:12px;min-height:110px;padding:12px;font-size:17px}.drawpad{gap:6px;display:grid}.drawpad canvas{aspect-ratio:10/3;border:1px solid var(--line);touch-action:none;cursor:crosshair;background:#fff;border-radius:12px;width:100%}.drawpad-tools{justify-content:flex-end;gap:6px;display:flex}.do-submit{text-align:center;justify-items:center;gap:8px;padding-top:8px;display:grid}.do-work{border:1px dashed #c7cdd4;border-radius:12px;gap:8px;padding:8px 12px;display:grid}.do-work[open]{padding-bottom:12px}.do-work summary{cursor:pointer;color:var(--muted);font-size:14px;font-weight:600}.do-work textarea{font:inherit;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:16px}.work-card{border:2px solid var(--line);background:#fff;border-radius:16px;gap:10px;padding:14px;display:grid}.work-card.is-wrong{border-color:#fca5a5}.work-card.is-right{border-color:#86efac}.work-card img{border:1px solid var(--line);border-radius:8px;width:100%}.work-card-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.work-verdict{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;display:flex}.unsure-pill{color:#6d28d9;background:#ede9fe;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700}.prediction{color:#7c2d12;background:#fff7ed;border-radius:10px;margin:0;padding:8px 12px;font-size:14px}.review-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.review-actions .btn{min-width:120px}.row-img{border:1px solid var(--line);border-radius:8px;width:100%}.answer-pick{grid-template-columns:1fr 1fr;gap:8px;display:grid}.link-btn.warn{color:var(--warn);font-weight:700}.lang-switch{background:#eef2ef;border-radius:999px;justify-self:start;padding:3px;display:inline-flex}.lang-switch button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700}.lang-switch button.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0000001f}.do-head-right{justify-items:end;gap:6px;display:grid}.speak-btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:18px;display:grid}.speak-btn:hover{background:#eef4ff;border-color:#93c5fd}.do-q-head{align-items:center}.do-q-tools{align-items:center;gap:8px;display:flex}.big-check.waiting{background:#f59e0b}.slip-es{opacity:.8;font-size:.86em;font-style:italic;margin-top:-2px!important}.slip.bilingual{gap:2px;font-size:clamp(10px,1.7vw,15px)}@media print{.slip.bilingual{font-size:13px}}.outbox-banner{z-index:40;color:#78350f;background:#fef3c7;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:8px 16px;font-size:14px;font-weight:600;display:flex;position:sticky;top:0}.badge.sample{color:#6d28d9;background:#f5f3ff}.skill-grid{border-collapse:separate;border-spacing:3px;width:100%;font-size:14px}.skill-grid th{color:var(--muted);text-align:center;vertical-align:bottom;min-width:96px;padding:6px;font-size:12px;font-weight:700}.skill-grid td{text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;padding:10px 6px;font-weight:700}.skill-grid .sticky-col{text-align:left;background:var(--card);font-weight:600}.skill-grid tfoot td{border-top:2px solid var(--line);border-radius:0}.heat.strong{color:#166534;background:#dcfce7}.heat.ok{color:#92400e;background:#fef3c7}.heat.weak{color:#991b1b;background:#fee2e2}.heat.none{color:#9ca3af;background:#f3f4f6;font-weight:400}.band-tag{border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-block}.band-tag.strong{color:#166534;background:#dcfce7}.band-tag.ok{color:#92400e;background:#fef3c7}.band-tag.weak{color:#991b1b;background:#fee2e2}.band-tag.none{color:#6b7280;background:#f3f4f6}.trend{margin-left:2px;font-size:10px}.trend.up{color:#16a34a}.trend.down{color:#dc2626}.trend.flat{color:#9ca3af}.skill-name{letter-spacing:-.02em;color:var(--brand);margin:0;font-size:30px}.skill-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.skill-card{background:var(--card);border:1px solid var(--line);border-left:5px solid #d1d5db;border-radius:14px;gap:6px;padding:14px;display:grid}.skill-card.strong{border-left-color:#22c55e}.skill-card.ok{border-left-color:#f59e0b}.skill-card.weak{border-left-color:#ef4444}.skill-card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.skill-pct{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.skill-card .band-tag{justify-self:start}.spark{width:100%;height:56px}.spark-grid{stroke:#e5e7eb;stroke-width:1px}.spark-line{fill:none;stroke:#64748b;stroke-width:2px}.spark-dot.strong{fill:#16a34a}.spark-dot.ok{fill:#d97706}.spark-dot.weak{fill:#dc2626}.spark-dot.none{fill:#9ca3af}.ws-history{gap:8px;margin:0;padding:0;list-style:none;display:grid}.ws-history li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ws-history a{color:var(--brand);font-weight:600}.work-note{margin:2px 0 0}.countdown{pointer-events:none;color:#fff;text-shadow:0 4px 24px #00000073;place-items:center;font-size:96px;font-weight:800;animation:.5s ease-out countPop;display:grid;position:absolute;inset:0}@keyframes countPop{0%{opacity:0;transform:scale(1.4)}to{opacity:.9;transform:scale(1)}}.snap-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;display:flex}.shutter{border:4px solid var(--brand,#14532d);cursor:pointer;background:#fff;border-radius:50%;width:68px;height:68px;padding:5px}.shutter span{background:var(--brand,#14532d);border-radius:50%;width:100%;height:100%;transition:transform .1s;display:block}.shutter:active span{transform:scale(.88)}.shutter:disabled{opacity:.35;cursor:default}.auto-toggle{font-size:14px}.results{gap:16px;display:grid}.stat-row{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);gap:2px;padding:14px 16px;display:grid}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px;font-weight:700}.stat-num{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:800}.stat-num small{color:var(--muted);font-size:16px;font-weight:600}.stat-num.low,.score-td strong.low{color:var(--bad)}.stat-sub{flex-wrap:wrap;gap:6px;font-size:13px;display:flex}.chip{color:var(--muted);background:#eef1ef;border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-block}.ok-chip{background:var(--go-soft);color:#166534}.warn-chip{color:#92400e;background:#fef3c7}.bad-chip{color:#991b1b;background:#fee2e2}.panel-title{margin:0 0 10px;font-size:18px}.step-list{gap:8px;margin:0 0 6px;padding:0;list-style:none;display:grid}.step-list li{border:1px solid var(--line);background:#fafbf9;border-radius:12px;grid-template-columns:36px 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.step-list li div{gap:2px;display:grid}.step-icon{text-align:center;font-size:22px}.all-done{color:#166534;margin:0;font-weight:600}.tabs{background:#eef1ef;border-radius:999px;margin-bottom:14px;padding:4px;display:inline-flex}.tabs button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 18px;font-size:14px;font-weight:700}.tabs button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px #0000001f}.legend{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;display:flex}.legend .ans{margin-left:8px}.roster{border-collapse:separate;border-spacing:0;width:auto}.roster .qh{width:44px}.roster th:nth-child(2),.roster .score-td{white-space:nowrap;width:150px;min-width:150px;padding-right:18px}.roster th{color:var(--muted);text-align:center;border-bottom:1px solid var(--line);padding:6px 4px;font-size:12px;font-weight:700}.roster th.sticky-col{text-align:left}.roster th small{font-weight:400}.roster td{border-bottom:1px solid var(--line);text-align:center;padding:8px 4px}.roster .sticky-col{background:var(--card);text-align:left;z-index:1;min-width:150px;padding-right:16px;position:sticky;left:0}.roster tr:last-child td{border-bottom:0}.who{text-align:left;font-size:15px;font-weight:700;display:block}.who-tags{gap:4px;margin-top:3px;display:flex}.score-td{min-width:96px;text-align:left!important}.score-td strong{font-size:18px;display:block}.bar{background:#edf0ee;border-radius:99px;height:6px;margin-top:4px;display:block;overflow:hidden}.bar span{background:var(--go);border-radius:99px;height:100%;display:block}.bar span.low{background:#f59e0b}.ans-td{padding:6px 3px!important}.ans{width:34px;height:34px;font:inherit;cursor:pointer;border:0;border-radius:9px;place-items:center;font-size:16px;font-weight:800;display:inline-grid;position:relative}.ans.sm{cursor:default;border-radius:6px;width:22px;height:22px;font-size:12px}span.ans{cursor:default}.ans-ok{color:#166534;background:#dcfce7}.ans-bad{color:#b91c1c;background:#fee2e2}.ans-blank{color:#6b7280;background:#f1f3f2}.ans-part{color:#92400e;background:#fef3c7}.ans-wait{color:#9ca3af;background:#f1f3f2}button.ans:hover{outline-offset:1px;outline:2px solid #94a3b8}.ans.flag{box-shadow:inset 0 0 0 2px #f59e0b}.ans-flag{color:#fff;background:#f59e0b;border-radius:50%;place-items:center;width:16px;height:16px;font-size:11px;display:grid;position:absolute;top:-6px;right:-6px}.ans.sm .ans-flag{width:12px;height:12px;font-size:9px;top:-4px;right:-4px}.ans-unsure{color:#fff;background:#6366f1;border-radius:50%;place-items:center;width:14px;height:14px;font-size:10px;display:grid;position:absolute;bottom:-4px;right:-4px}.ans-edited{font-size:11px;position:absolute;top:-6px;left:-6px}.row-missing .who{color:var(--muted);font-weight:600}.q-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.q-card{border:1px solid var(--line);background:#fff;border-radius:12px;gap:6px;padding:12px 14px;display:grid}.q-card.low{background:#fffdf5;border-color:#fcd34d}.q-card header{grid-template-columns:auto 1fr auto;align-items:baseline;gap:8px;display:grid}.q-card p{margin:0}.q-num{color:var(--muted);font-weight:800}.q-title{font-weight:600}.q-pct{font-variant-numeric:tabular-nums;font-size:20px}.q-card .btn{justify-self:start}.settings-panel summary{cursor:pointer;font-weight:700}.settings-panel[open]{gap:8px;display:grid}@media (width<=640px){.step-list li{grid-template-columns:30px 1fr}.step-list li>:last-child{grid-column:2;justify-self:start}}.results>*{min-width:0}.results .grid-scroll{max-width:100%;overflow-x:auto}@media (width<=640px){.stat-row{grid-template-columns:1fr 1fr}.stat-num{font-size:26px}.roster .sticky-col{min-width:110px}.roster th:nth-child(2),.roster .score-td{width:120px;min-width:120px}}.q-banner{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);gap:4px;padding:14px 18px;display:grid}.q-banner-n{text-transform:uppercase;letter-spacing:.08em;color:var(--go);font-size:12px;font-weight:800}.q-banner h1{letter-spacing:-.01em;margin:0;font-size:22px;line-height:1.25}.q-banner .chip{justify-self:start}.swipe-name{font-size:18px}.answer-frame{background:#fff;border:1px solid #eef0ee;border-radius:10px;margin-top:10px;position:relative;overflow:hidden}.answer-frame img{object-fit:contain;pointer-events:none;width:100%;min-height:120px;display:block}.swipe-card img{margin-top:0}.zoom-btn{border:1px solid var(--line);font:inherit;cursor:pointer;background:#ffffffeb;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;position:absolute;bottom:8px;right:8px}.card-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.seg{background:#eef1ef;border-radius:999px;padding:3px;display:inline-flex}.seg button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700}.seg button.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0000001f}.label-sm{color:var(--ink);font-size:13px;font-weight:700}.swipe-buttons .btn,.points-buttons .btn{padding:14px;font-size:17px}.zoom-view{z-index:50;background:#0f1412db;grid-template-rows:1fr auto;gap:14px;padding:24px;display:grid;position:fixed;inset:0}.zoom-view img{object-fit:contain;background:#fff;border-radius:12px;width:100%;height:100%}.zoom-bar{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.portal{--accent:#0f3d2e;background:var(--bg);grid-template-columns:248px 1fr;min-height:100vh;display:grid}.portal-nav{border-right:1px solid var(--line);background:#fff;flex-direction:column;gap:4px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.portal-brand{color:var(--ink);align-items:center;gap:10px;padding:4px 8px 14px;font-size:17px;font-weight:800;text-decoration:none;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:9px;place-items:center;width:30px;height:30px;font-size:16px;display:grid}.portal-nav nav{gap:2px;display:grid}.portal-nav nav a{color:var(--ink);border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-size:14.5px;font-weight:600;text-decoration:none;display:flex}.portal-nav nav a:hover{background:#f1f4f2}.portal-nav nav a.on{background:color-mix(in srgb, var(--accent) 12%, white);color:var(--accent)}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:14px 10px 4px;font-size:11px;font-weight:800}.nav-badge{text-transform:uppercase;background:var(--go-soft);color:#166534;border-radius:99px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:800}.nav-classes a{font-size:13.5px!important;font-weight:500!important}.class-dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.portal-me{color:var(--ink);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;margin-top:auto;padding:10px;text-decoration:none;display:flex}.portal-me span{min-width:0;display:grid}.portal-me small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.avatar{color:#fff;object-fit:cover;border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid}.portal-main{flex-direction:column;min-width:0;display:flex}.portal-top{z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#f6f7f4eb;align-items:center;gap:12px;padding:14px 28px;display:flex;position:sticky;top:0}.portal-top h1{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:22px;overflow:hidden}.portal-actions{flex-wrap:wrap;gap:8px;display:flex}.nav-toggle{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;width:38px;height:38px;font-size:18px;display:none}.portal-body{gap:18px;width:100%;max-width:1180px;padding:22px 28px 60px;display:grid}.nav-scrim{display:none}@media (width<=860px){.portal{grid-template-columns:1fr}.portal-nav{z-index:20;width:260px;transition:transform .2s;position:fixed;left:0;transform:translate(-100%);box-shadow:0 0 40px #00000026}.portal.nav-open .portal-nav{transform:none}.portal.nav-open .nav-scrim{z-index:15;background:#00000040;display:block;position:fixed;inset:0}.nav-toggle{place-items:center;display:inline-grid}.portal-top,.portal-body{padding-left:16px;padding-right:16px}.portal-top h1{font-size:18px}}.section-h{margin:4px 0 10px;font-size:16px}.stat.link{color:inherit;text-decoration:none}.stat.link:hover{border-color:#b8c4bd}.app-tiles{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;display:grid}.app-tile{border:1px solid var(--line);border-radius:var(--radius);color:inherit;background:#fff;align-content:start;gap:6px;padding:16px;text-decoration:none;transition:transform .12s,box-shadow .12s;display:grid}a.app-tile:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000012}.app-tile.soon{background:0 0;border-style:dashed}.app-icon{font-size:28px}.app-cta{color:var(--accent);margin-top:4px;font-size:14px;font-weight:700}.two-col{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;gap:18px;display:grid}.plain-list{margin:0;padding:0;list-style:none;display:grid}.plain-list li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.plain-list li:last-child{border-bottom:0}.plain-list a{color:var(--ink);text-decoration:none}.plain-list a:hover{text-decoration:underline}.feed{gap:10px;margin:0;padding:0;list-style:none;display:grid}.feed li{grid-template-columns:10px 1fr auto;align-items:baseline;gap:10px;font-size:14px;display:grid}.feed a{color:var(--ink)}.feed-dot{background:#9ca3af;border-radius:50%;width:8px;height:8px;transform:translateY(-1px)}.feed-dot.turnin{background:var(--go)}.feed-dot.sync{background:#2563eb}.feed-dot.note{background:#a855f7}.feed-dot.create{background:#f59e0b}.feed-dot.seating{background:#0ea5e9}.connect-card{background:linear-gradient(135deg,#fff,#eef2ff);border-color:#c7d2fe;grid-template-columns:1.4fr 1fr;align-items:center;gap:18px;display:grid}.connect-card h2{margin:0 0 6px;font-size:20px}.connect-card p{margin:0}.connect-card.compact{border-color:var(--line);background:#fff;grid-template-columns:1fr}.connect-actions{justify-items:start;gap:10px;display:grid}.setup-note{background:#fff;border:1px dashed #c7d2fe;border-radius:10px;padding:8px 10px}@media (width<=760px){.connect-card{grid-template-columns:1fr}}.google-btn{font:inherit;color:#3c4043;cursor:pointer;background:#fff;border:1px solid #dadce0;border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:15px;font-weight:700;display:inline-flex;box-shadow:0 1px 2px #00000014}.google-btn:hover{background:#f8faff}.banner{background:#eef6f1;border:1px solid #cfe5d8;border-radius:10px;margin:0;padding:8px 12px}.class-tabs{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.class-tabs a,.class-add{white-space:nowrap;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.class-tabs a small{color:var(--muted);background:#f1f3f2;border-radius:99px;padding:0 7px;font-weight:600}.class-tabs a.on{border-color:var(--c);box-shadow:inset 0 -3px 0 var(--c)}.class-add{color:var(--muted);cursor:pointer;font:inherit;border-style:dashed;font-size:14px;font-weight:700}.class-head{border-left:5px solid var(--c);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:4px 0 4px 14px;display:flex}.class-head h2{margin:0;font-size:22px}.seg a{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:700;text-decoration:none}.seg a.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #0000001f}.list-tools{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.list-tools p{margin:0}.search{font:inherit;border:1px solid var(--line);border-radius:10px;flex:1;min-width:240px;max-width:360px;padding:9px 12px}.people{border-collapse:collapse;width:100%}.people th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:8px;font-size:12px;font-weight:700}.people td{border-bottom:1px solid var(--line);padding:9px 8px}.people tr.row-link{cursor:pointer}.people tr.row-link:hover td{background:#f7faf8}.who-cell{align-items:center;gap:10px;display:flex}.who-cell small{font-size:12px}.avg-pill{text-align:center;color:#6b7280;background:#f1f3f2;border-radius:99px;min-width:52px;padding:3px 8px;font-size:13px;font-weight:800;display:inline-block}.avg-pill.strong{color:#166534;background:#dcfce7}.avg-pill.ok{color:#92400e;background:#fef3c7}.avg-pill.weak{color:#991b1b;background:#fee2e2}.work-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.work-list li{border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.work-list li>div:first-child{flex:1;gap:3px;min-width:240px;display:grid}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.seating-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.tool-label{color:var(--muted);margin-left:6px;font-size:13px;font-weight:700}.stepper{border:1px solid var(--line);border-radius:10px;align-items:center;gap:6px;padding:3px 6px;font-size:13px;display:inline-flex}.stepper span{color:var(--muted);font-weight:600}.stepper button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;width:26px;height:26px;font-size:16px;line-height:1}.room{background:repeating-linear-gradient(0deg,#fbfcfb,#fbfcfb 23px,#f3f6f4 24px);border:2px solid #e2e8e4;border-radius:16px;padding:14px;overflow-x:auto}.room-front{text-align:center;text-transform:uppercase;letter-spacing:.1em;color:#fff;background:#334155;border-radius:8px;max-width:420px;margin:0 auto 16px;padding:6px;font-size:12px;font-weight:800}.desks{gap:10px;display:grid}.desk{text-align:center;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:10px;place-items:center;min-height:64px;padding:6px;font-size:13px;font-weight:700;display:grid;position:relative}.desk.taken{cursor:grab;background:#fff;border:1px solid #cbd5d1;box-shadow:0 2px #cbd5d1}.desk.empty{color:#9ca3af;border:2px dashed #d5ddd8}.desk.picked{outline:3px solid var(--accent)}.desk-name{line-height:1.2}.desk-avg{opacity:.8;font-size:11px;font-weight:800}.desk-x{color:#9ca3af;cursor:pointer;background:0 0;border:0;font-size:14px;display:none;position:absolute;top:2px;right:4px}.desk.taken:hover .desk-x{display:block}.desk.heat-strong{background:#dcfce7;border-color:#86efac}.desk.heat-ok{background:#fef3c7;border-color:#fcd34d}.desk.heat-weak{background:#fee2e2;border-color:#fca5a5}.unseated{border:1px dashed var(--line);border-radius:12px;gap:8px;margin-top:14px;padding:12px;display:grid}.unseated p{margin:0}.profile-head{align-items:center;gap:16px;display:flex}.profile-head h2{margin:0;font-size:26px}.profile-head>div{gap:2px;display:grid}.trend{width:100%;height:auto}.trend .grid{stroke:#eef1ef;stroke-width:1px}.trend .grid.goal{stroke:#86efac;stroke-dasharray:4 4}.trend .axis{fill:#6b7280;font-size:10px}.trend .line-me{fill:none;stroke:var(--accent);stroke-width:3px}.trend .line-class{fill:none;stroke:#9ca3af;stroke-width:2px;stroke-dasharray:6 5}.trend .dot{stroke:#fff;stroke-width:2px}.trend .dot.strong{fill:#16a34a}.trend .dot.ok{fill:#d97706}.trend .dot.weak{fill:#dc2626}.key-me,.key-cls{border-top:3px solid var(--accent);vertical-align:middle;width:18px;height:0;margin:0 4px 0 8px;display:inline-block}.key-cls{border-top:2px dashed #9ca3af}.skill-bars{gap:12px;margin:0;padding:0;list-style:none;display:grid}.skill-bars li{grid-template-columns:1fr 120px 44px;align-items:center;gap:10px;font-size:14px;display:grid}.skill-bars small.mistake{grid-column:1/-1;margin-top:-6px}.note-form{gap:8px;margin-bottom:12px;display:grid}.note-form textarea{font:inherit;border:1px solid var(--line);resize:vertical;border-radius:10px;padding:10px}.note-form .btn{justify-self:start}.note-list{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.note-list li{border:1px solid var(--line);border-radius:12px;gap:4px;padding:10px 12px;display:grid}.note-list p{white-space:pre-wrap;margin:0}.note-list .chip{justify-self:start}.note-list .link-btn{justify-self:start;font-size:12px}.print-only{display:none}.profile-edit{grid-template-columns:auto 1fr;align-items:start;gap:20px;display:grid}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.form-grid input,.form-grid select,.class-settings input{font:inherit;border:1px solid var(--line);border-radius:10px;padding:9px 10px}.swatches{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.swatch{width:28px;height:28px;box-shadow:0 0 0 1px var(--line);cursor:pointer;border:3px solid #fff;border-radius:50%}.swatch.on{box-shadow:0 0 0 2px var(--ink)}.swatch.sm{border-width:2px;width:18px;height:18px}.swatch-row{gap:4px;display:inline-flex}.class-settings{gap:10px;margin:0;padding:0;list-style:none;display:grid}.class-settings li{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.class-settings input{min-width:220px}.google-linked p{margin:0 0 10px}.class-pick{gap:4px;margin-bottom:12px;display:grid}@media (width<=640px){.profile-edit{grid-template-columns:1fr}}@media print{.portal{display:block}.portal-nav,.portal-top .nav-toggle,.portal-actions,.no-print,.nav-scrim{display:none!important}.portal-top{background:0 0;border:0;position:static}.portal-body{padding:0}.print-only{display:block}.panel,.stat{break-inside:avoid;box-shadow:none}.desk-x{display:none!important}}.quest{--sky:#0b1d3a;--sky2:#1e3a8a;--path:#fde68a;background:radial-gradient(circle at 20% 10%, var(--sky2), var(--sky) 70%);color:#0f172a;align-content:start;justify-items:center;gap:16px;min-height:100vh;padding:18px 16px 40px;display:grid}.quest.theme-jungle{--sky:#14532d;--sky2:#15803d;--path:#fef3c7}.quest.theme-ocean{--sky:#0c4a6e;--sky2:#0891b2;--path:#e0f2fe}.quest.theme-castle{--sky:#3b0764;--sky2:#7e22ce;--path:#fde68a}.quest-top{color:#fff;flex-wrap:wrap;justify-content:space-between;gap:10px;width:min(100%,760px);font-size:15px;display:flex}.quest-card{background:#fff;border-radius:22px;gap:14px;width:min(100%,760px);padding:22px;display:grid;box-shadow:0 20px 50px #00000040}.quest-card.intro{text-align:center;justify-items:center}.quest-card.intro h1{margin:0;font-size:30px}.quest-hero{letter-spacing:6px;font-size:44px}.name-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;width:100%;display:grid}.board{background:#ffffff14;border:1px solid #ffffff26;border-radius:22px;width:min(100%,760px);position:relative}.board-path{width:100%;height:100%;position:absolute;inset:0}.board-path polyline{fill:none;stroke:var(--path);stroke-width:2.4px;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;opacity:.6;stroke-linecap:round}.tile{aspect-ratio:1;color:#fff;background:#ffffff2e;border:3px solid #ffffff73;border-radius:50%;place-items:center;width:13%;font-size:clamp(13px,2.6vw,20px);font-weight:900;transition:background .3s,transform .3s;display:grid;position:absolute;transform:translate(-50%,-50%)}.tile.done{background:var(--path);color:#0f172a;border-color:#fff}.tile.here{color:#0f172a;background:#fff;transform:translate(-50%,-50%)scale(1.12);box-shadow:0 0 0 6px #ffffff40}.tile.start,.tile.finish{background:#ffffffe6;font-size:clamp(18px,3.6vw,30px)}.token{filter:drop-shadow(0 4px 6px #0006);pointer-events:none;font-size:clamp(26px,5vw,44px);transition:left .6s cubic-bezier(.4,1.6,.5,1),top .6s cubic-bezier(.4,1.6,.5,1);position:absolute;transform:translate(-50%,-95%)}.q-tag{text-transform:uppercase;letter-spacing:.08em;color:#6366f1;font-size:12px;font-weight:800}.quest-q{letter-spacing:-.01em;margin:0;font-size:clamp(24px,4.5vw,34px)}.quest-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.quest-opt{font:inherit;cursor:pointer;text-align:left;background:#f8fafc;border:2px solid #e5e7eb;border-radius:16px;align-items:center;gap:12px;padding:16px;font-size:20px;font-weight:700;transition:transform .1s;display:flex}.quest-opt:hover:not(:disabled){border-color:#6366f1;transform:translateY(-2px)}.quest-opt.right{background:#dcfce7;border-color:#22c55e}.quest-opt.wrong{background:#fee2e2;border-color:#ef4444}.quest-opt.dim{opacity:.5}.quest-opt:disabled{cursor:default}.feedback{border-radius:14px;gap:8px;padding:14px 16px;font-size:16px;display:grid}.feedback .btn{justify-self:start}.feedback.good{color:#14532d;background:#dcfce7}.feedback.bad{color:#881337;background:#fff1f2}.feedback.tip{color:#713f12;background:#fef9c3}.quest-card textarea{font:inherit;border:2px solid #e5e7eb;border-radius:12px;padding:12px;font-size:18px}.quest-card>.btn{justify-self:start;font-size:17px}.quest-card.finish{text-align:center;justify-items:center;position:relative;overflow:hidden}.big-stars{margin:0;font-size:34px;font-weight:900}.confetti{letter-spacing:8px;white-space:nowrap;font-size:26px;animation:1.8s ease-out rain}@keyframes rain{0%{opacity:0;transform:translateY(-60px)}to{opacity:1;transform:none}}.quest-settings{width:min(100%,760px)}.quest-settings summary{cursor:pointer;font-weight:800}.mode-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:12px 0;display:grid}.mode-card{border:2px solid var(--line);cursor:pointer;border-radius:12px;gap:4px;padding:12px;display:grid}.mode-card.on{background:#eef2ff;border-color:#6366f1}.mode-card input{justify-self:start}.form-row{flex-wrap:wrap;align-items:end;gap:12px;display:flex}@media (width<=520px){.quest-options{grid-template-columns:1fr}}.portal-body>*{min-width:0}.portal-body .grid-scroll{overflow-x:auto}@media (width<=640px){.people td:nth-child(3),.people th:nth-child(3),.people td:nth-child(5),.people th:nth-child(5),.who-cell small{display:none}.search{min-width:0}.class-head{align-items:flex-start}.skill-bars li{grid-template-columns:1fr 70px 40px}}.note-form .seg,.notes>.seg{border-radius:14px;flex-wrap:wrap;max-width:100%}.note-form textarea{box-sizing:border-box;width:100%}.live-page{background:var(--bg);min-height:100vh}.live-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:start;gap:18px;max-width:1280px;margin:0 auto;padding:16px;display:grid}.live-cam .stage{width:100%}.live-hint{color:var(--muted);margin:8px 2px 0;font-weight:600}.live-panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;gap:12px;padding:16px;display:grid;position:sticky;top:76px}.live-start h2{margin:0 0 8px;font-size:18px}.live-start ol{gap:6px;margin:0;padding-left:20px;display:grid}.live-progress{gap:4px;font-size:15px;display:grid}.live-progress strong{font-size:22px}.live-qs{gap:6px;max-height:48vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.live-q{border:1px solid var(--line);border-radius:10px;grid-template-columns:28px 1fr 26px 26px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;transition:background .3s;display:grid}.live-n{color:var(--muted);font-weight:800}.live-text{text-overflow:ellipsis;white-space:nowrap;text-align:left;overflow:hidden}.live-ans{text-align:center;font-weight:800}.live-mark{text-align:center;font-weight:900}.live-q.done{background:#eff6ff;border-color:#bfdbfe}.live-q.done .live-mark{color:#2563eb}.live-q.right{background:#f0fdf4;border-color:#86efac}.live-q.right .live-mark{color:#16a34a}.live-q.wrong,.live-q.reveal{background:#fef2f2;border-color:#fca5a5}.live-q.wrong .live-mark,.live-q.reveal .live-mark{color:#dc2626}.live-q.retry{background:#fffbeb;border-color:#fcd34d;animation:1.4s ease-in-out infinite livePulse}.live-q.retry .live-mark{color:#d97706}.live-q.notsure{background:#f5f3ff;border-color:#c4b5fd}.live-q.notsure .live-mark{color:#7c3aed}@keyframes livePulse{50%{box-shadow:0 0 0 4px #f59e0b40}}.live-toast{border-radius:12px;gap:4px;padding:12px 14px;font-size:15px;animation:.25s ease-out toastIn;display:grid}@keyframes toastIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.live-toast.done{color:#1e3a8a;background:#eff6ff}.live-toast.right{color:#14532d;background:#dcfce7;font-weight:700}.live-toast.wrong{color:#7f1d1d;background:#fee2e2}.live-toast.retry{color:#713f12;background:#fef9c3}.btn.big{padding:14px;font-size:18px}.feedback-mode{margin-top:10px}@media (width<=900px){.live-grid{grid-template-columns:1fr}.live-panel{position:static}}.token.hop{animation:.55s cubic-bezier(.3,1.6,.5,1) tokenHop}@keyframes tokenHop{0%{transform:translate(-50%,-95%)scale(1)}40%{transform:translate(-50%,-150%)scale(1.15)}to{transform:translate(-50%,-95%)scale(1)}}.tile.retry{color:#92400e;background:#fef3c7;border-color:#fbbf24;animation:1.2s ease-in-out infinite livePulse}.tile.wrong{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.tile.notsure{color:#5b21b6;background:#ede9fe;border-color:#c4b5fd}.live-quest{--sky:#0b1d3a;--sky2:#1e3a8a;--path:#fde68a;color:#fff;background:radial-gradient(circle at 20% 10%, var(--sky2), var(--sky) 75%);border-radius:16px;gap:8px;padding:10px 10px 12px;display:grid}.live-quest.theme-jungle{--sky:#14532d;--sky2:#15803d;--path:#fef3c7}.live-quest.theme-ocean{--sky:#0c4a6e;--sky2:#0891b2;--path:#e0f2fe}.live-quest.theme-castle{--sky:#3b0764;--sky2:#7e22ce;--path:#fde68a}.live-quest-top{justify-content:space-between;padding:0 4px;font-size:14px;display:flex}.live-quest .board{width:100%}.board.compact .tile{border-width:2px;font-size:clamp(11px,1.6vw,15px)}.board.compact .token{font-size:clamp(20px,3vw,30px)}.tile.lit{background:var(--path);color:#0f172a;border-color:#fff}.live-quest-done{text-align:center;background:#ffffff24;border-radius:12px;justify-items:center;gap:2px;padding:8px;display:grid}.live-quest-done .confetti{font-size:22px}.signin,.need-link{--accent:#0f3d2e}.signin{background:radial-gradient(circle at 20% 10%, #e6f2ec, transparent 50%), var(--bg);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.signin-card{background:var(--card);border:1px solid var(--line);border-radius:18px;gap:14px;width:100%;max-width:400px;padding:28px 26px;display:grid;box-shadow:0 10px 30px #0f3d2e14}.signin-card h1{margin:6px 0 0;font-size:24px}.signin-card .portal-brand{color:var(--ink)}.signin-form{gap:12px;display:grid}.signin-form .field input{box-sizing:border-box;width:100%}.google-btn{justify-content:center;align-items:center;gap:10px;width:100%;font-weight:600;display:flex}.or{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.or:before,.or:after{content:"";border-top:1px solid var(--line);flex:1}.signin-switch{margin:0}.ok-note{color:#166534;background:#dcfce7;border-radius:8px;margin:0;padding:8px 10px}.qr-pair{flex-wrap:wrap;gap:18px;display:flex}.qr-pair figure{text-align:center;justify-items:center;gap:6px;margin:0;display:grid}.qr-pair img{border:1px solid var(--line);background:#fff;border-radius:10px;width:168px;height:168px}.status-list{gap:6px;margin:0 0 12px;padding:0;font-size:14px;list-style:none;display:grid}.status-dot{background:#16a34a;border-radius:50%;width:9px;height:9px;margin-right:8px;display:inline-block}.status-dot.off{background:#d97706}.need-link{text-align:center;place-items:center;min-height:70vh;padding:24px 16px;display:grid}.need-link .signin-card{justify-items:center}.move-box{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;justify-items:start;gap:8px;margin-bottom:12px;padding:12px 14px;display:grid}.move-box p{margin:0}.google-note{text-align:center;margin:-6px 0 0}.legal-links{margin:-6px 0 0}.legal-links a{color:var(--muted)}.portal{transition:grid-template-columns .18s}.nav-head{justify-content:space-between;align-items:center;gap:4px;display:flex}.nav-head .portal-brand{min-width:0;padding-bottom:10px}.nav-fold{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;width:28px;height:28px;margin-bottom:6px;font-size:16px}.nav-fold:hover{color:var(--ink);background:#f1f4f2}.nav-icon{text-align:center;flex:none;width:22px}.nav-section-btn{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;font-family:inherit;display:flex}.nav-section-btn:hover{color:var(--ink)}.nav-caret{font-size:11px}.portal.nav-mini{grid-template-columns:68px 1fr}.portal.nav-mini .portal-nav{align-items:center;padding:18px 10px}.portal.nav-mini .nav-label,.portal.nav-mini .nav-badge,.portal.nav-mini .nav-caret{display:none}.portal.nav-mini .nav-head{flex-direction:column}.portal.nav-mini .portal-brand{padding:4px 0}.portal.nav-mini .portal-nav nav a{justify-content:center;width:46px;padding:9px 0}.portal.nav-mini .nav-section{border-top:1px solid var(--line);width:36px;margin-top:6px;padding:10px 0 2px}.portal.nav-mini .portal-me{border:0;justify-content:center;padding:6px}.portal.bare .portal-main>.app-page,.portal.bare .portal-main>div{min-height:100vh}.nav-toggle.floating{z-index:12;position:fixed;bottom:12px;left:12px;box-shadow:0 4px 14px #00000026}@media (width<=860px){.portal.nav-mini{grid-template-columns:1fr}.portal.nav-mini .nav-label,.portal.nav-mini .nav-badge{display:initial}.nav-fold{display:none}}@media print{.portal,.portal.nav-mini{display:block}.portal-nav,.nav-toggle{display:none!important}}.lib{padding:0;overflow:hidden}.lib-top{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 10px;display:flex}.lib-top .tabs{border-radius:14px;flex-wrap:wrap;margin:0}.lib-top .tabs button{align-items:center;gap:6px;padding:7px 14px;display:inline-flex}.lib-top .tabs small{color:var(--muted);font-weight:600}.lib-search{border:1px solid var(--line);min-width:160px;font:inherit;background:#fff;border-radius:10px;flex:0 240px;padding:9px 12px;font-size:14px}.lib-note{background:#fffbeb;border-bottom:1px solid #fde68a;margin:0;padding:10px 18px}.lib-list{margin:0;padding:0;list-style:none}.lib-row{border-bottom:1px solid var(--line)}.lib-row:last-child{border-bottom:0}.lib-row.open{background:#fafbfa}.lib-line{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 16px 10px 8px;display:grid}.lib-toggle{min-width:0;font:inherit;text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:6px 8px;display:flex}.lib-toggle:hover{background:#f1f4f2}.lib-caret{width:14px;color:var(--muted);flex:none;font-size:12px}.lib-title{gap:2px;min-width:0;display:grid}.lib-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.lib-title .small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lib-stats{justify-content:flex-end;align-items:center;gap:10px;display:flex}.lib-turnin{gap:2px;width:84px;display:grid}.lib-turnin .bar{margin:0}.lib-turnin small{color:var(--muted);font-size:11.5px}.lib-detail{grid-template-columns:150px 1fr;gap:18px;padding:4px 18px 18px 44px;display:grid}.lib-thumb-link{border:1px solid var(--line);background:#fff;border-radius:8px;align-self:start;display:block;overflow:hidden}.lib-thumb svg{width:100%;height:auto;display:block}.lib-detail-body{align-content:start;gap:10px;display:grid}.lib-detail-body p{margin:0}.lib-action-groups{flex-wrap:wrap;gap:18px;display:flex}.lib-action-groups>div{gap:6px;display:grid}.new-panel .link-btn{justify-self:start;margin-top:12px}@media (width<=760px){.lib-line{grid-template-columns:minmax(0,1fr) auto}.lib-stats{grid-column:1/-1;justify-content:flex-start;padding-left:40px}.lib-main-action{grid-area:1/2}.lib-detail{grid-template-columns:1fr;padding-left:18px}.lib-thumb-link{max-width:180px}.lib-search{flex:100%}}.feed-more{margin-top:10px}.new-ws{gap:18px;display:grid}.step-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:800;display:block}.kind-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.kind{text-align:left;border:1.5px solid var(--line);cursor:pointer;font:inherit;color:var(--ink);background:#fff;border-radius:12px;align-content:start;gap:4px;padding:12px 14px;display:grid}.kind:hover{border-color:#b8c4bd}.kind.on{border-color:var(--accent,var(--brand));background:color-mix(in srgb, var(--accent,#0f3d2e) 6%, white);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent,#0f3d2e) 18%, transparent)}.kind-icon{font-size:22px}.subject-chips{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.subject-chips .chip{cursor:pointer;padding:7px 13px;font-weight:600}.chip.toggle.on{background:var(--accent,var(--brand));color:#fff;border-color:#0000}.level-field{max-width:320px;margin-bottom:6px}.new-ws-go{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.new-ws>.link-btn{justify-self:start}.new-in-class{border:1px solid var(--line);background:#fafbfa;border-radius:12px;margin:6px 0 16px;padding:16px}.bank-panel .bank-tools{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:10px;display:flex}.bank-list{gap:8px;max-height:520px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.bank-item{border:1px solid var(--line);background:#fff;border-radius:10px;grid-template-columns:1fr auto;align-items:start;gap:6px 12px;padding:10px 12px;display:grid}.bank-item .q-options{grid-column:1/-1}.bank-item .skill-tag{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700}.bank-item.added{opacity:.6}.avatar-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:6px;display:flex}.avatar-pick{cursor:pointer;background:#ffffffb3;border:2px solid #0000;border-radius:14px;place-items:center;width:52px;height:52px;font-size:28px;transition:transform .12s;display:inline-grid}.avatar-pick:hover{transform:scale(1.08)}.avatar-pick.on{background:#fff7e6;border-color:#f59e0b;transform:scale(1.1);box-shadow:0 4px 12px #f59e0b4d}.avatar-pick.small{vertical-align:middle;border-radius:10px;width:34px;height:34px;font-size:20px}.sound-btn{cursor:pointer;background:#ffffffbf;border:0;border-radius:10px;flex:none;width:36px;height:36px;font-size:18px}.quest-top{align-items:center;gap:12px;display:flex}.quest-top>span{margin-left:auto}.live-quest-top{align-items:center;gap:10px;display:flex}.live-quest-top>span{margin-left:auto}.live-class-body{gap:18px}.live-class-top{grid-template-columns:1fr auto;align-items:stretch;gap:16px;display:grid}.join-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;align-items:center;gap:14px;max-width:420px;padding:12px 16px;display:flex}.join-card img{width:120px;height:120px}.join-card>div{gap:4px;display:grid}.join-card code{word-break:break-all;color:var(--muted)}.live-grid-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.live-card{border:1.5px solid var(--line);background:#fff;border-radius:14px;gap:8px;padding:12px 14px;display:grid}.live-card header{grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;display:grid}.live-card header strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.live-avatar{background:#f1f4f2;border-radius:12px;grid-row:1/3;place-items:center;width:42px;height:42px;font-size:28px;display:grid}.live-status{color:var(--muted)}.live-card.finished{background:#f0fdf4;border-color:#86efac}.live-card.working{border-color:#93c5fd}.live-card.idle{border-color:#fde68a}.live-card.waiting{opacity:.55}.live-dots{flex-wrap:wrap;gap:4px;display:flex}.live-dot{color:#9ca3af;background:#f1f3f2;border-radius:7px;place-items:center;width:24px;height:24px;font-size:11px;font-weight:800;display:grid}.live-dot.right{color:#166534;background:#dcfce7}.live-dot.fixed{color:#075985;background:#e0f2fe}.live-dot.wrong{color:#991b1b;background:#fee2e2}.live-dot.retrying{color:#92400e;background:#fef3c7}.live-dot.answered{background:#ede9fe}.live-dot.notsure{color:#92400e;background:#fef3c7}.live-q-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.live-q-list li{grid-template-columns:40px minmax(0,1fr) 160px 200px;align-items:center;gap:10px;font-size:14px;display:grid}.live-q-n{font-weight:800}.live-q-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=760px){.live-class-top{grid-template-columns:1fr}.live-q-list li{grid-template-columns:34px minmax(0,1fr)}.live-q-list li .bar,.live-q-list li>.small{grid-column:2}}.q-tag-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.read-btn{color:#3730a3;font:inherit;cursor:pointer;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700}.read-btn:hover{background:#e0e7ff}.quest.young .quest-q{font-size:clamp(30px,6vw,44px)}.quest.young .quest-opt{min-height:84px;padding:22px;font-size:28px}.quest.young .read-btn{padding:10px 16px;font-size:18px}.quest.young .feedback{font-size:20px}details.panel>summary{cursor:pointer;align-items:center;gap:8px;list-style:none;display:flex}details.panel>summary::-webkit-details-marker{display:none}details.panel>summary:before{content:"▸";color:var(--muted);font-size:13px;transition:transform .15s}details.panel[open]>summary:before{transform:rotate(90deg)}details.panel[open]>summary{margin-bottom:12px}.panel-title.inline{margin:0;display:inline}.join-form{gap:8px;display:flex}.join-form input{letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--line);text-align:center;border-radius:10px;flex:1;min-width:0;padding:10px 12px;font:600 20px ui-monospace,Menlo,monospace}.class-code{flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 12px;display:flex}.class-code strong{letter-spacing:.08em;background:#f1f4f2;border-radius:10px;padding:6px 12px;font:800 24px ui-monospace,Menlo,monospace}.code-input{letter-spacing:.3em;text-align:center;border:1.5px solid var(--line);box-sizing:border-box;border-radius:10px;width:100%;padding:10px;font:700 26px ui-monospace,Menlo,monospace}.two-step{border-top:1px solid var(--line);justify-items:start;gap:8px;margin:14px 0;padding-top:12px;display:grid}.two-step h3{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.two-step-setup{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.two-step-setup img{border:1px solid var(--line);background:#fff;border-radius:10px;width:170px;height:170px}.two-step-setup code{word-break:break-all}.turnstile{min-height:0}
