: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-b83d5aa7]{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5}.login-card[data-v-b83d5aa7]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}h1[data-v-b83d5aa7]{text-align:center;margin-bottom:1.5rem;color:#333}.form-group[data-v-b83d5aa7]{margin-bottom:1rem}label[data-v-b83d5aa7]{display:block;margin-bottom:.5rem;font-weight:500;color:#555}input[data-v-b83d5aa7]{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;box-sizing:border-box}input[data-v-b83d5aa7]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 2px #42b88333}input[data-v-b83d5aa7]:disabled{background-color:#f5f5f5;cursor:not-allowed}button[data-v-b83d5aa7]{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-b83d5aa7]:hover:not(:disabled){background-color:#3aa876}button[data-v-b83d5aa7]:disabled{background-color:#ccc;cursor:not-allowed}.error-message[data-v-b83d5aa7]{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-116d7a46]{width:100%}.list-header[data-v-116d7a46]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.list-header h2[data-v-116d7a46]{font-size:1.5rem;font-weight:600;color:#1a1a2e;margin:0}.subtitle[data-v-116d7a46]{color:#6b7280;font-size:.875rem;margin-top:.25rem}.header-stats[data-v-116d7a46]{display:flex;gap:1rem}.stat-card[data-v-116d7a46]{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-116d7a46]{font-size:1.5rem;font-weight:700;line-height:1.2}.stat-label[data-v-116d7a46]{font-size:.7rem;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.toolbar[data-v-116d7a46]{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.search-wrapper[data-v-116d7a46]{position:relative;flex:1;min-width:220px}.search-icon[data-v-116d7a46]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#9ca3af;pointer-events:none}.search-input[data-v-116d7a46]{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-116d7a46]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.search-input[data-v-116d7a46]::placeholder{color:#9ca3af}.toolbar-right[data-v-116d7a46]{display:flex;gap:.5rem;align-items:center}.page-size-select[data-v-116d7a46]{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-116d7a46]:focus{outline:none;border-color:#42b883}.btn-refresh[data-v-116d7a46]{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-116d7a46]:hover:not(:disabled){border-color:#42b883;color:#42b883}.btn-refresh[data-v-116d7a46]:disabled{opacity:.5;cursor:not-allowed}.btn-icon[data-v-116d7a46]{width:16px;height:16px}.spinning[data-v-116d7a46]{animation:spin-116d7a46 .8s linear infinite}@keyframes spin-116d7a46{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner[data-v-116d7a46]{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-116d7a46]{width:20px;height:20px;flex-shrink:0}.btn-retry[data-v-116d7a46]{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-116d7a46]:hover{background:#991b1b}.table-container[data-v-116d7a46]{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.student-table[data-v-116d7a46]{width:100%;border-collapse:collapse}.student-table thead[data-v-116d7a46]{background:#f9fafb}.student-table th[data-v-116d7a46]{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-116d7a46]{padding:.875rem 1rem;font-size:.875rem;color:#374151;border-bottom:1px solid #f3f4f6}.table-row[data-v-116d7a46]{transition:background .15s}.table-row[data-v-116d7a46]:hover{background:#f9fafb}.table-row:last-child td[data-v-116d7a46]{border-bottom:none}.student-id[data-v-116d7a46]{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-116d7a46]{display:flex;align-items:center;gap:.625rem}.avatar[data-v-116d7a46]{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-116d7a46]{width:36px;height:36px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid #e5e7eb}.student-name[data-v-116d7a46]{font-weight:500;color:#1a1a2e}.email[data-v-116d7a46]{color:#6b7280}.badge[data-v-116d7a46]{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-success[data-v-116d7a46]{background:#ecfdf5;color:#065f46}.badge-warning[data-v-116d7a46]{background:#fffbeb;color:#92400e}.check-count[data-v-116d7a46]{font-weight:600;color:#1a1a2e}.check-zero[data-v-116d7a46]{color:#9ca3af;font-weight:400}.date-text[data-v-116d7a46]{color:#6b7280;font-size:.8rem}.table-overlay[data-v-116d7a46]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffb3}.spinner[data-v-116d7a46]{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#42b883;border-radius:50%;animation:spin-116d7a46 .7s linear infinite}.skeleton-row td[data-v-116d7a46]{padding:1rem}.skeleton[data-v-116d7a46]{height:14px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer-116d7a46 1.5s infinite;border-radius:4px}.skeleton-text[data-v-116d7a46]{width:80px}.skeleton-text-long[data-v-116d7a46]{width:140px}.skeleton-text-short[data-v-116d7a46]{width:40px}.skeleton-badge[data-v-116d7a46]{width:64px;height:22px;border-radius:9999px}@keyframes shimmer-116d7a46{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state[data-v-116d7a46]{text-align:center;padding:3rem 1rem;color:#6b7280}.empty-icon[data-v-116d7a46]{width:48px;height:48px;margin-bottom:1rem;color:#d1d5db}.empty-state h3[data-v-116d7a46]{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.375rem}.empty-state p[data-v-116d7a46]{font-size:.875rem}.pagination-bar[data-v-116d7a46]{display:flex;justify-content:space-between;align-items:center;padding:.875rem 0;margin-top:.75rem;flex-wrap:wrap;gap:.75rem}.pagination-info[data-v-116d7a46]{font-size:.8rem;color:#6b7280}.pagination-controls[data-v-116d7a46]{display:flex;align-items:center;gap:.25rem}.page-btn[data-v-116d7a46]{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-116d7a46]:hover:not(:disabled):not(.active){border-color:#42b883;color:#42b883}.page-btn[data-v-116d7a46]:disabled{opacity:.4;cursor:not-allowed}.page-btn.active[data-v-116d7a46]{background:#42b883;border-color:#42b883;color:#fff;font-weight:600}.page-icon[data-v-116d7a46]{width:16px;height:16px}.page-ellipsis[data-v-116d7a46]{padding:0 .25rem;color:#9ca3af;font-size:.8rem}.action-buttons[data-v-116d7a46]{display:flex;gap:.375rem}.btn-action[data-v-116d7a46]{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-116d7a46]:hover{border-color:#3b82f6;color:#3b82f6;background:#3b82f60d}.btn-edit[data-v-116d7a46]:hover{border-color:#42b883;color:#42b883;background:#42b8830d}.btn-photo[data-v-116d7a46]:hover{border-color:#8b5cf6;color:#8b5cf6;background:#8b5cf60d}.btn-delete[data-v-116d7a46]:hover{border-color:#e74c3c;color:#e74c3c;background:#e74c3c0d}.action-icon[data-v-116d7a46]{width:15px;height:15px}.btn-add[data-v-116d7a46]{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-116d7a46]:hover{box-shadow:0 2px 8px #42b88366;transform:translateY(-1px)}.modal-overlay[data-v-116d7a46]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal[data-v-116d7a46]{background:#fff;border-radius:12px;width:100%;max-width:480px;box-shadow:0 20px 60px #00000026;animation:modalIn-116d7a46 .2s ease-out}.modal-sm[data-v-116d7a46]{max-width:400px}@keyframes modalIn-116d7a46{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header[data-v-116d7a46]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3[data-v-116d7a46]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.modal-close[data-v-116d7a46]{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-116d7a46]:hover{background:#f3f4f6;color:#1a1a2e}.close-icon[data-v-116d7a46]{width:18px;height:18px}.modal-body[data-v-116d7a46]{padding:1.5rem}.modal-footer[data-v-116d7a46]{display:flex;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.form-group[data-v-116d7a46]{margin-bottom:1rem}.form-group[data-v-116d7a46]:last-child{margin-bottom:0}.form-group label[data-v-116d7a46]{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:.375rem}.required[data-v-116d7a46]{color:#e74c3c}.form-input[data-v-116d7a46]{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-116d7a46]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.form-input[data-v-116d7a46]::placeholder{color:#9ca3af}.form-error[data-v-116d7a46]{padding:.625rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.825rem;margin-bottom:1rem}.btn-cancel[data-v-116d7a46]{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-116d7a46]:hover:not(:disabled){border-color:#d1d5db;background:#f9fafb}.btn-cancel[data-v-116d7a46]:disabled{opacity:.5;cursor:not-allowed}.btn-save[data-v-116d7a46]{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-116d7a46]:hover:not(:disabled){box-shadow:0 2px 8px #42b88366}.btn-save[data-v-116d7a46]:disabled{opacity:.7;cursor:not-allowed}.btn-spinner[data-v-116d7a46]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-116d7a46 .7s linear infinite}.photo-student-label[data-v-116d7a46]{font-size:.875rem;color:#6b7280;margin:0 0 1rem}.photo-success[data-v-116d7a46]{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-116d7a46]{display:flex;flex-direction:column;align-items:center;gap:1rem}.photo-preview[data-v-116d7a46]{width:100%;max-width:280px;border-radius:10px;overflow:hidden;border:2px solid #e5e7eb}.photo-preview img[data-v-116d7a46]{width:100%;height:auto;display:block}.photo-placeholder[data-v-116d7a46]{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-116d7a46]{width:40px;height:40px}.photo-file-label[data-v-116d7a46]{cursor:pointer}.photo-file-input[data-v-116d7a46]{display:none}.photo-file-btn[data-v-116d7a46]{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-116d7a46]:hover{border-color:#42b883;color:#42b883}.view-loading[data-v-116d7a46]{display:flex;justify-content:center;padding:2rem 0}.view-details[data-v-116d7a46]{display:flex;flex-direction:column;gap:1.25rem}.view-title-row[data-v-116d7a46]{display:flex;align-items:center;gap:.75rem}.view-avatar[data-v-116d7a46]{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-116d7a46]{width:40px;height:40px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid #e5e7eb}.view-name[data-v-116d7a46]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.view-id[data-v-116d7a46]{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-116d7a46]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.view-field[data-v-116d7a46]{display:flex;flex-direction:column;gap:.25rem}.view-label[data-v-116d7a46]{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.view-value[data-v-116d7a46]{font-size:.875rem;color:#374151}.btn-delete-confirm[data-v-116d7a46]{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-116d7a46]:hover:not(:disabled){background:#c0392b}.btn-delete-confirm[data-v-116d7a46]:disabled{opacity:.7;cursor:not-allowed}.delete-warning[data-v-116d7a46]{display:flex;gap:.75rem;align-items:flex-start}.warning-icon[data-v-116d7a46]{width:24px;height:24px;color:#f59e0b;flex-shrink:0;margin-top:.125rem}.delete-warning p[data-v-116d7a46]{margin:0;font-size:.9rem;color:#374151;line-height:1.5}@media(max-width:768px){.list-header[data-v-116d7a46]{flex-direction:column;gap:1rem}.toolbar[data-v-116d7a46]{flex-direction:column}.toolbar-right[data-v-116d7a46]{width:100%;justify-content:space-between}.search-wrapper[data-v-116d7a46]{min-width:unset;width:100%}.table-container[data-v-116d7a46]{overflow-x:auto}.student-table[data-v-116d7a46]{min-width:640px}.pagination-bar[data-v-116d7a46]{flex-direction:column;align-items:center}}.lesson-list[data-v-cc3dff15]{width:100%}.list-header[data-v-cc3dff15]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem}.list-header h2[data-v-cc3dff15]{font-size:1.5rem;font-weight:600;color:#1a1a2e;margin:0}.subtitle[data-v-cc3dff15]{color:#6b7280;font-size:.875rem;margin-top:.25rem}.header-stats[data-v-cc3dff15]{display:flex;gap:1rem}.stat-card[data-v-cc3dff15]{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-cc3dff15]{font-size:1.5rem;font-weight:700;line-height:1.2}.stat-label[data-v-cc3dff15]{font-size:.7rem;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.toolbar[data-v-cc3dff15]{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.search-wrapper[data-v-cc3dff15]{position:relative;flex:1;min-width:220px}.search-icon[data-v-cc3dff15]{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:18px;height:18px;color:#9ca3af;pointer-events:none}.search-input[data-v-cc3dff15]{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-cc3dff15]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.search-input[data-v-cc3dff15]::placeholder{color:#9ca3af}.toolbar-right[data-v-cc3dff15]{display:flex;gap:.5rem;align-items:center}.page-size-select[data-v-cc3dff15]{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-cc3dff15]:focus{outline:none;border-color:#42b883}.btn-refresh[data-v-cc3dff15]{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-cc3dff15]:hover:not(:disabled){border-color:#42b883;color:#42b883}.btn-refresh[data-v-cc3dff15]:disabled{opacity:.5;cursor:not-allowed}.btn-add[data-v-cc3dff15]{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-cc3dff15]:hover{box-shadow:0 2px 8px #42b88366;transform:translateY(-1px)}.btn-icon[data-v-cc3dff15]{width:16px;height:16px}.spinning[data-v-cc3dff15]{animation:spin-cc3dff15 .8s linear infinite}@keyframes spin-cc3dff15{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-banner[data-v-cc3dff15]{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-cc3dff15]{width:20px;height:20px;flex-shrink:0}.btn-retry[data-v-cc3dff15]{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-cc3dff15]:hover{background:#991b1b}.table-container[data-v-cc3dff15]{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.lesson-table[data-v-cc3dff15]{width:100%;border-collapse:collapse}.lesson-table thead[data-v-cc3dff15]{background:#f9fafb}.lesson-table th[data-v-cc3dff15]{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-cc3dff15]{padding:.875rem 1rem;font-size:.875rem;color:#374151;border-bottom:1px solid #f3f4f6}.table-row[data-v-cc3dff15]{transition:background .15s}.table-row[data-v-cc3dff15]:hover{background:#f9fafb}.table-row:last-child td[data-v-cc3dff15]{border-bottom:none}.lesson-name-cell[data-v-cc3dff15]{display:flex;align-items:center;gap:.625rem}.avatar[data-v-cc3dff15]{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-cc3dff15]{font-weight:500;color:#1a1a2e}.description-text[data-v-cc3dff15]{color:#6b7280;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.count-badge[data-v-cc3dff15]{font-weight:600;color:#1a1a2e}.date-text[data-v-cc3dff15]{color:#6b7280;font-size:.8rem}.action-buttons[data-v-cc3dff15]{display:flex;gap:.375rem}.btn-action[data-v-cc3dff15]{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-cc3dff15]:hover{border-color:#3b82f6;color:#3b82f6;background:#3b82f60d}.btn-enroll[data-v-cc3dff15]:hover{border-color:#8b5cf6;color:#8b5cf6;background:#8b5cf60d}.btn-schedule[data-v-cc3dff15]:hover{border-color:#f59e0b;color:#f59e0b;background:#f59e0b0d}.btn-edit[data-v-cc3dff15]:hover{border-color:#42b883;color:#42b883;background:#42b8830d}.btn-delete[data-v-cc3dff15]:hover{border-color:#e74c3c;color:#e74c3c;background:#e74c3c0d}.action-icon[data-v-cc3dff15]{width:15px;height:15px}.table-overlay[data-v-cc3dff15]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#ffffffb3}.spinner[data-v-cc3dff15]{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#42b883;border-radius:50%;animation:spin-cc3dff15 .7s linear infinite}.skeleton-row td[data-v-cc3dff15]{padding:1rem}.skeleton[data-v-cc3dff15]{height:14px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer-cc3dff15 1.5s infinite;border-radius:4px}.skeleton-text[data-v-cc3dff15]{width:80px}.skeleton-text-long[data-v-cc3dff15]{width:140px}.skeleton-text-short[data-v-cc3dff15]{width:40px}@keyframes shimmer-cc3dff15{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state[data-v-cc3dff15]{text-align:center;padding:3rem 1rem;color:#6b7280}.empty-icon[data-v-cc3dff15]{width:48px;height:48px;margin-bottom:1rem;color:#d1d5db}.empty-state h3[data-v-cc3dff15]{font-size:1rem;font-weight:600;color:#374151;margin-bottom:.375rem}.empty-state p[data-v-cc3dff15]{font-size:.875rem}.pagination-bar[data-v-cc3dff15]{display:flex;justify-content:space-between;align-items:center;padding:.875rem 0;margin-top:.75rem;flex-wrap:wrap;gap:.75rem}.pagination-info[data-v-cc3dff15]{font-size:.8rem;color:#6b7280}.pagination-controls[data-v-cc3dff15]{display:flex;align-items:center;gap:.25rem}.page-btn[data-v-cc3dff15]{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-cc3dff15]:hover:not(:disabled):not(.active){border-color:#42b883;color:#42b883}.page-btn[data-v-cc3dff15]:disabled{opacity:.4;cursor:not-allowed}.page-btn.active[data-v-cc3dff15]{background:#42b883;border-color:#42b883;color:#fff;font-weight:600}.page-icon[data-v-cc3dff15]{width:16px;height:16px}.page-ellipsis[data-v-cc3dff15]{padding:0 .25rem;color:#9ca3af;font-size:.8rem}.modal-overlay[data-v-cc3dff15]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal[data-v-cc3dff15]{background:#fff;border-radius:12px;width:100%;max-width:480px;box-shadow:0 20px 60px #00000026;animation:modalIn-cc3dff15 .2s ease-out}.modal-sm[data-v-cc3dff15]{max-width:400px}.modal-lg[data-v-cc3dff15]{max-width:560px}@keyframes modalIn-cc3dff15{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header[data-v-cc3dff15]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h3[data-v-cc3dff15]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.modal-close[data-v-cc3dff15]{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-cc3dff15]:hover{background:#f3f4f6;color:#1a1a2e}.close-icon[data-v-cc3dff15]{width:18px;height:18px}.modal-body[data-v-cc3dff15]{padding:1.5rem}.modal-footer[data-v-cc3dff15]{display:flex;justify-content:flex-end;gap:.625rem;padding:1rem 1.5rem;border-top:1px solid #e5e7eb}.form-group[data-v-cc3dff15]{margin-bottom:1rem}.form-group[data-v-cc3dff15]:last-child{margin-bottom:0}.form-group label[data-v-cc3dff15]{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:.375rem}.required[data-v-cc3dff15]{color:#e74c3c}.form-input[data-v-cc3dff15]{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-cc3dff15]:focus{outline:none;border-color:#42b883;box-shadow:0 0 0 3px #42b88326}.form-input[data-v-cc3dff15]::placeholder{color:#9ca3af}.form-textarea[data-v-cc3dff15]{resize:vertical;font-family:inherit}.form-error[data-v-cc3dff15]{padding:.625rem .75rem;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:.825rem;margin-bottom:1rem}.btn-cancel[data-v-cc3dff15]{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-cc3dff15]:hover:not(:disabled){border-color:#d1d5db;background:#f9fafb}.btn-cancel[data-v-cc3dff15]:disabled{opacity:.5;cursor:not-allowed}.btn-save[data-v-cc3dff15]{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-cc3dff15]:hover:not(:disabled){box-shadow:0 2px 8px #42b88366}.btn-save[data-v-cc3dff15]:disabled{opacity:.7;cursor:not-allowed}.btn-delete-confirm[data-v-cc3dff15]{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-cc3dff15]:hover:not(:disabled){background:#c0392b}.btn-delete-confirm[data-v-cc3dff15]:disabled{opacity:.7;cursor:not-allowed}.btn-spinner[data-v-cc3dff15]{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-cc3dff15 .7s linear infinite}.delete-warning[data-v-cc3dff15]{display:flex;gap:.75rem;align-items:flex-start}.warning-icon[data-v-cc3dff15]{width:24px;height:24px;color:#f59e0b;flex-shrink:0;margin-top:.125rem}.delete-warning p[data-v-cc3dff15]{margin:0;font-size:.9rem;color:#374151;line-height:1.5}.enroll-search-wrapper[data-v-cc3dff15]{position:relative;margin-bottom:.75rem}.enroll-selected-count[data-v-cc3dff15]{font-size:.825rem;color:#374151;margin-bottom:.75rem;display:flex;align-items:center;gap:.375rem}.selected-badge[data-v-cc3dff15]{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-cc3dff15]{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-cc3dff15]{max-height:320px;overflow-y:auto;border:1px solid #e5e7eb;border-radius:8px}.enroll-empty[data-v-cc3dff15]{padding:2rem 1rem;text-align:center;color:#6b7280;font-size:.875rem}.enroll-student-item[data-v-cc3dff15]{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-cc3dff15]:last-child{border-bottom:none}.enroll-student-item[data-v-cc3dff15]:hover{background:#f9fafb}.enroll-student-item.selected[data-v-cc3dff15]{background:#42b8830f}.enroll-checkbox[data-v-cc3dff15]{width:16px;height:16px;accent-color:#42b883;cursor:pointer;flex-shrink:0}.enroll-student-info[data-v-cc3dff15]{display:flex;flex-direction:column;min-width:0}.enroll-student-name[data-v-cc3dff15]{font-size:.875rem;font-weight:500;color:#1a1a2e}.enroll-student-meta[data-v-cc3dff15]{font-size:.75rem;color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts-lesson-label[data-v-cc3dff15]{font-size:.875rem;color:#6b7280;margin:0 0 1rem}.form-row[data-v-cc3dff15]{display:flex;gap:.75rem}.form-group-half[data-v-cc3dff15]{flex:1}.view-loading[data-v-cc3dff15]{display:flex;justify-content:center;padding:2rem 0}.view-details[data-v-cc3dff15]{display:flex;flex-direction:column;gap:1.25rem}.view-title-row[data-v-cc3dff15]{display:flex;align-items:center;gap:.75rem}.view-avatar[data-v-cc3dff15]{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-cc3dff15]{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a2e}.view-id[data-v-cc3dff15]{font-family:SF Mono,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.7rem;color:#9ca3af}.view-field[data-v-cc3dff15]{display:flex;flex-direction:column;gap:.25rem}.view-label[data-v-cc3dff15]{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.view-value[data-v-cc3dff15]{font-size:.9rem;color:#374151;line-height:1.5;margin:0}.view-value-sm[data-v-cc3dff15]{font-size:.85rem;color:#374151}.view-stats-row[data-v-cc3dff15]{display:flex;gap:.75rem}.view-stat[data-v-cc3dff15]{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-cc3dff15]{font-size:1.25rem;font-weight:700;color:#1a1a2e}.view-stat-label[data-v-cc3dff15]{font-size:.7rem;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.view-timeslots[data-v-cc3dff15]{display:flex;flex-direction:column;gap:.375rem}.timeslot-item[data-v-cc3dff15]{padding:.5rem .75rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;font-size:.825rem;color:#374151}.view-dates-row[data-v-cc3dff15]{display:flex;gap:1.5rem}@media(max-width:768px){.list-header[data-v-cc3dff15]{flex-direction:column;gap:1rem}.toolbar[data-v-cc3dff15]{flex-direction:column}.toolbar-right[data-v-cc3dff15]{width:100%;justify-content:space-between}.search-wrapper[data-v-cc3dff15]{min-width:unset;width:100%}.table-container[data-v-cc3dff15]{overflow-x:auto}.lesson-table[data-v-cc3dff15]{min-width:640px}.pagination-bar[data-v-cc3dff15]{flex-direction:column;align-items:center}.modal[data-v-cc3dff15]{max-width:100%}}.dashboard[data-v-d9da4377]{padding:2rem;max-width:800px;margin:0 auto}.dashboard header[data-v-d9da4377]{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.dashboard h1[data-v-d9da4377]{margin:0;color:#333}.logout-btn-simple[data-v-d9da4377]{padding:.5rem 1rem;background-color:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.logout-btn-simple[data-v-d9da4377]:hover{background-color:#c0392b}.dashboard main[data-v-d9da4377]{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.admin-layout[data-v-d9da4377]{display:flex;min-height:100vh;background:#f3f4f6}.sidebar[data-v-d9da4377]{width:240px;background:#1a1a2e;color:#fff;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}.sidebar-brand[data-v-d9da4377]{display:flex;align-items:center;gap:.75rem;padding:1.25rem;border-bottom:1px solid rgba(255,255,255,.08)}.brand-icon[data-v-d9da4377]{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-d9da4377]{font-size:.95rem;font-weight:600;letter-spacing:-.25px}.sidebar-nav[data-v-d9da4377]{flex:1;padding:.75rem}.nav-item[data-v-d9da4377]{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-d9da4377]:hover{background:#ffffff0f;color:#ffffffe6}.nav-item.active[data-v-d9da4377]{background:#42b88326;color:#42b883}.nav-icon[data-v-d9da4377]{width:18px;height:18px;flex-shrink:0}.sidebar-footer[data-v-d9da4377]{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-d9da4377]{display:flex;align-items:center;gap:.625rem}.user-avatar[data-v-d9da4377]{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-d9da4377]{display:flex;flex-direction:column}.user-name[data-v-d9da4377]{font-size:.8rem;font-weight:500;color:#ffffffe6}.user-role[data-v-d9da4377]{font-size:.675rem;color:#ffffff73}.logout-btn[data-v-d9da4377]{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-d9da4377]:hover{background:#e74c3c26;border-color:#e74c3c4d;color:#e74c3c}.logout-icon[data-v-d9da4377]{width:18px;height:18px}.admin-main[data-v-d9da4377]{flex:1;padding:2rem;overflow-y:auto;max-width:1200px}@media(max-width:768px){.admin-layout[data-v-d9da4377]{flex-direction:column}.sidebar[data-v-d9da4377]{width:100%;height:auto;position:relative;flex-direction:row;align-items:center;padding:.5rem 1rem}.sidebar-brand[data-v-d9da4377]{border-bottom:none;padding:0}.sidebar-nav[data-v-d9da4377]{display:flex;padding:0;margin-left:auto}.sidebar-footer[data-v-d9da4377]{border-top:none;padding:0;margin-left:.75rem}.user-details[data-v-d9da4377]{display:none}.admin-main[data-v-d9da4377]{padding:1rem}}
