.top-nav[data-v-e659eebd]{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:100;height:64px;box-sizing:border-box}.brand[data-v-e659eebd]{cursor:pointer;display:flex;flex-direction:column}.logo[data-v-e659eebd]{font-weight:900;font-size:18px;color:#2563eb}.sub[data-v-e659eebd]{font-size:11px;color:#64748b;margin-top:1px}.nav-links[data-v-e659eebd]{display:flex;gap:24px;margin-left:40px;flex:1}.nav-links a[data-v-e659eebd]{text-decoration:none;color:#64748b;font-weight:700;font-size:15px;transition:color .2s}.nav-links a[data-v-e659eebd]:hover,.nav-links a.active[data-v-e659eebd]{color:#2563eb}.user-section[data-v-e659eebd]{display:flex;align-items:center;gap:16px}.user-info-box[data-v-e659eebd]{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.username[data-v-e659eebd]{font-weight:700;color:#1e293b;font-size:14px}.teacher-id-tag[data-v-e659eebd]{font-size:10px;color:#2563eb;background:#eff6ff;padding:1px 6px;border-radius:4px;cursor:pointer;font-weight:800;display:flex;align-items:center;gap:4px;border:1px solid #dbeafe;transition:all .2s}.teacher-id-tag[data-v-e659eebd]:hover{background:#dbeafe;transform:scale(1.05)}.logout-btn[data-v-e659eebd]{padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;font-weight:700;font-size:13px;cursor:pointer;transition:all .2s}.logout-btn[data-v-e659eebd]:hover{background:#e2e8f0;color:#1e293b}.auth-link[data-v-e659eebd]{text-decoration:none;color:#64748b;font-weight:700;font-size:14px}.register-btn[data-v-e659eebd]{background:#2563eb;color:#fff;padding:8px 16px;border-radius:10px;transition:background .2s}.register-btn[data-v-e659eebd]:hover{background:#1d4ed8}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:#f8fafc;color:#0f172a}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1}.page[data-v-159fb44b]{min-height:100vh;background:#f8fafc;color:#0f172a}.top[data-v-159fb44b]{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10}.logo[data-v-159fb44b]{font-weight:900;font-size:20px;color:#2563eb}.sub[data-v-159fb44b]{font-size:12px;color:#64748b;margin-top:2px}.primary-btn[data-v-159fb44b]{background:#2563eb;color:#fff;border:none;padding:10px 20px;border-radius:12px;font-weight:800;cursor:pointer;transition:all .2s}.primary-btn[data-v-159fb44b]:hover{background:#1d4ed8;transform:translateY(-1px)}.main[data-v-159fb44b]{max-width:1200px;margin:0 auto;padding:30px 24px}.card[data-v-159fb44b]{background:#fff;border-radius:24px;padding:24px;box-shadow:0 4px 20px #0000000a;border:1px solid #e5e7eb}.list-header[data-v-159fb44b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:15px}.label[data-v-159fb44b]{font-weight:900;font-size:18px}.header-actions[data-v-159fb44b]{display:flex;gap:10px}.search-input[data-v-159fb44b]{padding:8px 16px;border-radius:10px;border:1px solid #e2e8f0;font-size:14px;width:240px;outline:none}.search-input[data-v-159fb44b]:focus{border-color:#2563eb}.refresh-btn[data-v-159fb44b]{padding:8px 16px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;font-size:14px;font-weight:700;cursor:pointer}.book-grid[data-v-159fb44b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:24px}.book-item[data-v-159fb44b]{cursor:pointer;transition:all .3s}.book-item[data-v-159fb44b]:hover{transform:translateY(-6px)}.book-cover[data-v-159fb44b]{position:relative;aspect-ratio:3/4;background:#f1f5f9;border-radius:16px;overflow:hidden;border:1px solid #e5e7eb;box-shadow:0 4px 10px #0000000d}.book-cover img[data-v-159fb44b]{width:100%;height:100%;object-fit:cover}.no-cover[data-v-159fb44b]{height:100%;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:14px}.book-status[data-v-159fb44b]{position:absolute;top:10px;right:10px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:800;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.status-done[data-v-159fb44b]{background:#10b981d9}.status-doing[data-v-159fb44b]{background:#2563ebd9}.status-pending[data-v-159fb44b]{background:#64748bd9}.book-info[data-v-159fb44b]{margin-top:12px}.book-title[data-v-159fb44b]{font-weight:900;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1e293b}.book-id[data-v-159fb44b]{font-size:10px;color:#94a3b8;font-family:monospace;margin-top:2px}.book-meta[data-v-159fb44b]{font-size:12px;color:#64748b;margin-top:4px;font-weight:600}.book-date[data-v-159fb44b]{font-size:11px;color:#94a3b8;margin-top:2px}.loading-state[data-v-159fb44b]{padding:100px 0;text-align:center;color:#64748b}.spinner[data-v-159fb44b]{width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid #2563eb;border-radius:50%;animation:spin-159fb44b 1s linear infinite;margin:0 auto 15px}@keyframes spin-159fb44b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state[data-v-159fb44b]{padding:100px 0;text-align:center;color:#94a3b8;font-size:15px}.page[data-v-b9ca0009]{min-height:100vh;background:#f8fafc;color:#0f172a}.top[data-v-b9ca0009]{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:#fff;border-bottom:1px solid #e5e7eb}.logo[data-v-b9ca0009]{font-weight:900;font-size:18px}.sub[data-v-b9ca0009]{font-size:12px;color:#64748b}.main[data-v-b9ca0009]{max-width:1000px;margin:0 auto;padding:30px 20px;display:flex;flex-direction:column;gap:20px}.card[data-v-b9ca0009]{background:#fff;border-radius:20px;padding:24px;box-shadow:0 4px 15px #0000000d;border:1px solid #e5e7eb}.label[data-v-b9ca0009]{font-weight:800;font-size:15px}.upload-area[data-v-b9ca0009]{display:flex;justify-content:center;padding:40px;border:2px dashed #e2e8f0;border-radius:20px;margin:15px 0;transition:all .3s;background:#fcfdfe;cursor:pointer;position:relative}.upload-area[data-v-b9ca0009]:hover{border-color:#2563eb;background:#f8faff}.upload-area.dragging[data-v-b9ca0009]{border-color:#2563eb;background:#eff6ff;transform:scale(1.01)}.upload-area.uploading[data-v-b9ca0009]{cursor:default;border-style:solid}.upload-controls[data-v-b9ca0009]{display:flex;flex-direction:column;align-items:center;gap:16px;pointer-events:none}.upload-icon[data-v-b9ca0009]{color:#2563eb}.upload-text[data-v-b9ca0009]{display:flex;flex-direction:column;align-items:center;gap:4px}.primary-text[data-v-b9ca0009]{font-weight:800;font-size:16px;color:#1e293b}.secondary-text[data-v-b9ca0009]{font-size:13px;color:#64748b}.file-input-overlay[data-v-b9ca0009]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%;z-index:2}.upload-options[data-v-b9ca0009]{display:flex;justify-content:center;margin-bottom:10px}.auto-check[data-v-b9ca0009]{display:flex;align-items:center;gap:8px;font-size:13px;color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none}.auto-check input[data-v-b9ca0009]{width:16px;height:16px;cursor:pointer}.spinner-large[data-v-b9ca0009]{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #2563eb;border-radius:50%;animation:spin 1s linear infinite}.upload-log[data-v-b9ca0009]{font-size:12px;color:#64748b;text-align:center;margin-top:8px}.queue-status[data-v-b9ca0009]{font-size:14px;font-weight:800;color:#2563eb;text-align:center;margin-top:10px}.list-header[data-v-b9ca0009]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.refresh-btn[data-v-b9ca0009]{padding:6px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-size:12px;font-weight:700;cursor:pointer}.book-grid[data-v-b9ca0009]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px}.book-item[data-v-b9ca0009]{cursor:pointer;transition:transform .2s}.book-item[data-v-b9ca0009]:hover{transform:translateY(-4px)}.book-cover[data-v-b9ca0009]{position:relative;aspect-ratio:3/4;background:#f1f5f9;border-radius:12px;overflow:hidden;border:1px solid #e2e8f0}.book-cover img[data-v-b9ca0009]{width:100%;height:100%;object-fit:cover}.no-cover[data-v-b9ca0009]{height:100%;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:12px}.book-status[data-v-b9ca0009]{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:6px;font-size:10px;font-weight:800;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.status-done[data-v-b9ca0009]{background:#10b981cc}.status-doing[data-v-b9ca0009]{background:#2563ebcc}.status-pending[data-v-b9ca0009]{background:#64748bcc}.book-info[data-v-b9ca0009]{margin-top:10px}.book-title[data-v-b9ca0009]{font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-meta[data-v-b9ca0009]{font-size:11px;color:#64748b;margin-top:2px}.book-date[data-v-b9ca0009]{font-size:10px;color:#94a3b8;margin-top:2px}.loading-state[data-v-b9ca0009],.empty-state[data-v-b9ca0009]{padding:60px 0;text-align:center;color:#94a3b8;font-size:14px}.progress-bar-wrap[data-v-b9ca0009]{height:6px;background:#f1f5f9;border-radius:3px;overflow:hidden;margin-bottom:10px}.progress-bar[data-v-b9ca0009]{height:100%;background:#2563eb}.progress-bar.indeterminate[data-v-b9ca0009]{width:40%;animation:slide-b9ca0009 1.5s infinite linear}@keyframes slide-b9ca0009{0%{transform:translate(-100%)}to{transform:translate(250%)}}.page[data-v-5611bb6e]{min-height:100vh;background:linear-gradient(180deg,#fff,#fbfdff 60%,#f6fbff);color:#0f172a}.top[data-v-5611bb6e]{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;position:sticky;top:0;background:#ffffffe6;border-bottom:1px solid #e5e7eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;flex-wrap:nowrap;gap:10px;overflow:hidden}.topLeft[data-v-5611bb6e]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.iconBtn[data-v-5611bb6e]{background:none;border:none;cursor:pointer;color:#64748b;padding:4px;border-radius:6px;display:flex;flex-shrink:0}.iconBtn[data-v-5611bb6e]:hover{background:#f1f5f9;color:#0f172a}.title[data-v-5611bb6e]{flex:1;min-width:0}.h1[data-v-5611bb6e]{font-size:16px;font-weight:900;color:#0f172a;line-height:1.2;white-space:nowrap}.textbook-id[data-v-5611bb6e]{font-size:10px;color:#64748b;font-family:monospace;margin-top:2px;display:flex;align-items:center;gap:4px;min-width:0}.id-txt[data-v-5611bb6e]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}.status-text[data-v-5611bb6e]{color:#2563eb;font-weight:700;white-space:nowrap;flex-shrink:0}.polling-indicator[data-v-5611bb6e]{color:#10b981;font-size:8px;animation:blink-5611bb6e 1s infinite}@keyframes blink-5611bb6e{0%{opacity:1}50%{opacity:.3}to{opacity:1}}.toolbar[data-v-5611bb6e]{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;flex-shrink:0}.toolGroup[data-v-5611bb6e]{display:flex;align-items:center;gap:6px;background:#f8fafc;padding:4px 6px;border-radius:10px;border:1px solid #e2e8f0}.divider[data-v-5611bb6e]{width:1px;height:24px;background:#cbd5e1;margin:0 4px}.toolBtn[data-v-5611bb6e]{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid transparent;background:#fff;color:#475569;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 1px 2px #0000000d;white-space:nowrap;position:relative}.toolBtn[data-v-5611bb6e]:hover{border-color:#cbd5e1;color:#0f172a}.toolBtn[data-v-5611bb6e]:disabled{opacity:.5;cursor:not-allowed}.toolBtn.primary[data-v-5611bb6e]{background:#2563eb;color:#fff;border-color:#2563eb}.toolBtn.primary[data-v-5611bb6e]:hover{background:#1d4ed8}.toolBtn.danger[data-v-5611bb6e]{color:#ef4444}.toolBtn.danger[data-v-5611bb6e]:hover{border-color:#fecaca;background:#fef2f2}.toolBtn input[type=file][data-v-5611bb6e]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.miniSettings[data-v-5611bb6e]{display:flex;flex-direction:column;gap:2px}.tinyInput[data-v-5611bb6e]{width:40px;padding:2px 4px;border-radius:4px;border:1px solid #cbd5e1;font-size:10px;text-align:center;background:#fff}.voiceInput[data-v-5611bb6e]{width:80px;text-align:left}.layout[data-v-5611bb6e]{display:grid;grid-template-columns:260px 1fr;height:calc(100vh - 60px)}.sidebar[data-v-5611bb6e]{border-right:1px solid #e5e7eb;padding:12px;overflow:auto;background:#fff}.sbTitle[data-v-5611bb6e]{font-size:12px;color:#64748b;margin-bottom:10px;font-weight:800}.sbList[data-v-5611bb6e]{display:flex;flex-direction:column;gap:10px}.thumb[data-v-5611bb6e]{text-align:left;padding:10px;border-radius:16px;border:1px solid #e5e7eb;background:#fbfdff;color:inherit;cursor:pointer}.thumb.active[data-v-5611bb6e]{border-color:#60a5fa;background:#eff6ff}.thumb img[data-v-5611bb6e]{width:100%;height:auto;border-radius:10px;display:block;margin-top:8px}.thumbHeader[data-v-5611bb6e]{display:flex;justify-content:space-between;align-items:center}.no[data-v-5611bb6e]{font-size:12px;color:#475569;font-weight:800}.status-dot[data-v-5611bb6e]{width:8px;height:8px;border-radius:50%;background:#e2e8f0}.status-dot.completed[data-v-5611bb6e]{background:#10b981;box-shadow:0 0 4px #10b981}.status-dot.processing[data-v-5611bb6e]{background:#3b82f6;animation:pulse-5611bb6e 1.5s infinite}.status-dot.error[data-v-5611bb6e]{background:#ef4444}.page-toc-tag[data-v-5611bb6e]{font-size:9px;color:#2563eb;background:#eff6ff;padding:1px 4px;border-radius:4px;max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;border:1px solid #dbeafe}.thumb.hasError[data-v-5611bb6e]{border-color:#fecaca;background:#fef2f2}.mini-progress[data-v-5611bb6e]{height:2px;background:#3b82f6;margin-top:4px;border-radius:1px;animation:loading-5611bb6e 2s infinite linear}@keyframes pulse-5611bb6e{0%{opacity:1}50%{opacity:.4}to{opacity:1}}@keyframes loading-5611bb6e{0%{width:0}50%{width:100%}to{width:0}}.noimg[data-v-5611bb6e]{margin-top:8px;font-size:12px;color:#64748b;padding:14px 0;text-align:center;border:1px dashed #cbd5e1;border-radius:10px}.main[data-v-5611bb6e]{display:grid;grid-template-columns:1fr 360px;gap:0;overflow:hidden}.empty[data-v-5611bb6e]{padding:18px;color:#64748b}.viewer[data-v-5611bb6e]{overflow:auto;background:#f8fafc;padding:14px;display:flex;flex-direction:column;align-items:center;position:relative}.imgWrap[data-v-5611bb6e]{position:relative;display:inline-block;margin-bottom:60px}.pageNav[data-v-5611bb6e]{position:fixed;bottom:30px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:16px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:8px 16px;border-radius:999px;box-shadow:0 4px 12px #0000001a;border:1px solid #e5e7eb;z-index:100}.navBtn[data-v-5611bb6e]{display:flex;align-items:center;gap:4px;padding:6px 12px;border-radius:999px;border:1px solid transparent;background:#2563eb;color:#fff;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}.navBtn[data-v-5611bb6e]:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.navBtn[data-v-5611bb6e]:disabled{background:#e2e8f0;color:#94a3b8;cursor:not-allowed}.pageIndicator[data-v-5611bb6e]{font-size:14px;font-weight:800;color:#475569;min-width:60px;text-align:center}.imgWrap img[data-v-5611bb6e]{max-width:100%;height:auto;display:block}.overlay[data-v-5611bb6e]{position:absolute;top:0;right:0;bottom:0;left:0}.box[data-v-5611bb6e]{position:absolute;border-radius:10px;background:#f59e0b2e;outline:1px solid rgba(245,158,11,.55)}.box.active[data-v-5611bb6e]{background:#2563eb29;outline-color:#2563ebbf}.box.pending[data-v-5611bb6e]{background:#dc262624;outline-color:#dc262699}.panel[data-v-5611bb6e]{border-left:1px solid #e5e7eb;background:#fff;overflow:auto;padding:12px}.panelTitle[data-v-5611bb6e]{font-size:12px;color:#64748b;margin-bottom:10px;font-weight:800}.badge[data-v-5611bb6e]{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-weight:900;font-size:11px}.search[data-v-5611bb6e]{width:100%;padding:10px 12px;border-radius:14px;border:1px solid #e5e7eb;background:#fbfdff;color:#0f172a;outline:none;margin-bottom:10px}.search[data-v-5611bb6e]:focus{border-color:#60a5fa;box-shadow:0 0 0 4px #60a5fa2e}.list[data-v-5611bb6e]{display:flex;flex-direction:column;gap:8px}.row[data-v-5611bb6e]{text-align:left;padding:10px;border-radius:16px;border:1px solid #e5e7eb;background:#fbfdff;color:inherit;cursor:pointer}.row[data-v-5611bb6e]:hover{border-color:#60a5fa;background:#eff6ff}.row.active[data-v-5611bb6e]{border-color:#2563eb;background:#eff6ff}.row.pending[data-v-5611bb6e]{border-color:#dc262659}.meta[data-v-5611bb6e]{font-size:12px;color:#64748b;margin-bottom:4px;font-weight:700}.kind[data-v-5611bb6e]{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid #e5e7eb;background:#fff;color:#0f172a;font-weight:900;font-size:11px}.warn[data-v-5611bb6e]{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;font-weight:900;font-size:11px}.text[data-v-5611bb6e]{font-size:13px;color:#0f172a;line-height:1.35}.answer[data-v-5611bb6e]{margin-top:6px;font-size:12px;color:#0f172a;white-space:pre-wrap}.cands[data-v-5611bb6e]{margin-top:6px;font-size:12px;color:#b91c1c;white-space:pre-wrap}.err[data-v-5611bb6e]{margin-top:12px;padding:10px;border-radius:14px;border:1px solid #fecaca;background:#fef2f2;color:#b91c1c;font-size:12px;white-space:pre-wrap}.debugInline[data-v-5611bb6e]{margin:8px 0 10px;padding:10px;border-radius:14px;border:1px solid #e5e7eb;background:#fff}.debugLine[data-v-5611bb6e]{display:flex;align-items:center;gap:10px}.debugK[data-v-5611bb6e]{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid #e5e7eb;background:#fbfdff;font-weight:900;font-size:11px;color:#0f172a}.debugV[data-v-5611bb6e]{font-size:12px;color:#334155;font-weight:700}.debugErr[data-v-5611bb6e]{margin-top:8px;font-size:12px;color:#b91c1c;font-weight:800;white-space:pre-wrap}.debug[data-v-5611bb6e]{margin-top:10px;padding:10px;border-radius:14px;border:1px solid #e5e7eb;background:#fff}.debug summary[data-v-5611bb6e]{cursor:pointer;font-weight:900;color:#0f172a;font-size:12px}.debugPre[data-v-5611bb6e]{margin-top:8px;font-size:12px;white-space:pre-wrap;color:#334155}.actions[data-v-5611bb6e]{display:flex;align-items:center;gap:4px}.btn-icon.muted[data-v-5611bb6e]{opacity:.5;filter:grayscale(1)}.text.mutedText[data-v-5611bb6e]{color:#94a3b8;text-decoration:line-through}.rowHeader[data-v-5611bb6e]{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.btn-icon[data-v-5611bb6e]{padding:2px 6px;border-radius:6px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;font-size:12px;color:#64748b}.btn-icon[data-v-5611bb6e]:hover{border-color:#60a5fa;color:#2563eb;background:#eff6ff}.modalOverlay[data-v-5611bb6e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:100;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal[data-v-5611bb6e]{background:#fff;width:90%;max-width:500px;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:hidden;display:flex;flex-direction:column;max-height:90vh}.modalHeader[data-v-5611bb6e]{padding:16px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;background:#f8fafc}.modalTitle[data-v-5611bb6e]{font-weight:800;color:#0f172a;font-size:16px}.closeBtn[data-v-5611bb6e]{background:none;border:none;font-size:24px;color:#64748b;cursor:pointer;line-height:1}.modalBody[data-v-5611bb6e]{padding:16px;overflow-y:auto}.formRow[data-v-5611bb6e]{margin-bottom:16px}.formRow label[data-v-5611bb6e]{display:block;font-size:12px;font-weight:700;color:#475569;margin-bottom:6px}.formRow textarea[data-v-5611bb6e],.formRow select[data-v-5611bb6e]{width:100%;padding:10px;border-radius:10px;border:1px solid #cbd5e1;background:#fff;font-size:14px;color:#0f172a;outline:none;resize:vertical}.formRow textarea[data-v-5611bb6e]:focus,.formRow select[data-v-5611bb6e]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.modalFooter[data-v-5611bb6e]{padding:16px;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:10px;background:#f8fafc}.handle[data-v-5611bb6e]{position:absolute;width:10px;height:10px;background:#2563eb;border:1px solid #fff;border-radius:50%;z-index:10}.handle.nw[data-v-5611bb6e]{top:-5px;left:-5px;cursor:nw-resize}.handle.ne[data-v-5611bb6e]{top:-5px;right:-5px;cursor:ne-resize}.handle.sw[data-v-5611bb6e]{bottom:-5px;left:-5px;cursor:sw-resize}.handle.se[data-v-5611bb6e]{bottom:-5px;right:-5px;cursor:se-resize}.box.ghost-dragging[data-v-5611bb6e]{background:#2563eb1a;outline:2px dashed #2563eb;pointer-events:none;z-index:20}.seqBadge[data-v-5611bb6e]{position:absolute;top:-8px;left:-8px;background:#2563eb;color:#fff;font-size:10px;font-weight:800;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:5;box-shadow:0 1px 2px #0003;pointer-events:none}.tocList[data-v-5611bb6e]{display:flex;flex-direction:column;gap:4px}.tocItem[data-v-5611bb6e]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-radius:10px;cursor:pointer;transition:background .2s;border:1px solid transparent}.tocItem[data-v-5611bb6e]:hover{background:#f1f5f9;border-color:#e2e8f0}.tocUnit[data-v-5611bb6e]{font-weight:800;color:#0f172a;font-size:14px}.unitRow[data-v-5611bb6e]{background:#f8fafc;margin-top:8px}.lessonRow[data-v-5611bb6e]{padding-left:32px;border-bottom:1px solid #f1f5f9;border-radius:0}.lessonRow[data-v-5611bb6e]:last-child{border-bottom:none}.tocLessonTitle[data-v-5611bb6e]{font-size:13px;color:#475569;flex:1}.tocPage[data-v-5611bb6e]{color:#64748b;font-size:11px;font-weight:800;background:#fff;border:1px solid #e2e8f0;padding:1px 6px;border-radius:4px}.tocPage.mini[data-v-5611bb6e]{font-size:10px;padding:0 4px;opacity:.8}.tocModal[data-v-5611bb6e]{max-width:450px}.tocList[data-v-5611bb6e]{max-height:60vh;overflow-y:auto;padding-right:4px}@media(max-width:980px){.layout[data-v-5611bb6e]{grid-template-columns:1fr;height:auto}.main[data-v-5611bb6e]{grid-template-columns:1fr}.panel[data-v-5611bb6e]{border-left:none;border-top:1px solid #e5e7eb}}.eval-overlay[data-v-b633131c]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000080;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn-b633131c .2s ease}@media(min-width:768px){.eval-overlay[data-v-b633131c]{align-items:center}}.eval-card[data-v-b633131c]{background:#fff;width:100%;max-width:500px;height:80vh;max-height:600px;border-radius:20px 20px 0 0;overflow:hidden;display:flex;flex-direction:column;animation:slideUp-b633131c .3s ease}@media(min-width:768px){.eval-card[data-v-b633131c]{border-radius:20px;height:auto;min-height:500px}}.eval-header[data-v-b633131c]{padding:16px 20px;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.eval-title[data-v-b633131c]{font-size:18px;font-weight:700;color:#1f2937}.close-btn[data-v-b633131c]{background:none;border:none;font-size:24px;color:#9ca3af;cursor:pointer}.eval-body[data-v-b633131c]{flex:1;overflow-y:auto;position:relative;display:flex;flex-direction:column}.state-view[data-v-b633131c]{padding:20px;flex:1;display:flex;flex-direction:column}.loading[data-v-b633131c]{align-items:center;justify-content:center;color:#6b7280}.spinner[data-v-b633131c]{width:30px;height:30px;border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;margin-bottom:16px;animation:spin-b633131c 1s linear infinite}.ready[data-v-b633131c]{align-items:center;justify-content:center;text-align:center;gap:24px}.current-text-display[data-v-b633131c]{font-size:24px;font-weight:700;color:#1f2937;line-height:1.4;padding:0 20px}.instruction[data-v-b633131c]{color:#9ca3af;font-size:14px}.word-selector-title[data-v-b633131c]{font-size:16px;color:#6b7280;font-weight:600}.word-selection-list[data-v-b633131c]{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:0 20px}.word-select-item[data-v-b633131c]{font-size:22px;font-weight:700;color:#374151;padding:8px 16px;border-radius:12px;background:#f3f4f6;cursor:pointer;transition:all .2s;border:2px solid transparent}.word-select-item.active[data-v-b633131c]{background:#2563eb;color:#fff;box-shadow:0 4px 12px #2563eb4d}.word-select-item[data-v-b633131c]:hover:not(.active){background:#e5e7eb}.scores-row[data-v-b633131c]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.score-circle-wrapper[data-v-b633131c]{display:flex;flex-direction:column;align-items:center;gap:8px}.score-circle[data-v-b633131c]{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}.score-circle[data-v-b633131c]:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;background:#fff;border-radius:50%}.score-inner[data-v-b633131c]{position:relative;z-index:1;font-size:28px;font-weight:800;color:#1f2937}.score-label[data-v-b633131c]{font-size:14px;font-weight:600;color:#4b5563}.sub-scores[data-v-b633131c]{display:flex;gap:12px}.sub-score-item[data-v-b633131c]{background:#f9fafb;padding:12px;border-radius:12px;display:flex;flex-direction:column;align-items:center;min-width:60px}.sub-val[data-v-b633131c]{font-size:18px;font-weight:700;color:#1f2937}.sub-label[data-v-b633131c]{font-size:12px;color:#6b7280;margin-top:4px}.analysis-section[data-v-b633131c]{margin-bottom:20px}.section-title[data-v-b633131c]{font-size:16px;font-weight:700;color:#1f2937;margin-bottom:12px;border-left:4px solid #2563eb;padding-left:8px}.sentence-words[data-v-b633131c]{display:flex;flex-wrap:wrap;gap:8px;line-height:1.5}.word-item[data-v-b633131c]{font-size:20px;padding:2px 6px;border-radius:4px;cursor:pointer;transition:background .2s;font-weight:700}.word-item[data-v-b633131c]:hover{background:#f3f4f6}.word-item.good[data-v-b633131c]{color:#059669}.word-item.fair[data-v-b633131c]{color:#ea580c}.word-item.poor[data-v-b633131c]{color:#dc2626}.hint[data-v-b633131c]{font-size:12px;color:#9ca3af;margin-top:8px}.word-detail[data-v-b633131c]{background:#f9fafb;border-radius:12px;padding:16px;animation:fadeIn-b633131c .3s}.wd-header[data-v-b633131c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.wd-word[data-v-b633131c]{font-size:20px;font-weight:700}.wd-word.good[data-v-b633131c]{color:#059669}.wd-word.fair[data-v-b633131c]{color:#ea580c}.wd-word.poor[data-v-b633131c]{color:#dc2626}.wd-score[data-v-b633131c]{font-weight:700;color:#4b5563}.phoneme-list[data-v-b633131c]{display:flex;flex-direction:column;gap:8px}.ph-row[data-v-b633131c]{background:#fff;padding:8px;border-radius:8px;display:flex;justify-content:space-between;align-items:center}.ph-symbol[data-v-b633131c]{font-family:monospace;font-weight:600}.ph-status.good[data-v-b633131c]{color:#059669}.ph-status.fair[data-v-b633131c]{color:#ea580c}.ph-status.poor[data-v-b633131c]{color:#dc2626}.eval-footer[data-v-b633131c]{padding:16px 20px;border-top:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;background:#fff;flex-shrink:0}.control-btn[data-v-b633131c]{background:#f3f4f6;border:none;border-radius:12px;height:48px;padding:0 16px;font-weight:700;color:#4b5563;display:flex;align-items:center;gap:8px;cursor:pointer;transition:all .2s}.control-btn[data-v-b633131c]:disabled{opacity:.5;cursor:not-allowed}.control-btn.icon-only[data-v-b633131c]{width:48px;justify-content:center;padding:0}.control-btn.next-btn[data-v-b633131c]{background:#eff6ff;color:#2563eb}.record-main-btn[data-v-b633131c]{width:64px;height:64px;border-radius:50%;background:#2563eb;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px #2563eb4d;transition:all .2s}.record-main-btn.recording[data-v-b633131c]{background:#ef4444;box-shadow:0 4px 12px #ef44444d;animation:pulse-b633131c 1.5s infinite}.stop-icon[data-v-b633131c]{width:20px;height:20px;background:#fff;border-radius:4px}@keyframes spin-b633131c{to{transform:rotate(360deg)}}@keyframes fadeIn-b633131c{0%{opacity:0}to{opacity:1}}@keyframes slideUp-b633131c{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse-b633131c{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.reader[data-v-baf495d1]{position:fixed;top:0;right:0;bottom:0;left:0;background:#f3f4f6;color:#1f2937;display:flex;flex-direction:column;overflow:hidden;font-family:Nunito,sans-serif}.header[data-v-baf495d1]{position:absolute;top:0;left:0;right:0;height:60px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:50;box-shadow:0 1px 3px #0000000d;transition:transform .3s ease}.header.hidden[data-v-baf495d1]{transform:translateY(-100%)}.iconBtn[data-v-baf495d1]{background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:6px;font-weight:700;color:#4b5563}.iconBtn[data-v-baf495d1]:hover{color:#2563eb}.pageInfo[data-v-baf495d1]{font-weight:800;color:#9ca3af;font-size:14px}.settings[data-v-baf495d1]{display:flex;align-items:center;gap:16px}.mini[data-v-baf495d1]{display:flex;align-items:center;gap:6px}.miniLabel[data-v-baf495d1]{font-size:12px;font-weight:700;color:#6b7280}.miniSelect[data-v-baf495d1]{padding:4px 8px;border-radius:8px;border:1px solid #e5e7eb;font-size:12px;font-weight:700;color:#374151;background:#fff}.toggle[data-v-baf495d1]{display:flex;align-items:center;gap:8px;cursor:pointer}.toggle input[data-v-baf495d1]{display:none}.slider[data-v-baf495d1]{width:36px;height:20px;background:#e5e7eb;border-radius:20px;position:relative;transition:.3s}.slider[data-v-baf495d1]:before{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:.3s;box-shadow:0 1px 2px #0003}.toggle input:checked+.slider[data-v-baf495d1]{background:#2563eb}.toggle input:checked+.slider[data-v-baf495d1]:before{transform:translate(16px)}.label[data-v-baf495d1]{font-size:13px;font-weight:700;color:#4b5563}.stage[data-v-baf495d1]{flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;cursor:pointer}.bookWrapper[data-v-baf495d1]{width:100%;height:100%;display:grid;align-items:center;justify-items:center;padding:20px;box-sizing:border-box;perspective:2000px;overflow:hidden}.pageContent[data-v-baf495d1]{grid-area:1 / 1;max-width:100%;max-height:100%;box-shadow:0 20px 50px -12px #00000040;border-radius:4px;overflow:hidden;background:#fff;transform-style:preserve-3d;transform-origin:left center;will-change:transform,opacity;transform:translateZ(0)}.page-next-leave-active[data-v-baf495d1]{animation:turn-page-left-out-baf495d1 .8s cubic-bezier(.645,.045,.355,1);z-index:10}.page-next-enter-active[data-v-baf495d1]{animation:fade-in-baf495d1 .8s ease-in-out;z-index:1}.page-prev-enter-active[data-v-baf495d1]{animation:turn-page-left-in-baf495d1 .8s cubic-bezier(.645,.045,.355,1);z-index:10}.page-prev-leave-active[data-v-baf495d1]{animation:fade-out-baf495d1 .8s ease-in-out;z-index:1}@keyframes turn-page-left-out-baf495d1{0%{transform:rotateY(0);opacity:1;box-shadow:0 20px 50px -12px #00000040}50%{opacity:1}to{transform:rotateY(-110deg);opacity:0;box-shadow:20px 20px 50px -12px #0000001a}}@keyframes turn-page-left-in-baf495d1{0%{transform:rotateY(-110deg);opacity:0;box-shadow:20px 20px 50px -12px #0000001a}50%{opacity:1}to{transform:rotateY(0);opacity:1;box-shadow:0 20px 50px -12px #00000040}}@keyframes fade-in-baf495d1{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fade-out-baf495d1{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.imgContainer[data-v-baf495d1]{position:relative;display:inline-block;vertical-align:middle;font-size:0}.pageImg[data-v-baf495d1]{max-width:100%;max-height:calc(100vh - 140px);height:auto;display:block;-webkit-user-select:none;user-select:none}.overlay[data-v-baf495d1]{position:absolute;top:0;right:0;bottom:0;left:0}.hotspot[data-v-baf495d1]{position:absolute;cursor:pointer;border-radius:4px;transition:background .2s,box-shadow .2s}.hotspot[data-v-baf495d1]:hover{background:#2563eb1a}.hotspot.active[data-v-baf495d1]{background:#ffdf0026;box-shadow:0 0 0 2px #ffdf0080}.wordHotspot[data-v-baf495d1]{position:absolute;cursor:pointer;border-radius:2px;transition:background .2s;z-index:2}.wordHotspot[data-v-baf495d1]:hover{background:#2563eb26}.wordHotspot.active[data-v-baf495d1]{background:#ffdf0099;box-shadow:0 0 0 1px #ffdf00cc;z-index:3}.navBtn[data-v-baf495d1]{position:absolute;top:50%;transform:translateY(-50%);background:#fffc;border:1px solid #e5e7eb;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4b5563;z-index:40;box-shadow:0 4px 6px -1px #0000001a;transition:all .2s}.navBtn[data-v-baf495d1]:hover:not(:disabled){background:#fff;color:#2563eb;transform:translateY(-50%) scale(1.1)}.navBtn[data-v-baf495d1]:disabled{opacity:.3;cursor:not-allowed}.navBtn.prev[data-v-baf495d1]{left:20px}.navBtn.next[data-v-baf495d1]{right:20px}.footer[data-v-baf495d1]{position:absolute;bottom:0;left:0;right:0;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px 20px;z-index:50;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 -1px 3px #0000000d;transition:transform .3s ease}.footer.hidden[data-v-baf495d1]{transform:translateY(100%)}.playbackControls[data-v-baf495d1]{display:flex;align-items:center;gap:20px}.ctrlBtn[data-v-baf495d1]{background:none;border:none;cursor:pointer;font-weight:700;color:#4b5563;font-size:14px}.ctrlBtn.circle[data-v-baf495d1]{width:48px;height:48px;border-radius:50%;background:#2563eb;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 4px 10px #2563eb4d;transition:transform .1s}.ctrlBtn.circle[data-v-baf495d1]:active{transform:scale(.95)}.textDisplay[data-v-baf495d1]{font-size:16px;color:#1f2937;font-weight:600;text-align:center;max-width:800px;line-height:1.4;min-height:1.4em;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 8px}.wordSpan[data-v-baf495d1]{cursor:pointer;padding:4px 8px;border-radius:8px;transition:all .2s;border:1px solid transparent}.wordSpan[data-v-baf495d1]:hover{background:#2563eb0d;border-color:#2563eb1a}.wordSpan.active[data-v-baf495d1]{background:#2563eb;color:#fff;box-shadow:0 2px 4px #2563eb33}.wordSpan[data-v-baf495d1]:hover{background:#2563eb1a}.wordSpan.active[data-v-baf495d1]{background:#2563eb;color:#fff}.reader.mobile .pageImg[data-v-baf495d1]{max-height:calc(100vh - 180px)}.reader.mobile .navBtn[data-v-baf495d1]{display:none}.recordBtn[data-v-baf495d1]{color:#ef4444;transition:all .2s}.recordBtn[data-v-baf495d1]:disabled{color:#d1d5db}.recordBtn.recording[data-v-baf495d1]{background:#ef4444;color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;animation:pulse-baf495d1 1.5s infinite}.stop-icon[data-v-baf495d1]{font-size:20px;font-weight:700}.recording-toast[data-v-baf495d1]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000c;color:#fff;padding:20px 40px;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:12px;z-index:100;pointer-events:none}.recording-pulse[data-v-baf495d1]{width:12px;height:12px;background:#ef4444;border-radius:50%;box-shadow:0 0 #ef4444b3;animation:pulse-ring-baf495d1 1.5s infinite}@keyframes pulse-baf495d1{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes pulse-ring-baf495d1{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1);box-shadow:0 0 0 10px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.login-container[data-v-8abd35d7]{display:flex;justify-content:center;align-items:center;height:100vh;background-color:#f5f7fa}.login-box[data-v-8abd35d7]{width:100%;max-width:400px;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a}h2[data-v-8abd35d7]{text-align:center;margin-bottom:2rem;color:#333}.form-group[data-v-8abd35d7]{margin-bottom:1.5rem}label[data-v-8abd35d7]{display:block;margin-bottom:.5rem;color:#666}input[data-v-8abd35d7]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;box-sizing:border-box}button[data-v-8abd35d7]{width:100%;padding:.75rem;background-color:#4a90e2;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}button[data-v-8abd35d7]:hover{background-color:#357abd}button[data-v-8abd35d7]:disabled{background-color:#ccc;cursor:not-allowed}.error-message[data-v-8abd35d7]{color:#e74c3c;margin-bottom:1rem;font-size:.9rem;text-align:center}.footer-links[data-v-8abd35d7]{margin-top:1.5rem;text-align:center;font-size:.9rem}.footer-links a[data-v-8abd35d7]{color:#4a90e2;text-decoration:none}.footer-links a[data-v-8abd35d7]:hover{text-decoration:underline}.register-container[data-v-4a7b4f68]{display:flex;justify-content:center;align-items:center;height:100vh;background-color:#f5f7fa}.register-box[data-v-4a7b4f68]{width:100%;max-width:400px;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a}h2[data-v-4a7b4f68]{text-align:center;margin-bottom:2rem;color:#333}.form-group[data-v-4a7b4f68]{margin-bottom:1.2rem}label[data-v-4a7b4f68]{display:block;margin-bottom:.5rem;color:#666}input[data-v-4a7b4f68],.select-input[data-v-4a7b4f68]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;box-sizing:border-box;background:#fff}button[data-v-4a7b4f68]{width:100%;padding:.75rem;background-color:#2ecc71;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}button[data-v-4a7b4f68]:hover{background-color:#27ae60}button[data-v-4a7b4f68]:disabled{background-color:#ccc;cursor:not-allowed}.error-message[data-v-4a7b4f68]{color:#e74c3c;margin-bottom:1rem;font-size:.9rem;text-align:center}.footer-links[data-v-4a7b4f68]{margin-top:1.5rem;text-align:center;font-size:.9rem}.footer-links a[data-v-4a7b4f68]{color:#4a90e2;text-decoration:none}.footer-links a[data-v-4a7b4f68]:hover{text-decoration:underline}.report-page[data-v-a3b3d139]{min-height:100vh;background:#f8fafc;color:#1e293b;font-family:system-ui,-apple-system,sans-serif}.header[data-v-a3b3d139]{position:sticky;top:0;z-index:100;background:#fff;padding:8px 20px;box-shadow:0 2px 10px #0000000d;border-bottom:1px solid #f1f5f9}.header-main-row[data-v-a3b3d139]{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;gap:20px}.header-controls[data-v-a3b3d139]{display:flex;align-items:center;gap:24px}.summary-mini[data-v-a3b3d139]{display:flex;gap:16px;align-items:center}.mini-item[data-v-a3b3d139]{display:flex;align-items:center;gap:4px}.m-label[data-v-a3b3d139]{font-size:12px;color:#64748b;font-weight:600}.m-val[data-v-a3b3d139]{font-size:14px;font-weight:800;color:#1e293b}.m-val.highlight[data-v-a3b3d139]{color:#2563eb}.page-navigator-mini[data-v-a3b3d139]{display:flex;align-items:center;gap:6px;background:#f1f5f9;padding:3px;border-radius:8px}.nav-btn-s[data-v-a3b3d139]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border:none;border-radius:6px;color:#475569;cursor:pointer;box-shadow:0 1px 2px #0000000d}.nav-btn-s[data-v-a3b3d139]:disabled{opacity:.4;cursor:not-allowed}.page-select-s[data-v-a3b3d139]{border:none;background:transparent;font-weight:800;color:#2563eb;font-size:13px;outline:none;cursor:pointer;padding:0 4px}.back-btn[data-v-a3b3d139]{background:none;border:none;display:flex;align-items:center;gap:4px;color:#64748b;font-weight:700;cursor:pointer;font-size:14px}.title-mini[data-v-a3b3d139]{font-size:16px;font-weight:800;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.content[data-v-a3b3d139]{max-width:800px;margin:0 auto;padding:20px}.nav-btn[data-v-a3b3d139]{display:flex;align-items:center;gap:6px;background:#f1f5f9;border:none;padding:8px 16px;border-radius:10px;font-weight:700;color:#475569;cursor:pointer;transition:all .2s}.nav-btn[data-v-a3b3d139]:hover:not(:disabled){background:#e2e8f0;color:#1e293b}.nav-btn[data-v-a3b3d139]:disabled{opacity:.5;cursor:not-allowed}.page-display[data-v-a3b3d139]{display:flex;align-items:center;gap:8px}.page-display .label[data-v-a3b3d139]{font-size:14px;font-weight:600;color:#64748b}.page-select[data-v-a3b3d139]{padding:6px 12px;border-radius:8px;border:1px solid #e2e8f0;font-weight:700;color:#2563eb;outline:none}.records-section[data-v-a3b3d139]{background:#fff;border-radius:20px;padding:20px;box-shadow:0 4px 6px -1px #0000000d}.section-header[data-v-a3b3d139]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-title[data-v-a3b3d139]{font-size:16px;font-weight:800}.mini-select[data-v-a3b3d139]{padding:4px 8px;border-radius:8px;border:1px solid #e2e8f0;font-size:13px;outline:none}.records-list[data-v-a3b3d139]{display:flex;flex-direction:column;gap:16px}.record-item[data-v-a3b3d139]{border:1px solid #f1f5f9;border-radius:16px;padding:16px;transition:transform .2s}.record-item[data-v-a3b3d139]:hover{transform:translateY(-2px);border-color:#e2e8f0}.record-main[data-v-a3b3d139]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.record-info[data-v-a3b3d139]{flex:1;min-width:0}.book-tag[data-v-a3b3d139]{font-size:11px;font-weight:700;color:#3b82f6;background:#eff6ff;padding:2px 8px;border-radius:4px;display:inline-block;margin-bottom:6px}.record-text[data-v-a3b3d139]{font-size:16px;font-weight:700;color:#1e293b;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.record-meta[data-v-a3b3d139]{display:flex;align-items:center;gap:12px;font-size:12px;color:#94a3b8}.type-tag[data-v-a3b3d139]{padding:1px 6px;border-radius:4px;font-weight:700;font-size:10px}.type-tag.word[data-v-a3b3d139]{background:#fef3c7;color:#d97706}.type-tag.sentence[data-v-a3b3d139]{background:#dcfce7;color:#16a34a}.score-box[data-v-a3b3d139]{width:50px;height:50px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.score-box.good[data-v-a3b3d139]{background:#059669}.score-box.fair[data-v-a3b3d139]{background:#ea580c}.score-box.poor[data-v-a3b3d139]{background:#dc2626}.score-num[data-v-a3b3d139]{font-size:18px;font-weight:800;line-height:1}.score-label[data-v-a3b3d139]{font-size:10px;font-weight:600;opacity:.9}.record-actions[data-v-a3b3d139]{display:flex;gap:12px;border-top:1px solid #f8fafc;padding-top:12px}.action-btn[data-v-a3b3d139]{flex:1;height:36px;border-radius:8px;border:none;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s}.action-btn.play[data-v-a3b3d139]{background:#f1f5f9;color:#475569}.action-btn.play[data-v-a3b3d139]:hover{background:#e2e8f0}.action-btn.detail[data-v-a3b3d139]{background:#fff;border:1px solid #e2e8f0;color:#64748b}.action-btn.detail[data-v-a3b3d139]:hover{border-color:#cbd5e1;color:#1e293b}.sub-scores[data-v-a3b3d139]{display:flex;gap:12px;font-size:12px;color:#64748b;align-items:center}.pagination[data-v-a3b3d139]{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding-top:16px;border-top:1px solid #f1f5f9}.pagination button[data-v-a3b3d139]{padding:6px 12px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;font-size:13px}.pagination button[data-v-a3b3d139]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-a3b3d139]{font-size:13px;font-weight:600;color:#64748b}@media(max-width:640px){.summary-cards[data-v-a3b3d139]{grid-template-columns:1fr}}.admin-page[data-v-e78d0dd4]{min-height:100vh;background:#f1f5f9;padding-bottom:40px}.header[data-v-e78d0dd4]{background:#fff;padding:20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a;position:sticky;top:0;z-index:10}.title[data-v-e78d0dd4]{font-size:20px;font-weight:800;color:#0f172a}.search-input[data-v-e78d0dd4]{padding:8px 16px;border-radius:10px;border:1px solid #e2e8f0;width:260px;outline:none}.content[data-v-e78d0dd4]{max-width:1000px;margin:24px auto;padding:0 20px}.stats-grid[data-v-e78d0dd4]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:24px}.stat-card[data-v-e78d0dd4]{background:#fff;padding:20px;border-radius:16px;text-align:center;box-shadow:0 4px 6px -1px #0000000d}.stat-val[data-v-e78d0dd4]{font-size:28px;font-weight:800;color:#2563eb}.stat-label[data-v-e78d0dd4]{font-size:14px;color:#64748b;font-weight:600}.student-grid[data-v-e78d0dd4]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.student-card[data-v-e78d0dd4]{background:#fff;border-radius:20px;padding:20px;cursor:pointer;transition:all .2s;border:2px solid transparent;box-shadow:0 4px 6px -1px #0000000d}.student-card[data-v-e78d0dd4]:hover{transform:translateY(-4px);border-color:#3b82f6;box-shadow:0 10px 15px -3px #0000001a}.student-header[data-v-e78d0dd4]{display:flex;align-items:center;gap:12px;margin-bottom:16px}.avatar[data-v-e78d0dd4]{width:48px;height:48px;background:#eff6ff;color:#2563eb;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}.student-info[data-v-e78d0dd4]{flex:1}.name[data-v-e78d0dd4]{font-size:16px;font-weight:800;color:#1e293b}.account[data-v-e78d0dd4]{font-size:12px;color:#94a3b8}.status-tag[data-v-e78d0dd4]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}.status-tag.active[data-v-e78d0dd4]{background:#dcfce7;color:#16a34a}.status-tag.pending[data-v-e78d0dd4]{background:#fee2e2;color:#dc2626}.student-body[data-v-e78d0dd4]{display:flex;gap:20px;padding:12px 0;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;margin-bottom:16px}.metric[data-v-e78d0dd4]{display:flex;flex-direction:column;gap:2px}.m-label[data-v-e78d0dd4]{font-size:11px;color:#64748b;font-weight:600}.m-val[data-v-e78d0dd4]{font-size:15px;font-weight:700;color:#1e293b}.m-val.highlight[data-v-e78d0dd4]{color:#2563eb}.student-footer[data-v-e78d0dd4]{display:flex;gap:10px}.btn-approve[data-v-e78d0dd4]{flex:1;background:#2563eb;color:#fff;border:none;padding:8px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer}.btn-view[data-v-e78d0dd4]{flex:1;background:#f1f5f9;color:#475569;border:none;padding:8px;border-radius:8px;font-weight:700;font-size:13px;cursor:pointer}@media(max-width:640px){.header[data-v-e78d0dd4]{flex-direction:column;gap:12px}.search-input[data-v-e78d0dd4]{width:100%}}.books-page[data-v-7b82e0fe]{min-height:100vh;background:#f8fafc}.header[data-v-7b82e0fe]{background:#fff;padding:12px 20px;display:flex;align-items:center;box-shadow:0 1px 2px #0000000d;position:sticky;top:0;z-index:10}.back-btn[data-v-7b82e0fe]{background:none;border:none;display:flex;align-items:center;gap:4px;color:#64748b;font-weight:600;cursor:pointer}.title[data-v-7b82e0fe]{flex:1;text-align:center;font-size:18px;font-weight:800}.spacer[data-v-7b82e0fe]{width:100px}.content[data-v-7b82e0fe]{max-width:800px;margin:24px auto;padding:0 20px}.book-list[data-v-7b82e0fe]{display:flex;flex-direction:column;gap:16px}.book-card[data-v-7b82e0fe]{background:#fff;border-radius:20px;padding:16px;display:flex;align-items:center;gap:16px;cursor:pointer;transition:all .2s;box-shadow:0 4px 6px -1px #0000000d}.book-card[data-v-7b82e0fe]:hover{transform:scale(1.02);box-shadow:0 10px 15px -3px #0000001a}.book-cover[data-v-7b82e0fe]{width:80px;height:80px;border-radius:12px;overflow:hidden;position:relative;background:#f1f5f9;flex-shrink:0}.book-cover img[data-v-7b82e0fe]{width:100%;height:100%;object-fit:cover}.progress-overlay[data-v-7b82e0fe]{position:absolute;bottom:0;left:0;right:0;height:4px;background:#0000001a}.progress-bar[data-v-7b82e0fe]{height:100%;background:#2563eb}.book-info[data-v-7b82e0fe]{flex:1;min-width:0}.book-title[data-v-7b82e0fe]{font-size:16px;font-weight:800;color:#1e293b;margin-bottom:8px}.book-stats[data-v-7b82e0fe]{display:flex;gap:20px;margin-bottom:6px}.stat[data-v-7b82e0fe]{display:flex;flex-direction:column}.label[data-v-7b82e0fe]{font-size:11px;color:#64748b;font-weight:600}.val[data-v-7b82e0fe]{font-size:14px;font-weight:700}.val.good[data-v-7b82e0fe]{color:#059669}.val.fair[data-v-7b82e0fe]{color:#ea580c}.val.poor[data-v-7b82e0fe]{color:#dc2626}.last-study[data-v-7b82e0fe]{font-size:11px;color:#94a3b8}.arrow[data-v-7b82e0fe]{color:#cbd5e1}.profile-page[data-v-2fc6d84b]{min-height:calc(100vh - 64px);display:flex;justify-content:center;align-items:center;background:#f1f5f9;padding:20px}.profile-card[data-v-2fc6d84b]{background:#fff;padding:32px;border-radius:20px;box-shadow:0 10px 25px -5px #0000001a;width:100%;max-width:450px}.title[data-v-2fc6d84b]{font-size:24px;font-weight:800;color:#1e293b;margin-bottom:8px;text-align:center}.description[data-v-2fc6d84b]{font-size:14px;color:#64748b;text-align:center;margin-bottom:24px}.current-status[data-v-2fc6d84b]{background:#f8fafc;padding:16px;border-radius:12px;margin-bottom:24px;border:1px solid #e2e8f0}.status-item[data-v-2fc6d84b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.status-item[data-v-2fc6d84b]:last-child{margin-bottom:0}.label[data-v-2fc6d84b]{font-size:14px;font-weight:600;color:#64748b}.value[data-v-2fc6d84b]{font-size:14px;font-weight:700;color:#1e293b}.status-tag[data-v-2fc6d84b]{font-size:12px;font-weight:700;padding:2px 8px;border-radius:6px}.status-tag.active[data-v-2fc6d84b]{background:#dcfce7;color:#16a34a}.status-tag.pending[data-v-2fc6d84b]{background:#fee2e2;color:#dc2626}.bind-form[data-v-2fc6d84b]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-2fc6d84b]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-2fc6d84b]{font-size:14px;font-weight:700;color:#475569}.input-field[data-v-2fc6d84b]{padding:12px 16px;border:1px solid #e2e8f0;border-radius:10px;font-size:15px;outline:none;transition:border-color .2s}.input-field[data-v-2fc6d84b]:focus{border-color:#2563eb}.submit-btn[data-v-2fc6d84b]{background:#2563eb;color:#fff;border:none;padding:14px;border-radius:12px;font-weight:800;font-size:16px;cursor:pointer;transition:all .2s}.submit-btn[data-v-2fc6d84b]:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.submit-btn[data-v-2fc6d84b]:disabled{background:#94a3b8;cursor:not-allowed}.message[data-v-2fc6d84b]{padding:12px;border-radius:8px;font-size:14px;font-weight:600;text-align:center}.message.success[data-v-2fc6d84b]{background:#dcfce7;color:#16a34a}.message.error[data-v-2fc6d84b]{background:#fee2e2;color:#dc2626}
