:root {
    --bs-font-sans-serif: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

body {
    font-size: 0.95rem;
    letter-spacing: -0.011em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.btn {
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: -0.01em;
}

.nav-link,
.dropdown-item,
a {
    font-size: 0.9rem;
    letter-spacing: -0.01em;
}

.form-control:focus,
.form-select:focus {
    border-width: 1px;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.form-control:focus,
.form-select:focus {
    box-shadow: 0 0 0 1px rgba(13, 110, 253, 0.5);
    outline: 0;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
    box-shadow: 0 0 0 1px rgba(66, 153, 225, 0.5);
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    letter-spacing: -0.02em;
}

.btn {
    --bs-btn-box-shadow: none;
}

.page-link {
    font-size: 0.9rem;
    letter-spacing: -0.01em;
    padding: 0.35rem 0.65rem;
}

.page-item.active .page-link {
    font-size: 0.9rem;
}

.page-item.disabled .page-link {
    font-size: 0.9rem;
}

/* Toast Animation */
.toast {
    animation: slideInRight 0.3s ease-out;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.toast .toast-body {
    padding: 0.75rem;
    font-size: 0.95rem;
}

.toast.text-bg-success {
    background-color: #28a745 !important;
}

.toast.text-bg-danger {
    background-color: #dc3545 !important;
}

.toast.text-bg-warning {
    background-color: #ffc107 !important;
    color: #000 !important;
}

.toast-body i {
    font-size: 1.1rem;
}

@keyframes highlightRow {
    0% {
        background-color: #d4edda;
    }
    100% {
        background-color: transparent;
    }
}

.table-success {
    animation: highlightRow 1.5s ease-out;
}

/* ==================== DARK MODE ==================== */
html[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection--single,
html[data-bs-theme="dark"] .select2-dropdown,
html[data-bs-theme="dark"] .select2-search--dropdown .select2-search__field {
    background-color: #212529 !important;
    border: 1px solid #495057 !important;
    color: #f8f9fa !important;
}

html[data-bs-theme="dark"] .select2-selection__rendered {
    color: #f8f9fa !important;
}

html[data-bs-theme="dark"] .select2-results__option {
    background-color: #212529 !important;
    color: #f8f9fa !important;
}

html[data-bs-theme="dark"] .select2-results__option--highlighted {
    background-color: #495057 !important;
    color: #fff !important;
}

html[data-bs-theme="dark"] .select2-search--dropdown .select2-search__field::placeholder {
    color: #ced4da !important;
    opacity: 1;
}

/* ==================== LIGHT MODE ==================== */
html[data-bs-theme="light"] .select2-container--bootstrap-5 .select2-selection--single,
html[data-bs-theme="light"] .select2-dropdown,
html[data-bs-theme="light"] .select2-search--dropdown .select2-search__field {
    background-color: #fff !important;
    border: 1px solid #ced4da !important;
    color: #212529 !important;
}

html[data-bs-theme="light"] .select2-search--dropdown .select2-search__field::placeholder {
    color: #6c757d !important;
}

/* --- LIGHT MODE --- */
.status-hadir {
    background-color: #d4edda;
}

.status-sakit {
    background-color: #fff3cd;
}

.status-izin {
    background-color: #d1ecf1;
}

.status-alpha {
    background-color: #f8d7da;
}

/* --- DARK MODE --- */
@media (prefers-color-scheme: dark) {
    .status-hadir {
        background-color: #1f3a2e !important;
    }
    .status-sakit {
        background-color: #4a3e1e !important;
    }
    .status-izin {
        background-color: #1e3a45 !important;
    }
    .status-alpha {
        background-color: #482626 !important;
    }
}