:root{--sidebar:#111827;--sidebar2:#182235}.sidebar{width:260px;background:linear-gradient(180deg,var(--sidebar),var(--sidebar2));color:#fff}.brand{font-size:1.2rem;font-weight:800;letter-spacing:.05em;display:flex;gap:.7rem;align-items:center}.brand i{font-size:1.8rem}.sidebar .nav-link{color:#cbd5e1;border-radius:.7rem;padding:.75rem .9rem}.sidebar .nav-link:hover,.sidebar .nav-link.active{background:rgba(255,255,255,.1);color:#fff}.sidebar .nav-link i{width:1.7rem}.topbar{background:#fff;border-bottom:1px solid #e5e7eb}.metric-card{border-radius:1rem}.login-bg{background:linear-gradient(135deg,#eef2ff,#f8fafc)}.login-card{width:min(440px,94vw);border-radius:1.25rem}.login-logo{width:64px;height:64px;margin:auto;border-radius:18px;display:grid;place-items:center;background:#0d6efd;color:#fff;font-size:2rem;font-weight:800}@media(max-width:900px){.sidebar{width:82px}.sidebar .brand span,.sidebar .nav-link{font-size:0}.sidebar .nav-link i{font-size:1.25rem}.brand{justify-content:center}}
.sidebar-label{font-size:.68rem;letter-spacing:.12em;color:#64748b;font-weight:700;padding:.65rem .9rem .25rem}.table>thead th{font-size:.82rem;color:#475569;background:#f8fafc}.permission-group label{cursor:pointer;transition:.15s}.permission-group label:hover{background:#f8fafc}

.student-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#eef2f7;display:grid;place-items:center;flex:0 0 auto}.placeholder-avatar{font-size:1.2rem;color:#64748b}.student-photo{width:130px;height:150px;border-radius:1rem;object-fit:cover;border:1px solid #e5e7eb}.student-photo-empty{background:#f1f5f9;color:#94a3b8;display:grid;place-items:center;font-size:2rem}.student-photo-lg{width:150px;height:170px;border-radius:1.2rem;object-fit:cover;border:1px solid #e5e7eb;display:grid;place-items:center;font-size:3rem;color:#94a3b8;background:#f8fafc}
