@import url(https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap);:root{--primary:#2563eb;--primary-dark:#1d4ed8;--primary-light:#eff6ff;--success:#16a34a;--danger:#dc2626;--warning:#d97706;--text:#111827;--text-muted:#6b7280;--border:#e5e7eb;--bg:#f9fafb;--white:#fff;--sidebar-width:240px;--radius:4px;--shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:#f9fafb;background:var(--bg);color:#111827;color:var(--text);font-family:Outfit,sans-serif;font-size:16px;line-height:1.5}a{color:#2563eb;color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}.app-layout{display:flex;min-height:100vh}.main-content{flex:1 1;margin-left:240px;margin-left:var(--sidebar-width);min-height:100vh;padding:2rem}.sidebar{background:#1e293b;color:#e2e8f0;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:240px;width:var(--sidebar-width);z-index:100}.sidebar-logo{border-bottom:1px solid #334155;padding:1.25rem 1rem}.sidebar-logo h2{color:#f1f5f9;font-size:15px;font-weight:600;line-height:1.3}.sidebar-logo span{color:#94a3b8;font-size:11px}.sidebar-nav{flex:1 1;overflow-y:auto;padding:1rem 0}.nav-section-title{color:#64748b;font-size:10px;font-weight:600;letter-spacing:.08em;padding:.75rem 1rem .25rem;text-transform:uppercase}.nav-link{align-items:center;border-left:3px solid #0000;color:#cbd5e1;display:flex;font-size:13.5px;gap:.6rem;padding:.6rem 1rem;transition:all .15s}.nav-link:hover{background:#334155;color:#f1f5f9;text-decoration:none}.nav-link.active{background:#1e40af22;border-left-color:#3b82f6;color:#93c5fd}.nav-link svg{flex-shrink:0;height:16px;width:16px}.nav-group-trigger{align-items:center;background:#0000;border:none;border-left:3px solid #0000;color:#cbd5e1;display:flex;font-size:13.5px;gap:.6rem;justify-content:space-between;padding:.6rem 1rem;transition:all .15s;width:100%}.nav-group-trigger:hover{background:#334155;color:#f1f5f9}.nav-group-trigger.active{background:#1e40af22;border-left-color:#3b82f6;color:#93c5fd}.nav-submenu{padding:.2rem 0 .45rem}.nav-sublink{font-size:12.8px;padding-left:2.75rem}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.page-title{color:#111827;color:var(--text);font-size:1.25rem;font-weight:600}.page-subtitle{color:#6b7280;color:var(--text-muted);font-size:13px;margin-top:2px}.card{background:#fff;background:var(--white);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:4px;border-radius:var(--radius);box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f;box-shadow:var(--shadow)}.card-body{padding:1.25rem}.card-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);font-size:14px;font-weight:600;padding:1rem 1.25rem;text-transform:uppercase}.btn{align-items:center;border:none;border-radius:4px;border-radius:var(--radius);display:inline-flex;font-size:13.5px;font-weight:500;gap:.4rem;padding:.5rem 1rem;transition:all .15s;white-space:nowrap}.btn-primary{background:#2563eb;background:var(--primary);color:#fff}.btn-primary:hover{background:#1d4ed8;background:var(--primary-dark)}.btn-success{background:#16a34a;background:var(--success);color:#fff}.btn-success:hover{background:#15803d}.btn-danger{background:#dc2626;background:var(--danger);color:#fff}.btn-danger:hover{background:#b91c1c}.btn-outline{background:#0000;border:1px solid #e5e7eb;border:1px solid var(--border);color:#111827;color:var(--text)}.btn-outline:hover{background:#f9fafb;background:var(--bg)}.btn-sm{font-size:14px;padding:.55rem .75rem}.btn:disabled{cursor:not-allowed;opacity:.55}.form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-label{color:#6b7280;color:var(--text-muted);font-size:12.5px;font-weight:500;letter-spacing:.03em;text-transform:uppercase}.form-control{background:#fff;background:var(--white);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:4px;border-radius:var(--radius);color:#111827;color:var(--text);font-family:inherit;font-size:14px;padding:.5rem .75rem;transition:border-color .15s,box-shadow .15s;width:100%}.form-control:focus{border-color:#2563eb;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-control.error{border-color:#dc2626;border-color:var(--danger)}.form-error{color:#dc2626;color:var(--danger);font-size:12px}.form-hint{color:#6b7280;color:var(--text-muted);font-size:11.5px}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;font-size:13.5px;width:100%}thead th{background:#f9fafb;background:var(--bg);color:#6b7280;color:var(--text-muted);font-size:11.5px;font-weight:600;letter-spacing:.05em;padding:.65rem 1rem;text-align:left;text-transform:uppercase;white-space:nowrap}tbody td,thead th{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border)}tbody td{color:#111827;color:var(--text);padding:.75rem 1rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#f8fafc}.badge{border-radius:999px;display:inline-block;font-size:11.5px;font-weight:500;padding:.2rem .55rem}.badge-blue{background:#dbeafe;color:#1d4ed8}.badge-green{background:#dcfce7;color:#15803d}.search-bar{align-items:center;background:#fff;background:var(--white);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:4px;border-radius:var(--radius);display:flex;gap:.5rem;padding:.58rem .75rem;width:280px}.search-bar input{background:#0000;border:none;color:#111827;color:var(--text);font-size:13.5px;outline:none;width:100%}.empty-state{color:#6b7280;color:var(--text-muted);padding:3rem 1rem;text-align:center}.empty-state svg{height:48px;margin-bottom:.75rem;opacity:.4;width:48px}.empty-state p{font-size:14px}.spinner{animation:spin .7s linear infinite;border:3px solid #e5e7eb;border-top-color:#2563eb;border:3px solid var(--border);border-radius:50%;border-top-color:var(--primary);height:36px;margin:2rem auto;width:36px}@keyframes spin{to{transform:rotate(1turn)}}.loading-center{color:#6b7280;color:var(--text-muted);flex-direction:column;font-size:13px;gap:.75rem;justify-content:center;padding:3rem}.loading-center,.pagination{align-items:center;display:flex}.pagination{border-top:1px solid #e5e7eb;border-top:1px solid var(--border);gap:.35rem;justify-content:flex-end;padding:.75rem 1rem}.pagination button{background:#fff;background:var(--white);border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:6px;color:#111827;color:var(--text);display:grid;font-size:13px;height:32px;place-items:center;transition:all .15s;width:32px}.pagination button.active,.pagination button:hover:not(:disabled){background:#2563eb;background:var(--primary);border-color:#2563eb;border-color:var(--primary);color:#fff}.pagination button:disabled{cursor:not-allowed;opacity:.4}.modal-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:200}.modal{background:#fff;background:var(--white);border-radius:12px;box-shadow:0 20px 60px #0003;max-width:90vw;padding:1.75rem;width:400px}.modal h3{font-size:16px;margin-bottom:.5rem}.modal p{color:#6b7280;color:var(--text-muted);font-size:13.5px;margin-bottom:1.25rem}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.student-select-box{border:1px solid #e5e7eb;border:1px solid var(--border);border-radius:4px;border-radius:var(--radius);overflow:hidden}.student-select-search{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);display:flex;gap:.5rem;padding:.5rem .75rem}.student-select-search input{border:none;font-size:13.5px;outline:none;width:100%}.student-select-list{max-height:180px;overflow-y:auto}.student-select-item{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border);cursor:pointer;font-size:13.5px;padding:.6rem .75rem;transition:background .1s}.student-select-item:last-child{border-bottom:none}.student-select-item:hover{background:#eff6ff;background:var(--primary-light)}.student-select-item.selected{background:#dbeafe;color:#1d4ed8;color:var(--primary-dark);font-weight:500}.student-select-item .student-name{font-weight:500}.student-select-item .student-meta{color:#6b7280;color:var(--text-muted);font-size:11.5px}@media print{body,html{height:0!important;margin:0!important;overflow:hidden!important;padding:0!important}body *{visibility:hidden}.print-area,.print-area *{visibility:visible}.print-area{left:0!important;margin:0!important;position:fixed!important;top:0!important}.certificate-bg-preview,.no-print{display:none!important}.only-print{display:block!important}@page{margin:0}}.only-print{display:none}
/*# sourceMappingURL=main.ead8817a.css.map*/