:root {
    --bs-primary: #0E51C7;
    --bs-secondary: #7F4CB9;
    --bs-success: #289B87;
    --bs-warning: #F6C344;
    --bs-danger: #E50000;
    --bs-info: #F6C344;
    --bs-dark: #071C2A;
    --bs-light: #FFFFFF;

    --bs-primary-rgb: 14,81,199;
    --bs-secondary-rgb: 127,76,185;
    --bs-success-rgb: 40,155,135;
    --bs-warning-rgb: 246,195,68;
    --bs-danger-rgb: 229,0,0;
    --bs-info-rgb: 246,195,68;
    --bs-dark-rgb: 7,28,42;
    --bs-light-rgb: 255,255,255;

    /* Optional for more customizations */
    --bs-body-font-family: 'Inter', 'Nunito', 'Open Sans', Arial, sans-serif;
}

/* Typography for all text */
body, .text-body, .text-dark, .text-secondary {
    color: #071C2A !important;
    font-family: var(--bs-body-font-family);
}
.text-primary { color: var(--bs-primary) !important; }
.text-secondary { color: var(--bs-secondary) !important; }
.text-success { color: var(--bs-success) !important; }
.text-warning { color: var(--bs-warning) !important; }
.text-danger { color: var(--bs-danger) !important; }
.text-info { color: var(--bs-info) !important; }
.text-dark { color: var(--bs-dark) !important; }
.text-light { color: var(--bs-light) !important; }

/* Backgrounds */
.bg-primary { background-color: var(--bs-primary) !important; color: #fff !important; }
.bg-secondary { background-color: var(--bs-secondary) !important; color: #fff !important; }
.bg-success { background-color: var(--bs-success) !important; color: #fff !important; }
.bg-warning { background-color: var(--bs-warning) !important; color: #071C2A !important; }
.bg-danger { background-color: var(--bs-danger) !important; color: #fff !important; }
.bg-info { background-color: var(--bs-info) !important; color: #071C2A !important; }
.bg-dark { background-color: var(--bs-dark) !important; color: #fff !important; }
.bg-light { background-color: var(--bs-light) !important; color: #071C2A !important; }

/* Buttons */
.btn-primary {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus {
    background-color: var(--bs-secondary) !important;
    border-color: var(--bs-secondary) !important;
}

.btn-secondary {
    background-color: var(--bs-secondary) !important;
    border-color: var(--bs-secondary) !important;
    color: #fff !important;
}
.btn-secondary:hover, .btn-secondary:focus {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}

.btn-success {
    background-color: var(--bs-success) !important;
    border-color: var(--bs-success) !important;
    color: #fff !important;
}
.btn-success:hover, .btn-success:focus {
    background-color: var(--bs-warning) !important;
    border-color: var(--bs-warning) !important;
    color: #071C2A !important;
}

.btn-warning {
    background-color: var(--bs-warning) !important;
    border-color: var(--bs-warning) !important;
    color: #071C2A !important;
}
.btn-warning:hover, .btn-warning:focus {
    background-color: var(--bs-success) !important;
    border-color: var(--bs-success) !important;
    color: #fff !important;
}

.btn-danger {
    background-color: var(--bs-danger) !important;
    border-color: var(--bs-danger) !important;
    color: #fff !important;
}
.btn-danger:hover, .btn-danger:focus {
    background-color: var(--bs-dark) !important;
    border-color: var(--bs-dark) !important;
}

.btn-info {
    background-color: var(--bs-info) !important;
    border-color: var(--bs-info) !important;
    color: #071C2A !important;
}
.btn-info:hover, .btn-info:focus {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
    color: #fff !important;
}

.btn-light {
    background-color: var(--bs-light) !important;
    border-color: var(--bs-light) !important;
    color: #071C2A !important;
}
.btn-dark {
    background-color: var(--bs-dark) !important;
    border-color: var(--bs-dark) !important;
    color: #fff !important;
}

/* Badges */
.badge-primary { background-color: var(--bs-primary) !important; }
.badge-secondary { background-color: var(--bs-secondary) !important; }
.badge-success { background-color: var(--bs-success) !important; }
.badge-warning { background-color: var(--bs-warning) !important; color: #071C2A !important; }
.badge-danger { background-color: var(--bs-danger) !important; }
.badge-info { background-color: var(--bs-info) !important; color: #071C2A !important; }
.badge-light { background-color: var(--bs-light) !important; color: #071C2A !important; }
.badge-dark { background-color: var(--bs-dark) !important; }

/* Alerts */
.alert-primary { background-color: #eaf0fb !important; border-color: var(--bs-primary) !important; color: var(--bs-primary) !important; }
.alert-secondary { background-color: #f3effc !important; border-color: var(--bs-secondary) !important; color: var(--bs-secondary) !important; }
.alert-success { background-color: #eafaf6 !important; border-color: var(--bs-success) !important; color: var(--bs-success) !important; }
.alert-warning { background-color: #fff9ed !important; border-color: var(--bs-warning) !important; color: var(--bs-warning) !important; }
.alert-danger { background-color: #ffeaea !important; border-color: var(--bs-danger) !important; color: var(--bs-danger) !important; }
.alert-info { background-color: #fdf7e7 !important; border-color: var(--bs-info) !important; color: var(--bs-info) !important; }
.alert-light { background-color: #fff !important; border-color: #fff !important; color: #071C2A !important; }
.alert-dark { background-color: #071C2A !important; border-color: #071C2A !important; color: #fff !important; }

/* Inputs, Forms, etc. */
.form-control:focus, .form-select:focus {
    border-color: var(--bs-warning) !important;
    box-shadow: 0 0 0 0.15rem #F6C34433 !important;
    outline: none !important;
}
.form-check-input:checked {
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}
.form-check-input:focus {
    border-color: var(--bs-warning) !important;
}

/* Progress bar */
.progress-bar {
    background-color: var(--bs-primary) !important;
}

.navbar, .navbar-light, .navbar-brand, .navbar-nav .nav-link {
    background: #fff !important;
    color: #071C2A !important;
    font-family: var(--bs-body-font-family);
}
.navbar-nav .nav-link.active, .navbar-nav .nav-link:hover {
    color: var(--bs-primary) !important;
}

/* Override Bootstrap's border-radius for a modern look */
.btn, .form-control, .badge, .card, .alert, .modal-content, .dropdown-menu, .input-group, .progress, .table, .pagination .page-link {
    border-radius: 1rem !important;
}

/* Cards and modal */
.card, .modal-content {
    box-shadow: 0 2px 12px 0 rgba(14, 81, 199, 0.06);
    border: 1px solid #E6E9F0;
}

/* Loader/spinner */
.spinner-border, .spinner-grow {
    color: var(--bs-warning) !important;
}

/* Selection */
::selection {
    background: #F6C344;
    color: #071C2A;
}

/* Gradient background for login page */
.bg-gradient {
    background: linear-gradient(90deg, #f8fafc 0%, #fff 100%) !important;
}

/* For full-height rows */
.min-vh-100 {
    min-height: 100vh !important;
}
