.camera-capture[data-v-4bb48ba8]{--teacher-highlighter-rgb: 253, 255, 50;background:#fff;border-radius:8px;padding:20px;box-shadow:0 4px 20px #00000014}.camera-capture--student[data-v-4bb48ba8]{background:transparent;border-radius:0;padding:0;box-shadow:none;display:flex;flex-direction:column;align-items:center;width:100%;max-width:100%}.preview-area[data-v-4bb48ba8]{position:relative;aspect-ratio:4/3;background:#f5f5f7;border-radius:8px;overflow:hidden;margin-bottom:16px;display:flex;align-items:center;justify-content:center}.camera-capture--student .preview-area--portrait[data-v-4bb48ba8]{aspect-ratio:8.5 / 11;width:min(100%,calc(72vh * 8.5 / 11));height:auto;max-height:72vh;max-width:min(100%,calc(72vh * 8.5 / 11));margin-bottom:16px;border-radius:8px;flex:none;box-shadow:0 10px 28px #00000024}.preview-area--portrait .video-preview[data-v-4bb48ba8]{object-fit:cover;position:relative;z-index:0}.overlay-frame[data-v-4bb48ba8]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;display:flex;align-items:center;justify-content:center}.preview-area--portrait .overlay-frame[data-v-4bb48ba8]{display:block;z-index:2}.overlay-sheet[data-v-4bb48ba8]{flex:0 0 auto;height:100%;width:auto;aspect-ratio:8.5 / 11;border:3px solid rgba(255,255,255,.95);border-radius:6px;box-shadow:0 0 0 1px #00000059;box-sizing:border-box}.overlay-sheet--full[data-v-4bb48ba8]{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;flex:none;border-radius:0;background:transparent;border:3px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px #0000008c;box-sizing:border-box;pointer-events:none}.capture-state-ready .overlay-sheet--full[data-v-4bb48ba8]{border-color:#126c39f5;box-shadow:0 0 0 1px #126c39b8,0 0 16px #126c3957,0 0 34px #126c3933,inset 0 0 0 1px #ffffffc7,inset 0 0 20px #126c3924}.capture-state-adjust .overlay-sheet--full[data-v-4bb48ba8]{border-color:#ffcc00f2}.capture-state-looking .overlay-sheet--full[data-v-4bb48ba8],.capture-state-warming .overlay-sheet--full[data-v-4bb48ba8]{border-color:#ffffffe6}.overlay-frame-text[data-v-4bb48ba8]{position:absolute;bottom:14px;left:50%;transform:translate(-50%);margin:0;padding:10px 18px;background:#00000085;color:#fff;font-size:22px;line-height:1.15;font-weight:700;letter-spacing:0;border-radius:8px;text-align:center;max-width:calc(100% - 24px)}.overlay-frame--ready .overlay-frame-text[data-v-4bb48ba8]{background:#126c39e6}.overlay-frame--adjust .overlay-frame-text[data-v-4bb48ba8]{background:#745000db}.overlay-frame--warming .overlay-frame-text[data-v-4bb48ba8],.overlay-frame--looking .overlay-frame-text[data-v-4bb48ba8]{background:#0000008f}.captured-image-wrap[data-v-4bb48ba8]{position:relative;width:100%;height:100%}.progressive-marking-layer[data-v-4bb48ba8]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.progressive-marking-reveal[data-v-4bb48ba8]{animation:progressive-ink-reveal-4bb48ba8 .48s cubic-bezier(.2,.7,.25,1) both}.progressive-marking-status[data-v-4bb48ba8]{position:absolute;left:50%;bottom:12px;z-index:4;display:flex;align-items:center;gap:7px;max-width:calc(100% - 24px);padding:8px 13px;border:1px solid rgba(224,210,139,.78);border-radius:999px;background:#fffffff0;color:#202124;box-shadow:0 8px 22px #00000021;font-size:13px;line-height:1.1;font-weight:800;transform:translate(-50%);white-space:nowrap;pointer-events:none}.progressive-marking-pen[data-v-4bb48ba8]{color:#245aa4;font-size:18px;line-height:1;animation:progressive-pen-motion-4bb48ba8 .72s ease-in-out infinite alternate}@keyframes progressive-ink-reveal-4bb48ba8{0%{opacity:0;transform:translate(-5px,3px)}to{opacity:1;transform:translate(0)}}@keyframes progressive-pen-motion-4bb48ba8{0%{transform:rotate(-10deg) translate(-2px)}to{transform:rotate(2deg) translate(3px)}}@media (prefers-reduced-motion: reduce){.progressive-marking-reveal[data-v-4bb48ba8],.progressive-marking-pen[data-v-4bb48ba8]{animation:none}}.video-preview[data-v-4bb48ba8],.captured-image[data-v-4bb48ba8]{display:block;width:100%;height:100%;object-fit:contain}.preview-area--portrait .captured-image[data-v-4bb48ba8]{object-fit:contain}.annotation-hotspot[data-v-4bb48ba8]{position:absolute;border:2px solid transparent;border-radius:999px;background:transparent;color:transparent;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.annotation-hotspot[data-v-4bb48ba8]:hover,.annotation-hotspot--active[data-v-4bb48ba8]{background:#f0c74414}.annotation-hotspot[data-v-4bb48ba8]:focus-visible{outline:3px solid #007aff;outline-offset:3px}.annotation-hotspot span[data-v-4bb48ba8]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.placeholder[data-v-4bb48ba8]{color:#6e6e73;text-align:center}.student-blocked[data-v-4bb48ba8]{margin:0 0 12px;text-align:center;color:#6e6e73;font-size:14px;font-weight:500}.controls[data-v-4bb48ba8]{display:flex;gap:12px;flex-wrap:wrap}.controls--student[data-v-4bb48ba8]{width:min(100%,calc(72vh * 8.5 / 11));max-width:min(100%,calc(72vh * 8.5 / 11));justify-content:stretch}.btn[data-v-4bb48ba8]{flex:1;min-width:120px;padding:14px 20px;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}.btn[data-v-4bb48ba8]:active{transform:scale(.98)}.btn-primary[data-v-4bb48ba8]{background:#007aff;color:#fff}.btn-secondary[data-v-4bb48ba8]{background:#e8e8ed;color:#1d1d1f}.file-btn[data-v-4bb48ba8]{position:relative;display:inline-block;text-align:center}.file-btn--student[data-v-4bb48ba8]{flex:0 0 100%;background:transparent;color:#007aff;padding:8px 10px}.file-btn--disabled[data-v-4bb48ba8]{opacity:.6;cursor:not-allowed}.file-input[data-v-4bb48ba8]{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;cursor:pointer}@media (max-width: 640px){.camera-capture--student .preview-area--portrait[data-v-4bb48ba8]{width:min(100%,calc(62svh * 8.5 / 11));max-width:min(100%,calc(62svh * 8.5 / 11));max-height:62svh;margin-bottom:8px}.controls--student[data-v-4bb48ba8]{width:min(100%,calc(62svh * 8.5 / 11));max-width:min(100%,calc(62svh * 8.5 / 11));gap:8px}.controls--student .btn[data-v-4bb48ba8]{padding:12px 16px}.file-btn--student[data-v-4bb48ba8]{padding:6px 10px}}.error[data-v-4bb48ba8]{margin-top:12px;padding:12px;background:#ffe5e5;color:#dc2626;border-radius:8px;font-size:14px}.processing[data-v-4bb48ba8]{margin-top:20px;text-align:center;color:#6e6e73}.camera-capture--student .processing[data-v-4bb48ba8]{position:fixed;top:max(88px,calc(env(safe-area-inset-top,0px) + 94px));right:max(14px,calc(50vw - 178px));z-index:40;display:flex;align-items:center;gap:6px;margin:0;padding:6px 10px 6px 7px;border:1px solid rgba(224,210,139,.72);border-radius:999px;background:#fffffff0;color:#202124;box-shadow:0 8px 22px #0000001f;text-align:left;pointer-events:none}.camera-capture--student .processing p[data-v-4bb48ba8]{margin:0;font-size:13px;line-height:1;font-weight:800}.marking-loader[data-v-4bb48ba8]{position:relative;width:76px;height:34px;margin:0 auto 12px;transform:rotate(-4deg)}.marking-loader[data-v-4bb48ba8]:before{content:"";position:absolute;left:8px;right:8px;top:17px;height:2px;background:#2e33383d;border-radius:999px}.marking-loader span[data-v-4bb48ba8]{position:absolute;left:5px;top:8px;width:44px;height:12px;border-radius:999px;background:rgba(var(--teacher-highlighter-rgb),.76);mix-blend-mode:multiply;transform-origin:left center;animation:highlighter-swipe-4bb48ba8 1.15s ease-in-out infinite}.camera-capture--student .marking-loader[data-v-4bb48ba8]{width:38px;height:20px;margin:0}.camera-capture--student .marking-loader[data-v-4bb48ba8]:before{left:6px;right:5px;top:10px;height:1.5px}.camera-capture--student .marking-loader span[data-v-4bb48ba8]{left:3px;top:4px;width:24px;height:7px}.camera-capture--student .marking-loader span[data-v-4bb48ba8]:nth-child(2){top:8px;width:30px}.camera-capture--student .marking-loader span[data-v-4bb48ba8]:nth-child(3){top:12px;width:19px}.marking-loader span[data-v-4bb48ba8]:nth-child(2){top:15px;width:58px;animation-delay:.11s;opacity:.82}.marking-loader span[data-v-4bb48ba8]:nth-child(3){top:22px;width:34px;animation-delay:.22s;opacity:.62}@keyframes highlighter-swipe-4bb48ba8{0%{opacity:0;transform:translate(-8px) scaleX(.08) skew(-12deg)}42%{opacity:.85;transform:translate(8px) scaleX(1) skew(-12deg)}to{opacity:0;transform:translate(25px) scaleX(.72) skew(-12deg)}}.student-result[data-v-4bb48ba8]{margin-top:20px;padding:22px 18px;background:#fff;border-radius:8px;text-align:center;width:min(100%,calc(72vh * 8.5 / 11));max-width:min(100%,calc(72vh * 8.5 / 11));border:1px solid #e3e5e8}.student-result--success[data-v-4bb48ba8]{background:#fbfdfb;border-color:#c7e3ce}.student-result--review[data-v-4bb48ba8]{background:#fffdf7;border-color:#eadcae}.student-result--error[data-v-4bb48ba8]{background:#fff1f0;border-color:#ffd0cc}.student-result-message[data-v-4bb48ba8]{font-size:28px;line-height:1.15;font-weight:750;color:#202124;margin:0 0 16px}.student-result-subtext[data-v-4bb48ba8]{color:#5f6368;font-size:16px;line-height:1.4;margin:-6px 0 14px}.student-result-debug-error[data-v-4bb48ba8]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.35;text-align:left;overflow-wrap:anywhere}.debug-auto-upload-status[data-v-4bb48ba8]{width:100%;margin:12px 0 0;font-size:13px;overflow-wrap:anywhere}.debug-auto-upload-status--saved[data-v-4bb48ba8]{color:#126c39;font-weight:700}.debug-auto-upload-status--failed[data-v-4bb48ba8]{color:#b42318;font-weight:700}.student-answer-grid[data-v-4bb48ba8]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(5,auto);grid-auto-flow:column;gap:9px 18px;margin:2px auto 20px;max-width:430px;text-align:left}.student-answer-item[data-v-4bb48ba8]{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:6px 8px;border-radius:8px;background:#ffffffb3;border:1px solid rgba(218,220,224,.82)}.student-answer-item--clickable[data-v-4bb48ba8]{cursor:pointer}.student-answer-item--clickable[data-v-4bb48ba8]:active{transform:scale(.98)}.student-answer-item--clickable[data-v-4bb48ba8]:focus-visible{outline:3px solid rgba(0,122,255,.32);outline-offset:2px}.scantron-letter-bubble[data-v-4bb48ba8]{width:22px;height:17.1px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid #c4c8ce;border-radius:50%;color:#626b74;background:transparent;box-shadow:none;font-size:10.5px;line-height:1;font-weight:600;letter-spacing:0}.student-answer-label[data-v-4bb48ba8]{justify-self:center}.student-answer-pills[data-v-4bb48ba8]{display:inline-grid;grid-auto-flow:column;grid-auto-columns:31px;position:relative;align-items:center;justify-content:start;gap:0;width:max-content;overflow:hidden;border:2px solid #2e3338;border-radius:1px;background:#fff}.student-answer-pill[data-v-4bb48ba8]{-webkit-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;width:31px;height:34px;border:0;border-radius:0;background:#fff;font-size:17px;font-weight:750;color:#202124;font-family:inherit;line-height:1;padding:0;margin:0}.student-answer-pill+.student-answer-pill[data-v-4bb48ba8]{border-left:0}.student-answer-pill--clickable[data-v-4bb48ba8]{cursor:pointer}.student-answer-pill--clickable[data-v-4bb48ba8]:active{background:#f7f7f3}.student-answer-pill[data-v-4bb48ba8]:disabled{opacity:1;color:#202124}.student-answer-pill[data-v-4bb48ba8]:focus-visible{outline:3px solid rgba(240,199,68,.34);outline-offset:-3px}.student-answer-pills--double[data-v-4bb48ba8]:before,.student-answer-pills--double[data-v-4bb48ba8]:after{content:"";position:absolute;left:50%;width:1.5px;height:9px;transform:translate(-50%);background:#6f747a;pointer-events:none}.student-answer-pills--double[data-v-4bb48ba8]:before{top:0}.student-answer-pills--double[data-v-4bb48ba8]:after{bottom:0}.student-answer-item--correct[data-v-4bb48ba8]{border-color:#c7e3ce;background:#fbfdfb}.student-answer-item--incorrect[data-v-4bb48ba8]{border-color:#ffd0cc;background:#fff8f7}.student-answer-item--review[data-v-4bb48ba8]{border-color:#eadcae;background:#fffdf7}.student-answer-item--correct .student-answer-pills[data-v-4bb48ba8],.student-answer-item--incorrect .student-answer-pills[data-v-4bb48ba8],.student-answer-item--review .student-answer-pills[data-v-4bb48ba8]{border-color:#2e3338}.student-answer-pill--blank[data-v-4bb48ba8]{color:transparent}.student-correction-panel[data-v-4bb48ba8]{margin:0 auto 18px;padding:14px;max-width:390px;border:1px solid #f0c744;border-radius:8px;background:#fffdf4f5;text-align:left}.student-correction-panel--image[data-v-4bb48ba8]{position:absolute;z-index:4;box-sizing:border-box;min-width:128px;max-width:calc(100% - 12px);max-height:min(56%,174px);overflow:visible;margin:0;padding:7px;box-shadow:0 14px 38px #0000002e}.student-correction-panel--image.student-correction-panel--double[data-v-4bb48ba8]{min-width:150px}.student-correction-panel--image[data-v-4bb48ba8]:after{content:"";position:absolute;width:0;height:0;pointer-events:none}.student-correction-panel--right[data-v-4bb48ba8]:after{left:-10px;top:var(--correction-arrow-y, 50%);transform:translateY(-50%);border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid rgba(255,253,244,.96);filter:drop-shadow(-1px 1px 0 rgba(240,199,68,.72))}.student-correction-panel--left[data-v-4bb48ba8]:after{right:-10px;top:var(--correction-arrow-y, 50%);transform:translateY(-50%);border-top:10px solid transparent;border-bottom:10px solid transparent;border-left:10px solid rgba(255,253,244,.96);filter:drop-shadow(1px 1px 0 rgba(240,199,68,.72))}.student-correction-panel--above[data-v-4bb48ba8]:after{left:var(--correction-arrow-x, 50%);bottom:-10px;transform:translate(-50%);border-left:10px solid transparent;border-right:10px solid transparent;border-top:10px solid rgba(255,253,244,.96);filter:drop-shadow(1px 1px 0 rgba(240,199,68,.72))}.student-correction-panel--below[data-v-4bb48ba8]:after{left:var(--correction-arrow-x, 50%);top:-10px;transform:translate(-50%);border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:10px solid rgba(255,253,244,.96);filter:drop-shadow(1px -1px 0 rgba(240,199,68,.72))}.student-correction-panel--image .student-correction-title[data-v-4bb48ba8]{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:space-between;gap:6px;margin-bottom:5px;font-size:12px}.student-correction-panel--image .student-correction-close[data-v-4bb48ba8]{margin-left:auto;font-size:16px}.student-correction-panel--image .student-correction-choices[data-v-4bb48ba8],.student-correction-panel--image .student-correction-actions[data-v-4bb48ba8]{gap:4px}.student-correction-panel--image .student-correction-choices[data-v-4bb48ba8]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.local-first-none-btn[data-v-4bb48ba8]{width:100%;margin-top:6px}.local-first-strong-message[data-v-4bb48ba8]{margin:6px 0 0;font-size:12px;line-height:1.25;color:#694f20}.student-correction-panel--image .correction-choice-btn[data-v-4bb48ba8]{flex:0 0 auto;min-width:0;height:36px;padding:0 4px}.student-correction-panel--image .student-correction-manual input[data-v-4bb48ba8]{width:44px;min-width:44px;height:44px;padding:0 2px;text-align:center;font-size:22px;line-height:1.1}.student-correction-panel--image.student-correction-panel--double .student-correction-manual input[data-v-4bb48ba8]{width:58px;min-width:58px}.student-correction-title[data-v-4bb48ba8]{display:flex;align-items:center;gap:7px;margin:0 0 9px;color:#1d1d1f;font-size:18px;font-weight:800}.student-correction-label[data-v-4bb48ba8]{flex:0 0 auto}.student-correction-heading[data-v-4bb48ba8]{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:1px;line-height:1.02}.student-correction-heading strong[data-v-4bb48ba8],.student-correction-panel--image .student-correction-heading strong[data-v-4bb48ba8]{overflow:hidden;color:#1d1d1f;font-size:12.5px;font-weight:800;line-height:1.02;text-overflow:ellipsis;white-space:nowrap}.student-correction-heading span[data-v-4bb48ba8]{overflow:hidden;color:#5f6368;font-size:10.5px;font-weight:700;line-height:1;text-overflow:ellipsis;white-space:nowrap}.student-correction-close[data-v-4bb48ba8]{-webkit-appearance:none;appearance:none;border:0;background:transparent;color:#6e6e73;font-size:20px;line-height:1;padding:0 1px;cursor:pointer}.student-correction-subtext[data-v-4bb48ba8]{margin:0 0 12px;color:#6e6e73;font-size:14px}.student-correction-choices[data-v-4bb48ba8],.student-correction-actions[data-v-4bb48ba8]{display:flex;gap:10px;flex-wrap:wrap}.student-correction-choices[data-v-4bb48ba8]{margin-top:7px}.correction-choice-btn[data-v-4bb48ba8]{min-width:48px;padding:10px 14px;font-weight:800}.student-correction-manual[data-v-4bb48ba8]{display:grid;grid-template-columns:44px 64px;gap:4px;margin:0;color:#1d1d1f;font-size:14px;font-weight:700}.student-correction-panel--image.student-correction-panel--double .student-correction-manual[data-v-4bb48ba8]{grid-template-columns:58px 64px}.student-correction-manual input[data-v-4bb48ba8]{width:100%;height:50px;box-sizing:border-box;border:1px solid #d2d2d7;border-radius:8px;padding:12px 14px;text-align:center;font-size:22px;font-weight:800;line-height:1;letter-spacing:0}.student-correction-save[data-v-4bb48ba8]{min-width:0;padding:8px 10px}.student-correction-panel--image .student-correction-save[data-v-4bb48ba8]{flex:0 0 auto;width:64px;min-width:64px;height:44px;padding:0 7px;font-size:16px;line-height:1}@media (max-width: 430px){.student-correction-panel--image[data-v-4bb48ba8]{min-width:128px}}.student-correction-error[data-v-4bb48ba8]{margin:7px 0 0;color:#b42318;font-size:13px;font-weight:700}.student-result-actions[data-v-4bb48ba8]{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.ocr-result[data-v-4bb48ba8]{margin-top:20px;padding:16px;background:#f5f5f7;border-radius:8px}.ocr-result h3[data-v-4bb48ba8]{font-size:16px;margin-bottom:12px;color:#1d1d1f}.digits[data-v-4bb48ba8]{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.digit[data-v-4bb48ba8]{display:flex;flex-direction:column;align-items:center;padding:12px 16px;background:#fff;border-radius:8px;min-width:60px}.digit.low[data-v-4bb48ba8]{border:2px solid #f59e0b;background:#fffbeb}.digit.correct[data-v-4bb48ba8]{border:2px solid #28a745;background:#e8f5e9}.digit.incorrect[data-v-4bb48ba8]{border:2px solid #dc3545;background:#ffebee}.num[data-v-4bb48ba8]{font-size:28px;font-weight:600;color:#1d1d1f}.conf[data-v-4bb48ba8]{font-size:12px;color:#6e6e73;margin-top:4px}.flagged[data-v-4bb48ba8]{color:#f59e0b;font-size:14px;font-weight:500}.ocr-debug-controls[data-v-4bb48ba8]{margin-top:12px;padding:10px 0;border-top:1px solid #e8e8ed}.ocr-debug-toggle[data-v-4bb48ba8]{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:#3a3a3c;cursor:pointer;-webkit-user-select:none;user-select:none}.ocr-debug-panel[data-v-4bb48ba8]{margin-top:20px;padding:16px;background:#1c1c1e;color:#f5f5f7;border-radius:8px;font-size:13px}.ocr-debug-title[data-v-4bb48ba8]{margin:0 0 8px;font-size:16px;font-weight:600}.ocr-debug-summary[data-v-4bb48ba8]{margin:0 0 16px;color:#aeaeb2}.ocr-debug-label[data-v-4bb48ba8]{margin:0 0 8px;color:#aeaeb2;font-size:12px}.ocr-debug-warped[data-v-4bb48ba8]{max-width:100%;height:auto;border-radius:8px;border:1px solid #48484a}.ocr-debug-grid[data-v-4bb48ba8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-top:20px}.ocr-debug-cell[data-v-4bb48ba8]{padding:12px;background:#2c2c2e;border-radius:10px;border:1px solid #48484a}.ocr-debug-cell--bad[data-v-4bb48ba8]{border-color:#ff453a;box-shadow:0 0 0 1px #ff453a59}.ocr-debug-cell-head[data-v-4bb48ba8]{font-weight:600;margin-bottom:10px;color:#f5f5f7}.ocr-debug-cell-images[data-v-4bb48ba8]{display:flex;gap:10px;align-items:flex-start}.ocr-debug-cell-images figure[data-v-4bb48ba8]{margin:0;flex:1;min-width:0}.ocr-debug-cell-images figcaption[data-v-4bb48ba8]{font-size:11px;color:#8e8e93;margin-bottom:6px}.ocr-debug-raw[data-v-4bb48ba8]{width:100%;max-height:120px;object-fit:contain;background:#fff;border-radius:4px}.ocr-debug-pre[data-v-4bb48ba8]{width:100%;max-width:224px;image-rendering:pixelated;border-radius:4px;border:1px solid #48484a;background:#000}.ocr-debug-cell-meta[data-v-4bb48ba8]{display:flex;flex-direction:column;gap:4px;margin-top:10px;font-size:12px;color:#d1d1d6}.ocr-debug-match.ok[data-v-4bb48ba8]{color:#34c759}.ocr-debug-match.no[data-v-4bb48ba8]{color:#ff453a;font-weight:600}.marker-debug-panel[data-v-4bb48ba8]{margin-top:12px}.marker-debug-kv[data-v-4bb48ba8]{margin-bottom:12px;color:#d1d1d6;display:grid;gap:4px}.marker-debug-candidates[data-v-4bb48ba8]{margin-top:14px}.model-sanity-controls[data-v-4bb48ba8]{margin-top:10px}.marker-debug-grid[data-v-4bb48ba8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.marker-debug-item[data-v-4bb48ba8]{background:#2c2c2e;border:1px solid #48484a;border-radius:8px;padding:8px;color:#d1d1d6;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px;line-height:1.35}.scan-grade[data-v-af553a15]{--teacher-highlighter-rgb: 253, 255, 50;max-width:800px;margin:0 auto;color:#202124}.scan-grade--student[data-v-af553a15]{min-height:100vh;display:flex;flex-direction:column;padding:56px 20px 20px;padding-top:max(56px,calc(env(safe-area-inset-top,0px) + 18px))}.header[data-v-af553a15]{text-align:center;margin-bottom:30px}.brand-logo[data-v-af553a15]{width:82px;height:82px;object-fit:contain;margin:0 auto 8px;display:block}.scan-grade--student .header[data-v-af553a15]{margin-bottom:12px}.scan-grade--student .brand-logo[data-v-af553a15]{width:58px;height:58px;margin-bottom:6px}.scan-grade--student .header h1[data-v-af553a15]{font-size:24px;margin-bottom:0}.header h1[data-v-af553a15]{font-size:32px;font-weight:750;margin-bottom:0}.brand-name[data-v-af553a15]{color:#202124;font-weight:780}.brand-domain[data-v-af553a15]{color:#6e6e73;font-size:.92em;font-weight:450}.build-label[data-v-af553a15]{margin:4px 0 0;color:#8a8a8e;font-size:10px;font-weight:700;letter-spacing:0}.main[data-v-af553a15]{display:flex;flex-direction:column;gap:20px}.student-home[data-v-af553a15],.student-roster[data-v-af553a15]{background:#fff;border-radius:8px;padding:18px;box-shadow:0 2px 8px #00000014}.student-home[data-v-af553a15]{text-align:center;background:transparent;box-shadow:none;padding:6px 0 0;max-width:360px;width:100%;margin:0 auto}.student-home-actions[data-v-af553a15],.student-identity-actions[data-v-af553a15]{display:flex;flex-direction:column;gap:10px}.student-home-btn[data-v-af553a15]{width:100%}.teacher-link-btn[data-v-af553a15]{margin-top:14px;background:transparent;border:none;color:#6e6e73;font-size:14px;font-weight:600;cursor:pointer}.student-roster-title[data-v-af553a15]{font-size:20px;margin-bottom:6px;text-align:center}.student-selected-label[data-v-af553a15],.student-roster-help[data-v-af553a15],.student-roster-empty[data-v-af553a15]{text-align:center;color:#6e6e73;font-size:14px;margin-bottom:12px}.student-roster-grid[data-v-af553a15]{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:14px}.student-name-chip[data-v-af553a15]{border:2px solid #d2d2d7;background:#f5f5f7;color:#1d1d1f;border-radius:8px;padding:14px 12px;font-size:16px;font-weight:600;cursor:pointer}.student-name-chip--active[data-v-af553a15]{background:#007aff;border-color:#007aff;color:#fff}.test-section[data-v-af553a15]{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:10px}.btn[data-v-af553a15]{flex:1;min-width:140px;padding:12px 18px;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;text-align:center;text-decoration:none}.btn[data-v-af553a15]:active{transform:scale(.98)}.btn[data-v-af553a15]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-af553a15]{background:#007aff;color:#fff}.btn-primary[data-v-af553a15]:hover:not(:disabled){background:#0068d6}.btn-secondary[data-v-af553a15]{background:#e8e8ed;color:#1d1d1f}.btn-secondary[data-v-af553a15]:hover:not(:disabled){background:#d2d2d7}.btn-worksheet[data-v-af553a15]{background:#fff;border:1px solid #d7d2c7;color:#202124;box-shadow:0 1px 2px #2021240f}.btn-worksheet[data-v-af553a15]:hover:not(:disabled){background:#fbfaf7;border-color:#c7c0b2}.btn-test[data-v-af553a15]{background:#34c759;color:#fff}.btn-test[data-v-af553a15]:hover:not(:disabled){background:#30b350}.console-output[data-v-af553a15]{background:#1c1c1e;border-radius:12px;overflow:hidden;font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:13px}.console-header[data-v-af553a15]{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#2c2c2e;color:#f5f5f7;font-weight:500}.btn-clear[data-v-af553a15]{background:#3a3a3c;color:#f5f5f7;border:none;padding:4px 10px;border-radius:6px;font-size:12px;cursor:pointer}.btn-clear[data-v-af553a15]:hover{background:#48484a}.console-body[data-v-af553a15]{max-height:280px;overflow-y:auto;padding:12px 14px}.console-line[data-v-af553a15]{display:flex;gap:10px;margin-bottom:6px;line-height:1.5}.console-line[data-v-af553a15]:last-child{margin-bottom:0}.timestamp[data-v-af553a15]{color:#8e8e93;flex-shrink:0;font-size:12px}.message[data-v-af553a15]{color:#f5f5f7;word-break:break-word}.console-line.pass .message[data-v-af553a15]{color:#34c759}.console-line.fail .message[data-v-af553a15]{color:#ff453a}.console-line.success .message[data-v-af553a15]{color:#34c759;font-weight:600}.console-line.warn .message[data-v-af553a15]{color:#ff9f0a}.console-line.header .message[data-v-af553a15]{color:#bf5af2;font-weight:600}.console-line.separator .message[data-v-af553a15]{color:#636366}.results[data-v-af553a15]{background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 8px #00000014}.results h2[data-v-af553a15]{font-size:18px;margin-bottom:12px}.results .results-error[data-v-af553a15]{color:#dc3545;font-weight:500;margin-bottom:8px}.results p[data-v-af553a15]{color:#6e6e73;font-size:14px;margin-bottom:8px}.results .btn-export[data-v-af553a15]{margin-top:12px;padding:8px 14px;font-size:14px;background:#e8e8ed;color:#1d1d1f;border:none;border-radius:8px;cursor:pointer}.results .btn-export[data-v-af553a15]:hover{background:#d2d2d7}.teacher-panel[data-v-af553a15]{display:grid;gap:20px}.teacher-panel-card[data-v-af553a15]{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 8px #00000014}.teacher-panel-head[data-v-af553a15]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.teacher-panel-head .btn[data-v-af553a15]{flex:0 0 auto;min-width:150px}.teacher-panel-head h2[data-v-af553a15]{font-size:18px;margin-bottom:4px}.teacher-panel-head p[data-v-af553a15],.teacher-empty-state[data-v-af553a15],.review-card-meta[data-v-af553a15],.review-card-digits[data-v-af553a15]{color:#6e6e73;font-size:14px}.teacher-roster-input[data-v-af553a15]{width:100%;resize:vertical;border:1px solid #d2d2d7;border-radius:8px;padding:12px;font:inherit;margin-bottom:12px;min-height:180px}.teacher-panel-actions[data-v-af553a15]{display:flex;justify-content:flex-end}.teacher-panel-actions .btn[data-v-af553a15]{flex:0 0 auto;min-width:150px}.review-stats[data-v-af553a15]{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:14px 0}.review-stat[data-v-af553a15]{-webkit-appearance:none;appearance:none;border:1px solid #d2d2d7;border-radius:8px;background:#f8f8fa;color:#1d1d1f;padding:10px 8px;text-align:left;cursor:pointer}.review-stat strong[data-v-af553a15]{display:block;font-size:22px;line-height:1;margin-bottom:4px}.review-stat span[data-v-af553a15]{display:block;color:#6e6e73;font-size:12px;font-weight:700}.review-stat.active[data-v-af553a15]{border-color:#007aff;background:#eef6ff}.review-stat--passive[data-v-af553a15]{cursor:default;background:#fff9e6;border-color:#f4c542}.review-queue[data-v-af553a15]{display:grid;gap:12px}.review-group[data-v-af553a15]{display:grid;gap:10px}.review-group-head[data-v-af553a15]{display:flex;justify-content:space-between;align-items:flex-end}.review-group-head h3[data-v-af553a15]{font-size:16px;margin-bottom:2px}.review-group-head p[data-v-af553a15]{color:#6e6e73;font-size:13px}.review-card[data-v-af553a15]{border:1px solid #e5e5ea;border-left-width:6px;border-radius:8px;padding:14px;background:#fafafa}.review-card--ready[data-v-af553a15]{border-left-color:#34c759}.review-card--review[data-v-af553a15]{border-left-color:#ff9f0a}.review-card--done[data-v-af553a15]{border-left-color:#8e8e93;background:#f4f4f5}.review-card-row[data-v-af553a15],.review-card-meta[data-v-af553a15]{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}.review-card-row[data-v-af553a15]{margin-bottom:6px}.review-status[data-v-af553a15]{align-self:flex-start;padding:4px 8px;border-radius:999px;background:#eef2f7;color:#3a3a3c;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0}.review-status--review[data-v-af553a15]{background:#fff3cd;color:#9a6700}.review-status--ready[data-v-af553a15]{background:#e8f5e9;color:#137333}.review-status--done[data-v-af553a15]{background:#f1f1f4;color:#636366}.review-card-digits[data-v-af553a15]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.review-card-digits>span[data-v-af553a15]:first-child{font-weight:700;color:#3a3a3c}.review-digit[data-v-af553a15]{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 7px;border-radius:999px;border:1px solid #d2d2d7;background:#fff;color:#1d1d1f;font-weight:700}.review-digit--correct[data-v-af553a15]{border-color:#34c759;background:#e8f5e9}.review-digit--incorrect[data-v-af553a15]{border-color:#ff453a;background:#ffebee}.review-card-suggestions[data-v-af553a15]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.review-card-suggestions>span[data-v-af553a15]:first-child{font-weight:700;color:#3a3a3c}.review-suggestion-chip[data-v-af553a15]{display:inline-flex;align-items:center;min-height:28px;padding:4px 8px;border-radius:8px;border:1px solid #f4c542;background:#fff9e6;color:#5f4300;font-size:13px;font-weight:700}.review-score[data-v-af553a15]{display:inline-flex;width:fit-content;margin-bottom:8px;padding:4px 8px;border-radius:8px;background:#fff;color:#1d1d1f;border:1px solid #d2d2d7;font-size:13px;font-weight:700}.review-card-actions[data-v-af553a15]{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.review-action-btn[data-v-af553a15]{margin-top:0}.review-action-btn--danger[data-v-af553a15]{background:#ffe5e5;color:#b42318}.camera-wrapper[data-v-af553a15]{position:relative;display:inline-block}.student-scan-bar[data-v-af553a15]{display:grid;grid-template-columns:minmax(64px,1fr) auto minmax(76px,1fr);align-items:center;gap:10px;width:min(100%,calc(72vh * 8.5 / 11));max-width:min(100%,calc(72vh * 8.5 / 11));margin:0 auto 10px;padding:8px;border:1px solid #d2d2d7;border-radius:8px;background:#ffffffeb}.student-scan-bar--grading[data-v-af553a15]{grid-template-columns:1fr}.student-scan-grading[data-v-af553a15]{grid-column:1 / -1;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:#202124}.student-scan-grading-word[data-v-af553a15]{position:relative;isolation:isolate;padding:6px 13px 7px;color:#202124;font-size:18px;line-height:1;font-weight:560}.student-scan-grading-word[data-v-af553a15]:before{content:"";position:absolute;z-index:-1;left:-7px;right:-7px;top:50%;height:1.18em;border-radius:999px 80% 999px 72%;background:rgba(var(--teacher-highlighter-rgb),.9);mix-blend-mode:multiply;transform:translateY(-46%) rotate(-2deg) scaleX(.18);transform-origin:left center;animation:scan-grading-word-highlight-af553a15 1.16s ease-in-out infinite}@keyframes scan-grading-word-highlight-af553a15{0%{opacity:0;transform:translate(-8px,-46%) rotate(-2deg) scaleX(.08) skew(-10deg)}42%{opacity:.96;transform:translateY(-46%) rotate(-2deg) scaleX(1) skew(-10deg)}to{opacity:0;transform:translate(10px,-46%) rotate(-2deg) scaleX(.86) skew(-10deg)}}.student-scan-identity[data-v-af553a15]{justify-self:center;min-width:64px;min-height:36px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;text-align:center;cursor:pointer}.student-scan-identity strong[data-v-af553a15]{display:block;color:#1d1d1f;font-size:15px;line-height:1.1}.student-scan-identity[data-v-af553a15]:hover,.student-scan-identity[data-v-af553a15]:focus-visible{background:#f5f7f6;outline:none}.student-scan-actions[data-v-af553a15]{display:flex;align-items:center;gap:4px;justify-content:flex-end;min-width:76px}.student-scan-link[data-v-af553a15]{min-height:36px;border:1px solid transparent;background:transparent;color:#555b5f;font:inherit;font-size:13px;font-weight:620;padding:0 8px;border-radius:8px;cursor:pointer}.student-scan-link[data-v-af553a15]:hover,.student-scan-link[data-v-af553a15]:focus-visible{background:#f5f7f6;color:#202124;outline:none}.student-scan-home[data-v-af553a15]{justify-self:start}.student-scan-reset[data-v-af553a15]{min-height:40px;padding:0 18px;border-radius:8px;background:#126c39;color:#fff;font-size:14px;box-shadow:0 2px 8px #126c393d}.student-scan-reset[data-v-af553a15]:hover,.student-scan-reset[data-v-af553a15]:focus-visible{background:#0f5d31;color:#fff}.main--student[data-v-af553a15]{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:20px}.main--student .camera-wrapper--student[data-v-af553a15]{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:0 12px}@media (max-width: 640px){.scan-grade--student[data-v-af553a15]{padding:44px 14px 10px;padding-top:max(44px,calc(env(safe-area-inset-top,0px) + 14px))}.scan-grade--student .header[data-v-af553a15]{margin-bottom:8px}.scan-grade--student .brand-logo[data-v-af553a15]{width:50px;height:50px;margin-bottom:4px}.scan-grade--student .header h1[data-v-af553a15]{font-size:23px}.build-label[data-v-af553a15]{margin-top:2px;font-size:9px}.main[data-v-af553a15]{gap:12px}.student-home[data-v-af553a15]{padding-top:0}.student-home-actions[data-v-af553a15],.student-identity-actions[data-v-af553a15]{gap:8px}.student-home-btn[data-v-af553a15]{padding-top:12px;padding-bottom:12px}.teacher-link-btn[data-v-af553a15]{margin-top:10px}.student-scan-bar[data-v-af553a15]{margin-bottom:8px;padding:7px 8px}.review-stats[data-v-af553a15]{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-panel-head[data-v-af553a15]{flex-direction:column}}.annotation-layer[data-v-af553a15]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:auto;cursor:crosshair;z-index:10}
