:root{--primary-color:#2563eb;--primary-hover:#1d4ed8;--primary-gradient:linear-gradient(135deg, #ff00fb, #00bfff);--success:#22c55e;--danger:#ef4444;--warning:#f59e0b;--bg-body:#f4f6fb;--bg-card:#fff;--bg-sidebar:#0f172a;--bg-hover:#1e293b;--text-dark:#111827;--text-light:#6b7280;--text-white:#fff;--border:#e5e7eb;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--shadow-sm:0 2px 8px #00000014;--shadow-md:0 8px 20px #0000001a;--shadow-lg:0 18px 45px #0000001f;--font:"Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg-body);color:var(--text-dark);line-height:1.5;overflow-x:hidden}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit;transition:all .25s}input,select,textarea{outline:none;font-family:inherit}.login-page{justify-content:center;align-items:center;height:100vh;padding-right:28%;display:flex;position:relative;overflow:hidden}.login-bg{object-fit:cover;z-index:-1;width:100%;height:100%;position:absolute;inset:0}.login-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:420px;box-shadow:var(--shadow-lg);background:#11111173;border-radius:20px;flex-direction:column;gap:18px;padding:42px;display:flex}.login-header{flex-direction:column;align-items:center;margin-bottom:10px;display:flex}.login-logo{filter:drop-shadow(0 0 10px #00bfff)drop-shadow(0 0 20px #ff00fb);width:110px;margin-bottom:12px}.login-input{background:#fff;border:1px solid #333;border-radius:10px;width:100%;height:48px;padding:0 16px;font-size:15px;color:#1b1b1b!important}.login-input::placeholder{color:#1b1b1b}.login-input:focus{border-color:#00bfff;box-shadow:0 0 0 3px #2563eb33}.show-pass{color:#00bfff;background:0 0;border:none;align-self:flex-end;font-size:13px}.show-pass:hover{color:#ff00fb}.login-btn{background:var(--primary-gradient);color:#fff;border:none;border-radius:10px;height:48px;font-size:15px;font-weight:600}.login-btn:hover{transform:translateY(-2px);box-shadow:0 0 15px #00c6ff,0 0 30px #0072ff}.login-error{color:#ff5c5c;font-size:14px}.navbar{background:var(--primary-gradient);z-index:999;justify-content:space-between;align-items:center;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.navbar-logo a{align-items:center;gap:14px;text-decoration:none;display:flex}.logo-img{height:48px}.navbar-link{color:#fff;border-radius:10px;padding:10px 16px;font-size:15px;font-weight:600;text-decoration:none}.logout-icon{color:#fff;font-size:20px}.logout-icon:hover{color:#ff4d4d}.sidebar{color:#fff;background:url(/image/sidebar.jpg) 50%/cover;width:260px;min-width:260px;height:calc(100vh - 64px);padding:24px;position:sticky;top:64px;overflow-y:auto}.sidebar:before{content:"";z-index:1;background:#00000052;position:absolute;inset:0}.sidebar>*{z-index:2;position:relative}.sidebar-link{color:#fff;border-radius:12px;align-items:center;gap:12px;height:48px;padding:0 14px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.sidebar-link:hover{background:var(--primary-gradient)}.sidebar-submenu{margin-top:8px;padding-left:22px;list-style:none}.sidebar-submenu a{color:#d1d5db;border-radius:10px;padding:10px 14px;font-size:14px;text-decoration:none;display:block}.sidebar-submenu a:hover{background:var(--primary-gradient);color:#fff}.icon{font-size:18px}.arrow{margin-left:auto;font-size:12px}.layout{flex-direction:column;width:100%;min-height:100vh;display:flex}.layout-body{flex:1;align-items:stretch;min-height:calc(100vh - 64px);display:flex}.main-content{background:#f4f6fb;flex:1;padding:30px;overflow:hidden auto}.dashboard-title,.page-title{color:#111827;margin-bottom:28px;font-size:34px;font-weight:700}.dashboard-title em,.page-title em{color:#ff00fb;font-style:normal}.cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:35px;display:grid}.card{background:#fff;border-radius:18px;flex-direction:column;transition:all .3s;display:flex;overflow:hidden;box-shadow:0 10px 28px #00000014}.card:hover{transform:translateY(-6px);box-shadow:0 18px 35px #0000001f}.card h3{color:#111827;margin-bottom:14px;font-size:20px;font-weight:700}.card p{color:#2563eb;font-size:30px;font-weight:700}.simulator-cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.simulator-cards .card{color:#fff;background:linear-gradient(135deg,#d946ef,#22a6f2)}.simulator-cards .card h3,.simulator-cards .card p{color:#fff}.stat-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#ffffff26;border-radius:14px;padding:18px}.stat-item strong{color:#fff;margin-bottom:6px;font-size:26px;font-weight:700;display:block}.section-title{color:#111827;margin-bottom:20px;font-size:26px;font-weight:700}.chart-section{background:#fff;border-radius:18px;width:100%;margin-top:35px;padding:25px;box-shadow:0 8px 24px #00000014}.top-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:28px;display:flex}.training-actions,.report-actions{flex-wrap:wrap;gap:14px;display:flex}.action-btn,.save-btn,.open-btn,.details-btn,.login-btn,.all-bopt-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff00fb,#00bfff);border:none;border-radius:12px;height:46px;padding:0 24px;font-size:15px;font-weight:600;transition:all .3s}.action-btn:hover,.save-btn:hover,.open-btn:hover,.details-btn:hover,.all-bopt-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00bfff59}.excel-upload{color:#fff;background:linear-gradient(135deg,#00c853,#00b0ff);border:none;border-radius:12px;height:46px;padding:0 22px;font-size:15px;font-weight:600}.sample-excel-btn{color:#fff;background:linear-gradient(135deg,#f59e0b,#ef4444);border:none;border-radius:12px;height:46px;padding:0 22px;font-size:15px;font-weight:600}.student-form{background:#fff;border-radius:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:30px;padding:26px;display:grid;box-shadow:0 10px 30px #00000014}.student-form input{border:1px solid #d1d5db;border-radius:12px;width:100%;height:48px;padding:0 16px;font-size:15px;transition:all .25s}.student-form input:focus{border-color:#00bfff;box-shadow:0 0 0 3px #00bfff26}.batch-form{background:#fff;border-radius:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-bottom:30px;padding:26px;display:grid}.batch-form input{border:1px solid #d1d5db;border-radius:12px;height:48px;padding:0 16px;font-size:15px}.batch-form input:focus{border-color:#00bfff;box-shadow:0 0 0 3px #00bfff26}.actions{flex-wrap:wrap;gap:14px;margin-top:20px;display:flex}.table-wrapper,.score-table-wrapper{background:#fff;border-radius:18px;width:100%;margin-top:24px;padding:24px;overflow-x:auto;box-shadow:0 10px 30px #0f172a14}.training-table,.score-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1000px}.training-table th,.score-table th{text-align:left;color:#111827;white-space:nowrap;border-bottom:2px solid #e5e7eb;padding:18px 20px;font-size:15px;font-weight:700}.training-table td,.score-table td{color:#374151;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #e5e7eb;padding:18px 20px;font-size:14px;overflow:hidden}.training-table tbody tr,.score-table tbody tr{transition:all .25s}.training-table tbody tr:nth-child(2n),.score-table tbody tr:nth-child(2n){background:#fafafa}.training-table input[type=checkbox]{accent-color:#2563eb;cursor:pointer;width:18px;height:18px}.training-table th:first-child,.training-table td:first-child{width:60px}.training-table th:nth-child(2),.training-table td:nth-child(2){width:180px}.training-table th:nth-child(3),.training-table td:nth-child(3){width:260px}.training-table th:nth-child(4),.training-table td:nth-child(4){width:170px}.training-table th:nth-child(5),.training-table td:nth-child(5){width:420px}.action-cell{flex-wrap:nowrap;align-items:center;gap:10px;display:flex}.edit-btn{color:#2563eb;background:#e8f0ff;border:none;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;transition:all .25s;display:flex}.edit-btn:hover{color:#fff;background:#2563eb;transform:translateY(-2px)}.delete-btn{color:#ef4444;background:#ffe9e9;border:none;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;transition:all .25s;display:flex}.delete-btn:hover{color:#fff;background:#ef4444;transform:translateY(-2px)}.details-btn{color:#fff;white-space:nowrap;border:none;border-radius:10px;min-width:170px;height:42px;padding:0 18px;font-size:14px;font-weight:600;transition:all .25s}.create-login-btn{background:linear-gradient(135deg,#d946ef,#0ea5e9)}.create-login-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #d946ef59}.view-login-btn{background:linear-gradient(135deg,#10b981,#06b6d4)}.view-login-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #10b98159}.header-login-btn{min-width:180px;height:44px;margin-left:18px}.login-created-badge{color:#15803d;background:#dcfce7;border:1px solid #86efac;border-radius:33px;justify-content:center;align-items:center;width:110px;height:33px;font-size:11px;font-weight:700;display:flex}.not-created-text{color:#9ca3af;font-size:14px;font-weight:600}.actions-head{padding:0!important}.actions-head-inner{justify-content:space-between;align-items:center;gap:18px;height:72px;padding:0 18px;display:flex}.pagination button,.score-pagination button{color:#fff;background:linear-gradient(135deg,#ff00fb,#00bfff);border:none;border-radius:10px;min-width:110px;height:42px;font-size:14px;font-weight:600;transition:all .25s}.pagination button:hover,.score-pagination button:hover{transform:translateY(-2px);box-shadow:0 8px 18px #00bfff59}.pagination button:disabled,.score-pagination button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.pagination span,.score-pagination span{color:#111827;font-size:15px;font-weight:600}.score-table td:last-child{color:#2563eb;font-weight:700}.student-action-group{align-items:center;gap:10px;display:flex}.view-score-btn{color:#fff;background:#2563eb}.view-score-btn:hover{background:#1d4ed8}.badge{border-radius:30px;justify-content:center;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.badge-success{color:#15803d;background:#dcfce7}.badge-danger{color:#dc2626;background:#fee2e2}.badge-warning{color:#b45309;background:#fef3c7}.badge-info{color:#1d4ed8;background:#dbeafe}.batch-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:24px;margin-bottom:36px;display:grid}.batch-card{cursor:pointer;background:url(/image/batch.jpg) 50%/cover;border-radius:20px;padding:26px;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 12px 28px #0000001a}.batch-card:before{content:"";z-index:0;background:#00000061;position:absolute;inset:0}.batch-card>*{z-index:2;position:relative}.batch-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px #00000029}.active-batch{border:2px solid #8b5cf6;box-shadow:0 0 0 4px #8b5cf626}.batch-top{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.batch-top h3{color:#fff;font-size:24px;font-weight:700}.batch-top span{color:#7c3aed;background:#fff;border-radius:30px;padding:6px 14px;font-size:12px;font-weight:700}.batch-dates{margin-bottom:24px}.batch-dates p{color:#fff;margin:8px 0;font-size:14px}.batch-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.batch-show{background:url(/image/batch.jpg) 50%/cover;border-radius:20px;flex:1;padding:28px;position:relative;overflow:hidden}.batch-show:before{content:"";background:#00000073;position:absolute;inset:0}.batch-show>*{z-index:2;position:relative}.batch-title{color:#fff;font-size:34px;font-weight:700}.batch-subtitle{color:#f3f4f6;margin-top:8px;font-size:15px}.batch-info{background:#fff;border-radius:18px;margin-bottom:24px;padding:24px;box-shadow:0 8px 24px #00000014}.batch-info h3{margin-bottom:8px;font-size:22px}.batch-info p{color:#6b7280;font-size:15px}.modal-overlay{z-index:9999;background:#0000008c;justify-content:center;align-items:center;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:20px;width:100%;max-width:500px;animation:.25s scaleIn;overflow:hidden;box-shadow:0 25px 60px #00000038}.modal-top-bar{background:linear-gradient(135deg,#ff00fb,#00bfff);height:5px}.modal-title{align-items:center;gap:12px;display:flex}.modal-icon{color:#2563eb;background:linear-gradient(135deg,#ff00fb20,#00bfff20);border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;font-size:18px;display:flex}.modal-title h2{margin-bottom:2px;font-size:18px}.modal-title p{color:#6b7280;font-size:13px}.close-btn{color:#6b7280;background:#f3f4f6;border:none;border-radius:10px;width:34px;height:34px;font-size:16px}.close-btn:hover{color:#fff;background:#ef4444}.field{margin-bottom:18px}.field label{color:#374151;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input{border:1px solid #d1d5db;border-radius:12px;width:100%;height:46px;padding:0 16px;font-size:15px}.field input:focus{border-color:#00bfff;box-shadow:0 0 0 3px #00bfff26}.btn-primary{color:#fff;background:linear-gradient(135deg,#ff00fb,#00bfff);border:none;border-radius:12px;width:auto;height:46px;font-size:15px;font-weight:600}.btn-primary:hover{transform:translateY(-2px)}.btn-row{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.btn-outline{color:#374151;background:#fff;border:1px solid #ddd;border-radius:12px;height:44px;font-size:14px;font-weight:600}.btn-outline:hover{background:#f3f4f6}.btn-cancel{color:#ff00fb;background:#fff0fe;border-color:#ff00fb55}.modal-tabs{background:#f3f4f6;border-radius:12px;gap:6px;margin:18px 24px;padding:4px;display:flex}.modal-tab{color:#6b7280;background:0 0;border:none;border-radius:10px;flex:1;height:38px;font-size:14px;font-weight:600}.modal-tab.active{color:#111827;background:#fff;box-shadow:0 4px 10px #00000014}.excel-panel{flex-direction:column;gap:16px;display:flex}.excel-dropzone{text-align:center;cursor:pointer;background:#f9fafb;border:2px dashed #cbd5e1;border-radius:16px;padding:40px 20px;transition:all .25s}.excel-dropzone:hover{background:#eef9ff;border-color:#00bfff}.excel-drop-icon{margin-bottom:10px;font-size:34px}.excel-drop-title{margin-bottom:4px;font-size:15px;font-weight:600}.excel-drop-sub{color:#6b7280;font-size:13px}.toast-success,.toast-error{background:#fff;border-radius:14px;align-items:center;gap:12px;padding:16px 18px;font-size:14px;font-weight:600;display:flex;box-shadow:0 8px 24px #0000001a}.toast-success{color:#15803d;border-left:5px solid #22c55e}.toast-error{color:#dc2626;border-left:5px solid #ef4444}.swal2-popup{border-radius:18px!important;padding:26px!important}.swal2-title{font-size:24px!important}.swal2-html-container{font-size:15px!important}.swal2-confirm{background:linear-gradient(135deg,#ff00fb,#00bfff)!important;border-radius:10px!important;padding:10px 28px!important}.swal2-cancel{border-radius:10px!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.action-btn,.save-btn,.details-btn,.all-bopt-btn,.login-btn,.open-btn,.sample-excel-btn,.excel-upload,.header-login-btn{background:var(--primary-gradient);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 22px;font-size:15px;font-weight:600;transition:all .25s;display:inline-flex}.action-btn:hover,.save-btn:hover,.details-btn:hover,.all-bopt-btn:hover,.login-btn:hover,.open-btn:hover,.sample-excel-btn:hover,.excel-upload:hover,.header-login-btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px #0000002e}.edit-btn,.delete-btn{cursor:pointer;border:none;border-radius:10px;width:42px;height:42px;transition:all .25s}.edit-btn{color:#2563eb;background:#e8f1ff}.edit-btn:hover{color:#fff;background:#2563eb}.delete-btn{color:#ef4444;background:#ffe6e6}.delete-btn:hover{color:#fff;background:#ef4444}.table-wrapper{background:#fff;border-radius:20px;overflow:auto;box-shadow:0 10px 30px #00000014}.training-table,.score-table{border-collapse:collapse;width:100%;min-width:950px}.training-table thead,.score-table thead{background:#f8fafc}.training-table th,.score-table th{text-align:left;color:#374151;white-space:nowrap;padding:18px;font-size:15px;font-weight:700}.training-table td,.score-table td{color:#4b5563;border-top:1px solid #edf0f3;padding:13px;font-size:14px}.training-table tbody tr:hover,.score-table tbody tr:hover{background:#f9fbfd}.check-col{text-align:center;width:55px}.action-cell{align-items:center;gap:10px;display:flex}.pagination,.score-pagination{justify-content:flex-end;align-items:center;gap:15px;margin-top:22px;display:flex}.pagination button,.score-pagination button{background:var(--primary-gradient);color:#fff;cursor:pointer;border:none;border-radius:10px;min-width:110px;height:42px;font-weight:600}.pagination button:disabled,.score-pagination button:disabled{opacity:.5;cursor:not-allowed}.pagination span,.score-pagination span{color:#374151;font-weight:600}.cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;display:grid}.card{background:#fff;border-radius:20px;transition:all .3s;overflow:hidden;box-shadow:0 10px 30px #00000014}.card:hover{transform:translateY(-6px)}.card-image{object-fit:cover;width:100%;height:170px}.card-body{padding:22px}.card-body h3{color:#111827;margin-bottom:10px;font-size:18px}.card-body p{color:#2563eb;font-size:30px;font-weight:700}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px;display:grid}.stat-item{text-align:center;background:#f8fafc;border-radius:12px;padding:14px}.stat-item strong{color:#111827;font-size:22px;display:block}.stat-item span{color:#6b7280;font-size:13px}.page-title,.dashboard-title{color:#111827;margin-bottom:25px;font-size:34px;font-weight:700}.page-title em,.dashboard-title em{color:#2563eb}.chart-section{background:#fff;border-radius:20px;margin-top:30px;padding:24px;box-shadow:0 8px 24px #00000014}@media (width<=1200px){.cards{grid-template-columns:repeat(2,1fr)}}@media (width<=992px){.sidebar{width:220px;min-width:220px}.main-content{padding:20px}}@media (width<=768px){.layout-body{flex-direction:column}.sidebar{width:100%;height:auto;position:relative}.cards{grid-template-columns:1fr}.table-wrapper{overflow:auto}.training-table,.score-table{min-width:900px}.pagination,.score-pagination{flex-wrap:wrap;justify-content:center}}@media (width<=480px){.page-title,.dashboard-title{font-size:26px}.card-body p{font-size:24px}.action-btn,.save-btn,.details-btn,.all-bopt-btn{width:100%}}.navbar{background:var(--primary-gradient);z-index:1000;justify-content:space-between;align-items:center;height:60px;padding:0 28px;display:flex;position:sticky;top:0;box-shadow:0 5px 20px #0000001f}.navbar-logo{align-items:center;gap:12px;display:flex}.logo-img{width:auto;height:46px}.logo-text{color:#fff;font-size:22px;font-weight:700}.navbar-menu{align-items:center;gap:10px;list-style:none;display:flex}.navbar-link{color:#fff;border-radius:10px;padding:10px 16px;font-weight:600;text-decoration:none;transition:all .25s}.navbar-link:hover{background:#ffffff2e}.navbar-right{align-items:center;gap:18px;display:flex}.logout-icon{color:#fff;cursor:pointer;font-size:20px;transition:all .25s}.logout-icon:hover{transform:scale(1.15)}.sidebar{color:#fff;width:260px;min-width:260px;height:calc(100vh - 60px);padding:20px;position:sticky;top:60px;overflow-y:auto;box-shadow:6px 0 20px #00000014}.sidebar-title{margin-bottom:25px;font-size:22px;font-weight:700}.sidebar-menu{list-style:none}.sidebar-link{color:#fff;border-radius:12px;align-items:center;gap:12px;padding:12px 15px;text-decoration:none;transition:all .25s;display:flex}.sidebar-link:hover{background:var(--primary-gradient);color:#fff}.sidebar-submenu{margin-top:8px;padding-left:18px}.sidebar-submenu a{color:#cbd5e1;border-radius:8px;padding:10px;text-decoration:none;transition:all .25s;display:block}.sidebar-submenu a:hover{background:#1e293b}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:30px;display:flex;position:relative}.login-bg{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.login-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:2;background:#11111173;border-radius:22px;width:400px;max-width:100%;padding:35px;box-shadow:0 20px 50px #0000004d}.login-header{text-align:center;margin-bottom:25px}.login-logo{width:100px;margin-bottom:15px}.login-title{color:#fff;font-size:34px;font-weight:700}.show-pass{color:#fff;cursor:pointer;background:0 0;border:none;margin-bottom:15px}.login-error{color:#ff4d4d;margin-bottom:15px}.modal-overlay{z-index:9999;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:460px;max-width:95%;animation:.25s popup;overflow:hidden}.modal-header{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-body{padding:24px}.modal-footer{border-top:1px solid #eee;padding:20px 24px}.close-btn{cursor:pointer;background:#f3f4f6;border:none;border-radius:8px;width:34px;height:34px}.close-btn:hover{background:#e5e7eb}.toast-success,.toast-error{background:#fff;border-radius:12px;align-items:center;gap:12px;padding:14px 18px;display:flex;box-shadow:0 10px 30px #0000001a}.toast-success{border-left:5px solid #22c55e}.toast-error{border-left:5px solid #ef4444}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}::-webkit-scrollbar-track{background:#f1f5f9}.text-center{text-align:center}.text-right{text-align:right}.w-100{width:100%}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mb-20{margin-bottom:20px}.flex{display:flex}.flex-center{justify-content:center;align-items:center;display:flex}.hidden{display:none}@keyframes popup{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.fade-in{animation:.4s fade}@keyframes fade{0%{opacity:0}to{opacity:1}}@media print{.navbar,.sidebar,.no-print,button{display:none!important}.main-content{padding:0}.table-wrapper{box-shadow:none;border:none}body{background:#fff}}@media (width<=768px){.navbar{padding:0 16px}.logo-text{display:none}.sidebar{width:100%;height:auto;position:relative;top:0}.login-card{padding:25px}.modal{width:95%}}@media (width<=480px){.login-title{font-size:28px}.navbar{height:56px}.logo-img{height:38px}}.module-page .top-actions{justify-content:flex-end;margin-bottom:18px}.module-page .action-btn,.module-page .save-btn,.module-page .open-btn,.module-page .details-btn,.module-page .excel-upload,.module-page .sample-excel-btn,.module-page .manual-btn,.module-page .random-btn,.module-page .btn-primary,.module-page .btn-outline,.module-page .create-login-btn,.module-page .view-login-btn{border-radius:10px;min-height:36px;padding:8px 14px;font-size:13px;font-weight:600;line-height:1}.module-page .action-btn span,.module-page .save-btn span{font-size:16px;line-height:1}.module-page .open-btn{width:100%;padding:10px 14px}.module-page .details-btn{white-space:nowrap;min-width:auto;height:auto}.module-page .edit-btn,.module-page .delete-btn{border-radius:8px;width:34px;min-width:34px;height:34px;font-size:13px}.module-page .batch-grid{gap:18px}.module-page .batch-card{border:1px solid #94a3b826;box-shadow:0 12px 30px #0f172a14}.module-page .batch-top h3{font-size:20px}.module-page .batch-dates p{color:#e2e8f0;font-size:14px}.module-page .batch-card1{z-index:1100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a9e;flex-direction:column;justify-content:center;align-items:center;gap:12px;margin:0;padding:28px 18px;display:flex;position:fixed;inset:0;overflow-y:auto}.module-page .batch-title1{color:#fff;letter-spacing:-.02em;text-align:left;text-shadow:0 8px 24px #0f172a59;width:min(760px,100%);margin:0;padding-right:56px;font-size:24px;font-weight:800}.module-page .batch-modal-close-btn{color:#0f172a;cursor:pointer;background:#fff;border:none;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;font-size:22px;line-height:1;transition:transform .2s,box-shadow .2s,background .2s;display:flex;position:absolute;top:18px;right:18px;box-shadow:0 10px 25px #0f172a33}.module-page .batch-modal-close-btn:hover{background:#f8fafc;transform:translateY(-1px);box-shadow:0 14px 28px #0f172a3d}.module-page .batch-form{background:#fff;border-radius:20px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;width:min(760px,100%);margin:0;padding:24px;box-shadow:0 24px 70px #0f172a47}.module-page .batch-form input{background:#f8fafc;border:1px solid #dbe2ea;border-radius:10px;height:42px;padding:0 14px;font-size:14px}.module-page .batch-form input:focus{border-color:#00bfff;box-shadow:0 0 0 3px #00bfff1f}.module-page .batch-form .save-btn{height:42px;width:auto!important}@media (width<=768px){.module-page .batch-card1{justify-content:flex-start;padding:70px 14px 18px}.module-page .batch-title1{font-size:21px}.module-page .batch-form{grid-template-columns:1fr;padding:18px}.module-page .top-actions{justify-content:stretch}.module-page .action-btn{justify-content:center;width:100%}.module-page .batch-modal-close-btn{width:30px;height:30px;font-size:20px;top:14px;right:14px}}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:9999;background:#0f172aa6;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.modal-box{background:#fff;border-radius:20px;flex-direction:column;width:min(950px,95%);max-height:90vh;animation:.3s scaleIn;display:flex;overflow:hidden;box-shadow:0 25px 60px #00000040}.modal-header{background:linear-gradient(135deg,#ff00fb,#00bfff);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-header h2{color:#fff;margin:0;font-size:22px;font-weight:700}.close-btn{color:#111827;cursor:pointer;background:#fff;border:none;border-radius:50%;width:36px;height:36px;font-size:18px;transition:all .25s}.close-btn:hover{color:#dc2626;background:#fee2e2;transform:rotate(90deg)}.modal-table-wrapper{flex:1;padding:20px;overflow:auto}.modal-score-table{border-collapse:collapse;width:100%;min-width:760px}.modal-score-table thead th{z-index:5;background:#f8fafc;position:sticky;top:0}.modal-score-table th{color:#111827;text-align:center;border-bottom:2px solid #e5e7eb;padding:15px;font-size:15px;font-weight:700}.modal-score-table td{text-align:center;color:#374151;border-bottom:1px solid #edf2f7;padding:14px;font-size:14px}.modal-score-table tbody tr:nth-child(2n){background:#fafafa}.modal-score-table tbody tr:hover{background:#eef8ff}.modal-footer{background:#fff;border-top:1px solid #e5e7eb;justify-content:flex-end;padding:18px 24px;display:flex}.modal-table-wrapper::-webkit-scrollbar{width:8px;height:8px}.modal-table-wrapper::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}@media (width<=768px){.modal-box{width:95%;max-height:92vh}.modal-header h2{font-size:18px}.modal-score-table{min-width:700px}.modal-footer{justify-content:center}.modal-footer .action-btn{width:100%}}.view-btn{color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;display:flex}.view-btn:hover{transform:translateY(-2px)scale(1.05);box-shadow:0 8px 18px #2563eb59}.view-btn:active{transform:scale(.95)}.view-btn svg{font-size:18px}.attempt-header td{color:#fff;background:linear-gradient(135deg,#2563eb,#00bfff);padding:12px 18px;font-size:15px;font-weight:700}.status-badge{border-radius:20px;padding:5px 12px;font-size:12px;font-weight:600;display:inline-block}.status-badge.pass{color:#15803d;background:#dcfce7}.status-badge.fail{color:#dc2626;background:#fee2e2}
