:root {
    --lms-primary: #1d4ed8;
    --lms-primary-soft: rgba(29, 78, 216, .08);
    --lms-success: #0f9d58;
    --lms-warning: #f59e0b;
    --lms-surface: #ffffff;
    --lms-border: rgba(15, 23, 42, .08);
    --lms-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}

body {
    background: #f5f7fb;
}

.lms-card,
.card {
    border-radius: 16px;
    box-shadow: var(--lms-shadow);
}

.table > :not(caption) > * > * {
    padding-top: .85rem;
    padding-bottom: .85rem;
}

.btn,
.form-control,
.form-select,
.dropdown-menu {
    border-radius: 12px;
}

.fade-slide-in {
    animation: fadeSlideIn .35s ease;
}

@keyframes fadeSlideIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.topbar, .main-nav, .lms-nav {
    box-shadow: 0 3px 18px rgba(15, 23, 42, .05);
}

.navbar-nav .nav-link.active,
.navbar-nav .nav-link:hover {
    background: var(--lms-primary-soft);
    color: var(--lms-primary) !important;
}

.status-pill {
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    padding:.35rem .75rem;
    border-radius:999px;
    font-size:.85rem;
    font-weight:600;
}

.status-present { background: rgba(15, 157, 88, .12); color: #0b6b3c; }
.status-absent { background: rgba(220, 38, 38, .12); color: #b91c1c; }
.status-late { background: rgba(245, 158, 11, .14); color: #b45309; }
.status-excused { background: rgba(29, 78, 216, .12); color: #1d4ed8; }
