.login-container[data-v-18dfcdfb]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f1f5f9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.login-card[data-v-18dfcdfb]{background:#fff;padding:40px;border-radius:12px;box-shadow:0 4px 6px #0000000d;width:100%;max-width:400px}.login-title[data-v-18dfcdfb]{margin:0 0 24px;font-size:24px;font-weight:600;color:#1e293b;text-align:center}.login-form[data-v-18dfcdfb]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-18dfcdfb]{display:flex;flex-direction:column;gap:6px}.form-group label[data-v-18dfcdfb]{font-size:14px;font-weight:500;color:#475569}.form-group input[data-v-18dfcdfb]{padding:12px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:15px;transition:border-color .2s,box-shadow .2s}.form-group input[data-v-18dfcdfb]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input[data-v-18dfcdfb]:disabled{background:#f8fafc;cursor:not-allowed}.error-message[data-v-18dfcdfb]{padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px}.login-button[data-v-18dfcdfb]{padding:14px 24px;background:#3b82f6;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background-color .2s}.login-button[data-v-18dfcdfb]:hover:not(:disabled){background:#2563eb}.login-button[data-v-18dfcdfb]:disabled{background:#94a3b8;cursor:not-allowed}.spinner[data-v-18dfcdfb]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-18dfcdfb .8s linear infinite}@keyframes spin-18dfcdfb{to{transform:rotate(360deg)}}.service-status[data-v-90095c85]{padding:16px;background:#f8fafc;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.service-title[data-v-90095c85]{margin:0 0 12px;font-size:13px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.service-list[data-v-90095c85]{list-style:none;margin:0;padding:0}.service-item[data-v-90095c85]{display:flex;align-items:center;gap:10px;padding:8px 0}.service-item[data-v-90095c85]:not(:last-child){border-bottom:1px solid #e2e8f0}.status-dot[data-v-90095c85]{width:10px;height:10px;border-radius:50%;flex-shrink:0;transition:background-color .3s ease}.status-dot.online[data-v-90095c85]{background-color:#22c55e;box-shadow:0 0 6px #22c55e66}.status-dot.offline[data-v-90095c85]{background-color:#ef4444;box-shadow:0 0 6px #ef444466}.status-dot.checking[data-v-90095c85]{background-color:#f59e0b;animation:pulse-90095c85 1.5s ease-in-out infinite}@keyframes pulse-90095c85{0%,to{opacity:1}50%{opacity:.5}}.service-name[data-v-90095c85]{font-size:14px;color:#334155;font-weight:500}.last-check[data-v-90095c85]{margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0;font-size:11px;color:#94a3b8}.upload-container[data-v-e227cc57]{max-width:480px;margin:0 auto;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.upload-title[data-v-e227cc57]{margin:0 0 24px;font-size:24px;font-weight:600;color:#1a1a1a;text-align:center}.file-input-wrapper[data-v-e227cc57]{margin-bottom:16px}.file-label[data-v-e227cc57]{display:flex;flex-direction:column;align-items:center;padding:32px;border:2px dashed #d0d0d0;border-radius:8px;cursor:pointer;transition:border-color .2s,background-color .2s}.file-label[data-v-e227cc57]:hover{border-color:#4a90d9;background-color:#f8fafc}.file-input[data-v-e227cc57]{display:none}.file-button[data-v-e227cc57]{padding:10px 24px;background:#4a90d9;color:#fff;border-radius:6px;font-weight:500;margin-bottom:8px}.file-hint[data-v-e227cc57]{font-size:14px;color:#666}.selected-file[data-v-e227cc57]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f0f7ff;border-radius:6px;margin-bottom:16px}.file-icon[data-v-e227cc57]{font-size:20px}.file-name[data-v-e227cc57]{font-weight:500;color:#1a1a1a;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size[data-v-e227cc57]{font-size:13px;color:#666}.error-message[data-v-e227cc57]{padding:12px 16px;background:#fff0f0;border:1px solid #ffcdd2;border-radius:6px;color:#c62828;font-size:14px;margin-bottom:16px}.error-details[data-v-e227cc57]{padding:16px;background:#fff8e1;border:1px solid #ffe082;border-radius:8px;margin-bottom:16px}.error-header[data-v-e227cc57]{font-weight:600;color:#e65100;margin-bottom:12px}.invalid-files[data-v-e227cc57]{margin-bottom:12px}.invalid-label[data-v-e227cc57],.format-label[data-v-e227cc57]{font-size:13px;font-weight:500;color:#666;margin-bottom:4px}.invalid-files ul[data-v-e227cc57]{margin:0;padding-left:20px}.invalid-files li[data-v-e227cc57]{font-family:monospace;font-size:13px;color:#c62828;padding:2px 0}.expected-format code[data-v-e227cc57]{display:block;background:#fff;padding:8px 12px;border-radius:4px;font-size:13px;color:#2e7d32;margin-bottom:8px}.examples[data-v-e227cc57]{font-size:12px;color:#666}.examples code[data-v-e227cc57]{display:inline;background:#e8f5e9;padding:2px 6px;border-radius:3px;margin-left:4px;color:#2e7d32}.submit-button[data-v-e227cc57]{width:100%;padding:14px 24px;background:#4a90d9;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background-color .2s}.submit-button[data-v-e227cc57]:hover:not(:disabled){background:#3a7bc8}.submit-button[data-v-e227cc57]:disabled{background:#b0b0b0;cursor:not-allowed}.spinner[data-v-e227cc57]{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-e227cc57 .8s linear infinite}@keyframes spin-e227cc57{to{transform:rotate(360deg)}}.progress-section[data-v-e227cc57]{margin-top:24px}.progress-bar-wrapper[data-v-e227cc57]{height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.progress-bar[data-v-e227cc57]{height:100%;background:#4a90d9;border-radius:4px;transition:width .3s ease}.progress-text[data-v-e227cc57]{text-align:right;font-size:13px;color:#666;margin-top:4px}.status-message[data-v-e227cc57]{text-align:center;font-size:14px;color:#666;margin-top:12px}.upload-summary[data-v-e227cc57]{text-align:center}.summary-icon[data-v-e227cc57]{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:32px}.success-icon[data-v-e227cc57]{color:#2e7d32;background:#e8f5e9;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center}.warning-icon[data-v-e227cc57]{color:#f57c00;background:#fff3e0;width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.summary-title[data-v-e227cc57]{margin:0 0 24px;font-size:20px;color:#1a1a1a}.summary-stats[data-v-e227cc57]{display:flex;justify-content:center;gap:32px;margin-bottom:24px}.stat[data-v-e227cc57]{display:flex;flex-direction:column;align-items:center;gap:4px}.stat-icon[data-v-e227cc57]{font-size:20px}.stat.success .stat-icon[data-v-e227cc57]{color:#2e7d32}.stat.failed .stat-icon[data-v-e227cc57]{color:#c62828}.stat-value[data-v-e227cc57]{font-size:28px;font-weight:600;color:#1a1a1a}.stat-label[data-v-e227cc57]{font-size:13px;color:#666}.summary-actions[data-v-e227cc57]{display:flex;flex-direction:column;gap:12px}.download-button[data-v-e227cc57]{padding:12px 24px;background:#fff3e0;color:#e65100;border:1px solid #ffcc80;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.download-button[data-v-e227cc57]:hover{background:#ffe0b2}.reset-button[data-v-e227cc57]{padding:12px 24px;background:#f5f5f5;color:#1a1a1a;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.reset-button[data-v-e227cc57]:hover{background:#e8e8e8}.dashboard[data-v-d98d3b17]{max-width:900px;margin:0 auto}.section-header[data-v-d98d3b17]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-title[data-v-d98d3b17]{margin:0;font-size:20px;font-weight:600;color:#1e293b}.refresh-btn[data-v-d98d3b17]{padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;font-size:13px;cursor:pointer}.refresh-btn[data-v-d98d3b17]:hover:not(:disabled){background:#e2e8f0}.students-section[data-v-d98d3b17]{background:#fff;border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.table-container[data-v-d98d3b17]{overflow-x:auto}.students-table[data-v-d98d3b17]{width:100%;border-collapse:collapse;font-size:14px}.students-table th[data-v-d98d3b17],.students-table td[data-v-d98d3b17]{padding:12px 16px;text-align:left;border-bottom:1px solid #e2e8f0}.students-table th[data-v-d98d3b17]{background:#f8fafc;font-weight:600;color:#475569;white-space:nowrap}.students-table tbody tr[data-v-d98d3b17]:hover{background:#f8fafc}.col-no[data-v-d98d3b17]{width:60px;text-align:center}.col-nisn[data-v-d98d3b17]{width:140px;font-family:monospace}.col-npsn[data-v-d98d3b17]{width:120px;font-family:monospace}.col-status[data-v-d98d3b17]{width:100px;text-align:center}.loading-cell[data-v-d98d3b17],.empty-cell[data-v-d98d3b17]{text-align:center;padding:40px 16px;color:#64748b}.status-link[data-v-d98d3b17]{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s}.status-link[data-v-d98d3b17]:hover{transform:scale(1.1)}.status-pending[data-v-d98d3b17],.status-missing[data-v-d98d3b17],.status-warning[data-v-d98d3b17],.status-failed[data-v-d98d3b17]{display:inline-flex;align-items:center;justify-content:center}.pagination[data-v-d98d3b17]{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.page-btn[data-v-d98d3b17]{padding:8px 16px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;color:#475569;cursor:pointer}.page-btn[data-v-d98d3b17]:hover:not(:disabled){background:#e2e8f0}.page-btn[data-v-d98d3b17]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-d98d3b17]{font-size:14px;color:#64748b}.total-info[data-v-d98d3b17]{text-align:center;margin-top:12px;font-size:13px;color:#94a3b8}.legend[data-v-d98d3b17]{display:flex;justify-content:center;gap:20px;margin-top:16px;padding-top:12px;border-top:1px solid #e2e8f0}.legend-item[data-v-d98d3b17]{display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.upload-section[data-v-d98d3b17]{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}*{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f1f5f9}.app-container{display:flex;min-height:100vh}.sidebar{width:260px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0}.sidebar-header{padding:20px;border-bottom:1px solid #e2e8f0}.app-logo{margin:0;font-size:20px;font-weight:700;color:#1e293b}.sidebar-nav{flex:1;padding:16px 12px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 16px;color:#64748b;text-decoration:none;border-radius:8px;font-size:15px;font-weight:500;transition:background-color .2s,color .2s;margin-bottom:4px}.nav-link:hover{background-color:#f1f5f9;color:#334155}.nav-link.active{background-color:#eff6ff;color:#2563eb}.nav-icon{font-size:18px}.sidebar-user{padding:16px;border-top:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.user-info{display:flex;flex-direction:column}.user-npsn{font-size:13px;color:#64748b;font-weight:500}.logout-button{padding:6px 12px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;font-size:13px;color:#64748b;cursor:pointer;transition:background-color .2s}.logout-button:hover{background:#e2e8f0;color:#334155}.sidebar-footer{padding:16px;border-top:1px solid #e2e8f0}.main-content{flex:1;margin-left:260px;padding:40px}@media (max-width: 768px){.sidebar{width:100%;position:relative;border-right:none;border-bottom:1px solid #e2e8f0}.app-container{flex-direction:column}.main-content{margin-left:0;padding:20px}.sidebar-footer{display:none}}
