:root{--font-heading:"Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--bg-main:#f8fafc;--bg-sidebar:#fff;--bg-card:#fff;--bg-card-hover:#fcfdfe;--bg-surface:#f1f5f9;--bg-input:#fff;--border-subtle:#e2e8f0;--border-glow:#4f46e526;--border-focus:#4f46e5;--text-main:#0f172a;--text-muted:#475569;--text-dim:#64748b;--primary:#4f46e5;--primary-hover:#4338ca;--primary-glow:#4f46e526;--accent-cyan:#0284c7;--accent-emerald:#059669;--accent-amber:#d97706;--accent-rose:#e11d48;--accent-violet:#7c3aed;--shadow-sm:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--shadow-md:0 4px 6px -1px #0f172a12, 0 2px 4px -2px #0f172a0a;--shadow-lg:0 10px 15px -3px #0f172a14, 0 4px 6px -4px #0f172a0a;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.015em;color:var(--text-main)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.app-container{background-color:var(--bg-main);min-height:100vh;display:flex;position:relative}.sidebar{background-color:var(--bg-sidebar);border-right:1px solid var(--border-subtle);z-index:40;width:270px;height:100vh;box-shadow:var(--shadow-sm);flex-direction:column;padding:1.25rem;display:flex;position:sticky;top:0}.sidebar-header{border-bottom:1px solid var(--border-subtle);align-items:center;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.institution-badge{border-radius:var(--radius-md);background:var(--bg-surface);border:1px solid var(--border-subtle);align-items:center;gap:.75rem;margin-bottom:1rem;padding:.65rem .85rem;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:.25rem;display:flex;overflow-y:auto}.nav-category{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);padding:.75rem .5rem .25rem;font-size:.7rem;font-weight:700}.nav-item{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:.75rem;width:100%;padding:.6rem .85rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-item:hover{color:var(--text-main);background:var(--bg-surface)}.nav-item.active{color:var(--primary);background:#eef2ff;border-color:#c7d2fe;font-weight:600}.main-content{background-color:var(--bg-main);flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--border-subtle);z-index:30;background:#fff;justify-content:space-between;align-items:center;height:68px;padding:0 2rem;display:flex;position:sticky;top:0;box-shadow:0 1px 2px #00000008}.page-wrapper{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2rem}.glass-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem;transition:border-color .2s,box-shadow .2s}.glass-card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.btn{border-radius:var(--radius-md);font-family:var(--font-body);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1.15rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 1px 2px #4f46e533}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-secondary{color:var(--text-main);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);background:#fff}.btn-secondary:hover{background:var(--bg-surface);border-color:#cbd5e1}.btn-outline{color:var(--text-muted);border:1px solid var(--border-subtle);background:#fff}.btn-outline:hover{color:var(--text-main);background:var(--bg-surface);border-color:#cbd5e1}.btn-danger{color:var(--accent-rose);background:#fef2f2;border:1px solid #fecaca}.btn-danger:hover{background:var(--accent-rose);color:#fff}.input-group{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.input-label{color:var(--text-muted);font-size:.825rem;font-weight:600}.form-control{background:var(--bg-input);border-radius:var(--radius-md);color:var(--text-main);font-family:var(--font-body);border:1px solid #cbd5e1;width:100%;padding:.6rem .9rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.form-control:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4f46e526}.badge{text-transform:capitalize;border-radius:9999px;align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-active,.badge-paid,.badge-present{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.badge-absent,.badge-suspended{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.badge-pending,.badge-late{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.badge-primary{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe}.data-table-container{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);background:#fff;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}.data-table th{color:var(--text-dim);border-bottom:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;padding:.85rem 1.25rem;font-size:.725rem;font-weight:600}.data-table td{color:var(--text-main);background:#fff;border-bottom:1px solid #f1f5f9;padding:.95rem 1.25rem}.data-table tr:hover td{background:#f8fafc}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0f172a73;justify-content:center;align-items:center;padding:1.5rem;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border-subtle);border-radius:var(--radius-xl);background:#fff;width:100%;max-width:580px;animation:.2s cubic-bezier(.16,1,.3,1) slideUp;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000000d}.modal-header{border-bottom:1px solid var(--border-subtle);background:#fff;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-body{background:#fff;max-height:75vh;padding:1.5rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--border-subtle);background:#f8fafc;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.2s ease-out fadeIn}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}.stat-card{flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--accent-gradient,var(--primary));width:4px;height:100%;position:absolute;top:0;left:0}
