: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}.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}.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-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}.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}}.stat.link{color:inherit;text-decoration:none}.stat.link:hover{border-color:#b8c4bd}.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)}.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}.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-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}.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}.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-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)}.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{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%}}.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}.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 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}.grade-post-summary{gap:4px;margin:0;padding-left:18px;display:grid}.choice-row{border:0;gap:8px;margin:0;padding:0;display:grid}.choice-row label{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.check-line{align-items:baseline;gap:8px;display:flex}.gc-box{gap:8px;display:grid}.pin-gate form{justify-items:center;gap:12px;display:grid}.pin-gate{text-align:center}.pin-input{letter-spacing:.5em;text-align:center;border:2px solid var(--line,#d6d3cc);font-variant-numeric:tabular-nums;border-radius:14px;width:7.5em;padding:10px 0 10px .5em;font-size:2.2rem}.pin-input:focus{outline:3px solid var(--accent,#0f766e);outline-offset:2px}.pin-inline{background:var(--soft,#f4f2ee);border-radius:14px;gap:10px;padding:14px;display:grid}.pin-inline h2{margin:0;font-size:1.1rem}.codes-banner{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:12px;padding:12px 14px;display:flex}.codes-banner.off{background:#fffbeb;border-color:#fde68a}.codes-banner>div:first-child{flex:320px;gap:2px;display:grid}.codes-actions{flex-wrap:wrap;gap:6px;display:flex}.code-cell{align-items:baseline;gap:8px;display:inline-flex}.code-cell code{letter-spacing:.15em;font-size:1rem}.code-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;padding:16px;display:grid}.code-card{text-align:center;break-inside:avoid;background:#fff;border:2px dashed #9ca3af;border-radius:12px;gap:4px;padding:14px 16px;display:grid}.code-card-class{color:#6b7280;font-size:12px}.code-card-name{font-size:18px}.code-card-label{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;margin-top:6px;font-size:12px}.code-card-pin{letter-spacing:.3em;font-variant-numeric:tabular-nums;padding-left:.3em;font-size:40px;font-weight:800}.code-card-help{color:#4b5563;font-size:12px}@media print{.code-cards-page{background:#fff}.code-cards{grid-template-columns:repeat(3,1fr);gap:.15in;padding:.4in}.code-card{border-color:#6b7280}}.key-paste{letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.key-grid{grid-auto-columns:minmax(230px,1fr);grid-auto-flow:column;gap:4px 18px;padding-bottom:4px;display:grid;overflow-x:auto}.key-row{align-items:center;gap:5px;padding:2px 0;display:flex}.key-row:nth-child(5n){border-bottom:1px dashed var(--line,#e5e7eb);margin-bottom:4px;padding-bottom:6px}.sheet-options{align-items:end}.seg.three-way{grid-template-columns:repeat(3,auto)}.compact-toggle{flex:0 auto;padding:8px 10px}.with-unit{align-items:center;gap:6px;display:inline-flex}.with-unit input{width:80px}.sheet-fit strong{color:var(--ink,#1f2937)}.key-n{text-align:right;font-variant-numeric:tabular-nums;width:30px;margin-right:4px;font-weight:700}.key-bubble{color:#6b7280;cursor:pointer;background:#fff;border:1.5px solid #9ca3af;border-radius:50%;width:30px;height:30px;padding:0;font-size:12px}.key-bubble:hover{border-color:var(--accent,#0f766e)}.key-bubble.on{color:#fff;background:#1f2937;border-color:#1f2937;font-weight:700}.stack-list{background:var(--card,#fff);border:1px solid var(--line,#e5e7eb);border-radius:14px;max-width:720px;margin:10px auto;padding:12px 14px}.stack-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.stack-list ol{max-height:240px;margin:0;padding:0;list-style:none;overflow-y:auto}.stack-list li{border-top:1px solid var(--line,#eee);justify-content:space-between;gap:10px;padding:6px 2px;display:flex}.stack-list li:first-child{background:#ecfdf5;border-radius:8px;animation:.25s ease-out pop}.stack-score{font-variant-numeric:tabular-nums;font-weight:700}.test-stats{gap:14px;display:grid}.score-hist{grid-template-columns:repeat(10,1fr);align-items:end;gap:6px;height:170px;margin:0;padding-bottom:34px;display:grid;position:relative}.score-hist figcaption{position:absolute;bottom:0;left:0}.hist-col{text-align:center;grid-template-rows:auto 1fr auto;align-items:end;gap:2px;height:100%;display:grid}.hist-bar{background:var(--accent,#0f766e);border-radius:6px 6px 2px 2px;align-self:end;min-height:2px;display:block}.hist-count{font-size:12px;font-weight:700}.hist-label{color:var(--muted,#6b7280);font-size:11px}.flag-q{margin-top:2px;display:block}.item-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.item-table th,.item-table td{text-align:center;border-bottom:1px solid var(--line,#eee);padding:6px 8px}.item-table th{color:var(--muted,#6b7280);font-size:12px;font-weight:600}.item-table tr.flag{background:#fffbeb}.item-table td.key-col{background:#dcfce7;font-weight:700}.avg-pill.mid{background:#fef3c7}.disc{background:#f3f4f6;border-radius:999px;padding:2px 8px;font-size:12px}.disc.good{color:#166534;background:#dcfce7}.disc.meh{color:#92400e;background:#fef3c7}.disc.bad{color:#991b1b;background:#fee2e2;font-weight:700}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.wide-dialog{width:min(980px,100%)}.hand-grid{max-height:52vh;overflow:auto}.hand-written{gap:6px;display:grid}.ok-text{color:#166534;font-weight:600}.builder-form,.builder-form .panel{min-width:0}.builder-form .key-grid{grid-auto-columns:minmax(196px,1fr);max-width:100%}.key-bubble{width:28px;height:28px}.key-grid,.builder-form .key-grid{columns:196px;column-gap:18px;display:block;overflow:visible}.key-grid .key-row{break-inside:avoid}.hand-grid{overflow-y:auto}.join-form{gap:12px;display:grid}.join-form.center{text-align:center;justify-items:center}.join-form h1{margin:0}.code-input{letter-spacing:.35em;text-transform:uppercase;justify-self:start;width:8.5em}.join-banner{gap:10px;display:grid}.join-top{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.join-qr{background:#fff;border-radius:8px;width:104px;height:104px}.join-code-box{flex:260px;gap:4px;display:grid}.join-code{letter-spacing:.25em;background:#fff;border:1px solid #a7f3d0;border-radius:8px;padding:2px 8px;font-family:ui-monospace,Menlo,monospace;font-size:1.3em}.join-settings{background:#fff;border-radius:10px;gap:8px;width:100%;padding:10px;display:grid}.join-requests ul{margin:6px 0 0;padding:0;list-style:none}.join-requests li{border-top:1px solid #d1fae5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.join-req-head{justify-content:space-between;align-items:center;display:flex}.add-students{background:var(--soft,#f4f2ee);border-radius:12px;gap:8px;margin-bottom:12px;padding:12px;display:grid}.blank-id{gap:8px;display:grid}.zoom-frame{cursor:zoom-in;background:#fff;border-radius:12px;place-items:center;min-height:0;display:grid;overflow:auto}.zoom-frame.big{cursor:zoom-out;place-items:start}.zoom-frame.big img{object-fit:none;width:auto;max-width:none;height:auto}.setup{border:1px solid color-mix(in srgb, var(--accent,#0f3d2e) 25%, transparent);gap:16px;display:grid}.setup-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.setup-head h2{margin:2px 0 4px;font-size:22px}.setup-head p{margin:0}.system-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.system-tile{text-align:left;border:1.5px solid var(--line,#e5e7eb);cursor:pointer;font:inherit;color:inherit;background:#fff;border-radius:14px;gap:6px;padding:16px;transition:border-color .15s,transform .15s,box-shadow .15s;display:grid}.system-tile:hover,.system-tile:focus-visible{border-color:var(--accent,#0f3d2e);transform:translateY(-2px);box-shadow:0 6px 18px #0000000f}.system-icon{font-size:22px}.setup-steps{gap:2px;margin:0;padding:0;list-style:none;display:grid}.setup-steps li{border-radius:12px;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;padding:12px 10px;display:grid}.setup-steps li.next{background:color-mix(in srgb, var(--accent,#0f3d2e) 6%, #fff)}.setup-steps li.done .setup-text strong{color:var(--muted,#6b7280);font-weight:600}.setup-check{color:#fff;border:2px solid #cbd5e1;border-radius:50%;place-items:center;width:26px;height:26px;font-size:14px;font-weight:800;display:grid}.setup-steps li.done .setup-check{background:#16a34a;border-color:#16a34a}.setup-steps li.next .setup-check{border-color:var(--accent,#0f3d2e)}.setup-text{gap:2px;display:grid}.setup-action{justify-content:flex-end;align-items:center;gap:8px;display:flex}.setup-action .google-btn{padding:8px 14px}@media (width<=720px){.setup-steps li{grid-template-columns:26px 1fr}.setup-action{grid-column:2;justify-content:flex-start}}.quick{border:1px solid var(--line,#e5e7eb);color:inherit;background:#fff;border-radius:14px;align-items:center;gap:10px;padding:14px 16px;font-weight:650;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.quick:hover{border-color:var(--accent,#0f3d2e);transform:translateY(-1px)}.quick span{font-size:20px}.nav-section .nav-hint{letter-spacing:0;text-transform:none;color:var(--muted,#9ca3af);margin-top:2px;font-size:11px;font-weight:400;display:block}.portal.nav-mini .nav-hint{display:none}.menu{display:inline-block;position:relative}.menu-list{z-index:30;border:1px solid var(--line,#e5e7eb);background:#fff;border-radius:12px;gap:2px;min-width:260px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);box-shadow:0 10px 30px #0000001f}.menu-list.right{right:0}.menu-list.left{left:0}.menu-list>a,.menu-list>button{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;gap:2px;padding:9px 10px;text-decoration:none;display:grid}.menu-list>a:hover,.menu-list>button:hover:not(:disabled){background:color-mix(in srgb, var(--accent,#0f3d2e) 7%, #fff)}.menu-list>button:disabled{opacity:.45;cursor:not-allowed}.menu-list strong{font-size:14px}.menu-list small{font-size:12px}.system-tile.on{border-color:var(--accent,#0f3d2e);box-shadow:inset 0 0 0 1px var(--accent,#0f3d2e);background:color-mix(in srgb, var(--accent,#0f3d2e) 6%, #fff)}.system-grid.compact{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin-bottom:10px}.system-grid.compact .system-tile{padding:12px}.system-grid.compact .system-tile:hover{transform:none}@media (width<=600px){.menu-list{min-width:0;margin-top:6px;position:fixed;top:auto;left:16px;right:16px}}.demo-steps{gap:8px;margin:14px 0 0;padding-left:22px;line-height:1.45;display:grid}.demo-steps li::marker{color:var(--accent,#0f3d2e);font-weight:700}.setup-demo{margin:14px 0 0}:root{--bg:#f3f5f4;--line:#e2e7e4;--ink:#17211d;--muted:#5d6a65;--g-grade:#a3620a;--g-students:#2b63a3;--highlight:#ffe259;--demo:#23305a}.portal{--g-main:var(--accent);font-family:Atkinson Hyperlegible,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.portal .btn{font-weight:700}.portal .btn .icon{vertical-align:-3px;margin-right:2px}.portal .panel{border-color:var(--line);box-shadow:none}.portal-nav{background:#fff;gap:2px;padding:16px 12px}.portal-brand{letter-spacing:-.01em;padding:4px 8px 12px;font-size:18px}.portal-nav nav a{color:#2b3632;gap:11px;padding:8px 10px;font-size:14.5px;font-weight:600}.portal-nav nav a .icon{color:#7b8782;flex:none}.portal-nav nav a.on{background:color-mix(in srgb, var(--g,var(--accent)) 11%, white);color:var(--g,var(--accent))}.nav-new{background:var(--accent);color:#fff;border-radius:12px;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;font-size:14.5px;font-weight:700;text-decoration:none;display:flex}.nav-new:hover{filter:brightness(1.08)}.nav-group{margin-top:14px}.nav-group.g-grade{--g:var(--g-grade)}.nav-group.g-students{--g:var(--g-students)}.portal-nav .nav-section{text-transform:none;letter-spacing:0;color:var(--ink);padding:4px 10px 6px;font-size:13px;font-weight:700}.portal-nav .nav-group .nav-section .nav-label:before{content:"";background:var(--g);vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.portal-nav .nav-hint{color:var(--muted);letter-spacing:0;text-transform:none;margin:1px 0 0 16px;font-size:12px;font-weight:400;display:block}.portal-nav .nav-section-btn{margin-top:14px}.nav-classes a{font-size:13.5px!important}.nav-bottom{border-top:1px solid var(--line);margin-top:auto;padding-top:14px}.nav-demo .nav-label small{color:var(--muted);font-size:12px;font-weight:400;display:block}.nav-demo.on{--g:var(--demo)}.portal-me{border-color:var(--line);margin-top:8px}.nav-mini .nav-new{justify-content:center;padding:10px}.nav-mini .nav-hint,.nav-mini .portal-nav .nav-group .nav-section .nav-label:before{display:none}.nav-toggle{color:var(--ink)}.portal-top{background:#f3f5f4f0;padding:16px 32px}.portal-top h1{letter-spacing:-.015em;font-size:24px;font-weight:700}.today{font-size:14px}.portal-body{gap:30px;padding:24px 32px 64px}.demo-bar{background:var(--demo);color:#e8ecf8;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:9px 32px;font-size:14px;display:flex}.demo-bar strong{color:var(--demo);background:#fff;border-radius:6px;margin-right:8px;padding:1px 8px;font-size:13px}.demo-bar a{color:#fff;font-weight:700}.demo-exit{color:#fff;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff8c;border-radius:999px;margin-left:auto;padding:5px 14px;font-size:13px;font-weight:700}.demo-exit:hover{background:#ffffff1f}.link-quiet{color:var(--muted);font-size:14px;font-weight:700;text-decoration:none}.link-quiet:hover{color:var(--ink);text-decoration:underline}.needs{border:1px solid var(--line);background:#fff;border-radius:16px;padding:20px 22px}.needs-counts{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}mark,.needs-counts mark{background:linear-gradient(transparent 38%, var(--highlight) 38%, var(--highlight) 92%, transparent 92%);color:var(--ink);padding:0 3px;font-weight:700}.recolor{flex-wrap:wrap;align-items:center;gap:8px;margin-top:-8px;display:flex}.menu-list>button.danger strong{color:var(--bad)}.demo-intro{border:1px solid var(--line);background:#fff;border-radius:16px;max-width:720px;padding:28px}.demo-intro h2{margin:0 0 8px;font-size:22px}.demo-intro p{max-width:62ch;line-height:1.55}.demo-includes{gap:6px;margin:0 0 20px;padding-left:20px;line-height:1.5;display:grid}.demo-steps-page{max-width:860px}.demo-lede{color:var(--muted);margin:0 0 14px}.demo-steps-page .demo-steps{counter-reset:step;gap:10px;margin:0;padding:0;list-style:none;display:grid}.demo-steps-page .demo-steps li{counter-increment:step;border:1px solid var(--line);background:#fff;border-radius:14px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.demo-steps-page .demo-steps li:before{content:counter(step);background:var(--demo);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:14px;font-weight:700;display:grid}.demo-steps-page .demo-steps p{color:var(--muted);margin:3px 0 0;font-size:14.5px;line-height:1.45}@media (width<=860px){.portal-top{padding:12px 16px}.portal-top h1{font-size:19px}.portal-body{gap:24px;padding:18px 16px 56px}.demo-bar{padding:8px 16px}.needs{padding:16px}.needs-counts{grid-column:1/-1;justify-content:flex-start}.today{display:none}.demo-steps-page .demo-steps li{grid-template-columns:30px minmax(0,1fr)}.demo-steps-page .demo-steps li>.btn{grid-column:2;justify-self:start}}.portal .eyebrow{text-transform:none;letter-spacing:0;color:var(--muted);font-size:13.5px;font-weight:700}.portal .system-icon{display:none}.portal .system-tile{gap:8px}:root{--bg:#f7f8f7;--nav-bg:#eef2f0}.portal-nav{background:var(--nav-bg);border-right:1px solid #dfe5e2}.portal-nav nav a.on{background:#fff;box-shadow:0 1px 2px #17211d14}.portal-me{background:#fff}.portal-top{background:#f7f8f7f2}.chev{opacity:.65;border-bottom:2px solid;border-right:2px solid;flex:none;width:7px;height:7px;transition:transform .15s;display:inline-block;transform:rotate(-45deg)}[aria-expanded=true]>.chev,.open>.sect-head .chev{transform:rotate(45deg)}@media (prefers-reduced-motion:reduce){.chev{transition:none}}.portal-nav .nav-group-btn{width:100%;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;display:flex}.portal-nav .nav-group-btn .chev{color:var(--muted);margin-right:4px}.portal-nav .nav-group>.nav-hint{margin:-2px 0 4px 26px}.portal-nav .nav-group{margin-top:10px}.nav-mini .nav-group-btn .chev{display:none}.sect{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.sect-head{align-items:center;gap:12px;padding:0 18px 0 8px;display:flex}.sect-toggle{min-width:0;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:15px 10px;display:flex}.sect-toggle h2{margin:0;font-size:17px;font-weight:700}.sect-toggle .chev{color:var(--muted);margin:0 2px 2px}.sect-count{color:#3c4844;text-align:center;background:#eef1ef;border-radius:999px;min-width:24px;padding:1px 8px;font-size:13px;font-weight:700}.sect-body{border-top:1px solid var(--line);padding:4px 18px 16px}.sect-empty{color:var(--muted);max-width:62ch;margin:12px 0 0;line-height:1.5}.sect.closed .sect-toggle{padding-top:13px;padding-bottom:13px}.sect-more{margin-top:10px}.portal-body>.sect+.sect{margin-top:-12px}.row-list{margin:0;padding:0;list-style:none}.row-list li+li{border-top:1px solid var(--line)}.row-list a{color:inherit;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:16px;padding:13px 2px;text-decoration:none;display:grid}.row-list.compact a{padding:10px 2px}.row-list a:hover .row-main strong{text-decoration:underline}.row-main{gap:1px;min-width:0;display:grid}.row-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.row-main .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.row-go{color:var(--muted);font-size:22px;line-height:1}.setup{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.setup-bar-row{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:14px;padding:12px 18px;display:flex}.setup-ring{background:conic-gradient(var(--accent) var(--p), #e6ebe8 0);border-radius:50%;flex:none;width:34px;height:34px;-webkit-mask:radial-gradient(circle,#0000 11px,#000 12px);mask:radial-gradient(circle,#0000 11px,#000 12px)}.setup-summary{flex:1;min-width:0;display:grid}.setup-summary .muted{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.setup-toggle{color:var(--accent);white-space:nowrap;align-items:center;gap:10px;font-size:14px;font-weight:700;display:flex}.setup-bar-row[aria-expanded=true] .setup-toggle .chev{transform:rotate(45deg)}.setup-body{border-top:1px solid var(--line);padding:6px 18px 14px}.setup .setup-steps{gap:0;margin:0;padding:0;list-style:none;display:grid}.setup .setup-steps li{border-bottom:1px solid var(--line);background:0 0;border-radius:0;align-items:center;gap:12px;padding:10px 0;display:flex}.setup .setup-steps li:last-child{border-bottom:0}.setup .setup-steps li.later strong,.setup .setup-steps li.done strong{color:var(--muted);font-weight:600}.setup .setup-steps li.next{padding:14px 0}.setup .setup-text{flex:1;gap:2px;min-width:0;display:grid}.setup-foot{margin:10px 0 0}.setup .setup-check{width:22px;height:22px}@media (width<=860px){.sect-head{padding-right:12px}.sect-body{padding:4px 14px 14px}.row-list a{grid-template-columns:minmax(0,1fr) 14px;gap:6px 10px}.row-list a>:nth-child(2){grid-area:2/1}.row-list a>.row-go{grid-area:1/2/span 2}.setup-toggle{gap:0;font-size:0}.setup .setup-steps li.next{flex-wrap:wrap}}.portal-nav .nav-section-btn{justify-content:space-between;align-items:center;width:100%;display:flex}.portal-nav .nav-section-btn .chev{color:var(--muted);margin-right:4px}.portal-nav .nav-group-btn{color:var(--ink);padding:6px 10px;font-size:13px;font-weight:700}.sect-toggle{padding:13px 10px}.sect-body{padding-top:2px}.lboard{background:#fff;border-radius:24px;width:min(100%,860px);position:relative;overflow:hidden;box-shadow:0 18px 40px #00000038}.lboard svg{width:100%;height:auto;display:block}.lboard.compact{width:100%;box-shadow:none;border-radius:16px}.lboard .btile.here>:first-child{stroke-width:6px}.lboard .btile.here{transform-box:fill-box;animation:1.4s ease-in-out infinite lb-pulse}@keyframes lb-pulse{50%{opacity:.75}}.lb-char .arrive{transform-box:fill-box;transform-origin:50% 100%;animation:.45s cubic-bezier(.3,1.8,.5,1) lb-hop}@keyframes lb-hop{0%{transform:translateY(0)scale(1)}40%{transform:translateY(-16px)scale(1.06)}to{transform:translateY(0)scale(1)}}.lb-char.moving .char-penguin,.lb-char.moving .char-ginger{transform-box:fill-box;transform-origin:50% 100%;animation:.32s ease-in-out infinite alternate lb-waddle}@keyframes lb-waddle{0%{transform:rotate(-7deg)}to{transform:rotate(7deg)}}.lb-char .exhaust circle{fill:#7878788c;transform-box:fill-box;transform-origin:50%;animation:.5s ease-out infinite lb-puff}.lb-char .exhaust circle:nth-child(2){animation-delay:.2s}@keyframes lb-puff{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.6)translate(-10px)}}.lboard .snowfall circle{opacity:.9;animation:linear infinite lb-fall}@keyframes lb-fall{to{transform:translate(-30px, var(--fall))}}.lboard .raft{animation:9s ease-in-out infinite alternate lb-float}@keyframes lb-float{0%{transform:translate(120px)}to{transform:translate(860px)}}.lboard .river-ripple{animation:3s linear infinite lb-ripple}@keyframes lb-ripple{to{stroke-dashoffset:-140px}}.lboard .flag-wave{transform-box:fill-box;transform-origin:0%;animation:1.2s ease-in-out infinite alternate lb-wave}@keyframes lb-wave{to{transform:skewY(-4deg)scaleX(.94)}}.lboard .snow-pop,.lboard .ice-brick{transform-box:fill-box;transform-origin:50% 100%;animation:.5s cubic-bezier(.3,1.7,.5,1) both lb-pop}@keyframes lb-pop{0%{opacity:0;transform:scale(.2)}}.lb-burst{pointer-events:none;position:absolute;top:40%;left:50%}.lb-burst span{border-radius:3px;width:10px;height:14px;animation:1.6s ease-out forwards lb-burst;position:absolute}.lb-burst span.flake{border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 1px #bfdbfe}@keyframes lb-burst{0%{transform:rotate(var(--a)) translateY(0);opacity:1}to{transform:rotate(var(--a)) translateY(calc(-1 * var(--d))) rotate(220deg);opacity:0}}@media (prefers-reduced-motion:reduce){.lboard *,.lb-burst span{animation:none!important}}.quest.theme-race{--sky:#1f3a2b;--sky2:#2f6b3e}.quest.theme-snow{--sky:#2b5a86;--sky2:#6aa7d8}.quest.theme-candy{--sky:#9d2f6a;--sky2:#f08bbd}.theme-picker{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:8px;display:grid}.theme-card{text-align:left;cursor:pointer;font:inherit;color:inherit;background:#fff;border:2px solid #e5e7eb;border-radius:16px;align-content:start;gap:6px;padding:10px;display:grid}.theme-card.on{border-color:var(--accent,#0f3d2e);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent,#0f3d2e) 18%, transparent)}.theme-card .theme-preview{pointer-events:none;display:block}.theme-card .lboard.compact{border-radius:10px}.quest-settings-h{margin:14px 0 8px;font-size:15px}.color-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.color-pick{cursor:pointer;border:3px solid #fff;border-radius:50%;width:40px;height:40px;box-shadow:0 0 0 2px #e5e7eb}.color-pick.on{transform:scale(1.08);box-shadow:0 0 0 3px #111827}.intro-board{width:min(100%,420px)}.color-pick.small{vertical-align:-5px;border-width:2px;width:22px;height:22px;margin-right:4px}.watch-hint{margin:6px 2px 0;line-height:1.4}.race{border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px 16px 10px}.race-head{color:var(--muted);justify-content:space-between;padding:0 70px 6px 170px;font-size:14px;font-weight:800;display:flex}.race-lanes{gap:6px;margin:0;padding:0;list-style:none;display:grid}.race-lane{grid-template-columns:160px minmax(0,1fr) 60px;align-items:center;gap:10px;display:grid}.race-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.race-lane.waiting .race-name{color:var(--muted);font-weight:600}.race-count{text-align:right;font-variant-numeric:tabular-nums;font-size:14px;font-weight:800}.race-track{border-radius:10px;height:40px;position:relative;overflow:hidden}.race-mover{width:44px;height:36px;transition:left 1.2s cubic-bezier(.4,0,.2,1);position:absolute;bottom:2px}.race-mover svg{width:100%;height:100%;display:block;overflow:visible}.race-lane.finished .race-mover{animation:.6s 2 lb-hop}.lb-race .race-track{background:#4b5563 repeating-linear-gradient(90deg,#0000 0 18px,#fde047e6 18px 34px) 0/100% 3px no-repeat padding-box padding-box;border-right:10px solid #0000;border-image:repeating-linear-gradient(#111 0 6px,#fff 6px 12px) 10}.lb-race .race-mover{bottom:2px}.lb-snow .race-track{background:#fbfdff;box-shadow:inset 0 0 0 3px #c9def0}.lb-snow .race-track:after{content:"⛄";opacity:.7;font-size:22px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.lb-candy .race-track{background:repeating-linear-gradient(90deg,#fff 0 16px,#fbcfe8 16px 32px);box-shadow:inset 0 0 0 3px #f9a8d4}.lb-candy .race-track:after{content:"🏠";opacity:.8;font-size:22px;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.live-avatar{border-radius:50%;place-items:center;width:26px;height:26px;display:inline-grid}@media (width<=700px){.race-lane{grid-template-columns:90px minmax(0,1fr) 44px}.race-head{padding:0 50px 6px 100px}}.watch{min-height:100vh}.watch .lboard{width:min(100%,1100px)}.watch-done{color:#fff;text-align:center;font-size:clamp(22px,4vw,36px);font-weight:800}.watch-card{background:#fff;border-radius:18px;max-width:520px;margin:40px auto;padding:24px}.watch-err{color:#fff;opacity:.85}:root{--g-prep:#1f7a4f;--g-teach:#2b63a3}.nav-group.g-prep{--g:var(--g-prep)}.nav-group.g-teach{--g:var(--g-teach)}.sect-lede{max-width:70ch;margin:12px 0 4px;font-size:14px}.row-list li.row-split{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 2px;display:grid}.row-list li.row-split .row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.student-links{margin-top:10px}.games-intro{border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:minmax(0,3fr) minmax(240px,2fr);align-items:center;gap:20px;padding:16px;display:grid}.games-boards{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.games-boards figure{gap:6px;margin:0;display:grid}.games-boards figcaption{text-align:center;color:var(--muted);font-size:13px;font-weight:700}.games-ways p{margin:0 0 8px;line-height:1.45}.games-ways ul,.games-ways ol{gap:4px;margin:0;padding-left:18px;font-size:14px;line-height:1.4;display:grid}.row-split .row-actions .btn{flex:none}@media (width<=860px){.games-intro{grid-template-columns:1fr}}.live-quest .watch-hint{color:#ffffffc7}.live-quest .watch-hint a{color:#fff;font-weight:700}.seg.four{grid-template-columns:repeat(4,1fr);display:grid}.seg.four button{padding:7px 6px;font-size:13px}@media (width<=600px){.seg.four{grid-template-columns:1fr 1fr}}.stadium{z-index:100;color:#fff;background:#0f1a2e;grid-template-rows:auto auto minmax(0,1fr);font-family:Atkinson Hyperlegible,system-ui,sans-serif;display:grid;position:fixed;inset:0}.stadium.st-race{background:linear-gradient(#0b1224 0,#13213d 30%,#1d2b1f 30.1%,#24402a 100%)}.stadium.st-snow{color:#12304d;background:linear-gradient(#9cc8ec 0,#d7ebfb 30%,#eef6fd 30.1%,#f8fbff 100%)}.stadium.st-candy{color:#6b1240;background:linear-gradient(#f9a8d4 0,#fbcfe8 30%,#fff1f7 30.1%,#ffe8f3 100%)}.stadium .stands{grid-row:1;width:100%;height:clamp(110px,22vh,210px);display:block}.stadium .fan{animation:3s ease-in-out infinite st-hop}@keyframes st-hop{0%,80%,to{transform:translateY(0)}88%{transform:translateY(-6px)}}.stadium .stands.cheer .fan{animation:.32s ease-in-out infinite alternate st-jump}@keyframes st-jump{to{transform:translateY(-12px)}}.stadium-bar{background:#00000040;grid-row:2;align-items:center;gap:20px;padding:10px 28px;font-size:clamp(16px,2vw,24px);display:flex}.st-snow .stadium-bar,.st-candy .stadium-bar{background:#ffffff8c}.stadium-bar strong{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.stadium-bar button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:2px solid;border-radius:999px;padding:6px 16px;font-size:15px;font-weight:700}.stadium-track{grid-row:3;padding:14px 28px 28px;overflow-y:auto}.st-lanes{gap:6px;margin:0;padding:0;list-style:none;display:grid}.st-lane{min-height:clamp(52px, calc((78vh - 230px) / var(--lanes)), 92px);grid-template-columns:44px minmax(120px,220px) minmax(0,1fr) 90px;align-items:center;gap:12px;display:grid}.st-num{background:#ffffff26;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.st-snow .st-num,.st-candy .st-num{background:#fffc}.st-name{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(16px,1.8vw,24px);font-weight:800;overflow:hidden}.st-lane.waiting .st-name{opacity:.55}.st-run{border-radius:10px;align-self:stretch;position:relative}.st-race .st-run{background:#3f4650 repeating-linear-gradient(90deg,#0000 0 26px,#ffffffb3 26px 50px) 0/100% 3px no-repeat;border-right:14px solid #0000;border-image:repeating-linear-gradient(#111 0 8px,#fff 8px 16px) 14;box-shadow:inset 0 3px #ffffffd9,inset 0 -3px #ffffffd9}.st-snow .st-run{background:#fff;border-right:10px solid #93c5fd;box-shadow:inset 0 0 0 3px #b8d6ef}.st-candy .st-run{background:repeating-linear-gradient(90deg,#fff 0 22px,#fbcfe8 22px 44px);border-right:10px solid #ec4899;box-shadow:inset 0 0 0 3px #f472b6}.st-mover{width:56px;transition:left 1.4s cubic-bezier(.4,0,.2,1);position:absolute;top:4px;bottom:4px}.st-mover svg{filter:drop-shadow(0 3px 3px #00000059);width:100%;height:100%;overflow:visible}.st-lane.done .st-mover{animation:.6s 3 lb-hop}.st-end{text-align:center;font-variant-numeric:tabular-nums;font-size:clamp(16px,1.8vw,22px);font-weight:800}.st-place{color:#111827;border-radius:999px;padding:4px 12px;font-weight:900;display:inline-block;box-shadow:0 2px 8px #0000004d}@media (prefers-reduced-motion:reduce){.stadium .fan,.st-mover,.st-lane.done .st-mover{transition:none;animation:none!important}}:root{--bg:#e8eee9;--nav-bg:#123a2c;--line:#dde5df;--lift:0 1px 2px #10281e12, 0 6px 18px #10281e12;--g-prep:#2f9e66;--g-teach:#5b9be8;--g-grade:#e0a12e}body,.portal{background:var(--bg)}.portal-nav{background:var(--nav-bg);color:#e6efe9;border-right:0}.portal-brand{color:#fff}.portal-brand .brand-mark{color:var(--nav-bg);background:#fff}.nav-fold{color:#9fb8ab;background:0 0;border-color:#ffffff26}.portal-nav nav a{color:#dfe9e3}.portal-nav nav a .icon{color:#9fb8ab}.portal-nav nav a:hover{background:#ffffff14}.portal-nav nav a.on{color:#10251c;box-shadow:none;background:#fff}.portal-nav nav a.on .icon{color:var(--g,var(--accent))}.portal-nav .nav-section,.portal-nav .nav-group-btn{color:#fff}.portal-nav .nav-group-btn:hover{background:#ffffff14}.portal-nav .nav-hint,.portal-nav .chev{color:#9fb8ab}.nav-new{color:var(--nav-bg);background:#fff}.nav-new .icon{color:var(--nav-bg)}.nav-new:hover{filter:none;background:#eaf5ee}.nav-bottom{border-top-color:#ffffff1f}.nav-demo .nav-label small{color:#9fb8ab}.portal-me{color:#fff;background:#ffffff14;border-color:#0000}.portal-me small{color:#9fb8ab}.nav-classes .class-dot{box-shadow:0 0 0 2px #ffffff40}.portal-top{background:#e8eee9f0;border-bottom:0}.portal-body{gap:22px}.portal .panel,.sect,.setup,.race,.lib,.demo-intro,.games-intro,.gc-card,.needs-card,.home-empty,.theme-card{box-shadow:var(--lift);border-color:#10281e0f}.sect{background:#fff;border-radius:14px}.sect-body{border-top-color:#edf1ee}.home{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:22px;display:grid}.home-main{gap:22px;min-width:0;display:grid}.home-rail{gap:14px;display:grid;position:sticky;top:84px}.home-h{margin:0 0 12px;font-size:18px}.home-empty{background:#fff;border-radius:14px;padding:20px}.gc-cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.gc-card{background:#fff;border-radius:14px;grid-template-rows:auto 1fr auto;min-height:210px;display:grid;overflow:hidden}.gc-banner{color:#fff;background:linear-gradient(135deg, var(--c), color-mix(in srgb, var(--c) 70%, #000));align-content:end;gap:4px;min-height:92px;padding:14px 16px;text-decoration:none;display:grid;position:relative;overflow:hidden}.gc-banner:after{content:"";background:#ffffff1f;border-radius:50%;width:130px;height:130px;position:absolute;top:-30px;right:-30px}.gc-banner strong{font-size:19px;line-height:1.2;text-decoration:none}.gc-banner:hover strong{text-decoration:underline}.gc-banner span{opacity:.9;font-size:13.5px}.gc-body{padding:12px 16px}.gc-latest{color:inherit;gap:1px;text-decoration:none;display:grid}.gc-latest:hover span:nth-child(2){text-decoration:underline}.gc-foot{border-top:1px solid #edf1ee;justify-content:space-between;gap:10px;padding:10px 16px;display:flex}.gc-foot a{color:var(--c);filter:brightness(.85);font-size:14px;font-weight:700;text-decoration:none}.gc-foot a:hover{text-decoration:underline}.needs-card{background:#fff;border-radius:14px;padding:16px 20px;border-left:6px solid var(--highlight)!important}.needs-card h2{align-items:center;gap:8px;margin:0 0 4px;font-size:17px;display:flex}.needs-n{background:var(--highlight);border-radius:999px;padding:0 9px;font-size:13px}.rail-list{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.rail-list a{color:inherit;background:#f2f6f3;border-radius:10px;justify-content:space-between;align-items:center;padding:10px 12px;font-weight:600;text-decoration:none;display:flex}.rail-list a:hover{background:#e4ede7}.rail-list b{font-size:16px}.rail-list li:first-child a{box-shadow:inset 4px 0 0 var(--g-teach)}.rail-list li:nth-child(2) a{box-shadow:inset 4px 0 #9aa8a1}.rail-list li:nth-child(3) a{box-shadow:inset 4px 0 0 var(--g-grade)}.rail-due{gap:8px;margin:8px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.rail-due li{display:grid}.rail-due a{font-weight:700;text-decoration:none}.rail-due a:hover{text-decoration:underline}.rail-ok{color:#166534;background:#e0f2e7;border-radius:12px;margin:0;padding:10px 14px;font-size:14px;font-weight:700}.home-rail .sect-toggle h2{font-size:15px}@media (width<=1100px){.home{grid-template-columns:1fr}.home-rail{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;position:static}}.lib-meta{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.kind-pill{white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:800}.k-test{color:#9f1239;background:#fde7ea}.k-classwork{color:#166534;background:#e0f2e9}.k-homework{color:#1e40af;background:#e5edfb}.k-gc{color:#92400e;background:#fef3c7}.lib-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lib-filters select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;font-size:14px}.lib{background:#fff}.class-banner{box-shadow:var(--lift);background:#fff;border-radius:16px;overflow:hidden}.class-banner-top{color:#fff;background:linear-gradient(135deg, var(--c), color-mix(in srgb, var(--c) 68%, #000));justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px 18px;display:flex}.class-banner-top h2{margin:0;font-size:26px}.class-banner-meta{opacity:.92;margin-top:4px;font-size:14px;display:block}.class-banner-meta a{color:#fff}.class-switch{appearance:none;color:#fff;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:26px;font-weight:700}.class-switch:hover{text-decoration:underline}.class-banner .menu-list{color:var(--ink)}.class-menu-btn{background:#fffffff2;border-color:#0000}.class-tabs-line{border-top:1px solid #edf1ee;gap:4px;padding:0 14px;display:flex}.class-tabs-line a{color:var(--muted);border-bottom:3px solid #0000;padding:12px 12px 10px;font-weight:700;text-decoration:none}.class-tabs-line a:hover{color:var(--ink)}.class-tabs-line a.on{color:var(--ink);border-bottom-color:var(--c)}.tool-head{background:#f2f6f3;border-radius:12px;align-items:baseline;gap:10px;margin-bottom:10px;padding:10px 14px;display:flex}.tool-head .link-btn{margin-left:auto}.join-waiting{width:100%;font:inherit;cursor:pointer;text-align:left;background:#fffbe6;border:0;border-radius:12px;align-items:center;gap:10px;margin-bottom:10px;padding:10px 14px;font-weight:700;display:flex}.sort-select{font:inherit;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 10px;font-size:14px}@media (width<=700px){.class-banner-top{flex-direction:column}.class-switch,.class-banner-top h2{font-size:21px}}.portal-main{zoom:var(--ui-zoom,1)}.portal-main .stadium{zoom:calc(1 / var(--ui-zoom,1))}.textsize{position:relative}.textsize-btn{border:1px solid var(--line);cursor:pointer;height:34px;font:inherit;color:var(--ink);background:#fff;border-radius:10px;align-items:baseline;gap:0;padding:0 10px;font-weight:800;display:inline-flex}.textsize-btn span:first-child{font-size:17px}.textsize-btn span:last-child{font-size:12px}.textsize-pop{z-index:40;background:#fff;border-radius:14px;gap:8px;width:260px;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000029}.textsize-pop label{gap:8px;font-size:14px;display:grid}.textsize-pop label span{justify-content:space-between;display:flex}.textsize-pop input[type=range]{width:100%;accent-color:var(--accent)}.textsize-row{justify-content:space-between;align-items:center;display:flex}.portal-actions{align-items:center}@media print{.portal-main{zoom:1!important}}.live-page.view-board .live-grid{grid-template-columns:minmax(0,1fr);max-width:1400px}.live-page.view-board .live-cam{z-index:6;background:#000;border-radius:14px;width:min(300px,34vw);position:fixed;bottom:16px;right:16px;overflow:hidden;box-shadow:0 10px 30px #0000004d}.live-page.view-board .live-cam .live-hint,.live-page.view-board .live-cam>:not(.stage){display:none}.live-page.view-board .live-panel{position:static}.live-page.view-board .live-quest .lboard{max-width:none}.live-page.view-board .live-qs{display:none}@media (width<=860px){.live-page.view-board .live-cam{width:40vw}}.live-page.view-board .live-quest .lboard{box-shadow:none;background:0 0;justify-content:center;display:flex}.live-page.view-board .live-quest .lboard svg{border-radius:16px;width:auto;max-width:100%;max-height:calc(100vh - 190px)}.k-live{color:#5b21b6;background:#ede9fe}.k-check{background:var(--highlight,#ffe259);color:#3b2f00}.nav-new-wrap{margin:0 0 12px}.nav-new-wrap .nav-new{cursor:pointer;width:100%;font:inherit;border:0;margin:0;font-weight:700}.nav-new-wrap .nav-new .chev{margin-left:auto}.nav-new-list{background:#ffffff14;border-radius:12px;gap:2px;margin-top:6px;padding:6px;display:grid}.portal-nav .nav-new-list a{color:#fff;border-radius:9px;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 10px;font-weight:400;text-decoration:none;display:flex}.portal-nav .nav-new-list a:hover{background:#ffffff1f}.nav-new-list small{opacity:.75;font-size:12px}.tq-list{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.tq{background:#fbfdfb;border:1px solid #d9e2dc;border-radius:12px;gap:8px;padding:10px 12px;display:grid}.tq.no-key{box-shadow:inset 4px 0 0 var(--highlight,#ffe259);border-color:#e9b949}.tq-head{grid-template-columns:auto 1fr auto;align-items:start;gap:8px;display:grid}.tq-head textarea{resize:vertical;width:100%;font:inherit;border:1px solid #cfd8d2;border-radius:8px;padding:6px 8px}.tq-options{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px;display:grid}.tq-opt{align-items:center;gap:6px;display:flex}.tq-opt input{min-width:0;font:inherit;border:1px solid #cfd8d2;border-radius:8px;flex:1;padding:5px 8px}.tq-opt.right input{background:#effaf3;border-color:#1f7a4f}.tq-add{padding:4px 0}.booklet-page{background:#e8eee9;min-height:100vh}.booklet-warn{max-width:8.5in;margin:12px auto 0}.booklet{color:#111;background:#fff;max-width:8.5in;margin:16px auto 40px;padding:.6in .7in;font-size:15px;line-height:1.4;box-shadow:0 2px 14px #0000001f}.booklet-head{border-bottom:2px solid #111;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:8px;display:flex}.booklet-head h1{margin:0;font-size:22px}.booklet-head p{color:#444;margin:2px 0 0}.booklet-name{align-items:flex-end;gap:6px;font-weight:700;display:flex}.booklet-name span{border-bottom:1px solid #111;width:2.6in;height:1.1em;display:inline-block}.booklet-how{color:#333;margin:10px 0 14px;font-size:13.5px}.booklet-qs{margin:0;padding-left:1.6em}.booklet-q{break-inside:avoid;margin:0 0 14px}.bq-opts{grid-template-columns:1fr 1fr;gap:2px 18px;margin:0;padding:0;list-style:none;display:grid}.bq-opts b{width:1.4em;display:inline-block}.bq-work{border:1px dashed #b8b8b8;border-radius:6px;margin-top:6px}.booklet-open{break-inside:avoid;border-top:1px solid #999;margin-top:18px;padding-top:8px}.booklet-open h2{margin:0;font-size:16px}@media print{.booklet-page{background:#fff}.booklet{box-shadow:none;max-width:none;margin:0;padding:0}}.test-import{gap:10px;display:grid}.ti-inputs{gap:8px;display:grid}.ti-file{cursor:pointer;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ti-file input{opacity:0;width:1px;height:1px;position:absolute}.ti-file:focus-within .btn{outline:3px solid #93c5fd}.ti-inputs textarea{border:1px solid #cfd8d2;border-radius:10px;width:100%;padding:8px;font:13px/1.4 ui-monospace,monospace}.ti-inputs>.btn{justify-self:start}.ti-found{background:#f3faf5;border:1px solid #cfe3d6;border-radius:12px;gap:8px;padding:12px 14px;display:grid}.ti-found p{margin:0}.ti-problems{columns:2;margin:0;padding-left:18px}.ti-preview{gap:4px;margin:0;padding-left:22px;display:grid}.ti-preview li>span{display:block}.ti-right{color:#1f7a4f;font-weight:800}.import-check{background:#fff7cc;border:1px solid #f0d36b;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;margin:12px 16px 0;padding:10px 14px;display:flex}.import-check p{margin:0}.import-check .btn{white-space:nowrap;flex-shrink:0}.rail-list b small{color:var(--muted,#5b6b63);margin-left:3px;font-size:12px;font-weight:600}.live-game-note{color:#4c1d95;background:#f1edfe;border-radius:10px;margin:10px 16px 0;padding:8px 12px}@media (width<=640px){.tq-options,.bq-opts{grid-template-columns:1fr}.import-check{flex-direction:column;align-items:flex-start}}.steps{counter-reset:none;gap:4px;margin:0;padding:0;list-style:none;display:grid}.step{grid-template-columns:34px 1fr;gap:14px;padding-bottom:16px;animation:.38s cubic-bezier(.2,.8,.2,1) both step-in;display:grid;position:relative}.step:nth-child(2){animation-delay:60ms}.step:nth-child(3){animation-delay:.16s}.step:nth-child(4){animation-delay:.26s}.step:not(:last-child):before{content:"";background:#d6e0da;border-radius:2px;width:2px;transition:background .3s;position:absolute;top:36px;bottom:2px;left:16px}.step.done:not(:last-child):before{background:var(--g-prep,#2f9e66)}.step-num{width:34px;height:34px;color:var(--nav-bg,#123a2c);border:2px solid var(--nav-bg,#123a2c);background:#fff;border-radius:50%;place-items:center;font-size:15px;font-weight:800;transition:background .25s,color .25s,border-color .25s,transform .25s;display:grid}.step.current .step-num{box-shadow:0 0 0 5px color-mix(in srgb, var(--highlight,#ffe259) 70%, transparent)}.step.done .step-num{background:var(--g-prep,#2f9e66);border-color:var(--g-prep,#2f9e66);color:#fff;transform:scale(.92)}.step-body{align-content:start;gap:10px;min-width:0;display:grid}.step-title{flex-wrap:wrap;align-items:center;gap:10px;min-height:34px;display:flex}.step-title h3{margin:0;font-size:16.5px}.step-note{color:#1f6b45;background:#e3f3ea;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;animation:.3s both step-in}@keyframes step-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.kind{transition:transform .18s,box-shadow .18s,border-color .18s,opacity .2s}.kind:hover{border-color:#9fb9ab;transform:translateY(-3px);box-shadow:0 8px 20px #123a2c1f}.kind.on{transform:translateY(-2px)}.kind.dim{opacity:.62}.kind.dim:hover{opacity:1}.kind-icon{transform-origin:50% 70%;justify-self:start;transition:transform .25s;display:inline-block}.kind:hover .kind-icon,.kind.on .kind-icon{transform:scale(1.15)rotate(-8deg)}.kind-makes{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.kind-makes span{color:#2c4a3d;background:#eef3f0;border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:800}.kind-makes span+span:before{content:"+ "}.kind.on .kind-makes span{color:#145c38;background:#dff1e6}.subject-chips .chip{transition:transform .15s,background .15s,box-shadow .15s}.subject-chips .chip:hover{transform:translateY(-2px);box-shadow:0 4px 10px #123a2c1a}.level-chips .chip{font-weight:600}.new-ws .step .new-ws-go .btn.primary{animation:1.6s ease-in-out .5s 2 go-pulse}@keyframes go-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--highlight,#ffe259) 60%, transparent)}}.assign-steps{margin-top:6px}.assign-steps .assign-block{border-top:0;margin-top:0;padding-top:0}.print-pair{background:#fff;border-radius:14px;align-items:stretch;gap:0;max-width:8.5in;margin:14px auto 0;display:flex;overflow:hidden;box-shadow:0 1px 6px #00000014}.pp-part{color:inherit;flex:1;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;transition:background .2s;display:flex;position:relative}.pp-part:hover{background:#f1f6f3}.pp-part.on{box-shadow:inset 0 -3px 0 var(--g-prep,#2f9e66);background:#e3f3ea}.pp-n{border:2px solid var(--nav-bg,#123a2c);border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-weight:800;display:grid}.pp-part.on .pp-n{background:var(--nav-bg,#123a2c);color:#fff}.pp-text{display:grid}.pp-text small{color:var(--muted,#5b6b63)}.pp-plus{z-index:1;background:var(--highlight,#ffe259);border-radius:50%;place-items:center;width:26px;height:26px;font-weight:900;display:grid;position:absolute;top:50%;right:-13px;transform:translateY(-50%)}.pp-next{background:#fff7cc;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;max-width:8.5in;margin:10px auto 0;padding:10px 14px;animation:.35s both step-in;display:flex}.print-page>.print-pair{margin-left:auto;margin-right:auto}.lib-row.open .lib-detail{animation:.3s both step-in}.lib-detail{grid-template-columns:170px 1fr;gap:22px;padding:6px 18px 20px 44px}.lib-detail-body{gap:14px}.lib-facts{background:#fbfdfc;border:1px solid #dfe7e2;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0;margin:0;display:grid;overflow:hidden}.lib-facts>div{border-bottom:1px solid #e7eee9;border-right:1px solid #e7eee9;padding:9px 12px}.lib-facts dt{letter-spacing:.05em;text-transform:uppercase;color:var(--muted,#5b6b63);font-size:11px;font-weight:800}.lib-facts dd{margin:2px 0 0;font-size:14.5px;font-weight:700}.lib-facts dd.late{color:#b42318}.lib-notes{color:var(--muted,#5b6b63);flex-wrap:wrap;gap:6px 14px;font-size:13px;display:flex}.lib-notes span:before{content:"•";color:#9fb3a8;margin-right:6px}.lib-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.lib-card{--c:var(--g-prep,#2f9e66);border:1px solid #dfe7e2;border-top:4px solid var(--c);background:#fff;border-radius:14px;overflow:hidden}.lib-card.c-out{--c:var(--g-teach,#2b63a3)}.lib-card.c-grade{--c:var(--g-grade,#d98a1c)}.lib-card.c-change{--c:#7b8a83}.lib-card>header{background:color-mix(in srgb, var(--c) 8%, white);align-items:center;gap:10px;padding:10px 12px;display:flex}.lib-card>header .icon{color:var(--c);flex-shrink:0;width:20px;height:20px}.lib-card h4{margin:0;font-size:15px}.lib-card header small{color:var(--muted,#5b6b63);font-size:12.5px}.lib-card-actions{padding:4px;display:grid}.lib-card-actions>a,.lib-card-actions>button{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;grid-template-columns:1fr auto;gap:0 8px;padding:9px 10px;text-decoration:none;transition:background .15s,padding .15s;display:grid;position:relative}.lib-card-actions>a:after,.lib-card-actions>button:after{content:"›";color:#a9b8b0;grid-area:1/2/span 2;align-self:center;font-size:20px;transition:transform .15s,color .15s}.lib-card-actions>a:hover,.lib-card-actions>button:hover{background:color-mix(in srgb, var(--c) 9%, white)}.lib-card-actions>a:hover:after,.lib-card-actions>button:hover:after{color:var(--c);transform:translate(3px)}.lib-card-actions strong{font-size:14px}.lib-card-actions small{color:var(--muted,#5b6b63);font-size:12.5px}.lib-card-actions>.danger{border-top:1px dashed #e3e9e5;border-radius:0 0 9px 9px;margin-top:4px}.lib-card-actions>.danger strong{color:#b42318}@media (width<=760px){.lib-detail{grid-template-columns:1fr;padding-left:16px}.lib-thumb-link{max-width:170px}.print-pair{flex-direction:column}.pp-plus{inset:auto auto -13px 30px;transform:none}}@media (prefers-reduced-motion:reduce){.step,.step-note,.pp-next,.lib-row.open .lib-detail{animation:none}.kind,.kind:hover,.kind.on,.subject-chips .chip:hover,.kind:hover .kind-icon,.kind.on .kind-icon{transform:none}.new-ws .step .new-ws-go .btn.primary{animation:none}}.gc-card{transition:transform .18s,box-shadow .18s}.gc-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #123a2c24}.lib-line{transition:background .15s}.lib-row:not(.open) .lib-line:hover{background:#f5f9f6}.lib-caret{transition:transform .2s;display:inline-block}.rail-list a{transition:transform .15s,background .15s}.rail-list a:hover{transform:translate(3px)}@media (prefers-reduced-motion:reduce){.gc-card:hover,.rail-list a:hover{transform:none}}.build-steps{z-index:5;background:#fff;border-bottom:1px solid #e3e9e5;align-items:center;gap:14px;padding:10px 18px 12px;display:flex;position:sticky;top:0}.build-steps ol{flex:1;gap:4px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.build-steps li button{font:inherit;cursor:pointer;color:var(--muted,#5b6b63);white-space:nowrap;background:0 0;border:0;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;transition:background .15s,color .15s;display:flex}.build-steps li button:hover{color:var(--ink,#14231c);background:#f0f5f2}.bs-n{background:#fff;border:2px solid #c7d3cc;border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:800;transition:all .25s;display:grid}.build-steps li.done .bs-n{background:var(--g-prep,#2f9e66);border-color:var(--g-prep,#2f9e66);color:#fff}.build-steps li.on button{color:var(--ink,#14231c);background:#e3f3ea;font-weight:700}.build-steps li.on .bs-n{border-color:var(--nav-bg,#123a2c);background:var(--nav-bg,#123a2c);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb, var(--highlight,#ffe259) 70%, transparent)}.bs-progress{background:#edf2ef;height:4px;position:absolute;bottom:0;left:0;right:0}.bs-progress span{background:linear-gradient(90deg, var(--g-prep,#2f9e66), #6fcf97);border-radius:0 4px 4px 0;height:100%;transition:width .45s cubic-bezier(.2,.8,.2,1);display:block}.bs-pct{color:var(--g-prep,#2f9e66);text-align:right;min-width:42px;font-size:14px;font-weight:800}.step-panel{animation:.32s both step-in}.step-h{gap:2px;margin:0 0 16px;font-size:22px;display:grid}.step-h span{letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#5b6b63);font-size:12px;font-weight:800}.step-fields{gap:14px;display:grid}.sub-h{margin:18px 0 8px;font-size:16px}.open-part{border-top:1px solid #e3e9e5;margin-top:18px;padding-top:4px}.step-nav{border-top:1px solid #e3e9e5;justify-content:space-between;align-items:center;margin-top:22px;padding-top:16px;display:flex}.step-nav .btn.primary{min-width:180px}.fit-line{margin:0;font-size:14px}.fill-offer{background:#eef7f1;border:1px solid #cfe7d8;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.fill-offer .btn{white-space:nowrap}.tq-work{align-items:center;gap:8px;display:flex}.review-checks{gap:6px;margin:0;padding:0;list-style:none;display:grid}.review-checks li{background:#f3f8f5;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;animation:.3s both step-in;display:flex}.review-checks li:nth-child(2){animation-delay:50ms}.review-checks li:nth-child(3){animation-delay:.1s}.review-checks li:nth-child(4){animation-delay:.15s}.review-checks li:nth-child(5){animation-delay:.2s}.review-checks li.todo{background:#fff7d6}.rc-mark{background:var(--g-prep,#2f9e66);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:13px;font-weight:900;display:grid}.review-checks li.todo .rc-mark{background:#e0a12e}.review-checks li .link-btn{margin-left:auto}.review-go{align-items:center;gap:12px;display:flex}.preview-toggle{margin-bottom:10px}.booklet-preview{background:#dfe7e2;border-radius:10px;max-height:calc(100vh - 170px);padding:10px;overflow:auto}.booklet-preview .booklet-doc{zoom:.55}.booklet-preview .booklet{margin:0 auto 24px}.make-test{align-items:end}.lib-facts dd a{color:inherit;border-radius:6px;align-items:baseline;gap:6px;text-decoration:none;display:inline-flex}.lib-facts dd a:hover{color:var(--g-teach,#2b63a3);text-decoration:underline}.fact-edit{opacity:0;font-size:12px;transition:opacity .15s}.lib-facts>div:hover .fact-edit{opacity:.8}@media (width<=760px){.build-steps .bs-label{display:none}.build-steps li.on .bs-label{display:inline}.fill-offer{flex-direction:column;align-items:flex-start}}.booklet-doc{display:grid}.booklet{font-family:Georgia,Times New Roman,serif}.booklet h1,.booklet h2,.booklet .bq-n,.booklet dt,.booklet th{font-family:Atkinson Hyperlegible,system-ui,sans-serif}.booklet-cover{align-content:start;gap:18px;min-height:9.5in;display:grid}.cover-head{text-align:center;border-bottom:3px double #111;padding-bottom:12px}.cover-head h1{margin:0;font-size:30px}.cover-head p{color:#444;margin:4px 0 0}.cover-who{grid-template-columns:2fr 1fr;gap:24px;font-weight:700;display:grid}.cover-who div,.cover-sign div{align-items:flex-end;gap:8px;display:flex}.cover-who span,.cover-sign span{border-bottom:1px solid #111;flex:1;height:1.2em}.cover-facts{border:1.5px solid #111;border-radius:6px;grid-template-columns:repeat(3,1fr);margin:0;display:grid}.cover-facts div{text-align:center;padding:10px 14px}.cover-facts div+div{border-left:1px solid #111}.cover-facts dt{letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.cover-facts dd{margin:4px 0 0;font-size:20px;font-weight:700}.cover-sections{border-collapse:collapse;width:100%;font-size:14px}.cover-sections th,.cover-sections td{text-align:left;vertical-align:top;border:1px solid #999;padding:6px 10px}.cover-sections th{text-transform:uppercase;letter-spacing:.05em;background:#f1f1f1;font-size:12px}.cover-block h2{text-transform:uppercase;letter-spacing:.06em;margin:0 0 6px;font-size:15px}.cover-block ul{gap:4px;margin:0;padding-left:20px;display:grid}.cover-block p{margin:0 0 14px}.cover-conduct{border:1.5px solid #111;border-radius:6px;padding:12px 16px}.cover-sign{grid-template-columns:2fr 1fr;gap:24px;font-weight:700;display:grid}.cover-wait{text-align:center;border-top:1px solid #999;margin-top:auto;padding-top:10px;font-weight:700}.booklet-qs{margin:0;padding:0;list-style:none}.booklet-q{break-inside:avoid;border-bottom:1px solid #e2e2e2;grid-template-columns:minmax(0,1fr);gap:16px;padding:10px 0 14px;display:grid}.booklet-q.with-room{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bq-text{white-space:pre-wrap;margin:0 0 6px;font-weight:400}.bq-n{margin-right:4px}.booklet .bq-opts{grid-template-columns:1fr;gap:3px;margin:0;padding:0 0 0 22px;list-style:none;display:grid}.bq-opts b{width:1.6em;font-family:Atkinson Hyperlegible,system-ui,sans-serif;display:inline-block}.booklet .bq-work{border:1px dashed #b5b5b5;border-radius:6px;margin:0}.bq-section{break-after:avoid;border-bottom:2px solid #111;margin-bottom:4px;padding:16px 0 6px}.bq-section h2{margin:0;font-size:17px}.bq-section p{color:#333;margin:2px 0 0;font-size:14px}.sheet-booklet{margin:0 auto 20px}@media print{.booklet-cover{break-after:page;min-height:9.6in}.sheet-booklet{break-before:page;break-after:page}.booklet-preview .booklet-doc{zoom:1}}.cover-sec-list{gap:8px;margin:0 0 8px;padding:0;list-style:none;display:grid}.cover-sec-list li{background:#f3f8f5;border-radius:10px;grid-template-columns:minmax(0,1.2fr) auto minmax(0,1.6fr) auto;align-items:center;gap:8px;padding:8px;display:grid}.cover-sec-list input{font:inherit;border:1px solid #cfd8d2;border-radius:8px;min-width:0;padding:6px 9px}.cs-from{color:var(--muted,#5b6b63);white-space:nowrap;align-items:center;gap:4px;font-size:13px;display:flex}.cs-from input{width:58px}.step-fields .field>.btn,.step-fields .field>.link-btn{justify-self:start}.step-fields textarea{font:inherit;border:1px solid #cfd8d2;border-radius:10px;width:100%;padding:8px 10px}@media (width<=640px){.cover-sec-list li{grid-template-columns:1fr auto}.cs-desc{grid-column:1/-1}}
