@charset "UTF-8";.drawer-sidebar{height:100%;display:flex;flex-direction:column;flex-shrink:0;background:#fff;border-right:1px solid #e5e7eb;box-sizing:border-box}.drawer-sidebar-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;box-sizing:border-box}.spinner{width:8px;height:8px;border:2px solid;border-bottom:2px solid transparent;border-radius:50%;animation:spin 1s linear infinite}.close-btn{padding:4px;margin-right:8px;border:none;background:none;border-radius:8px;cursor:pointer;color:#6b7280;transition:background .2s;flex-shrink:0}.close-btn:hover{background:#f3f4f6}.delete-button{padding:8px 12px;display:flex;align-items:center;justify-content:center;color:var(--error-color);background:var(--error-bg-color);border:1px solid var(--error-color);border-radius:8px;cursor:pointer}.delete-button:hover{background:var(--error-hover-color)}.status-completed,.status-exception,.status-processing{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}.status-completed{background:var(--success-bg-color);color:var(--success-color);border:1px solid var(--success-hover-color)}.status-processing{background:var(--primary-bg-color);color:var(--primary-color);border:1px solid var(--primary-hover-color)}.status-exception{background:var(--orange-bg-color);color:var(--orange-color);border:1px solid var(--orange-hover-color)}.color-tag{font-size:12px;padding:2px 6px;border-radius:4px;border-width:1px;border-style:solid;display:inline-block}.color-tag.bg-blue-50{background:#eff6ff;color:#3b82f6;border-color:#bfdbfe}.color-tag.bg-purple-50{background:#faf5ff;color:#9333ea;border-color:#e9d5ff}.color-tag.bg-indigo-50{background:#eef2ff;color:#6366f1;border-color:#c7d2fe}.color-tag.bg-red-50{background:#fef2f2;color:#dc2626;border-color:#fecaca}.color-tag.bg-green-50{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.color-tag.bg-teal-50{background:#f0fdfa;color:#14b8a6;border-color:#99f6e4}.color-tag.bg-pink-50{background:#fdf2f8;color:#db2777;border-color:#fbcfe8}.color-tag.bg-amber-50{background:#fffbeb;color:#d97706;border-color:#fde68a}.color-tag.bg-cyan-50{background:#ecfeff;color:#0891b2;border-color:#a5f3fc}.color-tag.bg-orange-50{background:#fff7ed;color:#ea580c;border-color:#fed7aa}.color-tag.bg-gray-50{background:#f9fafb;color:#4b5563;border-color:#e5e7eb}.color-tag.bg-lime-50{background:#f7fee7;color:#65a30d;border-color:#d9f99d}.color-tag.bg-emerald-50{background:#ecfdf5;color:#059669;border-color:#a7f3d0}.color-tag.bg-violet-50{background:#f5f3ff;color:#7c3aed;border-color:#ddd6fe}.color-tag.bg-rose-50{background:#fff1f2;color:#e11d48;border-color:#ffe4e6}.color-tag.bg-sky-50{background:#f0f9ff;color:#0284c7;border-color:#bae6fd}@keyframes spin{to{transform:rotate(1turn)}}html[data-theme=haofenshu]{--secondary-color: #f2f2f2;--base-text-color: #333639;--success-color: #16a34a;--success-bg-color: #f0fdf4;--success-hover-color: #dcfce8;--success-status-color: #16a34a;--success-status-bg-color: #f0fdf4;--success-status-hover-color: #dcfce8;--primary-color: #2563eb;--primary-bg-color: #eff6ff;--primary-hover-color: #dbeaff;--warning-color: #f59b00;--warning-bg-color: #fffbec;--warning-hover-color: #fee68b;--orange-color: #ea580d;--orange-bg-color: #fff7ed;--orange-hover-color: #fed7aa;--error-color: #dc2626;--error-bg-color: #fef2f2;--error-hover-color: #ffe3e3;--hover-color: #4abef9;--active-color: #10a0e9;--jz-theme: #3b82f6;--jz-active-bg: #10a0e9;--jz-active-l-bg: #87b7f9;--jz-hover-bg: #ebf8ff;--el-color-primary: #3b82f6 !important;--el-color-primary-light-3: #3b82f6 !important;--el-color-primary-light-5: #a0cfff !important;--el-color-primary-light-7: #dceafe !important;--el-color-primary-light-8: #ccdffe !important;--el-color-primary-light-9: #eff6ff !important;--el-color-primary-dark-2: #10a0e9 !important;--el-color-success: var(--jz-theme) !important;--el-input-height: 30px !important}html[data-theme=haofenshu] .el-button--primary{--el-button-disabled-bg-color: #ccdffd !important;--el-button-disabled-border-color: #ccdffd !important;--el-button-disabled-text-color: #f4f4f4 !important}html[data-theme=haofenshu] .el-button--primary.is-link,html[data-theme=haofenshu] .el-button--primary.is-plain,html[data-theme=haofenshu] .el-button--primary.is-text{--el-button-text-color: #3b82f6 !important;--el-button-bg-color: #eff6ff !important;--el-button-border-color: #3b82f6 !important;--el-button-hover-text-color: #3b82f6 !important;--el-button-hover-bg-color: #ccdffe !important;--el-button-hover-border-color: #3b82f6 !important}html[data-theme=haofenshu] .is-plain:active{--el-color-primary-dark-2: #d4f0ff !important;--el-button-active-text-color: #10a0e9 !important;--el-button-active-border-color: #10a0e9 !important}html[data-theme=yxzhixue]{--secondary-color: #f2f2f2;--base-text-color: #333639;--success-color: #16a34a;--success-bg-color: #f0fdf4;--success-hover-color: #dcfce8;--success-status-color: #16a34a;--success-status-bg-color: #f0fdf4;--success-status-hover-color: #dcfce8;--primary-color: #2563eb;--primary-bg-color: #eff6ff;--primary-hover-color: #dbeaff;--warning-color: #f59b00;--warning-bg-color: #fffbec;--warning-hover-color: #fee68b;--orange-color: #ea580d;--orange-bg-color: #fff7ed;--orange-hover-color: #fed7aa;--error-color: #dc2626;--error-bg-color: #fef2f2;--error-hover-color: #ffe3e3;--hover-color: #4abef9;--active-color: #10a0e9;--jz-theme: #3b82f6;--jz-active-bg: #10a0e9;--jz-active-l-bg: #87b7f9;--jz-hover-bg: #ebf8ff;--el-color-primary: #3b82f6 !important;--el-color-primary-light-3: #3b82f6 !important;--el-color-primary-light-5: #a0cfff !important;--el-color-primary-light-7: #dceafe !important;--el-color-primary-light-8: #ccdffe !important;--el-color-primary-light-9: #eff6ff !important;--el-color-primary-dark-2: #10a0e9 !important;--el-color-success: var(--jz-theme) !important;--el-input-height: 30px !important}html[data-theme=yxzhixue] .el-button--primary{--el-button-disabled-bg-color: #ccdffd !important;--el-button-disabled-border-color: #ccdffd !important;--el-button-disabled-text-color: #f4f4f4 !important}html[data-theme=yxzhixue] .el-button--primary.is-link,html[data-theme=yxzhixue] .el-button--primary.is-plain,html[data-theme=yxzhixue] .el-button--primary.is-text{--el-button-text-color: #3b82f6 !important;--el-button-bg-color: #eff6ff !important;--el-button-border-color: #3b82f6 !important;--el-button-hover-text-color: #3b82f6 !important;--el-button-hover-bg-color: #ccdffe !important;--el-button-hover-border-color: #3b82f6 !important}html[data-theme=yxzhixue] .is-plain:active{--el-color-primary-dark-2: #d4f0ff !important;--el-button-active-text-color: #10a0e9 !important;--el-button-active-border-color: #10a0e9 !important}.subject-select-dialog[data-v-4de205d1] .el-dialog__header{padding:0;margin:0}.subject-select-dialog[data-v-4de205d1] .el-dialog__body{padding:0}.subject-select-dialog[data-v-4de205d1] .el-dialog__footer{padding:0;margin:0}.dialog-content[data-v-4de205d1]{padding:20px 24px;max-height:500px;overflow-y:auto;box-sizing:border-box}.subjects-list[data-v-4de205d1]{display:flex;flex-direction:column;gap:12px}.subject-item[data-v-4de205d1]{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#fff;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s ease}.subject-item[data-v-4de205d1]:hover:not(.subject-disabled){border-color:#3b82f6;background:#eff6ff;box-shadow:0 4px 6px -1px #3b82f61a}.subject-item.subject-selected[data-v-4de205d1]{border-color:#3b82f6;background:#eff6ff;box-shadow:0 4px 6px -1px #3b82f61a}.subject-item.subject-disabled[data-v-4de205d1]{cursor:not-allowed}.subject-item .subject-left[data-v-4de205d1]{flex:1;min-width:0}.subject-item .subject-left .subject-header-row[data-v-4de205d1]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.subject-item .subject-left .subject-header-row .subject-radio[data-v-4de205d1]{flex-shrink:0}.subject-item .subject-left .subject-header-row .subject-radio .radio-circle[data-v-4de205d1]{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid #d1d5db;border-radius:50%;transition:all .2s ease}.subject-item .subject-left .subject-header-row .subject-radio .radio-circle.radio-checked[data-v-4de205d1]{background:#3b82f6;border-color:#3b82f6;color:#fff}.subject-item .subject-left .subject-header-row .subject-name[data-v-4de205d1]{font-size:14px;font-weight:500;color:#111827}.subject-item .subject-left .subject-header-row .subject-name .subject-id-tag[data-v-4de205d1]{margin-left:6px;font-size:12px;font-weight:400;color:#9ca3af;background:#f3f4f6;padding:2px 6px;border-radius:4px}.subject-item .subject-left .subject-header-row .last-scan-tag[data-v-4de205d1]{margin-left:8px;flex-shrink:0;background-color:#f3f4f6;border-color:#e5e7eb;color:#6b7280;font-size:11px;height:20px;line-height:18px;padding:0 6px;font-weight:400}.subject-item .subject-left .subject-progress-info .progress-bar-wrapper[data-v-4de205d1]{margin-bottom:8px}.subject-item .subject-left .subject-progress-info .progress-bar-wrapper .progress-bar-bg[data-v-4de205d1]{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden}.subject-item .subject-left .subject-progress-info .progress-bar-wrapper .progress-bar-bg .progress-bar-fill[data-v-4de205d1]{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:2px;transition:width .3s ease}.subject-item .subject-left .subject-progress-info .page-count-row[data-v-4de205d1]{display:flex;align-items:center;justify-content:space-between}.subject-item .subject-left .subject-progress-info .page-count-row .edit-page-btn[data-v-4de205d1]{font-size:12px;color:#2563eb;cursor:pointer;background:none;border:none;padding:0;transition:all .2s ease}.subject-item .subject-left .subject-progress-info .page-count-row .edit-page-btn[data-v-4de205d1]:hover{color:#1d4ed8;text-decoration:underline}.subject-item .subject-left .subject-page-editor[data-v-4de205d1]{padding:12px;font-weight:500;border-radius:8px;border:1px solid #fed7aa;box-sizing:border-box;background:#fff7ed}.subject-item .subject-left .subject-page-editor .page-alert[data-v-4de205d1]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.subject-item .subject-left .subject-page-editor .page-alert .warning-icon[data-v-4de205d1]{width:16px;height:16px;flex-shrink:0;color:#ea580d}.subject-item .subject-left .subject-page-editor .page-alert .alert-text[data-v-4de205d1]{font-size:13px;font-weight:600;color:#7c2d12}.subject-item .subject-left .subject-page-editor .page-editor-controls[data-v-4de205d1]{display:flex;align-items:center;gap:8px}.subject-item .subject-status[data-v-4de205d1]{flex-shrink:0;margin-left:auto;display:flex;align-items:center;gap:4px;padding-top:2px}.subject-item .subject-status .status-group[data-v-4de205d1]{display:flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}.subject-item .subject-status .status-group .status-icon[data-v-4de205d1]{width:16px;height:16px;flex-shrink:0}.subject-item .subject-status .status-group.success[data-v-4de205d1]{color:#16a34a;font-weight:500}.subject-item .subject-status .status-group.warning[data-v-4de205d1]{color:#ea580d;font-weight:600}.subject-item .subject-status .status-btn[data-v-4de205d1]{width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background:none;padding:0;transition:color .2s ease}.subject-item .subject-status .status-btn svg[data-v-4de205d1]{width:16px;height:16px}.subject-item .subject-status .status-btn[data-v-4de205d1]:hover{color:#3b82f6}.subject-item .subject-status .status-btn.warning[data-v-4de205d1]{color:#ea580d}.dialog-footer[data-v-4de205d1]{display:flex;align-items:center;justify-content:flex-end;gap:12px}.scan-button-wrapper[data-v-1a3d80dc]{display:inline-block}.scan-btn[data-v-1a3d80dc]{position:relative;display:flex;align-items:center;gap:8px;padding:10px 20px;margin-right:12px;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;overflow:hidden;transition:all .3s ease;background:linear-gradient(135deg,#3b82f6,#2563eb)}.scan-btn[data-v-1a3d80dc]:hover{transform:translateY(-1px);box-shadow:0 8px 20px #3b82f64d}.scan-btn[data-v-1a3d80dc]:active{transform:scale(.95)}.scan-btn .scan-icon-container[data-v-1a3d80dc]{position:relative;width:16px;height:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}.scan-btn .scan-line[data-v-1a3d80dc]{position:absolute;left:0;right:0;height:1px;background:#fff;opacity:0;pointer-events:none}.scan-btn.scanning-active .scan-line[data-v-1a3d80dc]{opacity:1;animation:scanMove-1a3d80dc 1s linear infinite}.scan-btn.scanning-active[data-v-1a3d80dc]{filter:hue-rotate(-10deg);animation:pulse-blue-1a3d80dc 2s infinite}@keyframes scanMove-1a3d80dc{0%{top:0;opacity:0}20%{opacity:1}80%{opacity:1}to{top:100%;opacity:0}}@keyframes pulse-blue-1a3d80dc{0%{box-shadow:0 0 #3b82f666}70%{box-shadow:0 0 0 10px #3b82f600}to{box-shadow:0 0 #3b82f600}}.header[data-v-841a267e]{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:64px;background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0}.header .header-left[data-v-841a267e]{display:flex;align-items:center;gap:12px}.header .header-left .logo[data-v-841a267e]{width:32px;height:32px}.header .header-left .title[data-v-841a267e]{font-size:18px;font-weight:700;color:#1e293b;margin:0}.header .header-left .divider[data-v-841a267e]{width:1px;height:16px;background:#d1d5db}.header .header-left .subtitle[data-v-841a267e]{font-size:12px;color:#6b7280;letter-spacing:.05em}.header .header-right[data-v-841a267e]{display:flex;align-items:center;gap:12px}.header .header-right .divider-vertical[data-v-841a267e]{width:1px;height:24px;background:#e5e7eb}.header .header-right .header-btn[data-v-841a267e]{display:flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:none;border-radius:8px;color:#64748b;font-size:14px;cursor:pointer;transition:all .2s ease}.header .header-right .header-btn[data-v-841a267e]:hover{background:#f1f5f9;color:#334155}.header .header-right .user-info[data-v-841a267e]{display:flex;align-items:center;gap:10px;padding:4px 12px;background:#f8fafc;border-radius:20px;cursor:pointer;transition:opacity .2s ease}.header .header-right .user-info[data-v-841a267e]:hover{opacity:.8}.header .header-right .user-info .user-avatar[data-v-841a267e]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border-radius:50%;font-size:14px;font-weight:600;box-shadow:0 0 0 2px #fff}.header .header-right .user-info .user-name[data-v-841a267e]{font-size:14px;color:#334155;font-weight:500}.exam-card[data-v-dbde0119]{margin-bottom:12px;background:#fff;border-radius:12px;overflow:hidden;border:1px solid #ddd;transition:all .2s ease;box-sizing:border-box}.exam-card.exam-card-selected[data-v-dbde0119]{border-color:var(--jz-theme);box-shadow:0 10px 15px -3px #0000001a}.exam-card.exam-card-default[data-v-dbde0119]{border-color:#ddd;box-shadow:0 1px 3px #0000001a}.exam-header[data-v-dbde0119]{padding:8px 16px;background:linear-gradient(90deg,#f8fafc,#fff);border-bottom:1px solid #f1f5f9;cursor:pointer;display:flex;align-items:center;justify-content:space-between}.exam-header[data-v-dbde0119]:hover{background:#f8fafc}.exam-header-left[data-v-dbde0119]{display:flex;align-items:center;gap:12px}.exam-title[data-v-dbde0119]{font-size:14px;font-weight:600}.exam-title-selected[data-v-dbde0119]{color:var(--jz-theme)}.exam-title-default[data-v-dbde0119]{color:#374151}.exam-date[data-v-dbde0119]{font-size:12px;color:#6b7280}.matrix-body[data-v-dbde0119]{display:flex;gap:4px;padding:8px;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none}.matrix-fixed[data-v-dbde0119]{flex-shrink:0;width:68px;display:flex;flex-direction:column;gap:4px}.matrix-scroll[data-v-dbde0119]{flex:1;overflow-x:auto;overflow-y:hidden;cursor:pointer}.matrix-scroll[data-v-dbde0119]::-webkit-scrollbar{height:0;display:none}.matrix-scroll .matrix-scroll-inner[data-v-dbde0119]{display:flex;flex-direction:column;gap:4px;min-width:-moz-min-content;min-width:min-content;box-sizing:border-box}.matrix-scroll .matrix-scroll-inner-flex[data-v-dbde0119]{min-width:0;width:100%}.matrix-scroll .matrix-row-cells[data-v-dbde0119]{display:flex;gap:4px}.row-label-cell[data-v-dbde0119]{height:40px;display:flex;align-items:center;justify-content:center;padding:0 4px}.row-label-btn[data-v-dbde0119]{width:60px;padding:4px 8px;border-radius:9999px;font-size:12px;font-weight:500;transition:all .2s ease;cursor:pointer;border:1px solid;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-label-btn-selected[data-v-dbde0119]{background:var(--jz-theme);color:#fff;border-color:var(--jz-theme)}.row-label-btn-default[data-v-dbde0119]{background:#f9fafb;color:#374151;border-color:#e5e7eb}.row-label-btn-default[data-v-dbde0119]:hover{background:#f1f5f9}[class^=matrix-cell-][data-v-dbde0119]{height:40px;flex-shrink:0;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;pointer-events:auto;z-index:1}[class^=matrix-cell-].matrix-cell-disabled[data-v-dbde0119]{cursor:default}[class^=matrix-cell-].matrix-cell-enabled[data-v-dbde0119]{cursor:pointer}[class^=matrix-cell-].matrix-cell-enabled[data-v-dbde0119]:hover{z-index:999!important}.bg-blue-500[data-v-dbde0119]{background:var(--jz-theme);border-color:var(--primary-color);color:#fff}.bg-gray-50.border-gray-200[data-v-dbde0119]{background:#f9fafb;border-color:#e5e7eb;color:#9ca3af}.bg-blue-50.border-blue-200[data-v-dbde0119]{background:#eff6ff;border-color:#bfdbfe;color:var(--primary-color)}.bg-yellow-50.border-yellow-200[data-v-dbde0119]{background:#fefce8;border-color:#fef08a;color:#ca8a04}.bg-purple-50.border-purple-200[data-v-dbde0119]{background:#faf5ff;border-color:#e9d5ff;color:#9333ea}.bg-green-50.border-green-200[data-v-dbde0119]{background:var(--success-bg-color);border-color:var(--success-hover-color);color:var(--success-color)}.matrix-cell-content[data-v-dbde0119]{position:relative;z-index:1}.matrix-cell-text-active[data-v-dbde0119]{font-size:12px;font-weight:600}.matrix-cell-text-inactive[data-v-dbde0119]{font-size:12px}.matrix-cell-progress[data-v-dbde0119]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.card-grid[data-v-1c551c4f]{flex:1;overflow:auto}.student-card-grid[data-v-1c551c4f]::-webkit-scrollbar{width:6px}.student-card-grid[data-v-1c551c4f]::-webkit-scrollbar-track{background:transparent}.student-card-grid[data-v-1c551c4f]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.student-card-grid[data-v-1c551c4f]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.empty-state[data-v-1c551c4f]{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#9ca3af;font-size:14px}.card-item[data-v-1c551c4f]{height:220px;background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column}.card-item[data-v-1c551c4f]:hover{transform:translateY(-2px);box-shadow:0 4px 6px #00000026;border-color:var(--jz-theme)}.card-image-wrapper[data-v-1c551c4f]{position:relative;flex:1;min-height:0;background:#f9fafb;overflow:hidden}.card-image[data-v-1c551c4f]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:opacity .2s}.card-item:hover .card-image[data-v-1c551c4f]{opacity:.9}.card-placeholder[data-v-1c551c4f]{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#9ca3af;font-size:12px}.hover-overlay[data-v-1c551c4f]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.hover-icon[data-v-1c551c4f]{opacity:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #00000026;transition:opacity .2s}.card-item:hover .hover-icon[data-v-1c551c4f]{opacity:1}.card-info[data-v-1c551c4f]{padding:8px;background:#fff;display:flex;flex-direction:column;gap:4px;flex-shrink:0}.info-row[data-v-1c551c4f]{display:flex;align-items:center;justify-content:space-between;gap:4px}.student-name[data-v-1c551c4f]{font-size:12px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-badge[data-v-1c551c4f]{font-size:10px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0}.student-id[data-v-1c551c4f]{font-size:12px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-badge[data-v-1c551c4f]{font-size:10px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px;flex-shrink:0}.template-feature-frames[data-v-5e70e800]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:20}.kaohao-frame[data-v-5e70e800]{fill:#3b82f626;stroke:#3b82f6;stroke-width:.3;stroke-dasharray:1,.5}.kaohao-label[data-v-5e70e800]{fill:#3b82f6}.kaohao-dot-box[data-v-5e70e800]{fill:#3b82f64d;stroke:#2563eb;stroke-width:1}.obj-frame[data-v-5e70e800]{fill:#22c55e26;stroke:#22c55e;stroke-width:.3;stroke-dasharray:1,.5}.obj-label[data-v-5e70e800]{fill:#22c55e}.obj-option-box[data-v-5e70e800]{fill:#22c55e4d;stroke:#16a34a;stroke-width:1}.sub-frame[data-v-5e70e800]{fill:#f9731626;stroke:#f97316;stroke-width:.3;stroke-dasharray:1,.5}.sub-label[data-v-5e70e800]{fill:#f97316}.frame-label[data-v-5e70e800]{font-size:60px;font-weight:600;text-shadow:0 0 2px #fff,0 0 4px #fff;pointer-events:none}.divider-line[data-v-fcc83433]{border-bottom:1px solid #e5e7eb!important}.image-toolbar[data-v-fcc83433]{background:#111827;border-bottom:1px solid #374151}.toolbar-btn[data-v-fcc83433]{padding:8px;background:#1f2937;border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.toolbar-btn[data-v-fcc83433]:hover{opacity:.8}.toolbar-btn.toolbar-btn-active[data-v-fcc83433]{background:#2563eb}.toolbar-btn-text[data-v-fcc83433]{padding:8px 12px;font-size:14px}.zoom-level[data-v-fcc83433]{font-size:14px;color:#d1d5db;min-width:50px;text-align:center}.toolbar-divider[data-v-fcc83433]{width:1px;height:24px;background:#374151;margin:0 8px}.overflow-y-auto[data-v-fcc83433]::-webkit-scrollbar{width:4px}.overflow-y-auto[data-v-fcc83433]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-fcc83433]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.overflow-y-auto[data-v-fcc83433]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.pending-status[data-v-fcc83433]{padding:10px 16px;border-radius:8px;box-sizing:border-box;background:var(--el-color-primary-light-9);border:1px solid var(--jz-theme)}.spinner[data-v-fcc83433]{display:inline-block;width:16px;height:16px;border:2px solid var(--jz-theme);border-top:2px solid transparent;border-radius:50%;animation:spin-fcc83433 .8s linear infinite}@keyframes spin-fcc83433{to{transform:rotate(1turn)}}.template-selector[data-v-fcc83433]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;width:160px;transition:all .2s}.template-selector[data-v-fcc83433]:hover{border-color:var(--jz-theme)}.template-selector span[data-v-fcc83433]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-selector .el-icon[data-v-fcc83433]{transition:transform .3s;flex-shrink:0}.template-selector .rotate-180[data-v-fcc83433]{transform:rotate(180deg)}.template-dropdown[data-v-fcc83433]{background:#fff;border-radius:8px;overflow:hidden}.dropdown-header[data-v-fcc83433]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0f0f0}.dropdown-header .refresh-icon[data-v-fcc83433]{cursor:pointer;color:#999;transition:color .2s}.dropdown-header .refresh-icon[data-v-fcc83433]:hover{color:var(--jz-theme)}.dropdown-list[data-v-fcc83433]{max-height:200px;overflow-y:auto;padding:0 16px}.dropdown-list[data-v-fcc83433]::-webkit-scrollbar{width:4px}.dropdown-list[data-v-fcc83433]::-webkit-scrollbar-track{background:transparent}.dropdown-list[data-v-fcc83433]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.dropdown-item[data-v-fcc83433]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;cursor:pointer;transition:all .2s;border-bottom:1px solid transparent}.dropdown-item[data-v-fcc83433]:hover{background:transparent}.dropdown-item.dropdown-item-active[data-v-fcc83433],.dropdown-item.dropdown-item-active .check-icon[data-v-fcc83433]{color:var(--jz-theme)}.dropdown-footer[data-v-fcc83433]{border-top:1px solid #f0f0f0;padding:8px 16px}.add-template-btn[data-v-fcc83433]{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:#fff;color:var(--jz-theme);border:1px solid var(--jz-theme);border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px}.add-template-btn[data-v-fcc83433]:hover{background:var(--jz-theme);color:#fff}.add-template-btn .el-icon[data-v-fcc83433]{font-size:16px}.empty-templates[data-v-fcc83433]{padding:20px;text-align:center;color:#9ca3af}@keyframes rotating-fcc83433{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.is-loading[data-v-fcc83433]{animation:rotating-fcc83433 2s linear infinite}.template-overlay[data-v-fcc83433]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.template-overlay .template-image[data-v-fcc83433]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.template-controls[data-v-fcc83433]{display:flex;align-items:center;gap:8px}.opacity-control[data-v-fcc83433]{display:flex;align-items:center;gap:8px;padding:0 12px;color:#fff}.opacity-control .opacity-label[data-v-fcc83433]{font-size:12px;white-space:nowrap}.opacity-control .opacity-slider[data-v-fcc83433]{width:100px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff3;border-radius:2px;outline:none;cursor:pointer}.opacity-control .opacity-slider[data-v-fcc83433]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:#fff;border-radius:50%;cursor:pointer;-webkit-transition:transform .2s;transition:transform .2s}.opacity-control .opacity-slider[data-v-fcc83433]::-webkit-slider-thumb:hover{transform:scale(1.2)}.opacity-control .opacity-slider[data-v-fcc83433]::-moz-range-thumb{width:14px;height:14px;background:#fff;border:none;border-radius:50%;cursor:pointer;-moz-transition:transform .2s;transition:transform .2s}.opacity-control .opacity-slider[data-v-fcc83433]::-moz-range-thumb:hover{transform:scale(1.2)}.opacity-control .opacity-value[data-v-fcc83433]{font-size:12px;min-width:35px;text-align:right}.fade-enter-active[data-v-fcc83433],.fade-leave-active[data-v-fcc83433]{transition:opacity .3s ease}.fade-enter-from[data-v-fcc83433],.fade-leave-to[data-v-fcc83433]{opacity:0}.dropdown-menu[data-v-35a306fb]::-webkit-scrollbar,.scrollbar-thin[data-v-35a306fb]::-webkit-scrollbar{width:4px}.dropdown-menu[data-v-35a306fb]::-webkit-scrollbar-track,.scrollbar-thin[data-v-35a306fb]::-webkit-scrollbar-track{background:transparent}.dropdown-menu[data-v-35a306fb]::-webkit-scrollbar-thumb,.scrollbar-thin[data-v-35a306fb]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.dropdown-menu[data-v-35a306fb]::-webkit-scrollbar-thumb:hover,.scrollbar-thin[data-v-35a306fb]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.subject-title[data-v-35a306fb]{font-size:18px;font-weight:700;color:#111827}.selector-item[data-v-35a306fb]{position:relative;display:flex;align-items:center;gap:4px;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background .2s}.selector-item[data-v-35a306fb]:hover{background:#eff6ff}.selector-item:hover .selector-title[data-v-35a306fb]{color:var(--primary-color)}.selector-item:hover .selector-icon[data-v-35a306fb]{color:var(--jz-theme)}.selector-title[data-v-35a306fb]{font-size:18px;font-weight:700;color:#111827;transition:color .2s}.selector-icon[data-v-35a306fb]{width:20px;height:20px;color:#9ca3af;transition:color .2s}.template-tabs-wrapper[data-v-35a306fb]{padding:12px;background:#fff;border-bottom:1px solid #e5e7eb}.template-tabs[data-v-35a306fb]{display:flex;gap:4px;overflow-x:auto;overflow-y:hidden;background:#e5e7eb99;border-radius:8px;padding:4px;scrollbar-width:none}.template-tabs[data-v-35a306fb]::-webkit-scrollbar{display:none}.template-tabs[data-v-35a306fb]{-ms-overflow-style:none}.tab-item[data-v-35a306fb]{flex:0 0 auto;min-width:60px;max-width:120px;padding:6px 12px;font-size:12px;font-weight:500;color:#6b7280;background:transparent;border:none;border-radius:6px;cursor:pointer;text-align:center;transition:all .2s;position:relative}.tab-item[data-v-35a306fb]:hover{color:#374151}.tab-item.tab-item-active[data-v-35a306fb]{background:#fff;color:var(--jz-theme);box-shadow:0 1px 2px #0000000d}.template-tabs.single-template .tab-item[data-v-35a306fb]{flex:1 1 auto;max-width:none;width:100%}.tab-item-text[data-v-35a306fb]{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}.thumbnail-item[data-v-35a306fb]{height:250px;border-radius:8px;border:2px solid #e5e7eb;cursor:pointer;transition:all .2s}.thumbnail-item[data-v-35a306fb]:hover{border-color:#d1d5db}.thumbnail-item.thumbnail-item-active[data-v-35a306fb]{border-color:var(--jz-theme);box-shadow:0 0 0 3px #3b82f61a}.thumbnail-item.thumbnail-item-active[data-v-35a306fb]:hover{border-color:var(--jz-theme)}.thumbnail-image-wrapper[data-v-35a306fb]{aspect-ratio:3/4;position:relative;background:#f3f4f6;display:flex;align-items:center;justify-content:center;border-radius:8px 8px 0 0}.thumbnail-img[data-v-35a306fb]{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.thumbnail-label[data-v-35a306fb]{padding:6px 8px;text-align:center;background:#fff;border-radius:0 0 8px 8px}.content-toolbar[data-v-35a306fb]{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid #e5e7eb;background:#fff}.toolbar-left[data-v-35a306fb]{display:flex;align-items:center;gap:12px}.confidence-hint[data-v-35a306fb]{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#2563eb;font-size:12px;font-weight:500}.hint-text[data-v-35a306fb]{white-space:nowrap}.sort-selector[data-v-35a306fb]{position:relative}.sort-button[data-v-35a306fb]{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;transition:all .2s}.sort-button[data-v-35a306fb]:hover{background:#f9fafb;border-color:#9ca3af}.sort-label[data-v-35a306fb]{font-size:12px}.sort-menu[data-v-35a306fb]{position:absolute;right:0;top:calc(100% + 4px);width:160px;background:#fff;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border:1px solid #e5e7eb;z-index:50;padding:4px;display:flex;flex-direction:column}.sort-menu-item[data-v-35a306fb]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:14px;color:#374151;background:transparent;border:none;border-radius:6px;cursor:pointer;gap:8px;transition:all .15s}.sort-menu-item[data-v-35a306fb]:hover{background:#eff6ff;color:#2563eb}.sort-menu-item.sort-menu-item-active[data-v-35a306fb]{background:#dbeafe;color:#2563eb;font-weight:600}.dropdown-menu[data-v-35a306fb]{position:absolute;left:0;top:calc(100% + 8px);width:160px;background:#fff;border-radius:12px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border:1px solid #e5e7eb;z-index:60;padding:4px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column}.dropdown-item[data-v-35a306fb]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:8px;cursor:pointer;gap:8px;transition:all .15s}.dropdown-item[data-v-35a306fb]:hover{background:#eff6ff}.dropdown-item.dropdown-item-active[data-v-35a306fb]{background:#dbeafe}.dropdown-item.dropdown-item-active .dropdown-item-text[data-v-35a306fb]{color:var(--jz-theme);font-weight:600}.dropdown-item-text[data-v-35a306fb]{font-size:14px;color:#374151;flex:1}.template-empty[data-v-35a306fb],.template-loading[data-v-35a306fb]{display:flex;align-items:center;justify-content:center;padding:40px 20px;color:#9ca3af;font-size:14px;text-align:center}.student-empty[data-v-35a306fb],.student-loading[data-v-35a306fb]{display:flex;align-items:center;justify-content:center;padding:60px 20px;color:#9ca3af;font-size:14px;text-align:center;min-height:400px}.progress-overview[data-v-35a306fb]{display:flex;flex-direction:column;justify-content:center;gap:6px;width:160px;padding:0 8px}.progress-data[data-v-35a306fb]{display:flex;align-items:center;justify-content:space-between}.progress-label[data-v-35a306fb]{font-size:12px;color:#6b7280;font-weight:500}.progress-numbers[data-v-35a306fb]{display:flex;align-items:baseline;gap:4px}.progress-recognized[data-v-35a306fb]{font-size:16px;font-weight:700;color:#16a34a;font-family:monospace;line-height:1}.progress-divider[data-v-35a306fb]{font-size:12px;color:#9ca3af;font-family:monospace}.progress-total[data-v-35a306fb]{font-size:12px;color:#6b7280;font-family:monospace;line-height:1}.progress-bar-wrapper[data-v-35a306fb]{height:6px;width:100%;background:#f3f4f6;border-radius:9999px;overflow:hidden}.progress-bar[data-v-35a306fb]{height:100%;background:#3b82f6;border-radius:9999px;transition:width .5s ease-out}.batch-card-grid[data-v-4730c471]{display:grid;grid-template-columns:var(--grid-columns);gap:var(--grid-gap);padding:16px}.batch-card-grid[data-v-4730c471]::-webkit-scrollbar{width:6px}.batch-card-grid[data-v-4730c471]::-webkit-scrollbar-track{background:transparent}.batch-card-grid[data-v-4730c471]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.batch-card-grid[data-v-4730c471]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.card-item[data-v-4730c471]{height:220px;background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column}.card-item[data-v-4730c471]:hover{transform:translateY(-2px);box-shadow:0 4px 6px #00000026;border-color:var(--jz-theme)}.card-item.selected[data-v-4730c471]{border-color:var(--jz-theme);box-shadow:0 0 0 3px #3b82f61a}.card-image-wrapper[data-v-4730c471]{position:relative;flex:1;min-height:0;background:#f9fafb;overflow:hidden}.card-image[data-v-4730c471]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:opacity .2s}.card-item:hover .card-image[data-v-4730c471]{opacity:.9}.hover-overlay[data-v-4730c471]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.hover-icon[data-v-4730c471]{opacity:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #00000026;transition:opacity .2s}.card-item:hover .hover-icon[data-v-4730c471]{opacity:1}.checkbox-wrapper[data-v-4730c471]{position:absolute;top:8px;left:8px;z-index:6;cursor:pointer}.checkbox-circle[data-v-4730c471]{width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;transition:all .2s}.checkbox-circle[data-v-4730c471]:hover{border-color:var(--jz-theme);transform:scale(1.1)}.checkbox-circle.checked[data-v-4730c471]{background:var(--jz-theme);border-color:var(--jz-theme)}.selected-overlay[data-v-4730c471]{position:absolute;top:0;right:0;bottom:0;left:0;background:#3b82f61a;pointer-events:none}.status-badge[data-v-4730c471]{position:absolute;top:8px;right:8px;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600}.status-badge.status-exception[data-v-4730c471]{background:#fef3c7;color:#ea580c}.card-info[data-v-4730c471]{padding:8px;background:#fff;display:flex;flex-direction:column;gap:4px;flex-shrink:0}.info-row[data-v-4730c471]{display:flex;align-items:center;justify-content:space-between;gap:4px}.student-name[data-v-4730c471]{font-size:12px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-badge[data-v-4730c471]{font-size:10px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0}.student-id[data-v-4730c471]{font-size:12px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-badge[data-v-4730c471]{font-size:10px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px;flex-shrink:0}.divider-line[data-v-795165c4]{border-bottom:1px solid #e5e7eb!important}.image-toolbar[data-v-795165c4]{background:#111827;border-bottom:1px solid #374151}.toolbar-btn[data-v-795165c4]{padding:8px;background:#1f2937;border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.toolbar-btn[data-v-795165c4]:hover{opacity:.8}.toolbar-btn.toolbar-btn-active[data-v-795165c4]{background:#2563eb}.toolbar-btn-text[data-v-795165c4]{padding:8px 12px;font-size:14px}.zoom-level[data-v-795165c4]{font-size:14px;color:#d1d5db;min-width:50px;text-align:center}.toolbar-divider[data-v-795165c4]{width:1px;height:24px;background:#374151;margin:0 8px}.template-controls[data-v-795165c4]{display:flex;align-items:center;gap:8px}.opacity-control[data-v-795165c4]{display:flex;align-items:center;gap:8px;padding:0 12px;color:#fff}.opacity-control .opacity-label[data-v-795165c4]{font-size:12px;white-space:nowrap}.opacity-control .opacity-slider[data-v-795165c4]{width:100px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff3;border-radius:2px;outline:none;cursor:pointer}.opacity-control .opacity-slider[data-v-795165c4]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background:#fff;border-radius:50%;cursor:pointer;-webkit-transition:transform .2s;transition:transform .2s}.opacity-control .opacity-slider[data-v-795165c4]::-webkit-slider-thumb:hover{transform:scale(1.2)}.opacity-control .opacity-slider[data-v-795165c4]::-moz-range-thumb{width:14px;height:14px;background:#fff;border:none;border-radius:50%;cursor:pointer;-moz-transition:transform .2s;transition:transform .2s}.opacity-control .opacity-slider[data-v-795165c4]::-moz-range-thumb:hover{transform:scale(1.2)}.opacity-control .opacity-value[data-v-795165c4]{font-size:12px;min-width:35px;text-align:right}.fade-enter-active[data-v-795165c4],.fade-leave-active[data-v-795165c4]{transition:opacity .3s ease}.fade-enter-from[data-v-795165c4],.fade-leave-to[data-v-795165c4]{opacity:0}.overflow-y-auto[data-v-795165c4]::-webkit-scrollbar{width:4px}.overflow-y-auto[data-v-795165c4]::-webkit-scrollbar-track{background:transparent}.overflow-y-auto[data-v-795165c4]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.overflow-y-auto[data-v-795165c4]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.pending-status[data-v-795165c4]{padding:10px 16px;border-radius:8px;box-sizing:border-box;background:var(--el-color-primary-light-9);border:1px solid var(--jz-theme)}.spinner[data-v-795165c4]{display:inline-block;width:16px;height:16px;border:2px solid var(--jz-theme);border-top:2px solid transparent;border-radius:50%;animation:spin-795165c4 .8s linear infinite}@keyframes spin-795165c4{to{transform:rotate(1turn)}}.template-selector[data-v-795165c4]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;width:160px;transition:all .2s}.template-selector[data-v-795165c4]:hover{border-color:var(--jz-theme)}.template-selector span[data-v-795165c4]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-selector .el-icon[data-v-795165c4]{transition:transform .3s;flex-shrink:0}.template-selector .rotate-180[data-v-795165c4]{transform:rotate(180deg)}.template-dropdown[data-v-795165c4]{background:#fff;border-radius:8px;overflow:hidden}.dropdown-header[data-v-795165c4]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f0f0f0}.dropdown-header .refresh-icon[data-v-795165c4]{cursor:pointer;color:#999;transition:color .2s}.dropdown-header .refresh-icon[data-v-795165c4]:hover{color:var(--jz-theme)}.dropdown-list[data-v-795165c4]{max-height:200px;overflow-y:auto;padding:0 16px}.dropdown-list[data-v-795165c4]::-webkit-scrollbar{width:4px}.dropdown-list[data-v-795165c4]::-webkit-scrollbar-track{background:transparent}.dropdown-list[data-v-795165c4]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.dropdown-item[data-v-795165c4]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;cursor:pointer;transition:all .2s;border-bottom:1px solid transparent}.dropdown-item[data-v-795165c4]:hover{background:transparent}.dropdown-item.dropdown-item-active[data-v-795165c4],.dropdown-item.dropdown-item-active .check-icon[data-v-795165c4]{color:var(--jz-theme)}.dropdown-footer[data-v-795165c4]{border-top:1px solid #f0f0f0;padding:8px 16px}.add-template-btn[data-v-795165c4]{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:#fff;color:var(--jz-theme);border:1px solid var(--jz-theme);border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px}.add-template-btn[data-v-795165c4]:hover{background:var(--jz-theme);color:#fff}.add-template-btn .el-icon[data-v-795165c4]{font-size:16px}.empty-templates[data-v-795165c4]{padding:20px;text-align:center;color:#9ca3af}@keyframes rotating-795165c4{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.is-loading[data-v-795165c4]{animation:rotating-795165c4 2s linear infinite}.template-overlay[data-v-795165c4]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.template-overlay .template-image[data-v-795165c4]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.batch-title-dropdown[data-v-a9ffd9e9]{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.batch-title-dropdown:hover .batch-title[data-v-a9ffd9e9],.batch-title-dropdown:hover .dropdown-icon[data-v-a9ffd9e9]{color:var(--jz-theme)}.batch-dropdown-menu[data-v-a9ffd9e9]{position:absolute;top:calc(100% + 8px);left:0;width:288px;max-height:400px;overflow-y:auto;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;z-index:1000;padding:4px 0;box-sizing:border-box}.batch-dropdown-menu[data-v-a9ffd9e9]::-webkit-scrollbar{width:4px}.batch-dropdown-menu[data-v-a9ffd9e9]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.batch-dropdown-item[data-v-a9ffd9e9]{width:100%;padding:12px 16px;background:none;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;border:none;border-bottom:1px solid #f3f4f6;transition:background .2s;box-sizing:border-box}.batch-dropdown-item[data-v-a9ffd9e9]:last-child{border-bottom:none}.batch-dropdown-item[data-v-a9ffd9e9]:hover{background:#f9fafb}.batch-dropdown-item.active[data-v-a9ffd9e9]{background:#eff6ff}.batch-dropdown-item.active .batch-dropdown-id[data-v-a9ffd9e9]{color:var(--jz-theme)}.warning-badge[data-v-a9ffd9e9]{display:flex;align-items:center;gap:6px;padding:4px 12px;background:var(--orange-bg-color);border:1px solid var(--orange-hover-color);border-radius:6px;color:var(--orange-color)}.header-divider[data-v-a9ffd9e9]{width:1px;height:20px;background:#e5e7eb;margin:0 8px}.warning-info[data-v-a9ffd9e9]{display:flex;align-items:center;gap:8px;padding:4px 16px;margin-right:12px;color:var(--orange-color);font-size:12px;font-weight:600;background:ar(--orange-bg-color);border:1px solid var(--orange-hover-color);border-radius:6px}.category-header[data-v-a9ffd9e9]{padding:12px 16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.category-item[data-v-a9ffd9e9]{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;transition:all .2s;box-sizing:border-box}.category-item[data-v-a9ffd9e9]:hover{background:#f9fafb;border-color:#d1d5db}.category-item.active[data-v-a9ffd9e9]{background:#eff6ff;border-color:var(--jz-theme)}.category-item.category-pending[data-v-a9ffd9e9]{border-color:var(--primary-hover-color)}.category-item.category-pending.active[data-v-a9ffd9e9]{background:#dbeafe}.category-item.category-exception[data-v-a9ffd9e9]{border-color:var(--orange-hover-color)}.category-item.category-exception.active[data-v-a9ffd9e9]{background:#fefdfa}.content-area[data-v-a9ffd9e9]{flex:1;display:flex;flex-direction:column;overflow:hidden}.content-toolbar[data-v-a9ffd9e9]{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid #e5e7eb;background:#fff;flex-shrink:0;gap:16px}.dropdown-enter-active[data-v-a9ffd9e9],.dropdown-leave-active[data-v-a9ffd9e9]{transition:all .2s ease}.dropdown-enter-from[data-v-a9ffd9e9],.dropdown-leave-to[data-v-a9ffd9e9]{opacity:0;transform:translateY(-8px)}.loading-spinner[data-v-a9ffd9e9]{width:40px;height:40px;border:4px solid #e5e7eb;border-top:4px solid var(--jz-theme);border-radius:50%;animation:spin-a9ffd9e9 .8s linear infinite}@keyframes spin-a9ffd9e9{to{transform:rotate(1turn)}}.sort-selector[data-v-a9ffd9e9]{position:relative}.sort-button[data-v-a9ffd9e9]{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;transition:all .2s}.sort-button[data-v-a9ffd9e9]:hover{background:#f9fafb;border-color:#9ca3af}.sort-label[data-v-a9ffd9e9]{font-size:12px}.sort-menu[data-v-a9ffd9e9]{position:absolute;right:0;top:calc(100% + 4px);width:160px;background:#fff;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;border:1px solid #e5e7eb;z-index:50;padding:4px;display:flex;flex-direction:column}.sort-menu-item[data-v-a9ffd9e9]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:14px;color:#374151;background:transparent;border:none;border-radius:6px;cursor:pointer;gap:8px;transition:all .15s}.sort-menu-item[data-v-a9ffd9e9]:hover{background:#eff6ff;color:#2563eb}.sort-menu-item.sort-menu-item-active[data-v-a9ffd9e9]{background:#dbeafe;color:#2563eb;font-weight:600}.status-badge[data-v-a9ffd9e9]{font-size:11px;padding:2px 6px;border-radius:4px;display:flex;align-items:center;gap:4px;border:1px solid}.status-badge.badge-completed[data-v-a9ffd9e9]{background:var(--success-bg-color);color:var(--success-color);border-color:var(--success-hover-color)}.status-badge.badge-processing[data-v-a9ffd9e9]{background:#eff6ff;color:var(--primary-color);border-color:#bfdbfe}.status-badge.badge-exception[data-v-a9ffd9e9]{background:var(--orange-bg-color);color:var(--orange-color);border-color:var(--orange-hover-color)}.status-badge.badge-unknown[data-v-a9ffd9e9]{background:#f3f4f6;color:#6b7280;border-color:#d1d5db}.title-info h2[data-v-cfc310aa]{font-size:16px;font-weight:700;color:#1e293b;margin:0}.subtitle[data-v-cfc310aa]{font-size:12px;color:#6b7280;margin:2px 0 0}.subtitle .grade-tag[data-v-cfc310aa]{display:inline-block;font-size:12px;padding:2px 8px;border-radius:4px;border:1px solid;margin-left:4px}.subtitle .grade-tag[data-v-cfc310aa]:first-child{margin-left:0}.detail-body[data-v-cfc310aa]{flex:1;overflow-y:auto;padding:24px}.grade-section[data-v-cfc310aa]{margin-bottom:24px}.grade-section[data-v-cfc310aa]:last-child{margin-bottom:0}.grade-header[data-v-cfc310aa]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.grade-header-left[data-v-cfc310aa]{display:flex;align-items:center;gap:8px}.grade-indicator[data-v-cfc310aa]{width:4px;height:20px;border-radius:9999px}.grade-title[data-v-cfc310aa]{font-size:16px;font-weight:700;color:#1f2937;margin:0}.subject-count[data-v-cfc310aa]{font-size:12px;padding:2px 8px;border-radius:9999px;border:1px solid}.subject-grid[data-v-cfc310aa]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.subject-item[data-v-cfc310aa]{background:#fff;border-radius:8px;border:1px solid #e5e7eb;padding:16px;transition:all .2s;cursor:pointer;display:flex;flex-direction:column;gap:12px}.subject-item[data-v-cfc310aa]:hover{box-shadow:0 4px 6px -1px #0000001a}.subject-header[data-v-cfc310aa]{display:flex;align-items:center;justify-content:space-between}.subject-header-left[data-v-cfc310aa]{display:flex;align-items:center;gap:8px}.subject-dot[data-v-cfc310aa]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.subject-name[data-v-cfc310aa]{font-size:14px;font-weight:600;color:#1f2937;margin:0}.progress-badge[data-v-cfc310aa]{font-size:12px;padding:2px 8px;border-radius:9999px;border:1px solid}.subject-stats[data-v-cfc310aa]{display:flex;flex-direction:column;gap:8px}.stat-row[data-v-cfc310aa]{display:flex;align-items:center;justify-content:space-between;font-size:12px}.stat-label[data-v-cfc310aa]{color:#6b7280}.stat-value[data-v-cfc310aa]{font-weight:500;color:#374151}.progress-bar[data-v-cfc310aa]{width:100%;background:#e5e7eb;border-radius:9999px;height:6px;overflow:hidden;margin-top:8px;position:relative}.progress-fill[data-v-cfc310aa]{height:100%;transition:width .3s ease;position:absolute;left:0;top:0}.batch-section[data-v-cfc310aa]{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid #f3f4f6;transition:all .2s}.batch-section.batch-empty[data-v-cfc310aa]{opacity:.6;pointer-events:none}.batch-header[data-v-cfc310aa]{display:flex;align-items:center;justify-content:space-between;font-size:12px}.batch-title[data-v-cfc310aa]{color:#6b7280;font-weight:500}.batch-count[data-v-cfc310aa]{color:#9ca3af}.batch-list[data-v-cfc310aa]{max-height:96px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.batch-list[data-v-cfc310aa]::-webkit-scrollbar{width:4px}.batch-list[data-v-cfc310aa]::-webkit-scrollbar-track{background:#f3f4f6;border-radius:2px}.batch-list[data-v-cfc310aa]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.batch-list[data-v-cfc310aa]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.batch-item[data-v-cfc310aa]{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:#f9fafb;border-radius:4px;font-size:12px;transition:all .2s;cursor:pointer}.batch-item[data-v-cfc310aa]:hover{background:#f3f4f6}.batch-id[data-v-cfc310aa]{color:#4b5563;font-weight:500;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.batch-pages[data-v-cfc310aa]{color:#9ca3af}.empty-batches[data-v-cfc310aa]{display:flex;align-items:center;justify-content:center;padding:12px;color:#9ca3af;font-size:12px;background:#f9fafb;border-radius:4px}.header-info[data-v-6e345bbd]{display:flex;align-items:center;gap:8px}.title[data-v-6e345bbd]{font-size:16px;font-weight:700;color:#1e293b}.count-badge[data-v-6e345bbd]{font-size:12px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px}.filter-section[data-v-6e345bbd]{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #f1f5f9;background:#f9fafb}.shortcut-btn[data-v-6e345bbd]{font-size:12px;padding:4px 10px;border-radius:6px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;cursor:pointer;transition:all .2s;white-space:nowrap}.shortcut-btn[data-v-6e345bbd]:hover{background:#eff6ff;border-color:#bfdbfe;color:var(--primary-color)}.shortcut-btn.active[data-v-6e345bbd]{border-color:var(--jz-theme);background:var(--jz-theme);color:#fff}.custom-date-wrapper[data-v-6e345bbd]{position:relative}.shortcut-btn-with-clear[data-v-6e345bbd]{display:flex;align-items:center;gap:4px;padding-right:4px}.clear-btn[data-v-6e345bbd]{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;background:transparent;color:#fff;cursor:pointer;border-radius:2px;transition:all .2s}.clear-btn[data-v-6e345bbd]:hover{background:#fff3}.date-picker-popup[data-v-6e345bbd]{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:#fff;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a;padding:12px}.custom-date-picker[data-v-6e345bbd]{width:100%}.custom-date-picker[data-v-6e345bbd] .el-input__wrapper{border-radius:6px;box-shadow:none;border:1px solid #e5e7eb}.custom-date-picker[data-v-6e345bbd] .el-input__inner{font-size:12px}[data-v-6e345bbd] .date-picker{width:200px!important}[data-v-6e345bbd] .date-picker .el-input__wrapper{border-radius:8px;border:1px solid #e5e7eb;box-shadow:none;background:#fff;padding:6px 12px;transition:all .2s}[data-v-6e345bbd] .date-picker .el-input__wrapper:hover{border-color:#d1d5db}[data-v-6e345bbd] .date-picker .el-input__wrapper.is-focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}[data-v-6e345bbd] .date-picker .el-input__inner{font-size:12px;color:#374151}[data-v-6e345bbd] .date-picker .el-input__inner::-moz-placeholder{color:#9ca3af}[data-v-6e345bbd] .date-picker .el-input__inner::placeholder{color:#9ca3af}[data-v-6e345bbd] .date-picker .el-input__suffix .el-icon{color:#9ca3af;transition:color .2s}[data-v-6e345bbd] .date-picker .el-input__suffix .el-icon:hover{color:#6b7280}[data-v-6e345bbd] .date-picker .el-input__wrapper:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;pointer-events:none;box-shadow:0 0 #8b5cf64d;transition:box-shadow .3s ease}[data-v-6e345bbd] .date-picker .el-input__wrapper:focus-within:after{box-shadow:0 0 0 3px #8b5cf61a}.search-box[data-v-6e345bbd]{position:relative;flex:1}.search-box .search-icon[data-v-6e345bbd]{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#9ca3af;pointer-events:none}.search-box .search-input[data-v-6e345bbd]{width:100%;font-size:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:6px 12px 6px 36px;outline:none;transition:all .2s}.search-box .search-input[data-v-6e345bbd]:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px #8b5cf61a}.search-box .search-input[data-v-6e345bbd]::-moz-placeholder{color:#9ca3af}.search-box .search-input[data-v-6e345bbd]::placeholder{color:#9ca3af}.exam-list[data-v-6e345bbd]{flex:1;overflow-y:auto;padding:16px;background:#f8fafc}.loading-state[data-v-6e345bbd]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;width:100%;padding:48px 20px;color:#94a3b8}.loading-spinner[data-v-6e345bbd]{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid var(--jz-theme, #6366f1);border-radius:50%;animation:spin-6e345bbd .8s linear infinite}.loading-text[data-v-6e345bbd]{margin:16px 0 0;font-size:14px;color:#64748b}@keyframes spin-6e345bbd{to{transform:rotate(1turn)}}.empty-state[data-v-6e345bbd]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;color:#9ca3af}.empty-icon[data-v-6e345bbd]{width:64px;height:64px;margin-bottom:12px}.empty-text[data-v-6e345bbd]{font-size:14px}.exam-item[data-v-6e345bbd]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:12px;cursor:pointer;transition:all .2s}.exam-item[data-v-6e345bbd]:hover{box-shadow:0 4px 12px #0000001a;border-color:#d1d5db}.exam-item-header[data-v-6e345bbd]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.exam-name[data-v-6e345bbd]{font-size:14px;font-weight:600;color:#1f2937}.exam-date[data-v-6e345bbd]{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7280}.exam-tags[data-v-6e345bbd]{display:flex;flex-direction:column;gap:8px}.tag-row[data-v-6e345bbd]{display:flex;align-items:center;gap:8px;font-size:12px}.tag-row .label[data-v-6e345bbd]{color:#6b7280;white-space:nowrap}.tags[data-v-6e345bbd]{display:flex;gap:4px;flex-wrap:wrap}.calendar-section[data-v-b7b7927f]{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;border-bottom:1px solid #e5e7eb}.section-header[data-v-b7b7927f]{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid #f1f5f9}.section-header .header-left[data-v-b7b7927f]{display:flex;align-items:center;gap:8px}.section-header .header-left .indicator[data-v-b7b7927f]{width:4px;height:16px;background:var(--jz-theme);border-radius:9999px}.section-header .header-left .link-btn[data-v-b7b7927f]{background:none;border:none;font-size:12px;color:#64748b;cursor:pointer;transition:color .2s ease;font-weight:500}.section-header .header-left .link-btn[data-v-b7b7927f]:hover{color:#9333ea}.section-header-transpose[data-v-b7b7927f]{padding:4px 8px;color:#4b5563;border-radius:6px;border:1px solid #ddd;cursor:pointer}.section-header-transpose[data-v-b7b7927f]:hover{color:var(--jz-theme);border:1px solid var(--jz-theme);background:#eff6ff}.shared-header[data-v-b7b7927f]{position:sticky;top:0;margin:12px;padding:8px;display:flex;gap:4px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;z-index:30;box-sizing:border-box}.shared-header .header-fixed[data-v-b7b7927f]{flex-shrink:0;width:68px}.shared-header .header-fixed .corner-cell[data-v-b7b7927f]{width:60px;height:40px;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 4px}.shared-header .header-scroll[data-v-b7b7927f]{flex:1;overflow:hidden;display:flex;min-width:0}.shared-header .header-scroll .header-scroll-inner[data-v-b7b7927f]{display:flex;gap:4px;min-height:40px;overflow-x:auto;overflow-y:hidden;flex-shrink:1;min-width:100%;box-sizing:border-box}.shared-header .header-scroll .header-scroll-inner[data-v-b7b7927f]::-webkit-scrollbar{height:0;display:none}.shared-header .header-scroll .header-scroll-inner-flex[data-v-b7b7927f]{min-width:0;width:100%}.shared-header .header-scroll .header-cell[data-v-b7b7927f]{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:0}.shared-header .header-scroll .header-cell-btn[data-v-b7b7927f]{width:100%;padding:4px 8px;border-radius:9999px;font-size:12px;font-weight:500;transition:all .2s ease;cursor:pointer;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shared-header .header-scroll .header-cell-btn.col-selected[data-v-b7b7927f]{background:var(--jz-theme);color:#fff;border:1px solid var(--jz-theme)}.shared-header .header-scroll .header-cell-btn[data-v-b7b7927f]:not(.col-selected){background:#f9fafb;color:#64748b;border:1px solid #e5e7eb}.shared-header .header-scroll .header-cell-btn[data-v-b7b7927f]:not(.col-selected):hover{border-color:#bfdbfe;background:#eff6ff}.exam-cards-container[data-v-b7b7927f]{flex:1;padding:0 8px 8px 12px;background:#f8fafc;overflow-y:auto;overflow-x:hidden;box-sizing:border-box}.exam-cards-container[data-v-b7b7927f]::-webkit-scrollbar{width:4px;height:4px}.exam-cards-container[data-v-b7b7927f]::-webkit-scrollbar-track{background:#f1f5f9}.exam-cards-container[data-v-b7b7927f]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.exam-cards-container[data-v-b7b7927f]::-webkit-scrollbar-thumb:hover{background:#94a3b8}.exam-empty-state[data-v-b7b7927f]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:48px 24px;margin:12px;background:#f8fafc;border-radius:8px;color:#94a3b8;min-height:0}.exam-empty-state__icon[data-v-b7b7927f]{width:56px;height:56px;margin-bottom:16px;color:#cbd5e1}.exam-empty-state__text[data-v-b7b7927f]{font-size:14px;font-weight:500;color:#64748b;margin:0}.batch-card[data-v-141ee24f]{padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:box-shadow .2s}.batch-card[data-v-141ee24f]:hover{box-shadow:0 4px 6px -1px #0000001a}.batch-card.has-discrepancy[data-v-141ee24f]{border-color:var(--orange-hover-color);background:#faf9fa}.status-dot[data-v-141ee24f]{width:6px;height:6px;border-radius:50%}.status-dot.status-dot-completed[data-v-141ee24f]{background:var(--success-color)}.status-dot.status-dot-processing[data-v-141ee24f]{background:var(--jz-theme);animation:pulse 2s infinite}.status-dot.status-dot-exception[data-v-141ee24f]{background:var(--orange-color)}.status-dot.status-dot-unknown[data-v-141ee24f]{background:#9ca3af}.batch-id[data-v-141ee24f]{font-size:12px;font-weight:600;color:#374151}.status-badge[data-v-141ee24f]{font-size:11px;padding:2px 6px;border-radius:4px;display:flex;align-items:center;gap:4px;border:1px solid}.status-badge.badge-completed[data-v-141ee24f]{background:var(--success-bg-color);color:var(--success-color);border-color:var(--success-hover-color)}.status-badge.badge-processing[data-v-141ee24f]{background:#eff6ff;color:var(--primary-color);border-color:#bfdbfe}.status-badge.badge-exception[data-v-141ee24f]{background:var(--orange-bg-color);color:var(--orange-color);border-color:var(--orange-hover-color)}.status-badge.badge-unknown[data-v-141ee24f]{background:#f3f4f6;color:#6b7280;border-color:#d1d5db}.warning-icon[data-v-141ee24f]{display:flex;align-items:center;justify-content:center;color:var(--orange-color)}.stat-item[data-v-141ee24f]{display:flex;gap:4px}.stat-item span[data-v-141ee24f]{color:#374151}.stat-item span.text-warning[data-v-141ee24f]{color:var(--orange-color)}.batch-list-sidebar[data-v-b564753d]{position:fixed;left:0;bottom:0;width:400px;height:100vh;z-index:50}.sidebar-content[data-v-b564753d]{height:100%;background:#fff;box-shadow:4px 0 24px #00000026;display:flex;flex-direction:column}.sidebar-header[data-v-b564753d]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid #e5e7eb;box-sizing:border-box}.header-title[data-v-b564753d]{display:flex;align-items:center;gap:8px}.title-indicator[data-v-b564753d]{width:4px;height:16px;background:linear-gradient(180deg,#6366f1,#4f46e5);border-radius:9999px}.title-text[data-v-b564753d]{font-size:16px;font-weight:700;color:#1e293b}.title-count[data-v-b564753d]{font-size:11px;color:#6b7280;background:#f1f5f9;padding:2px 6px;border-radius:4px}.close-btn[data-v-b564753d]{padding:8px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:#6b7280}.close-btn[data-v-b564753d]:hover{background:#f3f4f6}.collapse-btn[data-v-b564753d]{padding:8px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:#6b7280;transition:all .2s}.collapse-btn[data-v-b564753d]:hover{background:#f3f4f6;color:#374151}.filter-section[data-v-b564753d]{padding:12px 16px;border-bottom:1px solid #f1f5f9;background:#f9fafb;display:flex;align-items:center;gap:12px}.shortcut-btn[data-v-b564753d]{font-size:12px;padding:2px 8px;border-radius:6px;border:1px solid #e5e7eb;background:#fff;color:#6b7280;cursor:pointer;transition:all .2s}.shortcut-btn[data-v-b564753d]:hover{background:#eff6ff;border-color:#bfdbfe;color:var(--primary-color)}.shortcut-btn.active[data-v-b564753d]{border-color:var(--jz-theme);background:var(--jz-theme);color:#fff}.custom-date-wrapper[data-v-b564753d]{position:relative}.shortcut-btn-with-clear[data-v-b564753d]{display:flex;align-items:center;gap:4px;padding-right:4px}.clear-btn[data-v-b564753d]{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;background:transparent;color:#fff;cursor:pointer;border-radius:2px;transition:all .2s}.clear-btn[data-v-b564753d]:hover{background:#fff3}.date-picker-popup[data-v-b564753d]{position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:#fff;border-radius:8px;box-shadow:0 10px 15px -3px #0000001a;padding:12px}.custom-date-picker[data-v-b564753d]{width:100%}.custom-date-picker[data-v-b564753d] .el-input__wrapper{border-radius:6px;box-shadow:none;border:1px solid #e5e7eb}.custom-date-picker[data-v-b564753d] .el-input__inner{font-size:12px}.search-wrapper[data-v-b564753d]{margin-left:auto;position:relative}.search-icon[data-v-b564753d]{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:#9ca3af}.search-input[data-v-b564753d]{width:140px;font-size:12px;border:1px solid #e5e7eb;border-radius:6px;padding:6px 12px 6px 28px}.search-input[data-v-b564753d]:focus{outline:none;border-color:var(--jz-theme)}.batch-list[data-v-b564753d]{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#f8fafc}.batch-list[data-v-b564753d]::-webkit-scrollbar{width:4px}.batch-list[data-v-b564753d]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.loading-state[data-v-b564753d]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:48px 20px;color:#94a3b8}.loading-spinner[data-v-b564753d]{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid var(--jz-theme, #6366f1);border-radius:50%;animation:spin-b564753d .8s linear infinite}.loading-text[data-v-b564753d]{margin:16px 0 0;font-size:14px;color:#64748b}@keyframes spin-b564753d{to{transform:rotate(1turn)}}.empty-state[data-v-b564753d]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:48px 20px;color:#94a3b8}.empty-state__icon[data-v-b564753d]{width:64px;height:64px;margin-bottom:16px;color:#cbd5e1}.empty-state__text[data-v-b564753d]{margin:0;font-size:14px;color:#64748b;line-height:1.5;text-align:center}.sidebar-enter-active[data-v-b564753d]{animation:slideInFromBottom-b564753d .3s ease-out}.sidebar-leave-active[data-v-b564753d]{animation:slideOutToTop-b564753d .3s ease-in}@keyframes slideInFromBottom-b564753d{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideOutToTop-b564753d{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.batch-section[data-v-c2e525a6]{flex:1;min-height:0;display:flex;flex-direction:column;transition:all .3s ease}.batch-section.collapsed[data-v-c2e525a6]{max-height:48px;flex:0 0 auto}.batch-section.collapsed .batch-list[data-v-c2e525a6],.batch-section.collapsed .empty-state[data-v-c2e525a6]{display:none}.section-header[data-v-c2e525a6]{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.section-header .indicator[data-v-c2e525a6]{width:4px;height:16px;background:linear-gradient(180deg,#6366f1,#4f46e5);border-radius:9999px}.section-header .link-btn[data-v-c2e525a6]{background:none;border:none;font-size:12px;color:#64748b;cursor:pointer;font-weight:500;transition:color .2s ease}.section-header .link-btn[data-v-c2e525a6]:hover{color:var(--jz-theme)}.section-header .header-right[data-v-c2e525a6]{display:flex;align-items:center;gap:8px}.section-header .header-right .badge[data-v-c2e525a6]{padding:2px 6px;background:#f1f5f9;color:#64748b;border-radius:4px;font-size:11px;font-weight:500}.section-header .header-right .collapse-btn[data-v-c2e525a6]{padding:4px;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:6px;transition:all .2s ease}.section-header .header-right .collapse-btn[data-v-c2e525a6]:hover{background:#f1f5f9;color:#334155}.section-header .header-right .collapse-btn .collapse-icon[data-v-c2e525a6]{width:16px;height:16px;transition:transform .3s ease}.section-header .header-right .collapse-btn .collapse-icon.icon-rotated[data-v-c2e525a6]{transform:rotate(180deg)}.batch-list[data-v-c2e525a6]{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:#f8fafc;box-sizing:border-box}.batch-list[data-v-c2e525a6]::-webkit-scrollbar{width:4px}.batch-list[data-v-c2e525a6]::-webkit-scrollbar-track{background:#f1f5f9}.batch-list[data-v-c2e525a6]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.empty-state[data-v-c2e525a6]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:32px 20px;margin:12px;background:#f8fafc;border-radius:8px;color:#94a3b8;min-height:0}.empty-state__icon[data-v-c2e525a6]{width:48px;height:48px;margin-bottom:12px;color:#cbd5e1}.empty-state__text[data-v-c2e525a6]{margin:0;font-size:13px;color:#64748b;line-height:1.5}.student-card-grid[data-v-919bc18c]{display:grid;grid-template-columns:var(--grid-columns);gap:var(--grid-gap);padding:16px}.student-card-grid[data-v-919bc18c]::-webkit-scrollbar{width:6px}.student-card-grid[data-v-919bc18c]::-webkit-scrollbar-track{background:transparent}.student-card-grid[data-v-919bc18c]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.student-card-grid[data-v-919bc18c]::-webkit-scrollbar-thumb:hover{background:#9ca3af}.card-item[data-v-919bc18c]{height:220px;background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column}.card-item[data-v-919bc18c]:hover{transform:translateY(-2px);box-shadow:0 4px 6px #00000026;border-color:var(--jz-theme)}.card-item.selected[data-v-919bc18c]{border-color:var(--jz-theme);box-shadow:0 0 0 3px #3b82f61a}.card-image-wrapper[data-v-919bc18c]{position:relative;flex:1;min-height:0;background:#f9fafb;overflow:hidden}.card-image[data-v-919bc18c]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transition:opacity .2s}.card-item:hover .card-image[data-v-919bc18c]{opacity:.9}.hover-overlay[data-v-919bc18c]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.hover-icon[data-v-919bc18c]{opacity:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px #00000026;transition:opacity .2s}.card-item:hover .hover-icon[data-v-919bc18c]{opacity:1}.checkbox-wrapper[data-v-919bc18c]{position:absolute;top:8px;left:8px;z-index:6;cursor:pointer}.checkbox-circle[data-v-919bc18c]{width:24px;height:24px;border-radius:50%;background:#fff;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;transition:all .2s}.checkbox-circle[data-v-919bc18c]:hover{border-color:var(--jz-theme);transform:scale(1.1)}.checkbox-circle.checked[data-v-919bc18c]{background:var(--jz-theme);border-color:var(--jz-theme)}.selected-overlay[data-v-919bc18c]{position:absolute;top:0;right:0;bottom:0;left:0;background:#3b82f61a;pointer-events:none}.card-info[data-v-919bc18c]{padding:8px;background:#fff;display:flex;flex-direction:column;gap:4px;flex-shrink:0}.info-row[data-v-919bc18c]{display:flex;align-items:center;justify-content:space-between;gap:4px}.student-name[data-v-919bc18c]{font-size:12px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-badge[data-v-919bc18c]{font-size:10px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0}.student-id[data-v-919bc18c]{font-size:12px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-badge[data-v-919bc18c]{font-size:10px;color:#6b7280;background:#f3f4f6;padding:2px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60px;flex-shrink:0}.info-section[data-v-a1220b6e]{border-radius:8px}.search-input-wrapper[data-v-a1220b6e]{position:relative;margin-bottom:16px}.student-search-input[data-v-a1220b6e]{width:100%;padding:10px 36px 10px 12px;border:1px solid var(--jz-theme);border-radius:8px;font-size:14px;color:#374151;background:#fff;box-sizing:border-box;transition:all .2s}.student-search-input[data-v-a1220b6e]:focus{outline:none;border-color:var(--jz-theme);box-shadow:0 0 0 3px #3b82f61a}.student-search-input[data-v-a1220b6e]::-moz-placeholder{color:#9ca3af}.student-search-input[data-v-a1220b6e]::placeholder{color:#9ca3af}.search-icon[data-v-a1220b6e]{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#9ca3af;pointer-events:none}.student-list[data-v-a1220b6e]{max-height:320px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.student-list[data-v-a1220b6e]::-webkit-scrollbar{width:6px}.student-list[data-v-a1220b6e]::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.student-list[data-v-a1220b6e]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.student-list[data-v-a1220b6e]::-webkit-scrollbar-thumb:hover{background:#94a3b8}.student-empty[data-v-a1220b6e]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;gap:12px}.empty-icon[data-v-a1220b6e]{width:48px;height:48px;color:#d1d5db}.student-item[data-v-a1220b6e]{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f3f4f6;cursor:pointer;transition:all .2s}.student-item[data-v-a1220b6e]:last-child{border-bottom:none}.student-item[data-v-a1220b6e]:hover{background:#f9fafb}.student-item.student-selected[data-v-a1220b6e]{background:#f0f9ff;padding-left:14px}.student-item.student-selected[data-v-a1220b6e]:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--jz-theme)}.student-item-left[data-v-a1220b6e]{display:flex;flex-direction:column;gap:4px;flex:1}.student-name[data-v-a1220b6e]{font-size:14px;font-weight:500;color:#111827}.student-candidateId[data-v-a1220b6e]{font-size:12px;color:#6b7280}.student-class[data-v-a1220b6e]{font-size:12px;color:#6b7280;margin-right:24px;flex-shrink:0}.student-check[data-v-a1220b6e]{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;background:var(--jz-theme);border-radius:50%;display:flex;align-items:center;justify-content:center}.info-section[data-v-c5b1e7d3]{display:flex;flex-direction:column}.repeat-card[data-v-c5b1e7d3]{margin-bottom:14px;padding:12px;border-radius:10px;border:1px solid var(--jz-theme)}.repeat-card .checked-not[data-v-c5b1e7d3]{width:15px;height:15px;margin-right:4px;border-radius:50%;border:1px solid #ddd;cursor:pointer;flex-shrink:0;box-sizing:border-box}.thumbnail-header[data-v-e51c361c]{padding:8px 12px;border-bottom:1px solid #e5e7eb;background:#fff}.info-scroll[data-v-e51c361c]{flex:1;padding:20px;display:flex;flex-direction:column;gap:20px;overflow-y:auto;box-sizing:border-box}.info-scroll[data-v-e51c361c]::-webkit-scrollbar{width:4px}.info-scroll[data-v-e51c361c]::-webkit-scrollbar-track{background:transparent}.info-scroll[data-v-e51c361c]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.thumbnail-item[data-v-e51c361c]{border-radius:8px;border:2px solid #e5e7eb;overflow:hidden;cursor:pointer;transition:all .2s;flex-shrink:0}.thumbnail-item[data-v-e51c361c]:hover{border-color:#d1d5db}.thumbnail-item.thumbnail-item-active[data-v-e51c361c]{border-color:var(--jz-theme);box-shadow:0 0 0 3px #3b82f61a}.thumbnail-item.thumbnail-item-active[data-v-e51c361c]:hover{border-color:var(--jz-theme)}.thumbnail-image-container[data-v-e51c361c]{position:relative;height:100%;background:#f3f4f6;display:flex;align-items:center;justify-content:center}.thumbnail-img[data-v-e51c361c]{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.preview-area[data-v-e51c361c]{display:flex;flex-direction:column;flex:1;overflow:hidden}.image-toolbar[data-v-e51c361c]{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;background:#111827;border-bottom:1px solid #374151}.toolbar-btn[data-v-e51c361c]{padding:8px;border-radius:8px;background:#1f2937;color:#fff;transition:all .2s;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.toolbar-btn[data-v-e51c361c]:hover{opacity:.8}.toolbar-btn[data-v-e51c361c]:active{transform:scale(.95)}.toolbar-btn.toolbar-btn-active[data-v-e51c361c]{background:#2563eb}.toolbar-btn svg[data-v-e51c361c]{display:block}.toolbar-btn-text[data-v-e51c361c]{padding:8px 12px;font-size:14px}.zoom-level[data-v-e51c361c]{color:#d1d5db;font-size:14px;min-width:50px;text-align:center}.toolbar-divider[data-v-e51c361c]{width:1px;height:24px;background:#374151;margin:0 8px}.preview-content[data-v-e51c361c]{flex:1;overflow:auto;padding:24px;background:#000;display:flex;align-items:flex-start;justify-content:center;position:relative}.image-loading-mask[data-v-e51c361c]{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-spinner[data-v-e51c361c]{width:40px;height:40px;border:3px solid hsla(0,0%,100%,.3);border-top:3px solid var(--jz-theme);border-radius:50%;animation:image-loading-spin-e51c361c .8s linear infinite}.loading-text[data-v-e51c361c]{margin-top:16px;color:#fff;font-size:14px;font-weight:500}@keyframes image-loading-spin-e51c361c{to{transform:rotate(1turn)}}.repeat-cards-container[data-v-e51c361c]{display:flex;flex-direction:column;gap:24px;width:100%;max-width:768px;padding:12px}.answer-card-wrapper[data-v-e51c361c]{position:relative;background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;box-shadow:0 2px 8px #00000014;transition:box-shadow .3s ease,transform .2s ease;transform-origin:center center}.answer-card-wrapper[data-v-e51c361c]:hover{box-shadow:0 4px 16px #0000001f}.card-badge[data-v-e51c361c]{position:absolute;top:-1px;right:-1px;padding:4px 20px;background:var(--jz-theme);border-radius:0 12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:600;box-shadow:0 2px 8px #3b82f64d;z-index:10;box-sizing:border-box}.answer-card[data-v-e51c361c]{width:100%;display:flex;align-items:center;justify-content:center;padding:16px;background:#fff}.answer-card-img[data-v-e51c361c]{max-width:100%;max-height:300px;width:auto;height:auto;display:block;-o-object-fit:contain;object-fit:contain;border-radius:8px}.preview-container[data-v-e51c361c]{margin:auto;max-width:768px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 8px 16px #0003;transition:transform .2s ease;transform-origin:center center}.preview-img[data-v-e51c361c]{width:100%;height:auto;display:block}.no-image[data-v-e51c361c]{width:100%;height:400px;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:16px;background:#f3f4f6}.info-panel[data-v-e51c361c]{width:320px;border-left:1px solid #e5e7eb;background:#fff;flex-shrink:0;display:flex;flex-direction:column}.info-card[data-v-e51c361c]{background:#fff;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden;display:flex;flex-direction:column}.info-card_item[data-v-e51c361c]{border-bottom:1px solid #e5e7eb}.info-row[data-v-e51c361c]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #f3f4f6}.info-row[data-v-e51c361c]:last-child{border-bottom:none}.page-badge[data-v-e51c361c]{background:linear-gradient(to bottom right,#eff6ff,#dbeafe80);border-radius:8px;padding:16px;border:1px solid #bfdbfe}.error-status[data-v-e51c361c],.pending-status[data-v-e51c361c]{padding:10px 16px;border-radius:8px;box-sizing:border-box}.pending-status[data-v-e51c361c]{background:var(--el-color-primary-light-9);border:1px solid var(--jz-theme)}.spinner[data-v-e51c361c]{display:inline-block;width:16px;height:16px;border:2px solid var(--jz-theme);border-top:2px solid transparent;border-radius:50%;animation:spin-e51c361c .8s linear infinite}@keyframes spin-e51c361c{to{transform:rotate(1turn)}}.error-status[data-v-e51c361c]{background:var(--error-bg-color);border:1px solid var(--error-hover-color)}.error-status_btn[data-v-e51c361c]{padding:8px 12px;display:flex;align-items:center;justify-content:center;color:var(--error-color);background:var(--error-bg-color);border:1px solid var(--error-color);border-radius:8px;cursor:pointer}.error-status_btn[data-v-e51c361c]:hover{background:var(--error-hover-color)}.primary-status_btn[data-v-e51c361c]{padding:8px 12px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--jz-theme);border:1px solid var(--jz-theme);border-radius:8px;cursor:pointer}.primary-status_btn[data-v-e51c361c]:hover{opacity:.8}.action-buttons[data-v-e51c361c]{flex-shrink:0;padding:16px 20px;border-top:1px solid #e5e7eb;background:#fff;display:flex;align-items:center;justify-content:center}.template-selector[data-v-e51c361c]{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;width:160px;transition:all .2s}.template-selector[data-v-e51c361c]:hover{border-color:var(--jz-theme)}.template-selector span[data-v-e51c361c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-selector .el-icon[data-v-e51c361c]{transition:transform .3s;flex-shrink:0}.template-selector .rotate-180[data-v-e51c361c]{transform:rotate(180deg)}.template-dropdown[data-v-e51c361c]{background:#fff;border-radius:8px;overflow:hidden}.dropdown-header[data-v-e51c361c]{display:flex;align-items:center;justify-content:space-between}.dropdown-header .refresh-icon[data-v-e51c361c]{cursor:pointer;color:#999;transition:color .2s}.dropdown-header .refresh-icon[data-v-e51c361c]:hover{color:var(--jz-theme)}.dropdown-list[data-v-e51c361c]{max-height:200px;overflow-y:auto}.dropdown-list[data-v-e51c361c]::-webkit-scrollbar{width:4px}.dropdown-list[data-v-e51c361c]::-webkit-scrollbar-track{background:transparent}.dropdown-list[data-v-e51c361c]::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}.dropdown-item[data-v-e51c361c]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;cursor:pointer;transition:all .2s;border-bottom:1px solid transparent}.dropdown-item[data-v-e51c361c]:hover{background:transparent}.dropdown-item.dropdown-item-active[data-v-e51c361c],.dropdown-item.dropdown-item-active .check-icon[data-v-e51c361c]{color:var(--jz-theme)}.dropdown-footer[data-v-e51c361c]{border-top:1px solid #f0f0f0;padding:8px 0}.add-template-btn[data-v-e51c361c]{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:#fff;color:var(--jz-theme);border:1px solid var(--jz-theme);border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px}.add-template-btn[data-v-e51c361c]:hover{background:var(--jz-theme);color:#fff}.add-template-btn .el-icon[data-v-e51c361c]{font-size:16px}.empty-templates[data-v-e51c361c]{padding:20px;text-align:center;color:#9ca3af}@keyframes rotating-e51c361c{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.is-loading[data-v-e51c361c]{animation:rotating-e51c361c 2s linear infinite}.template-select-content[data-v-6e7c4470]{padding:0}.dialog-header-custom[data-v-6e7c4470]{display:flex;align-items:center;justify-content:space-between;width:100%}.dialog-header-custom .dialog-title[data-v-6e7c4470]{font-size:18px;font-weight:600;color:#111827}.dialog-header-custom .header-actions[data-v-6e7c4470]{display:flex;gap:8px}.dialog-header-custom .header-actions .header-action-icon[data-v-6e7c4470]{font-size:20px;cursor:pointer;color:#909399;transition:all .2s;padding:4px;border-radius:4px}.dialog-header-custom .header-actions .header-action-icon[data-v-6e7c4470]:hover{color:#409eff;background:#ecf5ff}.dialog-header-custom .header-actions .header-action-icon.is-loading[data-v-6e7c4470]{animation:rotating-6e7c4470 2s linear infinite}@keyframes rotating-6e7c4470{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.template-select-subtitle[data-v-6e7c4470]{margin:4px 0 16px;font-size:14px;color:#6b7280}.template-list[data-v-6e7c4470]{min-height:300px;max-height:400px;overflow-y:auto}.empty-state[data-v-6e7c4470]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.template-grid[data-v-6e7c4470]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.template-card[data-v-6e7c4470]{border:2px solid #e5e7eb;border-radius:12px;overflow:hidden;cursor:pointer;transition:all .2s;background:#fff}.template-card[data-v-6e7c4470]:hover{border-color:var(--jz-theme);box-shadow:0 2px 8px #3b82f61a}.template-card:hover .template-radio[data-v-6e7c4470]{border-color:var(--jz-theme)}.template-card.template-card-selected[data-v-6e7c4470]{border-color:var(--jz-theme);background:#eff6ff;box-shadow:0 0 0 2px #3b82f633}.template-header[data-v-6e7c4470]{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #f3f4f6;background:#fff}.template-name[data-v-6e7c4470]{font-size:14px;font-weight:600;color:#1f2937}.template-preview[data-v-6e7c4470]{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#f9fafb,#f3f4f6);display:flex;align-items:center;justify-content:center;padding:12px;overflow:hidden}.template-preview .stack-layer[data-v-6e7c4470]{position:absolute;top:12px;right:12px;bottom:12px;left:12px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.stack-placeholder[data-v-6e7c4470],.preview-placeholder[data-v-6e7c4470]{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.template-stack-image[data-v-6e7c4470]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.template-main-image[data-v-6e7c4470]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background:#fff}.dialog-footer[data-v-6e7c4470]{display:flex;justify-content:flex-end;gap:12px}.template-radio[data-v-6e7c4470]{width:20px;height:20px;border-radius:9999px;border:2px solid #d1d5db;background:#fff;flex-shrink:0;transition:all .2s}.template-radio.checked[data-v-6e7c4470]{background:var(--jz-theme);border-color:var(--jz-theme);display:flex;align-items:center;justify-content:center}.subject-select-content[data-v-2c41231e]{padding:0}.subject-select-subtitle[data-v-2c41231e]{margin:4px 0 16px;font-size:14px;color:#6b7280}.template-select-content[data-v-2c41231e]{padding:0}.template-select-subtitle[data-v-2c41231e]{margin:0 0 20px;font-size:14px;color:#374151}.template-select-hint[data-v-2c41231e]{margin-top:16px;font-size:12px;color:#6b7280;line-height:1.6}.subject-list[data-v-2c41231e]{min-height:200px;max-height:400px;overflow-y:auto}.empty-state[data-v-2c41231e]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center}.subject-options[data-v-2c41231e]{display:flex;flex-direction:column;gap:12px}.subject-item[data-v-2c41231e]{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer;transition:all .2s;background:#fff}.subject-item[data-v-2c41231e]:hover{border-color:#f97316;background:#fff7ed}.subject-item.subject-item-selected[data-v-2c41231e]{border-color:#f97316;background:#fff7ed;box-shadow:0 0 0 2px #f9731633}.subject-selector[data-v-2c41231e]{flex-shrink:0;margin-top:2px;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.selector-circle[data-v-2c41231e]{width:20px;height:20px;border-radius:50%;border:2px solid #d1d5db;box-sizing:border-box}.selector-circle-selected[data-v-2c41231e]{width:20px;height:20px;border-radius:50%;background:#f97316;border:2px solid #f97316;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.selector-circle-selected .check-icon[data-v-2c41231e]{width:12px;height:12px;color:#fff}.subject-info[data-v-2c41231e]{flex:1;min-width:0}.subject-header[data-v-2c41231e]{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.subject-name[data-v-2c41231e]{font-size:14px;font-weight:600;color:#1f2937}.subject-grade[data-v-2c41231e]{font-size:12px;color:#6b7280}.subject-footer[data-v-2c41231e]{display:flex;align-items:center;justify-content:space-between}.subject-exam[data-v-2c41231e]{font-size:12px;color:#9ca3af}.dialog-footer[data-v-2c41231e]{display:flex;justify-content:flex-end;gap:12px}.sidebar-header[data-v-9f5a717a]{padding:12px 18px;border-bottom:1px solid #e5e7eb;background:#f9fafb;box-sizing:border-box}.batch-item[data-v-9f5a717a]{padding:12px 16px;background:#fff;border-radius:8px;border:1px solid #e6e7eb;cursor:pointer;transition:all .2s;box-sizing:border-box}.batch-item[data-v-9f5a717a]:hover,.batch-item.batch-item-active[data-v-9f5a717a]{border-color:var(--jz-theme)}.batch-dot[data-v-9f5a717a]{width:6px;height:6px;border-radius:50%;background:#9ca3af;flex-shrink:0;transition:background .2s}.batch-item-active .batch-dot[data-v-9f5a717a]{background:var(--jz-theme)}.content-toolbar[data-v-9f5a717a]{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid #e5e7eb;background:#fff;flex-shrink:0}.warning-info[data-v-9f5a717a]{display:flex;align-items:center;gap:6px;padding:4px 8px;color:#ea580c;font-size:12px;font-weight:500;background:#fff7ed;border:1px solid #fed7aa;border-radius:6px}.content-area[data-v-9f5a717a]{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f8fafc}.drawer-sidebar-tab[data-v-83073057]{display:flex;width:calc(100% - 24px);margin:12px 12px 0;padding:10px;box-sizing:border-box;border-radius:8px;background:#eceff1}.drawer-sidebar-tab_item[data-v-83073057]{flex:1;padding:6px 12px;color:#4b5563;font-weight:700;border-radius:6px;cursor:pointer;text-align:center}.drawer-sidebar-tab_item[data-v-83073057]:hover{color:#000}.drawer-sidebar-tab_actived[data-v-83073057]{color:#fff;background:var(--jz-theme)}.drawer-sidebar-tab_actived[data-v-83073057]:hover{color:#fff}.batch-item[data-v-83073057]{padding:12px 16px;background:#fff;border-radius:8px;border:1px solid #e6e7eb;cursor:pointer;transition:all .2s;box-sizing:border-box}.batch-item[data-v-83073057]:hover,.batch-item.batch-item-active[data-v-83073057]{border-color:var(--jz-theme)}.stats-section[data-v-fd01b397]{padding:16px 20px;border-bottom:1px solid #f1f5f9}.section-title[data-v-fd01b397]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.section-title .indicator[data-v-fd01b397]{width:4px;height:16px;background:linear-gradient(180deg,#10b981,#059669);border-radius:2px}.section-title span[data-v-fd01b397]{font-size:14px;font-weight:700;color:#1e293b}.stats-cards[data-v-fd01b397]{display:flex;gap:12px}.stats-cards .stat-card[data-v-fd01b397]{flex:1;position:relative;padding:14px 16px;border-radius:14px;border:1px solid;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease}.stats-cards .stat-card[data-v-fd01b397]:hover{box-shadow:0 6px 16px #00000014}.stats-cards .stat-card.stat-card-blue[data-v-fd01b397]{background:linear-gradient(135deg,#dbeafe,#fff);border-color:#3b82f633}.stats-cards .stat-card.stat-card-emerald[data-v-fd01b397]{background:linear-gradient(135deg,#d1fae5,#fff);border-color:#10b98133}.stats-cards .stat-card.stat-card-red[data-v-fd01b397]{background:linear-gradient(135deg,#fee2e2,#fff);border-color:#ef444433;cursor:pointer}.stats-cards .stat-card.stat-card-red[data-v-fd01b397]:hover{box-shadow:0 6px 16px #ef444433}.stats-cards .stat-card .processing-badge[data-v-fd01b397]{position:absolute;top:-6px;right:-6px;padding:2px 8px;background:#10b981;color:#fff;font-size:10px;border-radius:10px;box-shadow:0 2px 4px #0000001a;z-index:1}.stats-cards .stat-card .stat-content .stat-label[data-v-fd01b397]{font-size:12px;color:#64748b;margin-bottom:6px;font-weight:500}.stats-cards .stat-card .stat-content .stat-label.stat-label-red[data-v-fd01b397]{color:#ef4444}.stats-cards .stat-card .stat-content .stat-value[data-v-fd01b397]{display:flex;align-items:baseline;gap:3px}.stats-cards .stat-card .stat-content .stat-value .value-primary[data-v-fd01b397]{font-size:22px;font-weight:700;color:#1e293b}.stats-cards .stat-card .stat-content .stat-value .value-primary.value-red[data-v-fd01b397]{color:#dc2626}.stats-cards .stat-card .stat-content .stat-value .value-secondary[data-v-fd01b397]{font-size:16px;font-weight:600;color:#64748b}.stats-cards .stat-card .stat-content .stat-value .value-unit[data-v-fd01b397]{font-size:12px;color:#64748b}.stats-cards .stat-card .stat-content .stat-value .value-divider[data-v-fd01b397]{margin:0 2px;color:#cbd5e1}.stats-cards .stat-card .stat-content .stat-value .value-action[data-v-fd01b397]{font-size:12px;color:#f87171;cursor:pointer}.stats-cards .stat-card .stat-content .stat-value .value-action[data-v-fd01b397]:hover{color:#dc2626}.stats-cards .stat-card .stat-icon[data-v-fd01b397]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center}.stats-cards .stat-card .stat-icon.stat-icon-blue[data-v-fd01b397]{background:#dbeafe;color:#3b82f6}.stats-cards .stat-card .stat-icon.stat-icon-emerald[data-v-fd01b397]{background:#d1fae5;color:#10b981}.stats-cards .stat-card .stat-icon.stat-icon-red[data-v-fd01b397]{background:#fee2e2;color:#ef4444}.stats-cards .stat-card .stat-icon svg[data-v-fd01b397]{width:20px;height:20px}.subject-cards-container[data-v-ea50d743]{display:flex;flex-direction:column;height:100%;padding:16px;box-sizing:border-box}.subject-cards-header[data-v-ea50d743]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-shrink:0}.subject-cards-title[data-v-ea50d743]{display:flex;align-items:center;font-size:16px;font-weight:600;color:#1f2937;margin:0}.grade-list[data-v-ea50d743]{flex:1;overflow-y:auto;overflow-x:hidden;padding-right:4px}.grade-list[data-v-ea50d743]::-webkit-scrollbar{width:4px}.grade-list[data-v-ea50d743]::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.grade-list[data-v-ea50d743]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.grade-list[data-v-ea50d743]::-webkit-scrollbar-thumb:hover{background:#94a3b8}.grade-section[data-v-ea50d743]{padding:12px 20px;margin-bottom:20px;background:#f9fafb;border-radius:12px;border:1px solid #e6e7eb;box-sizing:border-box}.grade-section[data-v-ea50d743]:last-child{margin-bottom:0}.line-divider[data-v-ea50d743]{width:4px;height:16px;background:var(--jz-theme);border-radius:2px;flex-shrink:0}.subject-card[data-v-ea50d743]{padding:16px;border-radius:8px;box-shadow:0 1px 3px #0000000d;cursor:pointer;transition:all .2s;background:#fff;border:1px solid #e5e7eb;box-sizing:border-box;min-width:0;overflow:hidden}.subject-card[data-v-ea50d743]:hover{box-shadow:0 4px 6px -1px #0000001a;border-color:var(--jz-theme);transform:translateY(-2px)}.subject-header[data-v-ea50d743]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.subject-info[data-v-ea50d743]{flex:1;min-width:0}.subject-name[data-v-ea50d743]{font-size:18px;font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-count[data-v-ea50d743]{font-size:12px;color:#6b7280;white-space:nowrap}.page-count-badge[data-v-ea50d743]{font-size:12px;color:#6b7280;white-space:nowrap;background:#f3f4f6;padding:4px 10px;border-radius:6px;font-weight:500}.exam-info[data-v-ea50d743]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #f3f4f6;box-sizing:border-box;gap:8px}.exam-name[data-v-ea50d743]{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;font-weight:500}.template-count[data-v-ea50d743]{font-size:12px;color:#9ca3af;white-space:nowrap}.template-count-number[data-v-ea50d743]{font-size:12px;color:#2563eb;cursor:pointer;transition:color .2s}.template-count-number[data-v-ea50d743]:hover{color:#1d4ed8}.template-count-empty[data-v-ea50d743]{font-size:12px;color:#9ca3af;white-space:nowrap}.add-template-wrapper[data-v-ea50d743]{display:flex;justify-content:center;align-items:center;padding:8px 0}.add-template-btn[data-v-ea50d743]{font-size:13px;color:#2563eb;cursor:pointer;transition:color .2s;font-weight:500}.add-template-btn[data-v-ea50d743]:hover{color:#1d4ed8;text-decoration:underline}.subject-card-thumbnails[data-v-ea50d743]{position:relative}.subject-card-thumbnails[data-v-ea50d743]::-webkit-scrollbar{height:4px}.subject-card-thumbnails[data-v-ea50d743]::-webkit-scrollbar-track{background:#f1f5f9;border-radius:2px}.subject-card-thumbnails[data-v-ea50d743]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:2px}.subject-card-thumbnails[data-v-ea50d743]::-webkit-scrollbar-thumb:hover{background:#94a3b8}.thumbnail-item[data-v-ea50d743]{position:relative;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;overflow:visible;flex-shrink:0;cursor:pointer;transition:all .2s}.thumbnail-item[data-v-ea50d743]:hover{border-color:var(--jz-theme);box-shadow:0 2px 8px #0000001a}.thumbnail-preview-fixed[data-v-ea50d743]{position:fixed;z-index:9999;pointer-events:none}.preview-content[data-v-ea50d743]{background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;border:2px solid #e5e7eb;overflow:hidden;width:500px;max-width:90vw;max-height:80vh}.preview-image[data-v-ea50d743]{width:100%;height:auto;max-height:80vh;display:block;-o-object-fit:contain;object-fit:contain}.preview-fade-enter-active[data-v-ea50d743],.preview-fade-leave-active[data-v-ea50d743]{transition:opacity .2s ease,transform .2s ease}.preview-fade-enter-from[data-v-ea50d743],.preview-fade-leave-to[data-v-ea50d743]{opacity:0;transform:scale(.95)}.subject-card-thumbnails-placeholder[data-v-ea50d743]{display:flex;align-items:center;justify-content:center;min-height:80px;border:1px dashed #e5e7eb;border-radius:6px;background:#f9fafb}.scanning-system[data-v-3ed6a10b]{display:flex;flex-direction:column;height:100vh;background:#f8fafc;overflow:hidden}.main-container[data-v-3ed6a10b]{display:flex;flex:1;overflow:hidden}.left-sidebar[data-v-3ed6a10b]{width:400px;background:#fff;display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.main-content[data-v-3ed6a10b]{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#fff}.stats-section[data-v-3ed6a10b]{flex-shrink:0}.subject-cards-section[data-v-3ed6a10b]{flex:1;overflow:hidden;min-height:0}
