:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media(prefers-color-scheme:dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}#app{font-weight:400}body{margin:0;min-height:100vh}a,.green{text-decoration:none;color:#00bd7e;transition:.4s;padding:3px}@media(hover:hover){a:hover{background-color:#00bd7e33}}.login-container[data-v-5c506a22]{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5}.login-card[data-v-5c506a22]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}h1[data-v-5c506a22]{text-align:center;margin-bottom:1.5rem;color:#333}.form-group[data-v-5c506a22]{margin-bottom:1rem}label[data-v-5c506a22]{display:block;margin-bottom:.5rem;font-weight:500;color:#555}input[data-v-5c506a22]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;box-sizing:border-box}input[data-v-5c506a22]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 2px #42b88333}input[data-v-5c506a22]:disabled{background-color:#f5f5f5;cursor:not-allowed}button[data-v-5c506a22]{width:100%;padding:.75rem;background-color:#42b883;color:#fff;border:none;border-radius:4px;font-size:1rem;cursor:pointer;margin-top:1rem}button[data-v-5c506a22]:hover:not(:disabled){background-color:#3aa876}button[data-v-5c506a22]:disabled{background-color:#ccc;cursor:not-allowed}.error-message[data-v-5c506a22]{color:#e74c3c;background-color:#fdf2f2;padding:.75rem;border-radius:4px;margin-bottom:1rem;text-align:center}.face-match-container[data-v-0ecbe004]{width:100%;height:100%;position:relative}.camera-select-wrapper[data-v-0ecbe004]{display:flex;align-items:center;justify-content:center;margin:0;background:#000;color:#fff;overflow-x:hidden;width:100vw;height:100vh}.camera-select-wrapper .controls[data-v-0ecbe004]{display:flex;flex-direction:column;gap:20px;align-items:center}.camera-select-wrapper .controls select[data-v-0ecbe004]{padding:10px;font-size:16px;background:#333;color:#fff;border:1px solid #555;border-radius:5px;min-width:300px}.camera-select-wrapper .controls button[data-v-0ecbe004]{padding:12px 24px;font-size:16px;background:#4caf50;color:#fff;border:none;border-radius:5px;cursor:pointer;transition:background .3s}.camera-select-wrapper .controls button[data-v-0ecbe004]:hover{background:#45a049}.face-id-container[data-v-0ecbe004]{position:relative;display:flex;flex-direction:column;align-items:center;margin:0;background:#000;color:#fff;overflow-x:hidden;width:100vw;min-height:100vh;padding:20px}.identification-error[data-v-0ecbe004]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;background:#000000e6;padding:30px;border-radius:10px;text-align:center}.identification-error .error-message[data-v-0ecbe004]{color:#f44;font-size:1.5rem;margin-bottom:1rem}.identification-error .restart-button[data-v-0ecbe004]{padding:12px 24px;font-size:1.2rem;background:#4caf50;color:#fff;border:none;border-radius:5px;cursor:pointer;transition:background .3s}.identification-error .restart-button[data-v-0ecbe004]:hover{background:#45a049}.client-info-text[data-v-0ecbe004]{position:absolute;top:50px;left:50%;transform:translate(-50%);font-size:32px;text-align:center;color:#fff;z-index:9999;font-weight:700}.client-info-secondary-text[data-v-0ecbe004]{position:absolute;top:90px;left:50%;transform:translate(-50%);font-size:24px;text-align:center;color:#ff9800;z-index:9999}.liveness-status[data-v-0ecbe004]{font-weight:700;padding:12px;margin:105px auto 15px;border-radius:8px;text-align:center;font-size:1.1em;max-width:640px;box-shadow:0 2px 8px #0000001a;z-index:1000}.status-live[data-v-0ecbe004]{color:#2e7d32;background-color:#e8f5e9;border:1px solid #a5d6a7}.status-spoof[data-v-0ecbe004]{color:#c62828;background-color:#ffebee;border:1px solid #ffcdd2}.status-pending[data-v-0ecbe004]{color:#f57f17;background-color:#fff8e1;border:1px solid #ffecb3}.status-multiple[data-v-0ecbe004]{color:#d32f2f;background-color:#ffebee;border:1px solid #ffcdd2}.movement-indicator[data-v-0ecbe004]{display:flex;justify-content:center;align-items:center;margin:15px auto;max-width:640px;width:100%;height:40px;z-index:1000}.movement-bar[data-v-0ecbe004]{width:100%;height:20px;background-color:#e0e0e0;border-radius:10px;overflow:hidden;position:relative}.movement-fill[data-v-0ecbe004]{height:100%;width:0%;background:linear-gradient(90deg,#4caf50,#8bc34a);transition:width .3s ease}.video-view[data-v-0ecbe004]{position:relative;width:100%;max-width:640px;margin:1em auto;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px #00000026}.video[data-v-0ecbe004]{width:100%;display:block;transform:scaleX(-1)}.overlay-canvas[data-v-0ecbe004]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;transform:scaleX(-1)}.student-list[data-v-548e4bca]{width:100%}.list-header[data-v-548e4bca]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.list-header h2[data-v-548e4bca]{font-size:1.5rem;font-weight:600;color:#1a1a2e;margin:0}.subtitle[data-v-548e4bca]{color:#6b7280;font-size:.875rem;margin-top:.25rem}.header-stats[data-v-548e4bca]{display:flex;gap:1rem}.stat-card[data-v-548e4bca]{display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#42b883,#3aa876);color:#fff;padding:.75rem 1.25rem;border-radius:10px;min-width:100px}.stat-value[data-v-548e4bca]{font-size:1.5rem;font-weight:700;line-height:1.2}.stat-label[data-v-548e4bca]{font-size:.7rem;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.toolbar[data-v-548e4bca]{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.search-wrapper[data-v-548e4bca]{position:relative;flex:1;min-width:220px}.search-icon[data-v-548e4bca]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#9ca3af;pointer-events:none}.search-input[data-v-548e4bca]{width:100%;padding:.625rem .75rem .625rem 2.5rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#1a1a2e;background:#fff;transition:border-color .2s,box-shadow .2s}.search-input[data-v-548e4bca]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.search-input[data-v-548e4bca]::placeholder{color:#9ca3af}.toolbar-right[data-v-548e4bca]{display:flex;gap:.5rem;align-items:center}.page-size-select[data-v-548e4bca]{padding:.625rem .75rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#374151;background:#fff;cursor:pointer;transition:border-color .2s}.page-size-select[data-v-548e4bca]:focus{outline:none;border-color:#42b883}.btn-refresh[data-v-548e4bca]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#374151;cursor:pointer;transition:all .2s}.btn-refresh[data-v-548e4bca]:hover:not(:disabled){border-color:#42b883;color:#42b883}.btn-refresh[data-v-548e4bca]:disabled{opacity:.5;cursor:not-allowed}.btn-icon[data-v-548e4bca]{width:16px;height:16px}.spinning[data-v-548e4bca]{animation:spin-548e4bca .8s linear infinite}@keyframes spin-548e4bca{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner[data-v-548e4bca]{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;margin-bottom:1rem;font-size:.875rem}.error-icon[data-v-548e4bca]{width:20px;height:20px;flex-shrink:0}.btn-retry[data-v-548e4bca]{margin-left:auto;padding:.375rem .75rem;background:#b91c1c;color:#fff;border:none;border-radius:6px;font-size:.8rem;cursor:pointer;transition:background .2s}.btn-retry[data-v-548e4bca]:hover{background:#991b1b}.table-container[data-v-548e4bca]{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.student-table[data-v-548e4bca]{width:100%;border-collapse:collapse}.student-table thead[data-v-548e4bca]{background:#f9fafb}.student-table th[data-v-548e4bca]{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e5e7eb}.student-table td[data-v-548e4bca]{padding:.875rem 1rem;font-size:.875rem;color:#374151;border-bottom:1px solid #f3f4f6}.table-row[data-v-548e4bca]{transition:background .15s}.table-row[data-v-548e4bca]:hover{background:#f9fafb}.table-row:last-child td[data-v-548e4bca]{border-bottom:none}.student-id[data-v-548e4bca]{font-family:SF Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.8rem;color:#6b7280;background:#f3f4f6;padding:.2rem .5rem;border-radius:4px}.student-name-cell[data-v-548e4bca]{display:flex;align-items:center;gap:.625rem}.avatar[data-v-548e4bca]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#42b883,#2d8a62);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.student-photo[data-v-548e4bca]{width:36px;height:36px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid #e5e7eb}.student-name[data-v-548e4bca]{font-weight:500;color:#1a1a2e}.email[data-v-548e4bca]{color:#6b7280}.badge[data-v-548e4bca]{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-success[data-v-548e4bca]{background:#ecfdf5;color:#065f46}.badge-warning[data-v-548e4bca]{background:#fffbeb;color:#92400e}.check-count[data-v-548e4bca]{font-weight:600;color:#1a1a2e}.check-zero[data-v-548e4bca]{color:#9ca3af;font-weight:400}.date-text[data-v-548e4bca]{color:#6b7280;font-size:.8rem}.table-overlay[data-v-548e4bca]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffb3}.spinner[data-v-548e4bca]{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#42b883;border-radius:50%;animation:spin-548e4bca .7s linear infinite}.skeleton-row td[data-v-548e4bca]{padding:1rem}.skeleton[data-v-548e4bca]{height:14px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer-548e4bca 1.5s infinite;border-radius:4px}.skeleton-text[data-v-548e4bca]{width:80px}.skeleton-text-long[data-v-548e4bca]{width:140px}.skeleton-text-short[data-v-548e4bca]{width:40px}.skeleton-badge[data-v-548e4bca]{width:64px;height:22px;border-radius:9999px}@keyframes shimmer-548e4bca{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state[data-v-548e4bca]{text-align:center;padding:3rem 1rem;color:#6b7280}.empty-icon[data-v-548e4bca]{width:48px;height:48px;margin-bottom:1rem;color:#d1d5db}.empty-state h3[data-v-548e4bca]{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.375rem}.empty-state p[data-v-548e4bca]{font-size:.875rem}.pagination-bar[data-v-548e4bca]{display:flex;justify-content:space-between;align-items:center;padding:.875rem 0;margin-top:.75rem;flex-wrap:wrap;gap:.75rem}.pagination-info[data-v-548e4bca]{font-size:.8rem;color:#6b7280}.pagination-controls[data-v-548e4bca]{display:flex;align-items:center;gap:.25rem}.page-btn[data-v-548e4bca]{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 .375rem;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;font-size:.8rem;cursor:pointer;transition:all .15s}.page-btn[data-v-548e4bca]:hover:not(:disabled):not(.active){border-color:#42b883;color:#42b883}.page-btn[data-v-548e4bca]:disabled{opacity:.4;cursor:not-allowed}.page-btn.active[data-v-548e4bca]{background:#42b883;border-color:#42b883;color:#fff;font-weight:600}.page-icon[data-v-548e4bca]{width:16px;height:16px}.page-ellipsis[data-v-548e4bca]{padding:0 .25rem;color:#9ca3af;font-size:.8rem}.action-buttons[data-v-548e4bca]{display:flex;gap:.375rem}.btn-action[data-v-548e4bca]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;transition:all .15s}.btn-view[data-v-548e4bca]:hover{border-color:#3b82f6;color:#3b82f6;background:#3b82f60d}.btn-edit[data-v-548e4bca]:hover{border-color:#42b883;color:#42b883;background:#42b8830d}.btn-photo[data-v-548e4bca]:hover{border-color:#8b5cf6;color:#8b5cf6;background:#8b5cf60d}.btn-delete[data-v-548e4bca]:hover{border-color:#e74c3c;color:#e74c3c;background:#e74c3c0d}.action-icon[data-v-548e4bca]{width:15px;height:15px}.btn-add[data-v-548e4bca]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:linear-gradient(135deg,#42b883,#3aa876);border:none;border-radius:8px;font-size:.875rem;color:#fff;cursor:pointer;font-weight:500;transition:all .2s}.btn-add[data-v-548e4bca]:hover{box-shadow:0 2px 8px #42b88366;transform:translateY(-1px)}.modal-overlay[data-v-548e4bca]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal[data-v-548e4bca]{background:#fff;border-radius:12px;width:100%;max-width:480px;box-shadow:0 20px 60px #00000026;animation:modalIn-548e4bca .2s ease-out}.modal-sm[data-v-548e4bca]{max-width:400px}@keyframes modalIn-548e4bca{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header[data-v-548e4bca]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3[data-v-548e4bca]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.modal-close[data-v-548e4bca]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:none;color:#6b7280;cursor:pointer;transition:all .15s}.modal-close[data-v-548e4bca]:hover{background:#f3f4f6;color:#1a1a2e}.close-icon[data-v-548e4bca]{width:18px;height:18px}.modal-body[data-v-548e4bca]{padding:1.5rem}.modal-footer[data-v-548e4bca]{display:flex;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.form-group[data-v-548e4bca]{margin-bottom:1rem}.form-group[data-v-548e4bca]:last-child{margin-bottom:0}.form-group label[data-v-548e4bca]{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:.375rem}.required[data-v-548e4bca]{color:#e74c3c}.form-input[data-v-548e4bca]{width:100%;padding:.625rem .75rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#1a1a2e;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-input[data-v-548e4bca]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.form-input[data-v-548e4bca]::placeholder{color:#9ca3af}.form-error[data-v-548e4bca]{padding:.625rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.825rem;margin-bottom:1rem}.btn-cancel[data-v-548e4bca]{padding:.625rem 1rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-cancel[data-v-548e4bca]:hover:not(:disabled){border-color:#d1d5db;background:#f9fafb}.btn-cancel[data-v-548e4bca]:disabled{opacity:.5;cursor:not-allowed}.btn-save[data-v-548e4bca]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1.25rem;border:none;border-radius:8px;background:linear-gradient(135deg,#42b883,#3aa876);color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-save[data-v-548e4bca]:hover:not(:disabled){box-shadow:0 2px 8px #42b88366}.btn-save[data-v-548e4bca]:disabled{opacity:.7;cursor:not-allowed}.btn-spinner[data-v-548e4bca]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-548e4bca .7s linear infinite}.photo-student-label[data-v-548e4bca]{font-size:.875rem;color:#6b7280;margin:0 0 1rem}.photo-success[data-v-548e4bca]{padding:.625rem .75rem;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;color:#065f46;font-size:.825rem;margin-bottom:.75rem}.photo-upload-area[data-v-548e4bca]{display:flex;flex-direction:column;align-items:center;gap:1rem}.photo-preview[data-v-548e4bca]{width:100%;max-width:280px;border-radius:10px;overflow:hidden;border:2px solid #e5e7eb}.photo-preview img[data-v-548e4bca]{width:100%;height:auto;display:block}.photo-placeholder[data-v-548e4bca]{width:100%;max-width:280px;padding:2.5rem 1rem;display:flex;flex-direction:column;align-items:center;gap:.625rem;border:2px dashed #d1d5db;border-radius:10px;color:#9ca3af;font-size:.825rem}.placeholder-icon[data-v-548e4bca]{width:40px;height:40px}.photo-file-label[data-v-548e4bca]{cursor:pointer}.photo-file-input[data-v-548e4bca]{display:none}.photo-file-btn[data-v-548e4bca]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#374151;cursor:pointer;transition:all .15s}.photo-file-btn[data-v-548e4bca]:hover{border-color:#42b883;color:#42b883}.view-loading[data-v-548e4bca]{display:flex;justify-content:center;padding:2rem 0}.view-details[data-v-548e4bca]{display:flex;flex-direction:column;gap:1.25rem}.view-title-row[data-v-548e4bca]{display:flex;align-items:center;gap:.75rem}.view-avatar[data-v-548e4bca]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#42b883,#2d8a62);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;flex-shrink:0}.view-avatar-photo[data-v-548e4bca]{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid #e5e7eb}.view-name[data-v-548e4bca]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.view-id[data-v-548e4bca]{font-family:SF Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75rem;color:#6b7280;background:#f3f4f6;padding:.125rem .375rem;border-radius:4px}.view-fields-grid[data-v-548e4bca]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.view-field[data-v-548e4bca]{display:flex;flex-direction:column;gap:.25rem}.view-label[data-v-548e4bca]{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.view-value[data-v-548e4bca]{font-size:.875rem;color:#374151}.btn-delete-confirm[data-v-548e4bca]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1.25rem;border:none;border-radius:8px;background:#e74c3c;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-delete-confirm[data-v-548e4bca]:hover:not(:disabled){background:#c0392b}.btn-delete-confirm[data-v-548e4bca]:disabled{opacity:.7;cursor:not-allowed}.delete-warning[data-v-548e4bca]{display:flex;gap:.75rem;align-items:flex-start}.warning-icon[data-v-548e4bca]{width:24px;height:24px;color:#f59e0b;flex-shrink:0;margin-top:.125rem}.delete-warning p[data-v-548e4bca]{margin:0;font-size:.9rem;color:#374151;line-height:1.5}@media(max-width:768px){.list-header[data-v-548e4bca]{flex-direction:column;gap:1rem}.toolbar[data-v-548e4bca]{flex-direction:column}.toolbar-right[data-v-548e4bca]{width:100%;justify-content:space-between}.search-wrapper[data-v-548e4bca]{min-width:unset;width:100%}.table-container[data-v-548e4bca]{overflow-x:auto}.student-table[data-v-548e4bca]{min-width:640px}.pagination-bar[data-v-548e4bca]{flex-direction:column;align-items:center}}.lesson-list[data-v-7ce17010]{width:100%}.list-header[data-v-7ce17010]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.list-header h2[data-v-7ce17010]{font-size:1.5rem;font-weight:600;color:#1a1a2e;margin:0}.subtitle[data-v-7ce17010]{color:#6b7280;font-size:.875rem;margin-top:.25rem}.header-stats[data-v-7ce17010]{display:flex;gap:1rem}.stat-card[data-v-7ce17010]{display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#42b883,#3aa876);color:#fff;padding:.75rem 1.25rem;border-radius:10px;min-width:100px}.stat-value[data-v-7ce17010]{font-size:1.5rem;font-weight:700;line-height:1.2}.stat-label[data-v-7ce17010]{font-size:.7rem;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.toolbar[data-v-7ce17010]{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.search-wrapper[data-v-7ce17010]{position:relative;flex:1;min-width:220px}.search-icon[data-v-7ce17010]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#9ca3af;pointer-events:none}.search-input[data-v-7ce17010]{width:100%;padding:.625rem .75rem .625rem 2.5rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#1a1a2e;background:#fff;transition:border-color .2s,box-shadow .2s}.search-input[data-v-7ce17010]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.search-input[data-v-7ce17010]::placeholder{color:#9ca3af}.toolbar-right[data-v-7ce17010]{display:flex;gap:.5rem;align-items:center}.page-size-select[data-v-7ce17010]{padding:.625rem .75rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#374151;background:#fff;cursor:pointer;transition:border-color .2s}.page-size-select[data-v-7ce17010]:focus{outline:none;border-color:#42b883}.btn-refresh[data-v-7ce17010]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#374151;cursor:pointer;transition:all .2s}.btn-refresh[data-v-7ce17010]:hover:not(:disabled){border-color:#42b883;color:#42b883}.btn-refresh[data-v-7ce17010]:disabled{opacity:.5;cursor:not-allowed}.btn-add[data-v-7ce17010]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;background:linear-gradient(135deg,#42b883,#3aa876);border:none;border-radius:8px;font-size:.875rem;color:#fff;cursor:pointer;font-weight:500;transition:all .2s}.btn-add[data-v-7ce17010]:hover{box-shadow:0 2px 8px #42b88366;transform:translateY(-1px)}.btn-icon[data-v-7ce17010]{width:16px;height:16px}.spinning[data-v-7ce17010]{animation:spin-7ce17010 .8s linear infinite}@keyframes spin-7ce17010{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner[data-v-7ce17010]{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;margin-bottom:1rem;font-size:.875rem}.error-icon[data-v-7ce17010]{width:20px;height:20px;flex-shrink:0}.btn-retry[data-v-7ce17010]{margin-left:auto;padding:.375rem .75rem;background:#b91c1c;color:#fff;border:none;border-radius:6px;font-size:.8rem;cursor:pointer;transition:background .2s}.btn-retry[data-v-7ce17010]:hover{background:#991b1b}.table-container[data-v-7ce17010]{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.lesson-table[data-v-7ce17010]{width:100%;border-collapse:collapse}.lesson-table thead[data-v-7ce17010]{background:#f9fafb}.lesson-table th[data-v-7ce17010]{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e5e7eb}.lesson-table td[data-v-7ce17010]{padding:.875rem 1rem;font-size:.875rem;color:#374151;border-bottom:1px solid #f3f4f6}.table-row[data-v-7ce17010]{transition:background .15s}.table-row[data-v-7ce17010]:hover{background:#f9fafb}.table-row:last-child td[data-v-7ce17010]{border-bottom:none}.lesson-name-cell[data-v-7ce17010]{display:flex;align-items:center;gap:.625rem}.avatar[data-v-7ce17010]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#42b883,#2d8a62);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.lesson-name[data-v-7ce17010]{font-weight:500;color:#1a1a2e}.description-text[data-v-7ce17010]{color:#6b7280;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.count-badge[data-v-7ce17010]{font-weight:600;color:#1a1a2e}.date-text[data-v-7ce17010]{color:#6b7280;font-size:.8rem}.action-buttons[data-v-7ce17010]{display:flex;gap:.375rem}.btn-action[data-v-7ce17010]{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;cursor:pointer;transition:all .15s}.btn-view[data-v-7ce17010]:hover{border-color:#3b82f6;color:#3b82f6;background:#3b82f60d}.btn-enroll[data-v-7ce17010]:hover{border-color:#8b5cf6;color:#8b5cf6;background:#8b5cf60d}.btn-schedule[data-v-7ce17010]:hover{border-color:#f59e0b;color:#f59e0b;background:#f59e0b0d}.btn-edit[data-v-7ce17010]:hover{border-color:#42b883;color:#42b883;background:#42b8830d}.btn-delete[data-v-7ce17010]:hover{border-color:#e74c3c;color:#e74c3c;background:#e74c3c0d}.action-icon[data-v-7ce17010]{width:15px;height:15px}.table-overlay[data-v-7ce17010]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffb3}.spinner[data-v-7ce17010]{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#42b883;border-radius:50%;animation:spin-7ce17010 .7s linear infinite}.skeleton-row td[data-v-7ce17010]{padding:1rem}.skeleton[data-v-7ce17010]{height:14px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer-7ce17010 1.5s infinite;border-radius:4px}.skeleton-text[data-v-7ce17010]{width:80px}.skeleton-text-long[data-v-7ce17010]{width:140px}.skeleton-text-short[data-v-7ce17010]{width:40px}@keyframes shimmer-7ce17010{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state[data-v-7ce17010]{text-align:center;padding:3rem 1rem;color:#6b7280}.empty-icon[data-v-7ce17010]{width:48px;height:48px;margin-bottom:1rem;color:#d1d5db}.empty-state h3[data-v-7ce17010]{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.375rem}.empty-state p[data-v-7ce17010]{font-size:.875rem}.pagination-bar[data-v-7ce17010]{display:flex;justify-content:space-between;align-items:center;padding:.875rem 0;margin-top:.75rem;flex-wrap:wrap;gap:.75rem}.pagination-info[data-v-7ce17010]{font-size:.8rem;color:#6b7280}.pagination-controls[data-v-7ce17010]{display:flex;align-items:center;gap:.25rem}.page-btn[data-v-7ce17010]{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 .375rem;border:1px solid #e5e7eb;border-radius:6px;background:#fff;color:#374151;font-size:.8rem;cursor:pointer;transition:all .15s}.page-btn[data-v-7ce17010]:hover:not(:disabled):not(.active){border-color:#42b883;color:#42b883}.page-btn[data-v-7ce17010]:disabled{opacity:.4;cursor:not-allowed}.page-btn.active[data-v-7ce17010]{background:#42b883;border-color:#42b883;color:#fff;font-weight:600}.page-icon[data-v-7ce17010]{width:16px;height:16px}.page-ellipsis[data-v-7ce17010]{padding:0 .25rem;color:#9ca3af;font-size:.8rem}.modal-overlay[data-v-7ce17010]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal[data-v-7ce17010]{background:#fff;border-radius:12px;width:100%;max-width:480px;box-shadow:0 20px 60px #00000026;animation:modalIn-7ce17010 .2s ease-out}.modal-sm[data-v-7ce17010]{max-width:400px}.modal-lg[data-v-7ce17010]{max-width:560px}@keyframes modalIn-7ce17010{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header[data-v-7ce17010]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3[data-v-7ce17010]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.modal-close[data-v-7ce17010]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:none;color:#6b7280;cursor:pointer;transition:all .15s}.modal-close[data-v-7ce17010]:hover{background:#f3f4f6;color:#1a1a2e}.close-icon[data-v-7ce17010]{width:18px;height:18px}.modal-body[data-v-7ce17010]{padding:1.5rem}.modal-footer[data-v-7ce17010]{display:flex;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.form-group[data-v-7ce17010]{margin-bottom:1rem}.form-group[data-v-7ce17010]:last-child{margin-bottom:0}.form-group label[data-v-7ce17010]{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:.375rem}.required[data-v-7ce17010]{color:#e74c3c}.form-input[data-v-7ce17010]{width:100%;padding:.625rem .75rem;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;color:#1a1a2e;background:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-input[data-v-7ce17010]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.form-input[data-v-7ce17010]::placeholder{color:#9ca3af}.form-textarea[data-v-7ce17010]{resize:vertical;font-family:inherit}.form-error[data-v-7ce17010]{padding:.625rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.825rem;margin-bottom:1rem}.btn-cancel[data-v-7ce17010]{padding:.625rem 1rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-cancel[data-v-7ce17010]:hover:not(:disabled){border-color:#d1d5db;background:#f9fafb}.btn-cancel[data-v-7ce17010]:disabled{opacity:.5;cursor:not-allowed}.btn-save[data-v-7ce17010]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1.25rem;border:none;border-radius:8px;background:linear-gradient(135deg,#42b883,#3aa876);color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-save[data-v-7ce17010]:hover:not(:disabled){box-shadow:0 2px 8px #42b88366}.btn-save[data-v-7ce17010]:disabled{opacity:.7;cursor:not-allowed}.btn-delete-confirm[data-v-7ce17010]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1.25rem;border:none;border-radius:8px;background:#e74c3c;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-delete-confirm[data-v-7ce17010]:hover:not(:disabled){background:#c0392b}.btn-delete-confirm[data-v-7ce17010]:disabled{opacity:.7;cursor:not-allowed}.btn-spinner[data-v-7ce17010]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-7ce17010 .7s linear infinite}.delete-warning[data-v-7ce17010]{display:flex;gap:.75rem;align-items:flex-start}.warning-icon[data-v-7ce17010]{width:24px;height:24px;color:#f59e0b;flex-shrink:0;margin-top:.125rem}.delete-warning p[data-v-7ce17010]{margin:0;font-size:.9rem;color:#374151;line-height:1.5}.enroll-search-wrapper[data-v-7ce17010]{position:relative;margin-bottom:.75rem}.enroll-selected-count[data-v-7ce17010]{font-size:.825rem;color:#374151;margin-bottom:.75rem;display:flex;align-items:center;gap:.375rem}.selected-badge[data-v-7ce17010]{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .375rem;background:linear-gradient(135deg,#42b883,#3aa876);color:#fff;border-radius:9999px;font-size:.75rem;font-weight:600}.enroll-success[data-v-7ce17010]{padding:.625rem .75rem;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;color:#065f46;font-size:.825rem;margin-bottom:.75rem}.enroll-student-list[data-v-7ce17010]{max-height:320px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px}.enroll-empty[data-v-7ce17010]{padding:2rem 1rem;text-align:center;color:#6b7280;font-size:.875rem}.enroll-student-item[data-v-7ce17010]{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;cursor:pointer;transition:background .15s;border-bottom:1px solid #f3f4f6}.enroll-student-item[data-v-7ce17010]:last-child{border-bottom:none}.enroll-student-item[data-v-7ce17010]:hover{background:#f9fafb}.enroll-student-item.selected[data-v-7ce17010]{background:#42b8830f}.enroll-checkbox[data-v-7ce17010]{width:16px;height:16px;accent-color:#42b883;cursor:pointer;flex-shrink:0}.enroll-student-info[data-v-7ce17010]{display:flex;flex-direction:column;min-width:0}.enroll-student-name[data-v-7ce17010]{font-size:.875rem;font-weight:500;color:#1a1a2e}.enroll-student-meta[data-v-7ce17010]{font-size:.75rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-lesson-label[data-v-7ce17010]{font-size:.875rem;color:#6b7280;margin:0 0 1rem}.form-row[data-v-7ce17010]{display:flex;gap:.75rem}.form-group-half[data-v-7ce17010]{flex:1}.view-loading[data-v-7ce17010]{display:flex;justify-content:center;padding:2rem 0}.view-details[data-v-7ce17010]{display:flex;flex-direction:column;gap:1.25rem}.view-title-row[data-v-7ce17010]{display:flex;align-items:center;gap:.75rem}.view-avatar[data-v-7ce17010]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#42b883,#2d8a62);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:600;flex-shrink:0}.view-name[data-v-7ce17010]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.view-id[data-v-7ce17010]{font-family:SF Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.7rem;color:#9ca3af}.view-field[data-v-7ce17010]{display:flex;flex-direction:column;gap:.25rem}.view-label[data-v-7ce17010]{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.view-value[data-v-7ce17010]{font-size:.9rem;color:#374151;line-height:1.5;margin:0}.view-value-sm[data-v-7ce17010]{font-size:.85rem;color:#374151}.view-stats-row[data-v-7ce17010]{display:flex;gap:.75rem}.view-stat[data-v-7ce17010]{flex:1;display:flex;flex-direction:column;align-items:center;padding:.75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px}.view-stat-value[data-v-7ce17010]{font-size:1.25rem;font-weight:700;color:#1a1a2e}.view-stat-label[data-v-7ce17010]{font-size:.7rem;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.view-timeslots[data-v-7ce17010]{display:flex;flex-direction:column;gap:.375rem}.timeslot-item[data-v-7ce17010]{padding:.5rem .75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:.825rem;color:#374151}.view-dates-row[data-v-7ce17010]{display:flex;gap:1.5rem}@media(max-width:768px){.list-header[data-v-7ce17010]{flex-direction:column;gap:1rem}.toolbar[data-v-7ce17010]{flex-direction:column}.toolbar-right[data-v-7ce17010]{width:100%;justify-content:space-between}.search-wrapper[data-v-7ce17010]{min-width:unset;width:100%}.table-container[data-v-7ce17010]{overflow-x:auto}.lesson-table[data-v-7ce17010]{min-width:640px}.pagination-bar[data-v-7ce17010]{flex-direction:column;align-items:center}.modal[data-v-7ce17010]{max-width:100%}}.student-layout[data-v-6578161d]{min-height:100vh;background:#f3f4f6;display:flex;flex-direction:column}.student-header[data-v-6578161d]{background:#1a1a2e;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:.875rem 2rem;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px #00000026}.header-brand[data-v-6578161d]{display:flex;align-items:center;gap:.625rem}.brand-icon[data-v-6578161d]{width:32px;height:32px;background:linear-gradient(135deg,#42b883,#3aa876);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;letter-spacing:.5px}.brand-name[data-v-6578161d]{font-size:.95rem;font-weight:600}.logout-btn[data-v-6578161d]{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#fffc;font-size:.875rem;cursor:pointer;transition:all .15s}.logout-btn[data-v-6578161d]:hover{background:#e74c3c33;border-color:#e74c3c66;color:#e74c3c}.logout-icon[data-v-6578161d]{width:16px;height:16px}.student-main[data-v-6578161d]{flex:1;padding:2rem;max-width:1100px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.profile-card[data-v-6578161d]{background:#fff;border-radius:16px;padding:2rem;display:flex;align-items:center;gap:1.5rem;box-shadow:0 1px 4px #0000000f;border:1px solid #e5e7eb}.profile-avatar[data-v-6578161d]{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#42b883,#2d8a62);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:700;flex-shrink:0}.profile-info[data-v-6578161d]{flex:1;min-width:0}.profile-name[data-v-6578161d]{margin:0 0 .375rem;font-size:1.25rem;font-weight:700;color:#1a1a2e}.profile-role-badge[data-v-6578161d]{display:inline-flex;align-items:center;padding:.2rem .625rem;background:#42b8831f;color:#2d8a62;border-radius:9999px;font-size:.75rem;font-weight:600;margin-bottom:.75rem}.profile-meta[data-v-6578161d]{display:flex;flex-wrap:wrap;gap:1rem}.profile-meta-item[data-v-6578161d]{display:flex;align-items:center;gap:.375rem;font-size:.825rem;color:#6b7280}.meta-icon[data-v-6578161d]{width:14px;height:14px;flex-shrink:0}.profile-stats[data-v-6578161d]{display:flex;gap:2rem;flex-shrink:0}.stat[data-v-6578161d]{display:flex;flex-direction:column;align-items:center;gap:.125rem}.stat-value[data-v-6578161d]{font-size:1.5rem;font-weight:700;color:#1a1a2e}.stat-label[data-v-6578161d]{font-size:.7rem;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.classes-section[data-v-6578161d]{display:flex;flex-direction:column;gap:1rem}.section-header[data-v-6578161d]{display:flex;align-items:center;justify-content:space-between}.section-title[data-v-6578161d]{margin:0;font-size:1.1rem;font-weight:700;color:#1a1a2e}.refresh-btn[data-v-6578161d]{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.825rem;color:#374151;cursor:pointer;transition:all .15s}.refresh-btn[data-v-6578161d]:hover:not(:disabled){border-color:#42b883;color:#42b883}.refresh-btn[data-v-6578161d]:disabled{opacity:.5;cursor:not-allowed}.btn-icon[data-v-6578161d]{width:15px;height:15px}.spinning[data-v-6578161d]{animation:spin-6578161d .8s linear infinite}@keyframes spin-6578161d{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.state-container[data-v-6578161d]{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:3rem 1rem;text-align:center;color:#6b7280;display:flex;flex-direction:column;align-items:center;gap:.75rem}.state-container p[data-v-6578161d]{margin:0;font-size:.875rem}.empty-icon[data-v-6578161d]{width:48px;height:48px;color:#d1d5db}.empty h4[data-v-6578161d]{margin:0;font-size:1rem;font-weight:600;color:#374151}.spinner[data-v-6578161d]{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#42b883;border-radius:50%;animation:spin-6578161d .7s linear infinite}.spinner.large[data-v-6578161d]{width:48px;height:48px;border-width:4px}.error-banner[data-v-6578161d]{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;font-size:.875rem}.error-icon[data-v-6578161d]{width:18px;height:18px;flex-shrink:0}.retry-btn[data-v-6578161d]{margin-left:auto;padding:.375rem .75rem;background:#b91c1c;color:#fff;border:none;border-radius:6px;font-size:.8rem;cursor:pointer}.lessons-grid[data-v-6578161d]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem}.lesson-card[data-v-6578161d]{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:box-shadow .15s,border-color .15s}.lesson-card[data-v-6578161d]:hover{box-shadow:0 4px 16px #00000014;border-color:#d1d5db}.lesson-card-header[data-v-6578161d]{display:flex;gap:.75rem;align-items:flex-start}.lesson-avatar[data-v-6578161d]{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#42b883,#2d8a62);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;flex-shrink:0}.lesson-title-wrap[data-v-6578161d]{flex:1;min-width:0}.lesson-name[data-v-6578161d]{margin:0 0 .25rem;font-size:.95rem;font-weight:600;color:#1a1a2e;line-height:1.3}.lesson-desc[data-v-6578161d]{margin:0;font-size:.8rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-schedule[data-v-6578161d]{background:#f9fafb;border:1px solid #f0f0f0;border-radius:8px;padding:.75rem;flex:1}.schedule-label[data-v-6578161d]{display:flex;align-items:center;gap:.375rem;margin:0 0 .5rem;font-size:.7rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.schedule-icon[data-v-6578161d]{width:13px;height:13px}.timeslot[data-v-6578161d]{display:flex;align-items:center;justify-content:space-between;padding:.3rem 0;border-bottom:1px solid #ececec;font-size:.8rem}.timeslot[data-v-6578161d]:last-child{border-bottom:none}.timeslot-day[data-v-6578161d]{font-weight:600;color:#374151}.timeslot-time[data-v-6578161d]{color:#6b7280;font-variant-numeric:tabular-nums}.no-schedule[data-v-6578161d]{margin:0;font-size:.8rem;color:#9ca3af;text-align:center;padding:.25rem 0}.verify-btn[data-v-6578161d]{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem;background:linear-gradient(135deg,#1a1a2e,#2d2d4e);color:#fff;border:none;border-radius:10px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;letter-spacing:.25px}.verify-btn[data-v-6578161d]:hover{box-shadow:0 4px 12px #1a1a2e59;transform:translateY(-1px)}.verify-icon[data-v-6578161d]{width:16px;height:16px}.face-overlay[data-v-6578161d]{position:fixed;inset:0;z-index:9999;background:#000;display:flex;flex-direction:column}.face-overlay-bar[data-v-6578161d]{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:#000000d9;border-bottom:1px solid rgba(255,255,255,.1);position:relative;z-index:10001;flex-shrink:0}.face-overlay-lesson[data-v-6578161d]{display:flex;align-items:center;gap:.5rem;color:#fffc;font-size:.875rem}.overlay-bar-icon[data-v-6578161d]{width:16px;height:16px;color:#42b883;flex-shrink:0}.face-close-btn[data-v-6578161d]{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:#e74c3c26;border:1px solid rgba(231,76,60,.3);border-radius:8px;color:#e74c3c;font-size:.8rem;cursor:pointer;transition:all .15s}.face-close-btn[data-v-6578161d]:hover{background:#e74c3c40}.close-icon[data-v-6578161d]{width:14px;height:14px}.face-match-wrap[data-v-6578161d]{flex:1;overflow:hidden;display:flex;flex-direction:column}.result-screen[data-v-6578161d]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#fff;text-align:center;padding:2rem}.result-screen h2[data-v-6578161d]{margin:0;font-size:1.5rem}.result-screen p[data-v-6578161d]{margin:0;font-size:.9rem;color:#ffffffb3;max-width:360px}.result-icon-wrap[data-v-6578161d]{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center}.result-icon-wrap.success[data-v-6578161d]{background:#42b88333;border:2px solid #42b883}.result-icon-wrap.fail[data-v-6578161d]{background:#e74c3c33;border:2px solid #e74c3c}.result-icon[data-v-6578161d]{width:32px;height:32px}.result-icon-wrap.success .result-icon[data-v-6578161d]{stroke:#42b883}.result-icon-wrap.fail .result-icon[data-v-6578161d]{stroke:#e74c3c}.auto-close[data-v-6578161d]{font-size:.75rem!important;color:#fff6!important}.result-actions[data-v-6578161d]{display:flex;gap:.75rem;margin-top:.5rem}.btn-retry-verify[data-v-6578161d]{padding:.625rem 1.5rem;background:#42b883;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-retry-verify[data-v-6578161d]:hover{background:#3aa876}.btn-cancel-verify[data-v-6578161d]{padding:.625rem 1.5rem;background:#ffffff1a;color:#ffffffb3;border:1px solid rgba(255,255,255,.15);border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-cancel-verify[data-v-6578161d]:hover{background:#ffffff26}@media(max-width:640px){.student-main[data-v-6578161d]{padding:1rem}.profile-card[data-v-6578161d]{flex-wrap:wrap;gap:1rem}.profile-stats[data-v-6578161d]{width:100%;justify-content:flex-start;gap:1.5rem;padding-top:.75rem;border-top:1px solid #f0f0f0}.lessons-grid[data-v-6578161d]{grid-template-columns:1fr}}.profile-page[data-v-4af014c4]{max-width:520px;margin:0 auto;padding:1rem;display:flex;flex-direction:column;gap:1.5rem}.profile-hero[data-v-4af014c4]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center}.hero-avatar[data-v-4af014c4]{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#42b883,#2d8a62);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2.25rem;font-weight:700;box-shadow:0 4px 16px #42b8834d}.hero-name[data-v-4af014c4]{margin:0;font-size:1.35rem;font-weight:700;color:#1a1a2e}.hero-role-badge[data-v-4af014c4]{display:inline-flex;align-items:center;padding:.3rem 1rem;background:#42b8831a;color:#2d8a62;border:1px solid rgba(66,184,131,.25);border-radius:9999px;font-size:.8rem;font-weight:600}.profile-details[data-v-4af014c4]{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:1.5rem}.details-title[data-v-4af014c4]{margin:0 0 1rem;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.75px}.details-list[data-v-4af014c4]{display:flex;flex-direction:column;gap:0}.detail-row[data-v-4af014c4]{display:flex;align-items:center;justify-content:space-between;padding:.875rem 0;border-bottom:1px solid #f3f4f6}.detail-row[data-v-4af014c4]:last-child{border-bottom:none}.detail-label[data-v-4af014c4]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#6b7280}.detail-icon[data-v-4af014c4]{width:15px;height:15px;flex-shrink:0}.detail-value[data-v-4af014c4]{font-size:.875rem;font-weight:500;color:#1a1a2e}.role-chip[data-v-4af014c4]{padding:.2rem .625rem;background:#42b8831a;color:#2d8a62;border-radius:9999px;font-size:.775rem}.active-chip[data-v-4af014c4]{padding:.2rem .625rem;background:#3b82f61a;color:#1d4ed8;border-radius:9999px;font-size:.775rem}.rc-page[data-v-037535d8]{display:flex;flex-direction:column;gap:1.5rem}.rc-header[data-v-037535d8]{display:flex;align-items:flex-start;justify-content:space-between}.rc-title[data-v-037535d8]{font-size:1.5rem;font-weight:700;color:#111827;margin:0 0 .25rem}.rc-subtitle[data-v-037535d8]{font-size:.875rem;color:#6b7280;margin:0}.filter-card[data-v-037535d8]{background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.filter-grid[data-v-037535d8]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;align-items:end}.filter-field[data-v-037535d8]{display:flex;flex-direction:column;gap:.375rem}.filter-field--toggle[data-v-037535d8]{justify-content:flex-end}.filter-label[data-v-037535d8]{font-size:.75rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.04em}.input-icon-wrap[data-v-037535d8]{position:relative}.input-icon[data-v-037535d8]{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);width:15px;height:15px;color:#9ca3af;pointer-events:none}.filter-input[data-v-037535d8],.filter-select[data-v-037535d8]{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:8px;font-size:.875rem;color:#111827;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.filter-input.with-icon[data-v-037535d8]{padding-left:2rem}.filter-input[data-v-037535d8]:focus,.filter-select[data-v-037535d8]:focus{border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.filter-select.mini[data-v-037535d8]{width:auto;padding:.375rem .6rem}.toggle-btn[data-v-037535d8]{display:inline-flex;align-items:center;gap:.625rem;background:none;border:none;cursor:pointer;padding:0}.toggle-track[data-v-037535d8]{width:40px;height:22px;background:#d1d5db;border-radius:999px;position:relative;transition:background .2s;flex-shrink:0}.toggle-btn.active .toggle-track[data-v-037535d8]{background:#42b883}.toggle-thumb[data-v-037535d8]{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.toggle-btn.active .toggle-thumb[data-v-037535d8]{transform:translate(18px)}.toggle-label-text[data-v-037535d8]{font-size:.875rem;color:#374151}.filter-actions[data-v-037535d8]{display:flex;gap:.75rem}.btn-primary[data-v-037535d8]{padding:.5rem 1.25rem;background:#42b883;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary[data-v-037535d8]:hover{background:#38a374}.btn-ghost[data-v-037535d8]{padding:.5rem 1.25rem;background:none;color:#6b7280;border:1px solid #e5e7eb;border-radius:8px;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-ghost[data-v-037535d8]:hover{background:#f3f4f6;color:#374151}.error-banner[data-v-037535d8]{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:.75rem 1rem;font-size:.875rem}.table-card[data-v-037535d8]{background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden}.table-loading[data-v-037535d8]{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem;color:#6b7280;font-size:.875rem}.spinner[data-v-037535d8]{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#42b883;border-radius:50%;animation:spin-037535d8 .7s linear infinite}@keyframes spin-037535d8{to{transform:rotate(360deg)}}.table-meta[data-v-037535d8]{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;border-bottom:1px solid #f3f4f6}.table-count[data-v-037535d8]{font-size:.8rem;color:#6b7280}.page-size-wrap[data-v-037535d8]{display:flex;align-items:center;gap:.5rem}.table-wrap[data-v-037535d8]{overflow-x:auto}.rc-table[data-v-037535d8]{width:100%;border-collapse:collapse;font-size:.875rem}.rc-table th[data-v-037535d8]{padding:.75rem 1.25rem;text-align:left;font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;background:#f9fafb;border-bottom:1px solid #e5e7eb;white-space:nowrap}.rc-table td[data-v-037535d8]{padding:.875rem 1.25rem;color:#111827;border-bottom:1px solid #f3f4f6;vertical-align:middle}.rc-table tbody tr:last-child td[data-v-037535d8]{border-bottom:none}.rc-table tbody tr:hover td[data-v-037535d8]{background:#fafafa}.empty-row[data-v-037535d8]{text-align:center;color:#9ca3af;padding:2.5rem!important}.similarity-badge[data-v-037535d8]{display:inline-block;padding:.2rem .55rem;border-radius:6px;font-size:.775rem;font-weight:600}.badge-success[data-v-037535d8]{background:#d1fae5;color:#065f46}.badge-warning[data-v-037535d8]{background:#fef3c7;color:#92400e}.badge-danger[data-v-037535d8]{background:#fee2e2;color:#991b1b}.status-pill[data-v-037535d8]{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600}.pill-ok[data-v-037535d8]{background:#d1fae5;color:#065f46}.pill-fail[data-v-037535d8]{background:#fee2e2;color:#991b1b}.date-cell[data-v-037535d8]{color:#6b7280;white-space:nowrap}.pagination[data-v-037535d8]{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1rem 1.25rem;border-top:1px solid #f3f4f6}.pg-btn[data-v-037535d8]{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .875rem;background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.8rem;font-weight:500;color:#374151;cursor:pointer;transition:all .15s}.pg-btn[data-v-037535d8]:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.pg-btn[data-v-037535d8]:disabled{opacity:.4;cursor:not-allowed}.pg-icon[data-v-037535d8]{width:14px;height:14px}.pg-info[data-v-037535d8]{font-size:.8rem;color:#6b7280}.admin-layout[data-v-3f666bdb]{display:flex;min-height:100vh;background:#f3f4f6}.sidebar[data-v-3f666bdb]{width:240px;background:#1a1a2e;color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}.sidebar-brand[data-v-3f666bdb]{display:flex;align-items:center;gap:.75rem;padding:1.25rem;border-bottom:1px solid rgba(255,255,255,.08)}.brand-icon[data-v-3f666bdb]{width:32px;height:32px;background:linear-gradient(135deg,#42b883,#3aa876);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;letter-spacing:.5px}.brand-text[data-v-3f666bdb]{font-size:.95rem;font-weight:600;letter-spacing:-.25px}.sidebar-nav[data-v-3f666bdb]{flex:1;padding:.75rem}.nav-item[data-v-3f666bdb]{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;border-radius:8px;color:#fff9;font-size:.875rem;text-decoration:none;transition:all .15s}.nav-item[data-v-3f666bdb]:hover{background:#ffffff0f;color:#ffffffe6}.nav-item.active[data-v-3f666bdb]{background:#42b88326;color:#42b883}.nav-icon[data-v-3f666bdb]{width:18px;height:18px;flex-shrink:0}.sidebar-footer[data-v-3f666bdb]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.08)}.user-info[data-v-3f666bdb]{display:flex;align-items:center;gap:.625rem}.user-avatar[data-v-3f666bdb]{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#42b883,#2d8a62);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.user-details[data-v-3f666bdb]{display:flex;flex-direction:column}.user-name[data-v-3f666bdb]{font-size:.8rem;font-weight:500;color:#ffffffe6}.user-role[data-v-3f666bdb]{font-size:.675rem;color:#ffffff73}.logout-btn[data-v-3f666bdb]{padding:.375rem;background:none;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#ffffff80;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.logout-btn[data-v-3f666bdb]:hover{background:#e74c3c26;border-color:#e74c3c4d;color:#e74c3c}.logout-icon[data-v-3f666bdb]{width:18px;height:18px}.admin-main[data-v-3f666bdb]{flex:1;padding:2rem;overflow-y:auto;max-width:1200px}@media(max-width:768px){.admin-layout[data-v-3f666bdb]{flex-direction:column}.sidebar[data-v-3f666bdb]{width:100%;height:auto;position:relative;flex-direction:row;align-items:center;padding:.5rem 1rem}.sidebar-brand[data-v-3f666bdb]{border-bottom:none;padding:0}.sidebar-nav[data-v-3f666bdb]{display:flex;padding:0;margin-left:auto}.sidebar-footer[data-v-3f666bdb]{border-top:none;padding:0;margin-left:.75rem}.user-details[data-v-3f666bdb]{display:none}.admin-main[data-v-3f666bdb]{padding:1rem}}
