/* Define custom primary and secondary colors */
:root {
    --bs-primary: #2f5bc0;
    --bs-primary-rgb: 43, 54, 124;
    --bs-secondary: #122f71;
    --bs-secondary-rgb: 255, 4, 0;
}

/* Buttons */
.btn{
    box-shadow: 0px 2px 1px rgba(0,0,0,0.05);
}

.btn:hover,
.btn:focus{
    box-shadow: 0px 3px 3px rgba(0,0,0,0.05);
}

.btn-primary {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff !important;
}
.btn-primary:hover,
.btn-primary:focus {
    background-color: rgba(var(--bs-primary-rgb), 0.85);
    border-color: rgba(var(--bs-primary-rgb), 0.85);
    color: #fff !important;
}
.btn-primary:active {
    background-color: rgba(var(--bs-primary-rgb), 0.75);
    border-color: rgba(var(--bs-primary-rgb), 0.75);
    color: #fff !important;
}
.btn-primary:disabled {
    background-color: rgba(var(--bs-primary-rgb), 0.65);
    border-color: rgba(var(--bs-primary-rgb), 0.65);
    color: #fff !important;
}

.btn-secondary {
    background-color: var(--bs-secondary);
    border-color: var(--bs-secondary);
    color: #fff !important;
}
.btn-secondary:hover,
.btn-secondary:focus {
    background-color: #2f5bc0;
    border-color: #2f5bc0;
    color: #fff !important;
}
.btn-secondary:active {
    background-color: rgba(var(--bs-secondary-rgb), 0.75);
    border-color: rgba(var(--bs-secondary-rgb), 0.75);
    color: #fff !important;
}
.btn-secondary:disabled {
    background-color: rgba(var(--bs-secondary-rgb), 0.65);
    border-color: rgba(var(--bs-secondary-rgb), 0.65);
}

.btn-outline-primary{
    --bs-btn-color: #2f5bc0;
    --bs-btn-border-color: #2f5bc0;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #2f5bc0;
    --bs-btn-hover-border-color: #2f5bc0;
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #2f5bc0;
    --bs-btn-active-border-color: #2f5bc0;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #2f5bc0;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #2f5bc0;
    --bs-gradient: none;
}

.btn-outline-primary:hover{
    color: white;
    background-color: #2f5bc0;
    border-color: #2f5bc0;
}

/* Alerts */
.alert-primary {
    background-color: var(--bs-primary);
    color: #fff;
    border-color: var(--bs-primary);
}
.alert-secondary {
    background-color: var(--bs-secondary);
    color: #fff;
    border-color: var(--bs-secondary);
}

/* Badges */
.badge-primary {
    background-color: var(--bs-primary);
    color: #fff;
}
.badge-secondary {
    background-color: var(--bs-secondary);
    color: #fff;
}

/* Links */
a.text-primary {
    color: var(--bs-primary) !important;
}
a.text-primary:hover,
a.text-primary:focus {
    color: rgba(var(--bs-primary-rgb), 0.85) !important;
    text-decoration: underline;
}
a.text-secondary {
    color: var(--bs-secondary) !important;
}
a.text-secondary:hover,
a.text-secondary:focus {
    color: rgba(var(--bs-secondary-rgb), 0.85) !important;
    text-decoration: underline;
}

/* Form Inputs */
.form-control:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.25);
}
.form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.form-check-input:checked:hover {
    background-color: rgba(var(--bs-primary-rgb), 0.85);
}

/* Progress Bars */
.progress-bar {
    background-color: var(--bs-primary);
}
.progress-bar-striped {
    background-image: linear-gradient(
        45deg,
        rgba(var(--bs-primary-rgb), 0.75) 25%,
        transparent 25%,
        transparent 50%,
        rgba(var(--bs-primary-rgb), 0.75) 50%,
        rgba(var(--bs-primary-rgb), 0.75) 75%,
        transparent 75%,
        transparent
    );
}

/* Pagination */
.page-item.active .page-link {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}
.page-link:hover {
    color: var(--bs-primary);
}

/* Background and Border Utilities */
.bg-primary {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
}
.bg-secondary {
    background-color: var(--bs-secondary) !important;
    color: #fff !important;
}
.border-primary {
    border-color: var(--bs-primary) !important;
}
.border-secondary {
    border-color: var(--bs-secondary) !important;
}

/* Tooltips */
.tooltip-inner {
    background-color: var(--bs-primary);
    color: #fff;
}

/* Toasts */
.toast-primary {
    background-color: var(--bs-primary);
    color: #fff;
}
.toast-secondary {
    background-color: var(--bs-secondary);
    color: #fff;
}

/* Dropdowns */
.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--bs-primary);
    color: #fff;
}
.dropdown-item:hover {
    background-color: rgba(var(--bs-primary-rgb), 0.85);
}

/* Spinners */
.spinner-border.text-primary,
.spinner-grow.text-primary {
    color: var(--bs-primary) !important;
}
.spinner-border.text-secondary,
.spinner-grow.text-secondary {
    color: var(--bs-secondary) !important;
}

/* Cards */
.card{
    border-radius: 12px;
}