body { min-height: 100vh; }
.login-box { max-width: 380px; margin: 12vh auto; }
#sidebar { width: 230px; min-height: calc(100vh - 56px); flex-shrink: 0; }
#sidebar .nav-link { color: inherit; padding: .4rem 1rem; }
#sidebar .nav-link.active { background: var(--bs-primary); color: #fff; border-radius: .25rem; }
#sidebar .nav-header { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; opacity: .6; padding: .6rem 1rem .2rem; }
@media (max-width: 991px) { #sidebar { position: fixed; z-index: 1040; top: 56px; bottom: 0; left: -240px; transition: left .2s; overflow-y: auto; } #sidebar.open { left: 0; } }
.table-img { max-height: 40px; max-width: 60px; object-fit: contain; }
.stat-card { min-width: 160px; }
.table td { vertical-align: middle; }
.table .html-cell { max-width: 340px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pager { gap: .5rem; }
