*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}.landing-page[data-v-71ed7572]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;height:100vh;padding:20px;display:flex;overflow:hidden}.landing-card[data-v-71ed7572]{text-align:center;background:#fff;border-radius:12px;width:100%;max-width:460px;padding:48px 40px;box-shadow:0 20px 60px #00000026}.landing-icon[data-v-71ed7572]{margin-bottom:20px;line-height:0}.landing-icon .icon[data-v-71ed7572]{fill:#667eea;width:96px;height:96px}.landing-title[data-v-71ed7572]{color:#999;margin:0;font-size:18px;font-weight:500;line-height:1.6}.home-page[data-v-2d90f33a]{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;height:100vh;padding:20px;display:flex;overflow:hidden}.home-card[data-v-2d90f33a]{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:520px;min-height:0;max-height:85vh;padding:40px;display:flex;box-shadow:0 20px 60px #00000026}.student-info[data-v-2d90f33a]{flex-shrink:0;justify-content:center;align-items:center;gap:14px;padding-bottom:20px;display:flex}.exam-scroll[data-v-2d90f33a]{flex:1;min-height:0;max-height:420px;overflow-y:auto}.student-avatar[data-v-2d90f33a]{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;font-weight:700;display:flex}.student-detail[data-v-2d90f33a]{text-align:left}.student-name[data-v-2d90f33a]{color:#333;font-size:18px;font-weight:700}.student-id[data-v-2d90f33a]{color:#888;margin-top:2px;font-size:13px}.exam-item[data-v-2d90f33a]{border:1px solid #e8e8e8;border-radius:10px;margin-bottom:16px;padding:20px}.exam-item[data-v-2d90f33a]:hover{border-color:#667eea}.exam-item[data-v-2d90f33a]:last-child{margin-bottom:0}.exam-header[data-v-2d90f33a]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.exam-name[data-v-2d90f33a]{color:#333;font-size:17px;font-weight:700}.exam-status[data-v-2d90f33a]{border-radius:4px;padding:3px 12px;font-size:12px;font-weight:600}.exam-status.available[data-v-2d90f33a]{color:#155724;background:#d4edda}.exam-status.active[data-v-2d90f33a]{color:#4a90d9;background:#e8f0fe}.exam-status.submitted[data-v-2d90f33a],.exam-status.unavailable[data-v-2d90f33a]{color:#888;background:#f0f0f0}.exam-info[data-v-2d90f33a]{color:#888;justify-content:space-between;margin-bottom:14px;font-size:13px;display:flex}.btn-start[data-v-2d90f33a]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;width:100%;padding:12px 0;font-size:15px;font-weight:600;transition:opacity .2s}.btn-start[data-v-2d90f33a]:hover:not(:disabled){opacity:.9}.btn-start[data-v-2d90f33a]:disabled{opacity:.5;cursor:not-allowed}.btn-start.unavailable[data-v-2d90f33a]{color:#2c7fb8;opacity:1;background:#dceefb}.error-icon[data-v-2d90f33a]{text-align:center;margin-bottom:16px;font-size:48px}.home-title[data-v-2d90f33a]{color:#333;text-align:center;margin:0 0 8px;font-size:24px}.home-desc[data-v-2d90f33a]{color:#999;text-align:center;margin:0;font-size:14px}.empty-hint[data-v-2d90f33a]{text-align:center;padding:32px 0}.empty-icon[data-v-2d90f33a]{margin-bottom:12px;font-size:40px}.empty-text[data-v-2d90f33a]{color:#888;margin:0 0 6px;font-size:15px}.empty-sub[data-v-2d90f33a]{color:#bbb;margin:0;font-size:13px}.loading-spinner[data-v-2d90f33a]{border:4px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;width:40px;height:40px;margin:0 auto 20px;animation:.8s linear infinite spin-2d90f33a}@keyframes spin-2d90f33a{to{transform:rotate(360deg)}}.notice-overlay[data-v-2d90f33a]{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.notice-card[data-v-2d90f33a]{text-align:center;background:#fff;border-radius:14px;width:100%;max-width:400px;padding:32px 28px;box-shadow:0 20px 60px #0003}.notice-icon[data-v-2d90f33a]{margin-bottom:12px;font-size:44px}.notice-title[data-v-2d90f33a]{color:#333;margin:0 0 16px;font-size:20px}.notice-text[data-v-2d90f33a]{color:#666;margin:0 0 26px;font-size:15px;line-height:1.9}.notice-text strong[data-v-2d90f33a]{color:#e74c3c}.notice-actions[data-v-2d90f33a]{gap:12px;display:flex}.notice-actions button[data-v-2d90f33a]{cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px 0;font-size:15px;font-weight:600}.btn-cancel[data-v-2d90f33a]{color:#666;background:#f0f0f0}.btn-confirm[data-v-2d90f33a]{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2)}.btn-confirm[data-v-2d90f33a]:disabled{opacity:.6;cursor:not-allowed}.exam-timer[data-v-eece41d7]{font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:20px;font-weight:700;display:flex}.timer-icon[data-v-eece41d7]{font-size:22px}.timer-text[data-v-eece41d7]{color:#333}.timer-text.warning[data-v-eece41d7]{color:#e74c3c;animation:1s ease-in-out infinite pulse-eece41d7}@keyframes pulse-eece41d7{0%,to{opacity:1}50%{opacity:.5}}.question-nav[data-v-5f220556]{background:#fff;border-radius:8px;flex-direction:column;max-height:calc(100vh - 130px);padding:20px;display:flex;box-shadow:0 1px 4px #00000014}.nav-title[data-v-5f220556]{margin:0 0 12px;font-size:16px}.nav-info[data-v-5f220556]{color:#666;margin-bottom:10px;font-size:13px}.nav-legend[data-v-5f220556]{flex-wrap:wrap;gap:12px;margin-bottom:14px;font-size:12px;display:flex}.legend-item[data-v-5f220556]{color:#888;align-items:center;gap:4px;display:flex}.dot[data-v-5f220556]{border-radius:3px;width:12px;height:12px;display:inline-block}.dot.unanswered[data-v-5f220556]{background:#e0e0e0}.dot.answered[data-v-5f220556]{background:#27ae60}.dot.marked[data-v-5f220556]{background:#f39c12}.nav-scroll[data-v-5f220556]{scrollbar-width:none;flex:1;min-height:0;overflow-y:auto}.nav-scroll[data-v-5f220556]::-webkit-scrollbar{display:none}.nav-grid[data-v-5f220556]{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.nav-btn[data-v-5f220556]{aspect-ratio:1;cursor:pointer;background:#f5f5f5;border:1px solid #ddd;border-radius:6px;justify-content:center;align-items:center;width:100%;font-size:14px;transition:all .2s;display:flex}.nav-btn[data-v-5f220556]:hover{border-color:#4a90d9}.nav-btn.active[data-v-5f220556]{color:#4a90d9;background:#e8f0fe;border-color:#4a90d9;font-size:18px;font-weight:700}.nav-btn.answered[data-v-5f220556]{color:#155724;background:#d4edda;border-color:#27ae60}.nav-btn.marked[data-v-5f220556],.nav-btn.answered.marked[data-v-5f220556]{color:#856404;background:#fff3cd;border-color:#f39c12}.nav-btn.active.answered[data-v-5f220556],.nav-btn.active.marked[data-v-5f220556],.nav-btn.active.answered.marked[data-v-5f220556]{color:#4a90d9}.question-card[data-v-9b08cdb2]{background:#fff;border-radius:8px;padding:30px;box-shadow:0 1px 4px #00000014}.question-header[data-v-9b08cdb2]{align-items:center;gap:12px;margin-bottom:20px;display:flex}.question-type-badge[data-v-9b08cdb2]{color:#fff;border-radius:4px;padding:3px 10px;font-size:12px;font-weight:600}.question-type-badge.single[data-v-9b08cdb2]{background:#4a90d9}.question-type-badge.multiple[data-v-9b08cdb2]{background:#e67e22}.question-type-badge.boolean[data-v-9b08cdb2]{background:#16a085}.question-type-badge.essay[data-v-9b08cdb2]{background:#8e44ad}.question-number[data-v-9b08cdb2]{color:#888;font-size:14px}.question-score[data-v-9b08cdb2]{color:#8e44ad;background:#f5f0ff;border-radius:4px;padding:2px 10px;font-size:12px;font-weight:600}.question-text[data-v-9b08cdb2]{color:#222;margin-bottom:24px;font-size:18px;line-height:1.7}.options-list[data-v-9b08cdb2]{flex-direction:column;gap:12px;margin-bottom:30px;display:flex}.option-row[data-v-9b08cdb2]{align-items:center;gap:6px;display:flex}.option-row .option-item[data-v-9b08cdb2]{flex:1}.question-text-row[data-v-9b08cdb2]{align-items:flex-start;gap:6px;margin-bottom:24px;display:flex}.question-text-row .question-text[data-v-9b08cdb2]{flex:1;margin-bottom:0}.tts-bar[data-v-9b08cdb2]{gap:8px;margin-top:-20px;margin-bottom:20px;display:flex}.tts-action[data-v-9b08cdb2]{color:#1982fe;cursor:pointer;background:#f0f7ff;border:1px solid #bcd9ff;border-radius:20px;align-items:center;gap:6px;padding:7px 16px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.tts-action[data-v-9b08cdb2]:hover{background:#e2eeff;border-color:#1982fe}.tts-action.active[data-v-9b08cdb2]{color:#fff;background:#1982fe;border-color:#1982fe;box-shadow:0 2px 8px #1982fe4d}.tts-icon[data-v-9b08cdb2]{color:#1982fe;cursor:pointer;background:#f0f7ff;border:1px solid #bcd9ff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:7px;line-height:0;transition:all .15s;display:inline-flex}.tts-icon[data-v-9b08cdb2]:hover{background:#e2eeff;border-color:#1982fe}.tts-icon.active[data-v-9b08cdb2]{color:#fff;background:#1982fe;border-color:#1982fe;box-shadow:0 2px 8px #1982fe4d}.option-item[data-v-9b08cdb2]{cursor:pointer;border:1px solid #e0e0e0;border-radius:8px;align-items:flex-start;gap:10px;padding:12px 16px;transition:all .15s;display:flex}.option-item[data-v-9b08cdb2]:hover{background:#f5f9ff;border-color:#4a90d9}.option-item.selected[data-v-9b08cdb2]{background:#e8f0fe;border-color:#4a90d9}.option-item input[data-v-9b08cdb2]{accent-color:#4a90d9;flex-shrink:0;margin-top:2px}.option-label[data-v-9b08cdb2]{color:#4a90d9;min-width:20px;font-weight:700}.option-text[data-v-9b08cdb2]{color:#333;line-height:1.5}.essay-area[data-v-9b08cdb2]{margin-bottom:30px}.essay-input[data-v-9b08cdb2]{resize:vertical;border:1px solid #ddd;border-radius:8px;outline:none;width:100%;padding:14px 16px;font-family:inherit;font-size:15px;line-height:1.6;transition:border-color .2s}.essay-input[data-v-9b08cdb2]:focus{border-color:#4a90d9}.question-footer[data-v-9b08cdb2]{border-top:1px solid #eee;justify-content:space-between;align-items:center;padding-top:20px;display:flex}.nav-buttons[data-v-9b08cdb2]{gap:10px;display:flex}.btn[data-v-9b08cdb2]{cursor:pointer;color:#333;background:#fff;border:1px solid #ddd;border-radius:6px;padding:10px 24px;font-size:14px;transition:all .15s}.btn[data-v-9b08cdb2]:hover:not(:disabled){color:#4a90d9;border-color:#4a90d9}.btn[data-v-9b08cdb2]:disabled{opacity:.5;cursor:not-allowed}.btn-mark[data-v-9b08cdb2]{color:#888}.btn-mark.marked[data-v-9b08cdb2]{color:#f39c12;background:#fff8e1;border-color:#f39c12}.btn-next[data-v-9b08cdb2]{color:#fff;background:#4a90d9;border-color:#4a90d9}.btn-next[data-v-9b08cdb2]:hover{color:#fff;background:#357abd}.btn-submit[data-v-9b08cdb2]{color:#fff;background:#e74c3c;border-color:#e74c3c}.btn-submit[data-v-9b08cdb2]:hover{color:#fff;background:#c0392b}.exam-page[data-v-fc4fb18a]{background:#f5f6fa;flex-direction:column;min-height:100vh;display:flex}.exam-header[data-v-fc4fb18a]{z-index:10;background:#fff;justify-content:space-between;align-items:center;padding:14px 24px;display:flex;position:sticky;top:0;box-shadow:0 1px 4px #0000000f}.header-left[data-v-fc4fb18a]{align-items:center;gap:16px;display:flex}.student-name[data-v-fc4fb18a]{color:#333;font-size:16px;font-weight:700}.student-id[data-v-fc4fb18a]{color:#888;font-size:13px}.header-center[data-v-fc4fb18a]{color:#666;font-size:14px;font-weight:600}.header-right[data-v-fc4fb18a]{align-items:center;gap:20px;display:flex}.cam-warn[data-v-fc4fb18a]{color:#e67e22;cursor:pointer;background:#fef3e2;border:1px solid #f0c98a;border-radius:6px;padding:6px 14px;font-size:13px;animation:1.2s ease-in-out infinite warn-blink-fc4fb18a}.cam-warn[data-v-fc4fb18a]:hover{background:#fde8c8}@keyframes warn-blink-fc4fb18a{50%{opacity:.55}}.cam-preview[data-v-fc4fb18a]{object-fit:cover;z-index:50;cursor:move;touch-action:none;background:#000;border-radius:8px;width:180px;height:135px;position:fixed;bottom:20px;left:20px;transform:scaleX(-1);box-shadow:0 4px 16px #00000040}.btn-submit-top[data-v-fc4fb18a]{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:6px;padding:8px 20px;font-size:14px;transition:background .2s}.btn-submit-top[data-v-fc4fb18a]:hover{background:#c0392b}.exam-body[data-v-fc4fb18a]{flex:1;gap:24px;padding:24px;display:flex}.exam-sidebar[data-v-fc4fb18a]{flex-shrink:0;align-self:flex-start;width:240px;position:sticky;top:80px}.exam-main[data-v-fc4fb18a]{flex:1;min-width:0}.submit-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.submit-overlay.timeup{background:#c0392b80}.submit-overlay.manual{background:#2980b980}.submit-card{text-align:center;background:#fff;border-radius:16px;padding:40px 56px;box-shadow:0 20px 60px #0003}.submit-icon{margin-bottom:16px;font-size:48px}.submit-spinner{border:4px solid #e0e0e0;border-radius:50%;width:48px;height:48px;margin:0 auto 20px;animation:.8s linear infinite submit-spin}.submit-overlay.manual .submit-spinner{border-top-color:#2980b9}.submit-overlay.timeup .submit-spinner{border-top-color:#e74c3c}@keyframes submit-spin{to{transform:rotate(360deg)}}.submit-text{color:#333;margin:0;font-size:18px;font-weight:600}.confirm-overlay{z-index:10000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-card{text-align:center;background:#fff;border-radius:16px;max-width:460px;padding:40px 44px;box-shadow:0 20px 60px #0003}.confirm-card h3{color:#333;margin:0 0 20px;font-size:18px}.confirm-icon{margin-bottom:16px;font-size:48px}.confirm-text{color:#333;margin:0 0 28px;font-size:20px;line-height:1.6}.confirm-text strong{color:#e74c3c;font-size:26px}.confirm-buttons{justify-content:center;gap:14px;display:flex}.confirm-buttons button{cursor:pointer;border:none;border-radius:8px;padding:10px 28px;font-size:15px;font-weight:600}.btn-confirm-cancel{color:#fff;background:#4a90d9}.btn-confirm-cancel:hover{background:#357abd}.btn-confirm-submit{color:#fff;background:#e74c3c}.btn-confirm-submit:hover{background:#c0392b}.cam-tip{color:#666;text-align:left;margin:0 0 16px;font-size:15px;line-height:1.8}.submitted-page[data-v-48917c1a]{background:linear-gradient(135deg,#11998e 0%,#38ef7d 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.submitted-card[data-v-48917c1a]{text-align:center;background:#fff;border-radius:12px;width:100%;max-width:420px;padding:48px 40px;box-shadow:0 20px 60px #00000026}.checkmark[data-v-48917c1a]{color:#fff;background:#27ae60;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 20px;font-size:36px;display:flex}h1[data-v-48917c1a]{color:#333;margin:0 0 12px;font-size:24px}.name[data-v-48917c1a]{color:#555;margin:0 0 4px;font-size:18px;font-weight:600}.info[data-v-48917c1a]{color:#888;margin:0 0 28px;font-size:14px}.stats[data-v-48917c1a]{justify-content:center;gap:32px;margin-bottom:24px;display:flex}.stat-item[data-v-48917c1a]{flex-direction:column;align-items:center;gap:4px;display:flex}.stat-value[data-v-48917c1a]{color:#333;font-size:24px;font-weight:700}.stat-label[data-v-48917c1a]{color:#888;font-size:12px}.share-page[data-v-b259a2b5]{background:#f5f6fa;min-height:100vh;padding:30px 20px 60px}.share-card[data-v-b259a2b5]{background:#fff;border-radius:10px;max-width:760px;margin:0 auto;padding:36px 32px;box-shadow:0 1px 6px #00000014}.share-title[data-v-b259a2b5]{color:#333;margin:0 0 16px;font-size:22px}.share-meta[data-v-b259a2b5]{color:#333;margin:0 0 24px;font-size:15px}.share-scores[data-v-b259a2b5]{border-bottom:1px solid #eee;gap:28px;margin-bottom:24px;padding-bottom:20px;display:flex}.ss-item[data-v-b259a2b5]{text-align:center}.ss-label[data-v-b259a2b5]{color:#888;margin-bottom:4px;font-size:13px;display:block}.ss-val[data-v-b259a2b5]{font-size:22px;font-weight:700}.ss-val.max[data-v-b259a2b5]{color:#333}.ss-val.auto[data-v-b259a2b5]{color:#4a90d9}.ss-val.actual[data-v-b259a2b5]{color:#8e44ad}.ss-val.final[data-v-b259a2b5]{color:#e74c3c}.share-recording[data-v-b259a2b5]{margin-bottom:24px}.share-video[data-v-b259a2b5]{background:#000;border-radius:6px;width:100%;max-height:400px}.btn-view-rec[data-v-b259a2b5]{color:#4a90d9;cursor:pointer;background:#f5f9ff;border:1px solid #4a90d9;border-radius:6px;padding:8px 18px;font-size:14px}.btn-view-rec[data-v-b259a2b5]:hover{background:#e2eeff}.rec-status[data-v-b259a2b5]{color:#888;font-size:13px}.q-row[data-v-b259a2b5]{border-bottom:1px solid #f0f0f0;padding:16px 0}.q-head[data-v-b259a2b5]{gap:6px;margin-bottom:8px;display:flex}.q-num[data-v-b259a2b5]{color:#333;font-weight:700}.q-text[data-v-b259a2b5]{color:#333;line-height:1.6}.q-opts[data-v-b259a2b5]{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.q-opt[data-v-b259a2b5]{color:#666;background:#f5f5f5;border-radius:4px;padding:4px 12px;font-size:13px}.q-opt.opt-correct[data-v-b259a2b5]{color:#155724;background:#d4edda}.q-opt.opt-wrong[data-v-b259a2b5]{color:#c0392b;background:#fdecea}.q-answer[data-v-b259a2b5]{color:#555;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:14px;display:flex}.ans-text.c[data-v-b259a2b5]{color:#27ae60;font-weight:600}.ans-text.w[data-v-b259a2b5]{color:#e74c3c;font-weight:600}.ans-mark[data-v-b259a2b5]{font-size:12px;line-height:1}.ans-score[data-v-b259a2b5]{color:#888;font-size:12px}.share-tip[data-v-b259a2b5]{text-align:center;color:#888;padding:40px 0;font-size:15px}.share-tip.error[data-v-b259a2b5]{color:#888;font-size:19px;font-weight:600}body{overflow:auto}
