#app{min-height:100vh}.logo-img[data-v-41217e8e]{width:100px}.header[data-v-41217e8e]{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#fff;border-radius:var(--radius);margin-bottom:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.logo[data-v-41217e8e]{font-weight:700;font-size:20px;color:var(--primary)}.logo[data-v-41217e8e],.user-info[data-v-41217e8e]{display:flex;align-items:center;gap:10px}.avatar[data-v-41217e8e]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.main-nav[data-v-41217e8e]{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.nav-btn[data-v-41217e8e]{background:#fff;border:none;border-radius:var(--radius);padding:12px 20px;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:8px;box-shadow:0 4px 8px rgba(0,0,0,.05);color:var(--dark)}.nav-btn.active[data-v-41217e8e],.nav-btn[data-v-41217e8e]:hover{background:var(--secondary);transform:translateY(-3px);box-shadow:0 6px 12px rgba(0,0,0,.1)}.content-area[data-v-41217e8e]{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.logout-btn[data-v-41217e8e]{background:linear-gradient(135deg,#ff6b6b,#ff8787);border:none;border-radius:50%;width:36px;height:36px;color:#fff;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;margin-left:10px;box-shadow:0 2px 8px hsla(0,100%,71%,.3)}.logout-btn[data-v-41217e8e]:hover{transform:scale(1.1);box-shadow:0 4px 12px hsla(0,100%,71%,.5)}.settings-btn[data-v-41217e8e]{background:linear-gradient(135deg,var(--secondary),#b5f0ff);border:none;border-radius:50%;width:36px;height:36px;color:#275;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;margin-right:8px;box-shadow:0 2px 8px rgba(160,231,255,.4)}.settings-btn[data-v-41217e8e]:hover{transform:scale(1.1) rotate(30deg);box-shadow:0 4px 12px rgba(160,231,255,.6)}.login-container[data-v-bff1d622]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--secondary),#ffdede);font-family:Comic Sans MS,Segoe UI,cursive,sans-serif;position:relative;overflow:hidden}.star[data-v-bff1d622]{position:absolute;font-size:24px;animation:twinkle-bff1d622 2s infinite alternate}.star1[data-v-bff1d622]{top:20px;right:20px;animation-delay:0s}.star2[data-v-bff1d622]{top:60%;left:10%;font-size:32px;animation-delay:.5s}.star3[data-v-bff1d622]{bottom:15%;right:15%;font-size:28px;animation-delay:1s}@keyframes twinkle-bff1d622{0%{opacity:.5;transform:scale(1)}to{opacity:1;transform:scale(1.2)}}.login-card[data-v-bff1d622]{width:360px;background:hsla(0,0%,100%,.95);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.15);padding:40px 30px;animation:float-bff1d622 3s ease-in-out infinite alternate;backdrop-filter:blur(10px)}@keyframes float-bff1d622{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.login-title[data-v-bff1d622]{text-align:center;color:var(--dark);margin-bottom:30px;font-size:24px}.input-group[data-v-bff1d622]{margin-bottom:20px}.cute-input[data-v-bff1d622]{width:100%;padding:12px 15px;border-radius:var(--radius);border:2px solid #ffb6c1;font-size:14px;transition:all .3s;box-sizing:border-box}.cute-input[data-v-bff1d622]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 10px rgba(255,158,188,.3)}.error-msg[data-v-bff1d622]{color:#f44;font-size:12px;margin-top:5px;display:block}.role-select[data-v-bff1d622]{display:flex;justify-content:space-around;margin-bottom:25px;flex-wrap:wrap;gap:10px}.role-select label[data-v-bff1d622]{display:flex;align-items:center;cursor:pointer;font-size:14px;color:var(--dark)}.role-select input[type=radio][data-v-bff1d622]{margin-right:5px;cursor:pointer}.cute-btn[data-v-bff1d622]{width:100%;background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:14px;color:#fff;cursor:pointer;transition:all .3s;font-size:16px;font-weight:600;box-shadow:0 4px 12px rgba(255,158,188,.3)}.cute-btn[data-v-bff1d622]:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 16px rgba(255,158,188,.5)}.cute-btn[data-v-bff1d622]:disabled{opacity:.6;cursor:not-allowed}.links[data-v-bff1d622]{display:flex;justify-content:space-between;margin-top:20px;font-size:14px}.links a[data-v-bff1d622]{color:var(--primary);text-decoration:none}.links a[data-v-bff1d622]:hover{text-decoration:underline}.tip-box[data-v-bff1d622]{margin-top:25px;padding:15px;background:linear-gradient(135deg,#fff5f7,#f0f9ff);border-radius:var(--radius);border-left:4px solid var(--secondary)}.tip-box p[data-v-bff1d622]{margin:5px 0;font-size:12px;color:#666}.tip-box strong[data-v-bff1d622]{color:var(--dark)}@media (max-width:480px){.login-card[data-v-bff1d622]{width:90%;padding:30px 20px}.role-select[data-v-bff1d622]{flex-direction:column;align-items:flex-start}}.register-container[data-v-1a2de6e0]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--secondary),#ffdede);font-family:Comic Sans MS,Segoe UI,cursive,sans-serif;position:relative;overflow:hidden;padding:20px}.star[data-v-1a2de6e0]{position:absolute;font-size:24px;animation:twinkle-1a2de6e0 2s infinite alternate}.star1[data-v-1a2de6e0]{top:20px;right:20px;animation-delay:0s}.star2[data-v-1a2de6e0]{top:60%;left:10%;font-size:32px;animation-delay:.5s}.star3[data-v-1a2de6e0]{bottom:15%;right:15%;font-size:28px;animation-delay:1s}.star4[data-v-1a2de6e0]{top:30%;right:25%;font-size:20px;animation-delay:1.5s}@keyframes twinkle-1a2de6e0{0%{opacity:.5;transform:scale(1)}to{opacity:1;transform:scale(1.2)}}.register-card[data-v-1a2de6e0]{width:90%;max-width:480px;background:hsla(0,0%,100%,.95);border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.15);padding:40px 30px;animation:float-1a2de6e0 3s ease-in-out infinite alternate;backdrop-filter:blur(10px);max-height:90vh;overflow-y:auto}@keyframes float-1a2de6e0{0%{transform:translateY(0)}to{transform:translateY(-10px)}}.register-title[data-v-1a2de6e0]{text-align:center;color:var(--dark);margin-bottom:30px;font-size:24px}.input-group[data-v-1a2de6e0]{margin-bottom:20px}.input-label[data-v-1a2de6e0]{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--dark);margin-bottom:8px}.cute-input[data-v-1a2de6e0]{width:100%;padding:12px 15px;border-radius:var(--radius);border:2px solid #ffb6c1;font-size:14px;transition:all .3s;box-sizing:border-box}.cute-input[data-v-1a2de6e0]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 10px rgba(255,158,188,.3)}.error-msg[data-v-1a2de6e0]{color:#f44;font-size:12px;margin-top:5px;display:block}.role-select[data-v-1a2de6e0]{margin-bottom:25px}.section-label[data-v-1a2de6e0]{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--dark);margin-bottom:12px}.role-options[data-v-1a2de6e0]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.role-option[data-v-1a2de6e0]{cursor:pointer}.role-option input[type=radio][data-v-1a2de6e0]{display:none}.role-card[data-v-1a2de6e0]{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;border-radius:12px;border:2px solid #ffb6c1;background:#fff;transition:all .3s;text-align:center}.role-card i[data-v-1a2de6e0]{font-size:24px;color:var(--primary)}.role-card strong[data-v-1a2de6e0]{font-size:14px;color:var(--dark);display:block}.role-card small[data-v-1a2de6e0]{font-size:11px;color:#999;display:block}.role-option input[type=radio]:checked+.role-card[data-v-1a2de6e0]{border-color:var(--primary);background:linear-gradient(135deg,#fff5f7,#ffe0eb);box-shadow:0 4px 12px rgba(255,158,188,.3)}.cute-btn[data-v-1a2de6e0]{width:100%;background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:14px;color:#fff;cursor:pointer;transition:all .3s;font-size:16px;font-weight:600;box-shadow:0 4px 12px rgba(255,158,188,.3);display:flex;align-items:center;justify-content:center;gap:8px}.cute-btn[data-v-1a2de6e0]:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 16px rgba(255,158,188,.5)}.cute-btn[data-v-1a2de6e0]:disabled{opacity:.6;cursor:not-allowed}.login-link[data-v-1a2de6e0]{text-align:center;margin-top:20px;font-size:14px;color:#666}.login-link a[data-v-1a2de6e0]{color:var(--primary);text-decoration:none;font-weight:600}.login-link a[data-v-1a2de6e0]:hover{text-decoration:underline}.tip-box[data-v-1a2de6e0]{margin-top:25px;padding:15px;background:linear-gradient(135deg,#fff5f7,#f0f9ff);border-radius:var(--radius);border-left:4px solid var(--secondary)}.tip-box p[data-v-1a2de6e0]{margin:5px 0;font-size:12px;color:#666}.tip-box strong[data-v-1a2de6e0]{color:var(--dark)}.register-card[data-v-1a2de6e0]::-webkit-scrollbar{width:6px}.register-card[data-v-1a2de6e0]::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.register-card[data-v-1a2de6e0]::-webkit-scrollbar-thumb{background:var(--primary);border-radius:3px}@media (max-width:480px){.register-card[data-v-1a2de6e0]{padding:30px 20px}.role-options[data-v-1a2de6e0]{grid-template-columns:1fr}}.section-title[data-v-4548b564]{margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid rgba(90,107,140,.1);display:flex;align-items:center;gap:10px}.card-grid[data-v-4548b564]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.card[data-v-4548b564]{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 4px 8px rgba(0,0,0,.05);transition:all .3s;border-left:5px solid var(--primary)}.card[data-v-4548b564]:hover{transform:translateY(-5px);box-shadow:0 8px 16px rgba(0,0,0,.1)}.card h3[data-v-4548b564]{margin-bottom:10px;display:flex;align-items:center;gap:8px;color:var(--dark)}.card p[data-v-4548b564]{color:#666;margin-bottom:15px;font-size:14px}.cute-btn[data-v-4548b564]{background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:10px 20px;color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:inline-flex;align-items:center;gap:8px}.cute-btn[data-v-4548b564]:hover{transform:translateY(-3px);box-shadow:0 4px 8px rgba(255,158,188,.4)}@media (max-width:768px){.card-grid[data-v-4548b564]{grid-template-columns:1fr}}.page-title[data-v-70b3e9c4]{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--dark)}.page-desc[data-v-70b3e9c4]{color:#666;margin-bottom:20px}.action-bar[data-v-70b3e9c4]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.search-box[data-v-70b3e9c4]{flex:1;min-width:250px;position:relative;display:flex;align-items:center;background:#f8f9fa;border-radius:var(--radius);padding:10px 15px;border:2px solid transparent;transition:all .3s}.search-box[data-v-70b3e9c4]:focus-within{border-color:var(--secondary);background:#fff}.search-box i[data-v-70b3e9c4]{color:#999;margin-right:10px}.search-box input[data-v-70b3e9c4]{flex:1;border:none;background:transparent;outline:none;font-size:14px}.filter-box .role-select[data-v-70b3e9c4]{padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.filter-box .role-select[data-v-70b3e9c4]:focus{border-color:var(--secondary)}.add-btn[data-v-70b3e9c4]{background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:10px 20px;color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(255,158,188,.3)}.add-btn[data-v-70b3e9c4]:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.table-container[data-v-70b3e9c4]{overflow-x:auto;margin-bottom:20px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-70b3e9c4]::-webkit-scrollbar{display:none}.teacher-table[data-v-70b3e9c4]{width:100%;border-collapse:collapse;background:#fff}.teacher-table thead[data-v-70b3e9c4]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.teacher-table th[data-v-70b3e9c4]{padding:15px;text-align:left;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary)}.teacher-table td[data-v-70b3e9c4]{padding:15px;border-bottom:1px solid #f0f0f0}.teacher-row[data-v-70b3e9c4]{transition:all .3s}.teacher-row[data-v-70b3e9c4]:hover{background:#fff5f7;transform:translateX(3px)}.empty-row[data-v-70b3e9c4]{text-align:center;padding:60px 20px!important;color:#999}.empty-row i[data-v-70b3e9c4]{margin-bottom:10px;opacity:.5}.empty-row p[data-v-70b3e9c4]{margin-top:10px}.teacher-name[data-v-70b3e9c4]{display:flex;align-items:center;gap:10px}.mini-avatar[data-v-70b3e9c4]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.gender-tag[data-v-70b3e9c4]{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:12px;font-size:13px}.gender-tag.male[data-v-70b3e9c4]{background:#e3f2fd;color:#1976d2}.gender-tag.female[data-v-70b3e9c4]{background:#fce4ec;color:#c2185b}.role-tag[data-v-70b3e9c4]{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600}.role-tag.admin[data-v-70b3e9c4]{background:linear-gradient(135deg,gold,orange);color:#fff}.role-tag.teacher[data-v-70b3e9c4]{background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff}.role-tag.lecturer[data-v-70b3e9c4]{background:linear-gradient(135deg,#2196f3,#42a5f5);color:#fff}.status-tag[data-v-70b3e9c4]{display:inline-block;padding:4px 12px;border-radius:12px;font-size:13px}.status-tag.active[data-v-70b3e9c4]{background:#e8f5e9;color:#4caf50}.status-tag.inactive[data-v-70b3e9c4]{background:#ffebee;color:#f44336}.action-btns[data-v-70b3e9c4]{display:flex;gap:8px}.icon-btn[data-v-70b3e9c4]{width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff}.edit-btn[data-v-70b3e9c4]{background:linear-gradient(135deg,#4caf50,#66bb6a)}.edit-btn[data-v-70b3e9c4]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(76,175,80,.4)}.reset-btn[data-v-70b3e9c4]{background:linear-gradient(135deg,#ff9800,#ffb74d)}.reset-btn[data-v-70b3e9c4]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(255,152,0,.4)}.delete-btn[data-v-70b3e9c4]{background:linear-gradient(135deg,#ff6b6b,#ff8787)}.delete-btn[data-v-70b3e9c4]:hover{transform:scale(1.1);box-shadow:0 4px 12px hsla(0,100%,71%,.4)}.view-btn[data-v-70b3e9c4]{background:linear-gradient(135deg,#4fc3f7,#29b6f6)}.view-btn[data-v-70b3e9c4]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(79,195,247,.4)}.pagination[data-v-70b3e9c4]{display:flex;justify-content:space-between;align-items:center;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);flex-wrap:wrap;gap:15px}.pagination-info[data-v-70b3e9c4]{color:var(--dark);font-size:14px}.pagination-controls[data-v-70b3e9c4]{display:flex;align-items:center;gap:8px}.page-btn[data-v-70b3e9c4]{min-width:36px;height:36px;border:none;border-radius:var(--radius);background:#fff;color:var(--dark);cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0 10px}.page-btn[data-v-70b3e9c4]:hover:not(:disabled){background:var(--secondary);transform:translateY(-2px);box-shadow:0 4px 8px rgba(160,231,255,.4)}.page-btn.active[data-v-70b3e9c4]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;font-weight:600}.page-btn[data-v-70b3e9c4]:disabled{opacity:.3;cursor:not-allowed}.page-size-select[data-v-70b3e9c4]{padding:8px 12px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.page-size-select[data-v-70b3e9c4]:focus{border-color:var(--secondary)}.dialog-overlay[data-v-70b3e9c4]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-70b3e9c4 .3s}@keyframes fadeIn-70b3e9c4{0%{opacity:0}to{opacity:1}}.dialog-box[data-v-70b3e9c4]{background:#fff;border-radius:16px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp-70b3e9c4 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.dialog-box[data-v-70b3e9c4]::-webkit-scrollbar{display:none}@keyframes slideUp-70b3e9c4{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.dialog-header[data-v-70b3e9c4]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0}.dialog-header h3[data-v-70b3e9c4]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.close-btn[data-v-70b3e9c4]{width:32px;height:32px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-70b3e9c4]:hover{background:#e0e0e0;transform:rotate(90deg)}.dialog-body[data-v-70b3e9c4]{padding:20px}.form-group[data-v-70b3e9c4]{margin-bottom:20px}.form-group label[data-v-70b3e9c4]{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--dark);font-weight:600;font-size:14px}.form-group input[data-v-70b3e9c4],.form-group select[data-v-70b3e9c4],.form-group textarea[data-v-70b3e9c4]{width:100%;padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px;font-family:inherit}.form-group input[data-v-70b3e9c4]:focus,.form-group select[data-v-70b3e9c4]:focus,.form-group textarea[data-v-70b3e9c4]:focus{border-color:var(--secondary)}.form-group textarea[data-v-70b3e9c4]{resize:vertical;min-height:60px}.form-group input[data-v-70b3e9c4]:disabled{background:#f5f5f5;cursor:not-allowed}.form-row[data-v-70b3e9c4]{display:grid;grid-template-columns:1fr 1fr;gap:15px}.error-msg[data-v-70b3e9c4]{color:#f44;font-size:12px;margin-top:5px;display:block}.tip-msg[data-v-70b3e9c4]{color:#999;font-size:12px;margin-top:5px;display:block}.dialog-footer[data-v-70b3e9c4]{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:2px solid #f0f0f0}.cancel-btn[data-v-70b3e9c4],.confirm-btn[data-v-70b3e9c4]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px}.cancel-btn[data-v-70b3e9c4]{background:#f0f0f0;color:var(--dark)}.cancel-btn[data-v-70b3e9c4]:hover{background:#e0e0e0}.confirm-btn[data-v-70b3e9c4]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-70b3e9c4]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.detail-dialog[data-v-70b3e9c4]{max-width:800px}.detail-section[data-v-70b3e9c4]{margin-bottom:30px}.detail-section[data-v-70b3e9c4]:last-child{margin-bottom:0}.section-title[data-v-70b3e9c4]{display:flex;align-items:center;gap:10px;color:var(--dark);margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #f0f0f0;font-size:16px}.detail-grid[data-v-70b3e9c4]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.detail-item[data-v-70b3e9c4]{display:flex;align-items:flex-start;gap:10px}.detail-item.full-width[data-v-70b3e9c4]{grid-column:1/-1}.detail-item label[data-v-70b3e9c4]{font-weight:600;color:#666;min-width:80px;flex-shrink:0}.detail-item span[data-v-70b3e9c4]{color:var(--dark);word-break:break-word}@media (max-width:768px){.action-bar[data-v-70b3e9c4]{flex-direction:column}.search-box[data-v-70b3e9c4]{width:100%}.form-row[data-v-70b3e9c4]{grid-template-columns:1fr}.teacher-table[data-v-70b3e9c4]{font-size:13px}.teacher-table td[data-v-70b3e9c4],.teacher-table th[data-v-70b3e9c4]{padding:10px 8px}.pagination[data-v-70b3e9c4]{flex-direction:column;align-items:flex-start}.pagination-controls[data-v-70b3e9c4]{width:100%;justify-content:center}.detail-grid[data-v-70b3e9c4]{grid-template-columns:1fr}.action-btns[data-v-70b3e9c4]{flex-wrap:wrap}}.page-title[data-v-2d9ca410]{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--dark)}.page-desc[data-v-2d9ca410]{color:#666;margin-bottom:20px}.action-bar[data-v-2d9ca410]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.search-box[data-v-2d9ca410]{flex:1;min-width:250px;position:relative;display:flex;align-items:center;background:#f8f9fa;border-radius:var(--radius);padding:10px 15px;border:2px solid transparent;transition:all .3s}.search-box[data-v-2d9ca410]:focus-within{border-color:var(--secondary);background:#fff}.search-box i[data-v-2d9ca410]{color:#999;margin-right:10px}.search-box input[data-v-2d9ca410]{flex:1;border:none;background:transparent;outline:none;font-size:14px}.filter-box .status-select[data-v-2d9ca410]{padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.filter-box .status-select[data-v-2d9ca410]:focus{border-color:var(--secondary)}.add-btn[data-v-2d9ca410]{background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:10px 20px;color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(255,158,188,.3)}.add-btn[data-v-2d9ca410]:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.table-container[data-v-2d9ca410]{overflow-x:auto;margin-bottom:20px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-2d9ca410]::-webkit-scrollbar{display:none}.subject-table[data-v-2d9ca410]{width:100%;border-collapse:collapse;background:#fff}.subject-table thead[data-v-2d9ca410]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.subject-table th[data-v-2d9ca410]{padding:15px;text-align:left;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary);white-space:nowrap}.subject-table td[data-v-2d9ca410]{padding:15px;border-bottom:1px solid #f0f0f0}.subject-row[data-v-2d9ca410]{transition:all .3s}.subject-row[data-v-2d9ca410]:hover{background:#fff5f7;transform:translateX(3px)}.empty-row[data-v-2d9ca410]{text-align:center;padding:60px 20px!important;color:#999}.empty-row i[data-v-2d9ca410]{margin-bottom:10px;opacity:.5}.subject-code[data-v-2d9ca410]{display:inline-block;padding:4px 12px;border-radius:8px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2;font-family:Courier New,monospace;font-weight:600;font-size:13px}.subject-name[data-v-2d9ca410]{display:flex;align-items:center;gap:10px}.subject-icon[data-v-2d9ca410]{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px}.teacher-info[data-v-2d9ca410]{display:flex;align-items:center;gap:8px;color:var(--dark)}.teacher-info i[data-v-2d9ca410]{color:var(--secondary)}.schedule-tags[data-v-2d9ca410]{display:flex;flex-wrap:wrap;gap:5px}.day-tag[data-v-2d9ca410]{display:inline-block;padding:3px 8px;border-radius:8px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);color:#f57c00;font-size:12px;font-weight:600}.hours-badge[data-v-2d9ca410]{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#388e3c}.credit-badge[data-v-2d9ca410],.hours-badge[data-v-2d9ca410]{display:inline-block;padding:4px 12px;border-radius:12px;font-weight:600;font-size:13px}.credit-badge[data-v-2d9ca410]{background:linear-gradient(135deg,#fff9c4,#ffeb3b);color:#f57f17}.status-tag[data-v-2d9ca410]{display:inline-block;padding:4px 12px;border-radius:12px;font-size:13px}.status-tag.active[data-v-2d9ca410]{background:#e8f5e9;color:#4caf50}.status-tag.inactive[data-v-2d9ca410]{background:#ffebee;color:#f44336}.action-btns[data-v-2d9ca410]{display:flex;gap:8px}.icon-btn[data-v-2d9ca410]{width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff}.view-btn[data-v-2d9ca410]{background:linear-gradient(135deg,#2196f3,#42a5f5)}.view-btn[data-v-2d9ca410]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(33,150,243,.4)}.edit-btn[data-v-2d9ca410]{background:linear-gradient(135deg,#4caf50,#66bb6a)}.edit-btn[data-v-2d9ca410]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(76,175,80,.4)}.delete-btn[data-v-2d9ca410]{background:linear-gradient(135deg,#ff6b6b,#ff8787)}.delete-btn[data-v-2d9ca410]:hover{transform:scale(1.1);box-shadow:0 4px 12px hsla(0,100%,71%,.4)}.pagination[data-v-2d9ca410]{display:flex;justify-content:space-between;align-items:center;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);flex-wrap:wrap;gap:15px}.pagination-info[data-v-2d9ca410]{color:var(--dark);font-size:14px}.pagination-controls[data-v-2d9ca410]{display:flex;align-items:center;gap:8px}.page-btn[data-v-2d9ca410]{min-width:36px;height:36px;border:none;border-radius:var(--radius);background:#fff;color:var(--dark);cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0 10px}.page-btn[data-v-2d9ca410]:hover:not(:disabled){background:var(--secondary);transform:translateY(-2px);box-shadow:0 4px 8px rgba(160,231,255,.4)}.page-btn.active[data-v-2d9ca410]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;font-weight:600}.page-btn[data-v-2d9ca410]:disabled{opacity:.3;cursor:not-allowed}.page-size-select[data-v-2d9ca410]{padding:8px 12px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.page-size-select[data-v-2d9ca410]:focus{border-color:var(--secondary)}.dialog-overlay[data-v-2d9ca410]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-2d9ca410 .3s}@keyframes fadeIn-2d9ca410{0%{opacity:0}to{opacity:1}}.dialog-box[data-v-2d9ca410]{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp-2d9ca410 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.dialog-box[data-v-2d9ca410]::-webkit-scrollbar{display:none}@keyframes slideUp-2d9ca410{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.dialog-header[data-v-2d9ca410]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0}.dialog-header h3[data-v-2d9ca410]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.close-btn[data-v-2d9ca410]{width:32px;height:32px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-2d9ca410]:hover{background:#e0e0e0;transform:rotate(90deg)}.dialog-body[data-v-2d9ca410]{padding:20px}.form-group[data-v-2d9ca410]{margin-bottom:20px}.form-group label[data-v-2d9ca410]{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--dark);font-weight:600;font-size:14px}.form-group input[data-v-2d9ca410],.form-group select[data-v-2d9ca410],.form-group textarea[data-v-2d9ca410]{width:100%;padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px;font-family:inherit}.form-group textarea[data-v-2d9ca410]{resize:vertical}.form-group input[data-v-2d9ca410]:focus,.form-group select[data-v-2d9ca410]:focus,.form-group textarea[data-v-2d9ca410]:focus{border-color:var(--secondary)}.form-group input[data-v-2d9ca410]:disabled{background:#f5f5f5;cursor:not-allowed}.form-row[data-v-2d9ca410]{display:grid;grid-template-columns:1fr 1fr;gap:15px}.week-selector[data-v-2d9ca410]{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px}.day-checkbox[data-v-2d9ca410]{display:flex;align-items:center;justify-content:center;padding:10px;border-radius:var(--radius);border:2px solid #e0e0e0;cursor:pointer;transition:all .3s;background:#fff;-webkit-user-select:none;-moz-user-select:none;user-select:none}.day-checkbox[data-v-2d9ca410]:hover{border-color:var(--secondary);transform:translateY(-2px)}.day-checkbox.checked[data-v-2d9ca410]{background:linear-gradient(135deg,var(--secondary),#b5f0ff);border-color:var(--secondary);color:#fff;font-weight:600}.error-msg[data-v-2d9ca410]{color:#f44;font-size:12px;margin-top:5px;display:block}.dialog-footer[data-v-2d9ca410]{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:2px solid #f0f0f0}.cancel-btn[data-v-2d9ca410],.confirm-btn[data-v-2d9ca410]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px}.cancel-btn[data-v-2d9ca410]{background:#f0f0f0;color:var(--dark)}.cancel-btn[data-v-2d9ca410]:hover{background:#e0e0e0}.confirm-btn[data-v-2d9ca410]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-2d9ca410]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.detail-box[data-v-2d9ca410]{background:#fff;border-radius:16px;width:90%;max-width:500px;animation:slideUp-2d9ca410 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2)}.detail-header[data-v-2d9ca410]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:16px 16px 0 0}.detail-header h3[data-v-2d9ca410]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.detail-body[data-v-2d9ca410]{padding:20px}.detail-item[data-v-2d9ca410]{padding:15px 0;border-bottom:1px solid #f0f0f0;display:flex;align-items:center}.detail-item[data-v-2d9ca410]:last-child{border-bottom:none}.detail-label[data-v-2d9ca410]{font-weight:600;color:var(--dark);min-width:100px;font-size:14px}.detail-value[data-v-2d9ca410]{color:#666;font-size:14px}.detail-description[data-v-2d9ca410]{color:#666;line-height:1.6;font-size:14px;margin:0}.detail-footer[data-v-2d9ca410]{padding:20px;border-top:2px solid #f0f0f0;display:flex;justify-content:center}@media (max-width:768px){.action-bar[data-v-2d9ca410]{flex-direction:column}.search-box[data-v-2d9ca410]{width:100%}.form-row[data-v-2d9ca410]{grid-template-columns:1fr}.week-selector[data-v-2d9ca410]{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.subject-table[data-v-2d9ca410]{font-size:13px}.subject-table td[data-v-2d9ca410],.subject-table th[data-v-2d9ca410]{padding:10px 8px}.pagination[data-v-2d9ca410]{flex-direction:column;align-items:flex-start}.pagination-controls[data-v-2d9ca410]{width:100%;justify-content:center}}.page-title[data-v-1d8ab326]{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--dark)}.page-desc[data-v-1d8ab326]{color:#666;margin-bottom:20px}.action-bar[data-v-1d8ab326]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.search-box[data-v-1d8ab326]{flex:1;min-width:250px;position:relative;display:flex;align-items:center;background:#f8f9fa;border-radius:var(--radius);padding:10px 15px;border:2px solid transparent;transition:all .3s}.search-box[data-v-1d8ab326]:focus-within{border-color:var(--secondary);background:#fff}.search-box i[data-v-1d8ab326]{color:#999;margin-right:10px}.search-box input[data-v-1d8ab326]{flex:1;border:none;background:transparent;outline:none;font-size:14px}.filter-box .grade-select[data-v-1d8ab326]{padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.filter-box .grade-select[data-v-1d8ab326]:focus{border-color:var(--secondary)}.add-btn[data-v-1d8ab326]{background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:10px 20px;color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(255,158,188,.3)}.add-btn[data-v-1d8ab326]:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.table-container[data-v-1d8ab326]{overflow-x:auto;margin-bottom:20px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-1d8ab326]::-webkit-scrollbar{display:none}.class-table[data-v-1d8ab326]{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.08)}.class-table thead[data-v-1d8ab326]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.class-table th[data-v-1d8ab326]{padding:15px;text-align:left;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary)}.class-table td[data-v-1d8ab326]{padding:15px;border-bottom:1px solid #f0f0f0}.class-row[data-v-1d8ab326]{transition:all .3s}.class-row[data-v-1d8ab326]:hover{background:#fff5f7}.empty-row[data-v-1d8ab326]{text-align:center;padding:60px 20px!important;color:#999}.empty-row i[data-v-1d8ab326]{margin-bottom:10px;opacity:.5}.grade-badge[data-v-1d8ab326]{display:inline-block;padding:4px 12px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2;border-radius:12px;font-size:12px;font-weight:600}.teachers-list[data-v-1d8ab326]{display:flex;flex-wrap:wrap;gap:6px}.teacher-badge[data-v-1d8ab326]{padding:4px 10px;font-size:12px}.action-btns[data-v-1d8ab326]{display:flex;gap:8px}.icon-btn[data-v-1d8ab326]{width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff}.view-btn[data-v-1d8ab326]{background:linear-gradient(135deg,#2196f3,#42a5f5)}.view-btn[data-v-1d8ab326]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(33,150,243,.4)}.edit-btn[data-v-1d8ab326]{background:linear-gradient(135deg,#4caf50,#66bb6a)}.edit-btn[data-v-1d8ab326]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(76,175,80,.4)}.delete-btn[data-v-1d8ab326]{background:linear-gradient(135deg,#ff6b6b,#ff8787)}.delete-btn[data-v-1d8ab326]:hover{transform:scale(1.1);box-shadow:0 4px 12px hsla(0,100%,71%,.4)}.pagination[data-v-1d8ab326]{display:flex;justify-content:space-between;align-items:center;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);flex-wrap:wrap;gap:15px}.pagination-info[data-v-1d8ab326]{color:var(--dark);font-size:14px}.pagination-controls[data-v-1d8ab326]{display:flex;align-items:center;gap:8px}.page-btn[data-v-1d8ab326]{min-width:36px;height:36px;border:none;border-radius:var(--radius);background:#fff;color:var(--dark);cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0 10px}.page-btn[data-v-1d8ab326]:hover:not(:disabled){background:var(--secondary);transform:translateY(-2px);box-shadow:0 4px 8px rgba(160,231,255,.4)}.page-btn.active[data-v-1d8ab326]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;font-weight:600}.page-btn[data-v-1d8ab326]:disabled{opacity:.3;cursor:not-allowed}.page-size-select[data-v-1d8ab326]{padding:8px 12px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.dialog-overlay[data-v-1d8ab326]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-1d8ab326 .3s}@keyframes fadeIn-1d8ab326{0%{opacity:0}to{opacity:1}}.dialog-box[data-v-1d8ab326]{background:#fff;border-radius:16px;width:90%;max-width:700px;max-height:90vh;overflow-y:auto;animation:slideUp-1d8ab326 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.dialog-box[data-v-1d8ab326]::-webkit-scrollbar{display:none}@keyframes slideUp-1d8ab326{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.dialog-header[data-v-1d8ab326]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0}.dialog-header h3[data-v-1d8ab326]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.close-btn[data-v-1d8ab326]{width:32px;height:32px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-1d8ab326]:hover{background:#e0e0e0;transform:rotate(90deg)}.close-btn.white[data-v-1d8ab326]{background:hsla(0,0%,100%,.3);color:#fff}.close-btn.white[data-v-1d8ab326]:hover{background:hsla(0,0%,100%,.5)}.dialog-body[data-v-1d8ab326]{padding:20px}.form-group[data-v-1d8ab326]{margin-bottom:20px}.form-group label[data-v-1d8ab326]{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--dark);font-weight:600;font-size:14px}.selected-count[data-v-1d8ab326]{color:var(--secondary);font-size:13px;font-weight:400}.form-group input[data-v-1d8ab326],.form-group select[data-v-1d8ab326],.form-group textarea[data-v-1d8ab326]{width:100%;padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px;font-family:inherit}.form-group textarea[data-v-1d8ab326]{resize:vertical}.form-group input[data-v-1d8ab326]:focus,.form-group select[data-v-1d8ab326]:focus,.form-group textarea[data-v-1d8ab326]:focus{border-color:var(--secondary)}.form-row[data-v-1d8ab326]{display:grid;grid-template-columns:1fr 1fr;gap:15px}.teacher-selector[data-v-1d8ab326]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;max-height:300px;overflow-y:auto;padding:10px;background:#f8f9fa;border-radius:var(--radius)}.teacher-checkbox[data-v-1d8ab326]{cursor:pointer}.teacher-card[data-v-1d8ab326]{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;border-radius:var(--radius);border:2px solid #e0e0e0;transition:all .3s;position:relative}.teacher-checkbox:hover .teacher-card[data-v-1d8ab326]{border-color:var(--secondary);transform:translateY(-2px);box-shadow:0 4px 8px rgba(160,231,255,.3)}.teacher-checkbox.checked .teacher-card[data-v-1d8ab326]{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-color:var(--secondary)}.teacher-avatar[data-v-1d8ab326]{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;flex-shrink:0}.teacher-info[data-v-1d8ab326]{flex:1;min-width:0}.teacher-name[data-v-1d8ab326]{font-weight:600;color:var(--dark);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-subject[data-v-1d8ab326]{font-size:12px;color:#999}.check-icon[data-v-1d8ab326]{color:var(--secondary);font-size:18px;opacity:0;transition:all .3s}.teacher-checkbox.checked .check-icon[data-v-1d8ab326]{opacity:1}.error-msg[data-v-1d8ab326]{color:#f44;font-size:12px;margin-top:5px;display:block}.dialog-footer[data-v-1d8ab326]{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:2px solid #f0f0f0}.cancel-btn[data-v-1d8ab326],.confirm-btn[data-v-1d8ab326]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px}.cancel-btn[data-v-1d8ab326]{background:#f0f0f0;color:var(--dark)}.cancel-btn[data-v-1d8ab326]:hover{background:#e0e0e0}.confirm-btn[data-v-1d8ab326]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-1d8ab326]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.detail-box[data-v-1d8ab326]{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp-1d8ab326 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.detail-box[data-v-1d8ab326]::-webkit-scrollbar{display:none}.detail-header[data-v-1d8ab326]{padding:25px;color:#fff;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;align-items:flex-start}.detail-header h3[data-v-1d8ab326]{margin:0 0 8px 0;font-size:24px}.detail-body[data-v-1d8ab326]{padding:25px}.detail-section[data-v-1d8ab326]{margin-bottom:25px}.detail-section[data-v-1d8ab326]:last-child{margin-bottom:0}.detail-section h4[data-v-1d8ab326]{display:flex;align-items:center;gap:8px;margin:0 0 15px 0;color:var(--dark);font-size:16px;padding-bottom:10px;border-bottom:2px solid #f0f0f0}.detail-grid[data-v-1d8ab326]{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-item[data-v-1d8ab326]{display:flex;gap:10px;margin-bottom:12px}.detail-label[data-v-1d8ab326]{font-weight:600;color:var(--dark);font-size:14px;min-width:80px}.detail-value[data-v-1d8ab326]{color:#666;font-size:14px}.leader-badge[data-v-1d8ab326]{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,gold,orange);color:#fff;border-radius:12px;font-weight:600;font-size:14px}.teachers-grid[data-v-1d8ab326]{display:flex;flex-wrap:wrap;gap:8px}.teacher-badge[data-v-1d8ab326]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2;border-radius:12px;font-weight:600;font-size:13px}.detail-description[data-v-1d8ab326]{color:#666;line-height:1.8;font-size:14px;margin:0;padding:15px;background:#f8f9fa;border-radius:var(--radius)}.detail-footer[data-v-1d8ab326]{padding:20px;border-top:2px solid #f0f0f0;display:flex;justify-content:flex-end;gap:10px}.edit-btn-large[data-v-1d8ab326]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff;box-shadow:0 4px 12px rgba(76,175,80,.3)}.edit-btn-large[data-v-1d8ab326]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(76,175,80,.5)}@media (max-width:768px){.action-bar[data-v-1d8ab326]{flex-direction:column}.search-box[data-v-1d8ab326]{width:100%}.class-table[data-v-1d8ab326]{font-size:13px}.class-table td[data-v-1d8ab326],.class-table th[data-v-1d8ab326]{padding:10px 8px}.detail-grid[data-v-1d8ab326],.form-row[data-v-1d8ab326],.teacher-selector[data-v-1d8ab326]{grid-template-columns:1fr}.pagination[data-v-1d8ab326]{flex-direction:column;align-items:flex-start}.pagination-controls[data-v-1d8ab326]{width:100%;justify-content:center}}.page-title[data-v-c73a5234]{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--dark)}.page-desc[data-v-c73a5234]{color:#666;margin-bottom:20px}.action-bar[data-v-c73a5234]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.search-box[data-v-c73a5234]{flex:1;min-width:250px;position:relative;display:flex;align-items:center;background:#f8f9fa;border-radius:var(--radius);padding:10px 15px;border:2px solid transparent;transition:all .3s}.search-box[data-v-c73a5234]:focus-within{border-color:var(--secondary);background:#fff}.search-box i[data-v-c73a5234]{color:#999;margin-right:10px}.search-box input[data-v-c73a5234]{flex:1;border:none;background:transparent;outline:none;font-size:14px}.filter-box .class-select[data-v-c73a5234]{padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.filter-box .class-select[data-v-c73a5234]:focus{border-color:var(--secondary)}.add-btn[data-v-c73a5234]{background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:10px 20px;color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(255,158,188,.3)}.add-btn[data-v-c73a5234]:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.table-container[data-v-c73a5234]{overflow-x:auto;margin-bottom:20px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-c73a5234]::-webkit-scrollbar{display:none}.student-table[data-v-c73a5234]{width:100%;border-collapse:collapse;background:#fff}.student-table thead[data-v-c73a5234]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.student-table th[data-v-c73a5234]{padding:15px;text-align:left;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary)}.student-table td[data-v-c73a5234]{padding:15px;border-bottom:1px solid #f0f0f0}.student-row[data-v-c73a5234]{transition:all .3s}.student-row[data-v-c73a5234]:hover{background:#fff5f7;transform:translateX(3px)}.empty-row[data-v-c73a5234]{text-align:center;padding:60px 20px!important;color:#999}.empty-row i[data-v-c73a5234]{margin-bottom:10px;opacity:.5}.empty-row p[data-v-c73a5234]{margin-top:10px}.student-name[data-v-c73a5234]{display:flex;align-items:center;gap:10px}.mini-avatar[data-v-c73a5234]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.gender-tag[data-v-c73a5234]{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:12px;font-size:13px}.gender-tag.male[data-v-c73a5234]{background:#e3f2fd;color:#1976d2}.gender-tag.female[data-v-c73a5234]{background:#fce4ec;color:#c2185b}.class-tag[data-v-c73a5234]{display:inline-block;padding:4px 12px;border-radius:12px;background:linear-gradient(135deg,var(--secondary),#b5f0ff);color:var(--dark);font-size:13px}.action-btns[data-v-c73a5234]{display:flex;gap:8px}.icon-btn[data-v-c73a5234]{width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff}.edit-btn[data-v-c73a5234]{background:linear-gradient(135deg,#4caf50,#66bb6a)}.edit-btn[data-v-c73a5234]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(76,175,80,.4)}.delete-btn[data-v-c73a5234]{background:linear-gradient(135deg,#ff6b6b,#ff8787)}.delete-btn[data-v-c73a5234]:hover{transform:scale(1.1);box-shadow:0 4px 12px hsla(0,100%,71%,.4)}.view-btn[data-v-c73a5234]{background:linear-gradient(135deg,#4fc3f7,#29b6f6)}.view-btn[data-v-c73a5234]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(79,195,247,.4)}.stats-bar[data-v-c73a5234]{display:flex;gap:20px;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);font-size:14px;color:var(--dark);flex-wrap:wrap}.stats-bar span[data-v-c73a5234]{display:flex;align-items:center;gap:5px}.dialog-overlay[data-v-c73a5234]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-c73a5234 .3s}@keyframes fadeIn-c73a5234{0%{opacity:0}to{opacity:1}}.dialog-box[data-v-c73a5234]{background:#fff;border-radius:16px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp-c73a5234 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.dialog-box[data-v-c73a5234]::-webkit-scrollbar{display:none}@keyframes slideUp-c73a5234{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.dialog-header[data-v-c73a5234]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0}.dialog-header h3[data-v-c73a5234]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.close-btn[data-v-c73a5234]{width:32px;height:32px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-c73a5234]:hover{background:#e0e0e0;transform:rotate(90deg)}.dialog-body[data-v-c73a5234]{padding:20px}.form-group[data-v-c73a5234]{margin-bottom:20px}.form-group label[data-v-c73a5234]{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--dark);font-weight:600;font-size:14px}.form-group input[data-v-c73a5234],.form-group select[data-v-c73a5234]{width:100%;padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px}.form-group input[data-v-c73a5234]:focus,.form-group select[data-v-c73a5234]:focus{border-color:var(--secondary)}.form-group input[data-v-c73a5234]:disabled{background:#f5f5f5;cursor:not-allowed}.form-row[data-v-c73a5234]{display:grid;grid-template-columns:1fr 1fr;gap:15px}.error-msg[data-v-c73a5234]{color:#f44;font-size:12px;margin-top:5px;display:block}.tip-msg[data-v-c73a5234]{color:#999;font-size:12px;margin-top:5px;display:block}.dialog-footer[data-v-c73a5234]{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:2px solid #f0f0f0}.cancel-btn[data-v-c73a5234],.confirm-btn[data-v-c73a5234]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px}.cancel-btn[data-v-c73a5234]{background:#f0f0f0;color:var(--dark)}.cancel-btn[data-v-c73a5234]:hover{background:#e0e0e0}.confirm-btn[data-v-c73a5234]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-c73a5234]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.detail-dialog[data-v-c73a5234]{max-width:700px}.detail-section[data-v-c73a5234]{margin-bottom:30px}.detail-section[data-v-c73a5234]:last-child{margin-bottom:0}.section-title[data-v-c73a5234]{display:flex;align-items:center;gap:10px;color:var(--dark);margin-bottom:15px;padding-bottom:10px;border-bottom:2px solid #f0f0f0;font-size:16px}.detail-grid[data-v-c73a5234]{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.detail-item[data-v-c73a5234]{display:flex;align-items:flex-start;gap:10px}.detail-item.full-width[data-v-c73a5234]{grid-column:1/-1}.detail-item label[data-v-c73a5234]{font-weight:600;color:#666;min-width:90px;flex-shrink:0}.detail-item span[data-v-c73a5234]{color:var(--dark);word-break:break-word}@media (max-width:768px){.action-bar[data-v-c73a5234]{flex-direction:column}.search-box[data-v-c73a5234]{width:100%}.form-row[data-v-c73a5234]{grid-template-columns:1fr}.student-table[data-v-c73a5234]{font-size:13px}.student-table td[data-v-c73a5234],.student-table th[data-v-c73a5234]{padding:10px 8px}.detail-grid[data-v-c73a5234]{grid-template-columns:1fr}.action-btns[data-v-c73a5234]{flex-wrap:wrap}}.page-title[data-v-0df6f93a]{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--dark)}.page-desc[data-v-0df6f93a]{color:#666;margin-bottom:20px}.view-toggle[data-v-0df6f93a]{display:flex;gap:10px;margin-bottom:20px}.toggle-btn[data-v-0df6f93a]{padding:10px 20px;border:2px solid #e0e0e0;background:#fff;border-radius:var(--radius);cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:8px;font-weight:600;color:var(--dark)}.toggle-btn[data-v-0df6f93a]:hover{border-color:var(--secondary)}.toggle-btn.active[data-v-0df6f93a]{background:linear-gradient(135deg,var(--secondary),#b5f0ff);border-color:var(--secondary);color:#fff}.action-bar[data-v-0df6f93a]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.search-box[data-v-0df6f93a]{flex:1;min-width:250px;position:relative;display:flex;align-items:center;background:#f8f9fa;border-radius:var(--radius);padding:10px 15px;border:2px solid transparent;transition:all .3s}.search-box[data-v-0df6f93a]:focus-within{border-color:var(--secondary);background:#fff}.search-box i[data-v-0df6f93a]{color:#999;margin-right:10px}.search-box input[data-v-0df6f93a]{flex:1;border:none;background:transparent;outline:none;font-size:14px}.filter-box .filter-select[data-v-0df6f93a]{padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.filter-box .filter-select[data-v-0df6f93a]:focus{border-color:var(--secondary)}.add-btn[data-v-0df6f93a]{background:linear-gradient(135deg,var(--primary),#ffb3d0);border:none;border-radius:50px;padding:10px 20px;color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:inline-flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(255,158,188,.3)}.add-btn[data-v-0df6f93a]:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.table-container[data-v-0df6f93a]{overflow-x:auto;margin-bottom:20px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-0df6f93a]::-webkit-scrollbar{display:none}.schedule-table[data-v-0df6f93a]{width:100%;border-collapse:collapse;background:#fff}.schedule-table thead[data-v-0df6f93a]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.schedule-table th[data-v-0df6f93a]{padding:15px;text-align:left;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary);white-space:nowrap}.schedule-table td[data-v-0df6f93a]{padding:15px;border-bottom:1px solid #f0f0f0}.schedule-row[data-v-0df6f93a]{transition:all .3s}.schedule-row[data-v-0df6f93a]:hover{background:#fff5f7;transform:translateX(3px)}.empty-row[data-v-0df6f93a]{text-align:center;padding:60px 20px!important;color:#999}.empty-row i[data-v-0df6f93a]{margin-bottom:10px;opacity:.5}.class-badge[data-v-0df6f93a]{display:inline-block;padding:5px 12px;border-radius:12px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2;font-weight:600;font-size:13px}.subject-info[data-v-0df6f93a]{display:flex;align-items:center;gap:10px}.subject-icon[data-v-0df6f93a]{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}.teacher-info[data-v-0df6f93a]{display:flex;align-items:center;gap:8px;color:var(--dark)}.teacher-info i[data-v-0df6f93a]{color:var(--secondary)}.day-badge[data-v-0df6f93a]{background:linear-gradient(135deg,#fff3e0,#ffe0b2);color:#f57c00}.day-badge[data-v-0df6f93a],.period-badge[data-v-0df6f93a]{display:inline-block;padding:4px 10px;border-radius:8px;font-size:13px;font-weight:600}.period-badge[data-v-0df6f93a]{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#388e3c}.time-range[data-v-0df6f93a]{color:#666;font-size:13px}.action-btns[data-v-0df6f93a]{display:flex;gap:8px}.icon-btn[data-v-0df6f93a]{width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff}.edit-btn[data-v-0df6f93a]{background:linear-gradient(135deg,#4caf50,#66bb6a)}.edit-btn[data-v-0df6f93a]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(76,175,80,.4)}.delete-btn[data-v-0df6f93a]{background:linear-gradient(135deg,#ff6b6b,#ff8787)}.delete-btn[data-v-0df6f93a]:hover{transform:scale(1.1);box-shadow:0 4px 12px hsla(0,100%,71%,.4)}.timetable-view[data-v-0df6f93a]{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.timetable-controls[data-v-0df6f93a]{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.class-selector[data-v-0df6f93a]{flex:1;min-width:200px;padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.class-selector[data-v-0df6f93a]:focus{border-color:var(--secondary)}.export-btn[data-v-0df6f93a]{padding:10px 20px;border-radius:50px;border:none;background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:flex;align-items:center;gap:8px;box-shadow:0 4px 12px rgba(76,175,80,.3)}.export-btn[data-v-0df6f93a]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(76,175,80,.5)}.timetable[data-v-0df6f93a]{overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.timetable[data-v-0df6f93a]::-webkit-scrollbar{display:none}.timetable-grid[data-v-0df6f93a]{width:100%;border-collapse:collapse;min-width:800px}.timetable-grid th[data-v-0df6f93a]{padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);color:var(--dark);font-weight:600;border:1px solid #e0e0e0;text-align:center}.timetable-grid .corner[data-v-0df6f93a]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff}.period-cell[data-v-0df6f93a]{background:linear-gradient(135deg,#fff3e0,#ffe0b2);text-align:center;padding:10px;border:1px solid #e0e0e0}.period-number[data-v-0df6f93a]{font-weight:600;color:#f57c00;font-size:14px}.period-time[data-v-0df6f93a]{font-size:12px;color:#999;margin-top:4px}.course-cell[data-v-0df6f93a]{border:1px solid #e0e0e0;padding:8px;min-height:80px;vertical-align:top}.course-cell.empty[data-v-0df6f93a]{background:#fafafa}.course-card[data-v-0df6f93a]{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-radius:var(--radius);padding:10px;height:100%;display:flex;flex-direction:column;gap:5px;transition:all .3s}.course-card[data-v-0df6f93a]:hover{transform:scale(1.05);box-shadow:0 4px 8px rgba(33,150,243,.3)}.course-subject[data-v-0df6f93a]{font-weight:600;color:#1976d2;font-size:14px}.course-teacher[data-v-0df6f93a]{font-size:12px;color:#666}.course-classroom[data-v-0df6f93a]{font-size:11px;color:#999}.empty-slot[data-v-0df6f93a]{text-align:center;color:#ccc;padding:20px}.empty-timetable[data-v-0df6f93a]{text-align:center;padding:80px 20px;color:#999}.empty-timetable i[data-v-0df6f93a]{margin-bottom:15px;opacity:.5}.pagination[data-v-0df6f93a]{display:flex;justify-content:space-between;align-items:center;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);flex-wrap:wrap;gap:15px}.pagination-info[data-v-0df6f93a]{color:var(--dark);font-size:14px}.pagination-controls[data-v-0df6f93a]{display:flex;align-items:center;gap:8px}.page-btn[data-v-0df6f93a]{min-width:36px;height:36px;border:none;border-radius:var(--radius);background:#fff;color:var(--dark);cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0 10px}.page-btn[data-v-0df6f93a]:hover:not(:disabled){background:var(--secondary);transform:translateY(-2px);box-shadow:0 4px 8px rgba(160,231,255,.4)}.page-btn.active[data-v-0df6f93a]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;font-weight:600}.page-btn[data-v-0df6f93a]:disabled{opacity:.3;cursor:not-allowed}.page-size-select[data-v-0df6f93a]{padding:8px 12px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.dialog-overlay[data-v-0df6f93a]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-0df6f93a .3s}@keyframes fadeIn-0df6f93a{0%{opacity:0}to{opacity:1}}.dialog-box[data-v-0df6f93a]{background:#fff;border-radius:16px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp-0df6f93a .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.dialog-box[data-v-0df6f93a]::-webkit-scrollbar{display:none}@keyframes slideUp-0df6f93a{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.dialog-header[data-v-0df6f93a]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0}.dialog-header h3[data-v-0df6f93a]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.close-btn[data-v-0df6f93a]{width:32px;height:32px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-0df6f93a]:hover{background:#e0e0e0;transform:rotate(90deg)}.dialog-body[data-v-0df6f93a]{padding:20px}.form-group[data-v-0df6f93a]{margin-bottom:20px}.form-group label[data-v-0df6f93a]{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--dark);font-weight:600;font-size:14px}.form-group input[data-v-0df6f93a],.form-group select[data-v-0df6f93a]{width:100%;padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px}.form-group input[data-v-0df6f93a]:focus,.form-group select[data-v-0df6f93a]:focus{border-color:var(--secondary)}.form-group input[readonly][data-v-0df6f93a]{background:#f5f5f5;cursor:not-allowed}.form-row[data-v-0df6f93a]{display:grid;grid-template-columns:1fr 1fr;gap:15px}.error-msg[data-v-0df6f93a]{color:#f44;font-size:12px;margin-top:5px;display:block}.conflict-warning[data-v-0df6f93a]{padding:12px;background:#fff3cd;border-left:4px solid #ffc107;border-radius:var(--radius);color:#856404;display:flex;align-items:center;gap:10px;font-size:14px}.conflict-warning i[data-v-0df6f93a]{color:#ffc107;font-size:18px}.dialog-footer[data-v-0df6f93a]{display:flex;justify-content:flex-end;gap:10px;padding:20px;border-top:2px solid #f0f0f0}.cancel-btn[data-v-0df6f93a],.confirm-btn[data-v-0df6f93a]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px}.cancel-btn[data-v-0df6f93a]{background:#f0f0f0;color:var(--dark)}.cancel-btn[data-v-0df6f93a]:hover{background:#e0e0e0}.confirm-btn[data-v-0df6f93a]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-0df6f93a]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}@media (max-width:768px){.action-bar[data-v-0df6f93a]{flex-direction:column}.search-box[data-v-0df6f93a]{width:100%}.form-row[data-v-0df6f93a]{grid-template-columns:1fr}.timetable-controls[data-v-0df6f93a]{flex-direction:column}.class-selector[data-v-0df6f93a]{width:100%}.schedule-table[data-v-0df6f93a]{font-size:13px}.schedule-table td[data-v-0df6f93a],.schedule-table th[data-v-0df6f93a]{padding:10px 8px}.pagination[data-v-0df6f93a]{flex-direction:column;align-items:flex-start}.pagination-controls[data-v-0df6f93a]{width:100%;justify-content:center}}.page-title[data-v-4e63d625]{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--dark)}.page-desc[data-v-4e63d625]{color:#666;margin-bottom:20px}.filter-section[data-v-4e63d625]{background:#fff;border-radius:16px;padding:20px;margin-bottom:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.filter-row[data-v-4e63d625]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:15px}.filter-item[data-v-4e63d625]{display:flex;flex-direction:column;gap:8px}.filter-item label[data-v-4e63d625]{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--dark);font-size:14px}.date-input[data-v-4e63d625],.filter-select[data-v-4e63d625]{padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px}.date-input[data-v-4e63d625]:focus,.filter-select[data-v-4e63d625]:focus{border-color:var(--secondary)}.filter-select[data-v-4e63d625]:disabled{background:#f5f5f5;cursor:not-allowed}.load-btn[data-v-4e63d625]{padding:15px 20px;border-radius:50px;border:none;background:#a0e7ff;color:#5a6b8c;cursor:pointer;transition:all .3s;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 12px rgba(160,231,255,.3);align-self:flex-end}.load-btn[data-v-4e63d625]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px rgba(160,231,255,.5)}.load-btn[data-v-4e63d625]:disabled{opacity:.5;cursor:not-allowed}.quick-actions[data-v-4e63d625]{display:flex;gap:10px;padding-top:15px;border-top:2px solid #f0f0f0}.quick-btn[data-v-4e63d625]{padding:8px 16px;border-radius:50px;border:none;background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:flex;align-items:center;gap:6px;font-size:13px}.quick-btn[data-v-4e63d625]:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(255,158,188,.4)}.stats-bar[data-v-4e63d625]{display:flex;gap:15px;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);margin-bottom:20px;flex-wrap:wrap}.stat-item[data-v-4e63d625]{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius);font-weight:600;font-size:14px}.stat-item.present[data-v-4e63d625]{background:#e8f5e9;color:#4caf50}.stat-item.absent[data-v-4e63d625]{background:#ffebee;color:#f44336}.stat-item.late[data-v-4e63d625]{background:#fff3e0;color:#ff9800}.stat-item.leave[data-v-4e63d625]{background:#e3f2fd;color:#2196f3}.stat-item.total[data-v-4e63d625]{background:#f3e5f5;color:#9c27b0}.table-container[data-v-4e63d625]{overflow-x:auto;margin-bottom:20px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-4e63d625]::-webkit-scrollbar{display:none}.attendance-table[data-v-4e63d625]{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.08)}.attendance-table thead[data-v-4e63d625]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.attendance-table th[data-v-4e63d625]{padding:15px;text-align:left;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary)}.attendance-table td[data-v-4e63d625]{padding:15px;border-bottom:1px solid #f0f0f0}.attendance-row[data-v-4e63d625]{transition:all .3s}.attendance-row[data-v-4e63d625]:hover{background:#fff5f7}.student-name[data-v-4e63d625]{display:flex;align-items:center;gap:10px}.mini-avatar[data-v-4e63d625]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px}.gender-tag[data-v-4e63d625]{display:inline-block;padding:4px 10px;border-radius:12px;font-size:13px}.gender-tag.male[data-v-4e63d625]{background:#e3f2fd;color:#1976d2}.gender-tag.female[data-v-4e63d625]{background:#fce4ec;color:#c2185b}.status-selector[data-v-4e63d625]{display:flex;gap:8px}.status-btn[data-v-4e63d625]{width:40px;height:40px;border-radius:50%;border:2px solid #e0e0e0;background:#fff;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:16px}.status-btn[data-v-4e63d625]:hover{transform:scale(1.1)}.status-btn.present[data-v-4e63d625]{color:#4caf50}.status-btn.present.active[data-v-4e63d625]{background:#4caf50;color:#fff;border-color:#4caf50}.status-btn.absent[data-v-4e63d625]{color:#f44336}.status-btn.absent.active[data-v-4e63d625]{background:#f44336;color:#fff;border-color:#f44336}.status-btn.late[data-v-4e63d625]{color:#ff9800}.status-btn.late.active[data-v-4e63d625]{background:#ff9800;color:#fff;border-color:#ff9800}.status-btn.leave[data-v-4e63d625]{color:#2196f3}.status-btn.leave.active[data-v-4e63d625]{background:#2196f3;color:#fff;border-color:#2196f3}.remark-input[data-v-4e63d625]{padding:8px 12px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px;width:100%}.remark-input[data-v-4e63d625]:focus{border-color:var(--secondary)}.remark-input.required[data-v-4e63d625]{border-color:#ff9800}.icon-btn[data-v-4e63d625]{width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff}.reset-btn[data-v-4e63d625]{background:linear-gradient(135deg,#9e9e9e,#bdbdbd)}.reset-btn[data-v-4e63d625]:hover{transform:scale(1.1);box-shadow:0 4px 12px hsla(0,0%,62%,.4)}.empty-state[data-v-4e63d625]{text-align:center;padding:80px 20px;color:#999;background:#fff;border-radius:16px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.empty-state i[data-v-4e63d625]{margin-bottom:15px;opacity:.5}.history-section[data-v-4e63d625]{margin-top:30px;padding:20px;background:#fff;border-radius:16px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.section-title[data-v-4e63d625]{display:flex;align-items:center;gap:10px;margin-bottom:15px;color:var(--dark);font-size:18px}.history-filters[data-v-4e63d625]{display:flex;gap:10px;margin-bottom:20px}.search-input[data-v-4e63d625]{flex:1;padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px}.search-input[data-v-4e63d625]:focus{border-color:var(--secondary)}.view-btn[data-v-4e63d625]{padding:10px 20px;border-radius:50px;border:none;background:linear-gradient(135deg,#2196f3,#42a5f5);color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:flex;align-items:center;gap:8px}.view-btn[data-v-4e63d625]:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(33,150,243,.4)}.history-list[data-v-4e63d625]{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.history-card[data-v-4e63d625]{padding:15px;border-radius:var(--radius);background:#f8f9fa;border-left:4px solid var(--secondary);transition:all .3s}.history-card[data-v-4e63d625]:hover{transform:translateX(5px);box-shadow:0 4px 8px rgba(0,0,0,.1)}.history-header[data-v-4e63d625]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.history-info[data-v-4e63d625]{display:flex;gap:15px;flex-wrap:wrap}.history-date[data-v-4e63d625]{font-weight:600;color:var(--dark)}.history-class[data-v-4e63d625]{padding:3px 10px;border-radius:8px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2;font-size:13px}.history-course[data-v-4e63d625]{padding:3px 10px;border-radius:8px;background:linear-gradient(135deg,#fff3e0,#ffe0b2);color:#f57c00;font-size:13px}.detail-btn[data-v-4e63d625]{padding:6px 16px;border-radius:50px;border:none;background:linear-gradient(135deg,#2196f3,#42a5f5);color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:flex;align-items:center;gap:6px;font-size:13px}.detail-btn[data-v-4e63d625]:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(33,150,243,.4)}.history-stats[data-v-4e63d625]{display:flex;gap:15px;flex-wrap:wrap}.mini-stat[data-v-4e63d625]{padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600}.mini-stat.present[data-v-4e63d625]{background:#e8f5e9;color:#4caf50}.mini-stat.absent[data-v-4e63d625]{background:#ffebee;color:#f44336}.mini-stat.late[data-v-4e63d625]{background:#fff3e0;color:#ff9800}.mini-stat.leave[data-v-4e63d625]{background:#e3f2fd;color:#2196f3}.pagination[data-v-4e63d625]{display:flex;justify-content:space-between;align-items:center;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);flex-wrap:wrap;gap:15px}.pagination-info[data-v-4e63d625]{color:var(--dark);font-size:14px}.pagination-controls[data-v-4e63d625]{display:flex;align-items:center;gap:8px}.page-btn[data-v-4e63d625]{min-width:36px;height:36px;border:none;border-radius:var(--radius);background:#fff;color:var(--dark);cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0 10px}.page-btn[data-v-4e63d625]:hover:not(:disabled){background:var(--secondary);transform:translateY(-2px);box-shadow:0 4px 8px rgba(160,231,255,.4)}.page-btn.active[data-v-4e63d625]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;font-weight:600}.page-btn[data-v-4e63d625]:disabled{opacity:.3;cursor:not-allowed}.page-size-select[data-v-4e63d625]{padding:8px 12px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.dialog-overlay[data-v-4e63d625]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-4e63d625 .3s}@keyframes fadeIn-4e63d625{0%{opacity:0}to{opacity:1}}.detail-box[data-v-4e63d625]{background:#fff;border-radius:16px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;animation:slideUp-4e63d625 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.detail-box[data-v-4e63d625]::-webkit-scrollbar{display:none}@keyframes slideUp-4e63d625{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.detail-header[data-v-4e63d625]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0;background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.detail-header h3[data-v-4e63d625]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.close-btn[data-v-4e63d625]{width:32px;height:32px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-4e63d625]:hover{background:#e0e0e0;transform:rotate(90deg)}.detail-body[data-v-4e63d625]{padding:20px}.detail-info[data-v-4e63d625]{margin-bottom:20px}.info-row[data-v-4e63d625]{display:flex;padding:10px 0;border-bottom:1px solid #f0f0f0}.info-row .label[data-v-4e63d625]{font-weight:600;color:var(--dark);min-width:80px}.info-row .value[data-v-4e63d625]{color:#666}.detail-stats[data-v-4e63d625]{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stat-card[data-v-4e63d625]{padding:15px;border-radius:var(--radius);text-align:center}.stat-card.present[data-v-4e63d625]{background:#e8f5e9}.stat-card.absent[data-v-4e63d625]{background:#ffebee}.stat-card.late[data-v-4e63d625]{background:#fff3e0}.stat-card.leave[data-v-4e63d625]{background:#e3f2fd}.stat-number[data-v-4e63d625]{font-size:24px;font-weight:600;margin-bottom:5px}.stat-card.present .stat-number[data-v-4e63d625]{color:#4caf50}.stat-card.absent .stat-number[data-v-4e63d625]{color:#f44336}.stat-card.late .stat-number[data-v-4e63d625]{color:#ff9800}.stat-card.leave .stat-number[data-v-4e63d625]{color:#2196f3}.stat-label[data-v-4e63d625]{font-size:13px;color:#666}.detail-list h4[data-v-4e63d625]{margin-bottom:15px;color:var(--dark)}.student-list[data-v-4e63d625]{max-height:300px;overflow-y:auto}.student-item[data-v-4e63d625]{display:flex;align-items:center;gap:15px;padding:10px;border-radius:var(--radius);background:#f8f9fa;margin-bottom:8px}.student-basic[data-v-4e63d625]{flex:1;display:flex;gap:10px}.student-id[data-v-4e63d625]{color:#999;font-size:13px}.student-name[data-v-4e63d625]{font-weight:600;color:var(--dark)}.status-badge[data-v-4e63d625]{padding:4px 10px;border-radius:8px;font-size:12px;font-weight:600}.status-badge.present[data-v-4e63d625]{background:#e8f5e9;color:#4caf50}.status-badge.absent[data-v-4e63d625]{background:#ffebee;color:#f44336}.status-badge.late[data-v-4e63d625]{background:#fff3e0;color:#ff9800}.status-badge.leave[data-v-4e63d625]{background:#e3f2fd;color:#2196f3}.student-remark[data-v-4e63d625]{color:#666;font-size:13px;font-style:italic}.detail-footer[data-v-4e63d625]{padding:20px;border-top:2px solid #f0f0f0;display:flex;justify-content:center}.confirm-btn[data-v-4e63d625]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-4e63d625]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}@media (max-width:768px){.filter-row[data-v-4e63d625]{grid-template-columns:1fr}.stats-bar[data-v-4e63d625]{flex-direction:column}.detail-stats[data-v-4e63d625]{grid-template-columns:repeat(2,1fr)}.attendance-table[data-v-4e63d625]{font-size:13px}.attendance-table td[data-v-4e63d625],.attendance-table th[data-v-4e63d625]{padding:10px 8px}.status-selector[data-v-4e63d625]{flex-wrap:wrap}.status-btn[data-v-4e63d625]{width:36px;height:36px}.pagination[data-v-4e63d625]{flex-direction:column;align-items:flex-start}.pagination-controls[data-v-4e63d625]{width:100%;justify-content:center}}.page-title[data-v-5a9d0104]{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--dark)}.page-desc[data-v-5a9d0104]{color:#666;margin-bottom:20px}.filter-section[data-v-5a9d0104]{background:#fff;border-radius:16px;padding:20px;margin-bottom:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.filter-row[data-v-5a9d0104]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:15px}.filter-item[data-v-5a9d0104]{display:flex;flex-direction:column;gap:8px}.filter-item label[data-v-5a9d0104]{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--dark);font-size:14px}.filter-select[data-v-5a9d0104]{padding:10px 15px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px}.filter-select[data-v-5a9d0104]:focus{border-color:var(--secondary)}.load-btn[data-v-5a9d0104]{padding:15px 20px;border-radius:50px;border:none;background:#a0e7ff;color:#5a6b8c;cursor:pointer;transition:all .3s;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 4px 12px rgba(160,231,255,.3);align-self:flex-end}.load-btn[data-v-5a9d0104]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px rgba(160,231,255,.5)}.load-btn[data-v-5a9d0104]:disabled{opacity:.5;cursor:not-allowed}.quick-actions[data-v-5a9d0104]{display:flex;gap:10px;padding-top:15px;border-top:2px solid #f0f0f0;flex-wrap:wrap}.quick-btn[data-v-5a9d0104]{padding:8px 16px;border-radius:50px;border:none;background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:flex;align-items:center;gap:6px;font-size:13px}.quick-btn[data-v-5a9d0104]:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(255,158,188,.4)}.quick-btn.save[data-v-5a9d0104]{background:linear-gradient(135deg,#4caf50,#66bb6a)}.quick-btn.export[data-v-5a9d0104]{background:linear-gradient(135deg,#2196f3,#42a5f5)}.rule-card[data-v-5a9d0104]{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-radius:var(--radius);padding:15px;margin-bottom:20px;border-left:4px solid #ff9800}.rule-card h4[data-v-5a9d0104]{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#f57c00}.rule-items[data-v-5a9d0104]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}.rule-item[data-v-5a9d0104]{display:flex;gap:8px;font-size:13px}.rule-label[data-v-5a9d0104]{font-weight:600;color:#f57c00}.rule-value[data-v-5a9d0104]{color:#666}.table-container[data-v-5a9d0104]{overflow-x:auto;margin-bottom:20px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-5a9d0104]::-webkit-scrollbar{display:none}.score-table[data-v-5a9d0104]{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.08)}.score-table thead[data-v-5a9d0104]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.score-table th[data-v-5a9d0104]{padding:15px;text-align:center;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary);white-space:nowrap}.score-table td[data-v-5a9d0104]{padding:15px;border-bottom:1px solid #f0f0f0;text-align:center}.score-row[data-v-5a9d0104]{transition:all .3s}.score-row[data-v-5a9d0104]:hover{background:#fff5f7}.rank-badge[data-v-5a9d0104]{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;font-weight:600;font-size:14px}.rank-badge.first[data-v-5a9d0104]{background:linear-gradient(135deg,gold,orange);color:#fff}.rank-badge.second[data-v-5a9d0104]{background:linear-gradient(135deg,silver,#a8a8a8);color:#fff}.rank-badge.third[data-v-5a9d0104]{background:linear-gradient(135deg,#cd7f32,#b87333);color:#fff}.student-name[data-v-5a9d0104]{display:flex;align-items:center;gap:10px;justify-content:flex-start}.mini-avatar[data-v-5a9d0104]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;flex-shrink:0}.score-input[data-v-5a9d0104]{width:80px;padding:8px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s;font-size:14px;text-align:center;font-weight:600}.score-input[data-v-5a9d0104]:focus{border-color:var(--secondary)}.attendance-count[data-v-5a9d0104]{color:#666;font-size:13px}.progress-bar[data-v-5a9d0104]{position:relative;width:100%;height:24px;background:#f0f0f0;border-radius:12px;overflow:hidden}.progress-fill[data-v-5a9d0104]{height:100%;transition:width .3s;border-radius:12px}.progress-text[data-v-5a9d0104]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.attendance-score[data-v-5a9d0104]{font-weight:600;color:#4caf50;font-size:15px}.total-score[data-v-5a9d0104]{font-weight:700;color:var(--primary);font-size:16px}.grade-badge[data-v-5a9d0104]{display:inline-block;padding:6px 12px;border-radius:12px;font-weight:600;font-size:14px}.grade-badge.a[data-v-5a9d0104]{background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff}.grade-badge.b[data-v-5a9d0104]{background:linear-gradient(135deg,#2196f3,#42a5f5);color:#fff}.grade-badge.c[data-v-5a9d0104]{background:linear-gradient(135deg,#ff9800,#ffb74d);color:#fff}.grade-badge.d[data-v-5a9d0104]{background:linear-gradient(135deg,#ffc107,#ffd54f);color:#fff}.grade-badge.e[data-v-5a9d0104]{background:linear-gradient(135deg,#f44336,#ef5350);color:#fff}.icon-btn[data-v-5a9d0104]{width:32px;height:32px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff}.detail-btn[data-v-5a9d0104]{background:linear-gradient(135deg,#2196f3,#42a5f5)}.detail-btn[data-v-5a9d0104]:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(33,150,243,.4)}.empty-state[data-v-5a9d0104]{text-align:center;padding:80px 20px;color:#999;background:#fff;border-radius:16px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.empty-state i[data-v-5a9d0104]{margin-bottom:15px;opacity:.5}.stats-section[data-v-5a9d0104]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:20px}.stat-card[data-v-5a9d0104]{background:#fff;border-radius:16px;padding:20px;display:flex;align-items:center;gap:15px;box-shadow:0 4px 12px rgba(0,0,0,.08);transition:all .3s}.stat-card[data-v-5a9d0104]:hover{transform:translateY(-5px);box-shadow:0 8px 20px rgba(0,0,0,.12)}.stat-icon[data-v-5a9d0104]{width:60px;height:60px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px}.stat-content[data-v-5a9d0104]{flex:1}.stat-value[data-v-5a9d0104]{font-size:28px;font-weight:700;color:var(--dark);line-height:1;margin-bottom:5px}.stat-label[data-v-5a9d0104]{font-size:13px;color:#999}.pagination[data-v-5a9d0104]{display:flex;justify-content:space-between;align-items:center;padding:15px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);flex-wrap:wrap;gap:15px}.pagination-info[data-v-5a9d0104]{color:var(--dark);font-size:14px}.pagination-controls[data-v-5a9d0104]{display:flex;align-items:center;gap:8px}.page-btn[data-v-5a9d0104]{min-width:36px;height:36px;border:none;border-radius:var(--radius);background:#fff;color:var(--dark);cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:14px;padding:0 10px}.page-btn[data-v-5a9d0104]:hover:not(:disabled){background:var(--secondary);transform:translateY(-2px);box-shadow:0 4px 8px rgba(160,231,255,.4)}.page-btn.active[data-v-5a9d0104]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;font-weight:600}.page-btn[data-v-5a9d0104]:disabled{opacity:.3;cursor:not-allowed}.page-size-select[data-v-5a9d0104]{padding:8px 12px;border-radius:var(--radius);border:2px solid #e0e0e0;background:#fff;cursor:pointer;outline:none;transition:all .3s;font-size:14px}.dialog-overlay[data-v-5a9d0104]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn-5a9d0104 .3s}@keyframes fadeIn-5a9d0104{0%{opacity:0}to{opacity:1}}.detail-box[data-v-5a9d0104]{background:#fff;border-radius:16px;width:90%;max-width:700px;max-height:90vh;overflow-y:auto;animation:slideUp-5a9d0104 .3s;box-shadow:0 8px 32px rgba(0,0,0,.2);scrollbar-width:none;-ms-overflow-style:none}.detail-box[data-v-5a9d0104]::-webkit-scrollbar{display:none}@keyframes slideUp-5a9d0104{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.detail-header[data-v-5a9d0104]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0;background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.detail-header h3[data-v-5a9d0104]{display:flex;align-items:center;gap:10px;color:var(--dark);margin:0}.close-btn[data-v-5a9d0104]{width:32px;height:32px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s}.close-btn[data-v-5a9d0104]:hover{background:#e0e0e0;transform:rotate(90deg)}.detail-body[data-v-5a9d0104]{padding:25px}.detail-student[data-v-5a9d0104]{display:flex;align-items:center;gap:20px;padding:20px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:var(--radius);margin-bottom:25px}.student-avatar-large[data-v-5a9d0104]{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:32px}.student-info-large h2[data-v-5a9d0104]{margin:0 0 10px 0;color:var(--dark)}.student-info-large p[data-v-5a9d0104]{margin:5px 0;color:#666;font-size:14px}.detail-scores[data-v-5a9d0104]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:25px}.score-item[data-v-5a9d0104]{padding:15px;background:#f8f9fa;border-radius:var(--radius);text-align:center}.score-item.highlight[data-v-5a9d0104]{background:linear-gradient(135deg,#fff3e0,#ffe0b2)}.score-label[data-v-5a9d0104]{display:block;font-size:13px;color:#999;margin-bottom:8px}.score-value[data-v-5a9d0104]{display:block;font-size:20px;font-weight:700;color:var(--dark)}.score-value.large[data-v-5a9d0104]{font-size:28px;color:var(--primary)}.score-value.rank[data-v-5a9d0104]{color:#ff9800}.grade-badge-large[data-v-5a9d0104]{display:inline-block;padding:10px 20px;border-radius:12px;font-weight:700;font-size:20px}.grade-badge-large.a[data-v-5a9d0104]{background:linear-gradient(135deg,#4caf50,#66bb6a);color:#fff}.grade-badge-large.b[data-v-5a9d0104]{background:linear-gradient(135deg,#2196f3,#42a5f5);color:#fff}.grade-badge-large.c[data-v-5a9d0104]{background:linear-gradient(135deg,#ff9800,#ffb74d);color:#fff}.grade-badge-large.d[data-v-5a9d0104]{background:linear-gradient(135deg,#ffc107,#ffd54f);color:#fff}.grade-badge-large.e[data-v-5a9d0104]{background:linear-gradient(135deg,#f44336,#ef5350);color:#fff}.detail-chart[data-v-5a9d0104]{padding:20px;background:#f8f9fa;border-radius:var(--radius)}.detail-chart h4[data-v-5a9d0104]{margin-bottom:20px;color:var(--dark)}.chart-bars[data-v-5a9d0104]{display:flex;justify-content:space-around;align-items:flex-end;height:200px;gap:20px}.chart-bar[data-v-5a9d0104]{flex:1;display:flex;flex-direction:column;align-items:center;position:relative}.bar-fill[data-v-5a9d0104]{width:100%;border-radius:8px 8px 0 0;transition:height .3s;position:relative}.bar-label[data-v-5a9d0104]{margin-top:10px;font-size:12px;color:#666;text-align:center}.bar-value[data-v-5a9d0104]{position:absolute;top:-25px;left:50%;transform:translateX(-50%);font-weight:700;color:var(--dark);font-size:14px}.detail-footer[data-v-5a9d0104]{padding:20px;border-top:2px solid #f0f0f0;display:flex;justify-content:center}.confirm-btn[data-v-5a9d0104]{padding:10px 24px;border-radius:50px;border:none;cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-5a9d0104]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}@media (max-width:768px){.filter-row[data-v-5a9d0104],.rule-items[data-v-5a9d0104],.stats-section[data-v-5a9d0104]{grid-template-columns:1fr}.score-table[data-v-5a9d0104]{font-size:12px}.score-table td[data-v-5a9d0104],.score-table th[data-v-5a9d0104]{padding:10px 5px}.detail-scores[data-v-5a9d0104]{grid-template-columns:1fr}.pagination[data-v-5a9d0104]{flex-direction:column;align-items:flex-start}.pagination-controls[data-v-5a9d0104]{width:100%;justify-content:center}}.api-test[data-v-cd9dd844]{padding:20px}.page-title[data-v-cd9dd844]{display:flex;align-items:center;gap:10px;color:var(--dark);margin-bottom:10px}.page-desc[data-v-cd9dd844]{color:#666;margin-bottom:20px}.test-panel[data-v-cd9dd844]{max-width:1200px;margin:0 auto}.test-section[data-v-cd9dd844]{background:#fff;border-radius:16px;padding:20px;margin-bottom:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.test-section h3[data-v-cd9dd844]{display:flex;align-items:center;gap:10px;color:var(--dark);margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid var(--secondary)}.test-item[data-v-cd9dd844]{margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:var(--radius)}.test-item h4[data-v-cd9dd844]{color:var(--dark);margin-bottom:10px}.test-form[data-v-cd9dd844]{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.test-form input[data-v-cd9dd844]{padding:10px;border-radius:var(--radius);border:2px solid #e0e0e0;outline:none;transition:all .3s}.test-form input[data-v-cd9dd844]:focus{border-color:var(--secondary)}.week-selector[data-v-cd9dd844]{display:flex;flex-wrap:wrap;gap:10px;padding:10px;background:#fff;border-radius:var(--radius)}.week-selector label[data-v-cd9dd844]{display:flex;align-items:center;gap:5px;cursor:pointer}.test-btn[data-v-cd9dd844]{padding:10px 20px;border-radius:50px;border:none;background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;cursor:pointer;transition:all .3s;font-weight:600}.test-btn[data-v-cd9dd844]:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,158,188,.4)}.test-result[data-v-cd9dd844]{margin-top:10px;padding:15px;background:#2d2d2d;border-radius:var(--radius);color:#66d9ef;max-height:300px;overflow-y:auto}.test-result pre[data-v-cd9dd844]{margin:0;font-family:Courier New,monospace;font-size:12px;white-space:pre-wrap;word-break:break-all}.test-actions[data-v-cd9dd844]{text-align:center;padding:20px}.clear-btn[data-v-cd9dd844]{padding:12px 30px;border-radius:50px;border:none;background:linear-gradient(135deg,#f44336,#ef5350);color:#fff;cursor:pointer;transition:all .3s;font-weight:600;display:inline-flex;align-items:center;gap:8px}.clear-btn[data-v-cd9dd844]:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(244,67,54,.4)}.demo-container[data-v-5a73f712]{padding:20px;max-width:1200px;margin:0 auto}.page-title[data-v-5a73f712]{display:flex;align-items:center;gap:10px;color:var(--dark);margin-bottom:10px}.page-desc[data-v-5a73f712]{color:#666;margin-bottom:30px}.demo-section[data-v-5a73f712]{background:#fff;border-radius:16px;padding:25px;margin-bottom:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.demo-section h3[data-v-5a73f712]{display:flex;align-items:center;gap:10px;color:var(--dark);margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #f0f0f0}.demo-buttons[data-v-5a73f712]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.btn[data-v-5a73f712]{padding:12px 24px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:all .3s;display:flex;align-items:center;gap:8px;color:#fff}.btn[data-v-5a73f712]:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}.btn.success[data-v-5a73f712]{background:linear-gradient(135deg,#4caf50,#66bb6a)}.btn.error[data-v-5a73f712]{background:linear-gradient(135deg,#f44336,#ef5350)}.btn.warning[data-v-5a73f712]{background:linear-gradient(135deg,#ff9800,#ffb74d)}.btn.info[data-v-5a73f712]{background:linear-gradient(135deg,#2196f3,#42a5f5)}.btn.primary[data-v-5a73f712]{background:linear-gradient(135deg,var(--primary),#ffb3d0)}.btn.danger[data-v-5a73f712]{background:linear-gradient(135deg,#dc3545,#e74c3c)}.code-example[data-v-5a73f712]{background:#2d2d2d;border-radius:8px;padding:15px}.code-example pre[data-v-5a73f712]{margin:0;overflow-x:auto}.code-example code[data-v-5a73f712]{color:#f8f8f2;font-family:Courier New,monospace;font-size:13px;line-height:1.6}.scenario-list[data-v-5a73f712]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:15px}.scenario-item[data-v-5a73f712]{padding:20px;background:#f8f9fa;border-radius:12px;border-left:4px solid var(--primary)}.scenario-item h4[data-v-5a73f712]{margin:0 0 12px 0;color:var(--dark);font-size:16px}.scenario-item button[data-v-5a73f712]{margin-bottom:10px;width:100%}.scenario-item code[data-v-5a73f712]{display:block;background:#fff;padding:8px 12px;border-radius:6px;font-size:12px;color:#666;font-family:Courier New,monospace}.usage-info[data-v-5a73f712]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.info-card[data-v-5a73f712]{padding:20px;background:linear-gradient(135deg,#f8f9fa,#fff5f7);border-radius:12px;border:2px solid var(--secondary)}.info-card h4[data-v-5a73f712]{margin:0 0 15px 0;color:var(--dark);font-size:16px}.info-card ul[data-v-5a73f712]{margin:0;padding-left:20px}.info-card li[data-v-5a73f712]{margin-bottom:8px;color:#666;font-size:14px;line-height:1.6}.info-card code[data-v-5a73f712]{background:#fff;padding:2px 6px;border-radius:4px;font-size:13px;color:var(--primary);font-family:Courier New,monospace}@media (max-width:768px){.demo-buttons[data-v-5a73f712]{flex-direction:column}.scenario-list[data-v-5a73f712],.usage-info[data-v-5a73f712]{grid-template-columns:1fr}}.table-container[data-v-10773710]{overflow-x:auto;margin-top:10px;scrollbar-width:none;-ms-overflow-style:none}.table-container[data-v-10773710]::-webkit-scrollbar{display:none}.user-table[data-v-10773710]{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.08)}.user-table thead[data-v-10773710]{background:linear-gradient(135deg,#f8f9fa,#fff5f7)}.user-table th[data-v-10773710]{padding:15px;text-align:left;font-weight:600;color:var(--dark);border-bottom:2px solid var(--secondary)}.user-table td[data-v-10773710]{padding:15px;border-bottom:1px solid #f0f0f0}.user-row[data-v-10773710]{transition:all .3s}.user-row[data-v-10773710]:hover{background:#fff5f7}.empty-row[data-v-10773710]{text-align:center;padding:60px 20px!important;color:#999}.empty-row i[data-v-10773710]{margin-bottom:10px;opacity:.5}.role-tag[data-v-10773710]{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600}.role-tag.admin[data-v-10773710]{background:linear-gradient(135deg,#ffe0b2,#ffcc80);color:#e65100}.role-tag.teacher[data-v-10773710]{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1976d2}.op-wrap[data-v-10773710]{display:flex;align-items:center;gap:10px}.op-label[data-v-10773710]{color:#666;font-size:13px}.card[data-v-10773710]{background:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 4px 12px rgba(0,0,0,.08)}.setting-row[data-v-10773710]{display:flex;justify-content:space-between;align-items:center}.setting-info[data-v-10773710]{max-width:75%}.setting-title[data-v-10773710]{font-weight:700;color:var(--dark);margin-bottom:6px}.setting-desc[data-v-10773710]{color:#666;font-size:13px}.switch[data-v-10773710]{position:relative;display:inline-block;width:50px;height:28px}.switch input[data-v-10773710]{display:none}.slider[data-v-10773710]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ccc;transition:.3s;border-radius:28px}.slider[data-v-10773710]:before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.slider[data-v-10773710]{background:linear-gradient(135deg,var(--primary),#ffb3d0)}input:checked+.slider[data-v-10773710]:before{transform:translateX(22px)}.switch.small[data-v-10773710]{width:44px;height:24px}.switch.small .slider[data-v-10773710]:before{height:18px;width:18px}.switch.small input:checked+.slider[data-v-10773710]:before{transform:translateX(20px)}:root{--primary:#ff9ebc;--secondary:#a0e7ff;--dark:#5a6b8c;--radius:12px}*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}body{background:linear-gradient(135deg,#e0f7ff,#fff0f5);min-height:100vh;color:var(--dark)}.container{max-width:1200px;margin:0 auto;padding:20px}@media (max-width:768px){.container{padding:10px}}.message-box[data-v-2c1d5d46]{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;align-items:center;justify-content:center;pointer-events:none}.message-content[data-v-2c1d5d46]{display:flex;align-items:center;gap:12px;padding:16px 24px;border-radius:12px;background:#fff;box-shadow:0 8px 32px rgba(0,0,0,.15);pointer-events:all;min-width:300px;max-width:500px;animation:slideDown-2c1d5d46 .3s ease-out}@keyframes slideDown-2c1d5d46{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.message-content i[data-v-2c1d5d46]:first-child{font-size:20px;flex-shrink:0}.message-text[data-v-2c1d5d46]{flex:1;font-size:14px;color:#333;line-height:1.5;word-break:break-word}.close-btn[data-v-2c1d5d46]{width:24px;height:24px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s;color:#999;flex-shrink:0}.close-btn[data-v-2c1d5d46]:hover{background:#f0f0f0;color:#333}.message-box.success .message-content[data-v-2c1d5d46]{border-left:4px solid #4caf50}.message-box.success i[data-v-2c1d5d46]:first-child{color:#4caf50}.message-box.error .message-content[data-v-2c1d5d46]{border-left:4px solid #f44336}.message-box.error i[data-v-2c1d5d46]:first-child{color:#f44336}.message-box.warning .message-content[data-v-2c1d5d46]{border-left:4px solid #ff9800}.message-box.warning i[data-v-2c1d5d46]:first-child{color:#ff9800}.message-box.info .message-content[data-v-2c1d5d46]{border-left:4px solid #2196f3}.message-box.info i[data-v-2c1d5d46]:first-child{color:#2196f3}.message-fade-enter-active[data-v-2c1d5d46],.message-fade-leave-active[data-v-2c1d5d46]{transition:all .3s ease}.message-fade-enter[data-v-2c1d5d46],.message-fade-leave-to[data-v-2c1d5d46]{opacity:0;transform:translateX(-50%) translateY(-20px)}@media (max-width:768px){.message-content[data-v-2c1d5d46]{min-width:280px;max-width:90vw;padding:14px 20px}.message-text[data-v-2c1d5d46]{font-size:13px}}.confirm-overlay[data-v-0420cd32]{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:10000}.confirm-box[data-v-0420cd32]{background:#fff;border-radius:16px;width:90%;max-width:420px;overflow:hidden;animation:scaleIn-0420cd32 .3s ease-out}@keyframes scaleIn-0420cd32{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.confirm-header[data-v-0420cd32]{padding:24px 24px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #f0f0f0}.confirm-header i[data-v-0420cd32]{font-size:24px}.confirm-header i.success[data-v-0420cd32]{color:#4caf50}.confirm-header i.error[data-v-0420cd32]{color:#f44336}.confirm-header i.warning[data-v-0420cd32]{color:#ff9800}.confirm-header i.info[data-v-0420cd32]{color:#2196f3}.confirm-header h3[data-v-0420cd32]{margin:0;font-size:18px;color:#333;font-weight:600}.confirm-body[data-v-0420cd32]{padding:24px}.confirm-body p[data-v-0420cd32]{margin:0;font-size:15px;color:#666;line-height:1.6;white-space:pre-wrap;word-break:break-word}.confirm-footer[data-v-0420cd32]{padding:16px 24px 24px;display:flex;justify-content:flex-end;gap:12px}.cancel-btn[data-v-0420cd32],.confirm-btn[data-v-0420cd32]{padding:10px 24px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:600;transition:all .3s}.cancel-btn[data-v-0420cd32]{background:#f0f0f0;color:#666}.cancel-btn[data-v-0420cd32]:hover{background:#e0e0e0}.confirm-btn[data-v-0420cd32]{background:linear-gradient(135deg,var(--primary),#ffb3d0);color:#fff;box-shadow:0 4px 12px rgba(255,158,188,.3)}.confirm-btn[data-v-0420cd32]:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(255,158,188,.5)}.confirm-fade-enter-active[data-v-0420cd32],.confirm-fade-leave-active[data-v-0420cd32]{transition:opacity .3s ease}.confirm-fade-enter[data-v-0420cd32],.confirm-fade-leave-to[data-v-0420cd32]{opacity:0}@media (max-width:768px){.confirm-box[data-v-0420cd32]{max-width:90vw}.confirm-body[data-v-0420cd32],.confirm-footer[data-v-0420cd32],.confirm-header[data-v-0420cd32]{padding-left:20px;padding-right:20px}}