/* ===== BUTTON OVERRIDES ===== */

/* Primary Button */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-primary-hover);
  --bs-btn-hover-border-color: var(--bs-primary-hover);
  --bs-btn-focus-shadow-rgb: 107, 85, 177;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-primary-active);
  --bs-btn-active-border-color: var(--bs-primary-active);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--bs-primary-disabled);
  --bs-btn-disabled-border-color: var(--bs-primary-disabled);
}

/* Outline Primary Button */
.btn-outline-primary {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-focus-shadow-rgb: 107, 85, 177;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
  --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  --bs-btn-disabled-color: var(--bs-primary-disabled);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: var(--bs-primary-disabled);
  --bs-gradient: none;
}

/* Secondary Button */
.btn-secondary {
  --bs-btn-color: #432c8b;
  --bs-btn-bg: var(--bs-secondary);
  --bs-btn-border-color: var(--bs-secondary);
  --bs-btn-hover-color: #432c8b;
  --bs-btn-hover-bg: #cbccfb;
  --bs-btn-hover-border-color: #cbccfb;
  --bs-btn-focus-shadow-rgb: 223, 224, 253;
  --bs-btn-active-color: #432c8b;
  --bs-btn-active-bg: #b7b8f9;
  --bs-btn-active-border-color: #b7b8f9;
}

/* Success Button */
.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-success);
  --bs-btn-border-color: var(--bs-success);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #369476;
  --bs-btn-hover-border-color: #2a7260;
  --bs-btn-focus-shadow-rgb: 66, 177, 147;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #2a7260;
  --bs-btn-active-border-color: #2a7260;
}

/* Danger Button */
.btn-danger {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-danger);
  --bs-btn-border-color: var(--bs-danger);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #bb2d3b;
  --bs-btn-hover-border-color: #b02a37;
  --bs-btn-focus-shadow-rgb: 220, 53, 69;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #b02a37;
  --bs-btn-active-border-color: #a52834;
}

/* Warning Button */
.btn-warning {
  --bs-btn-color: #000;
  --bs-btn-bg: var(--bs-warning);
  --bs-btn-border-color: var(--bs-warning);
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: #ffca2c;
  --bs-btn-hover-border-color: #ffc720;
  --bs-btn-focus-shadow-rgb: 255, 193, 7;
  --bs-btn-active-color: #000;
  --bs-btn-active-bg: #ffcd39;
  --bs-btn-active-border-color: #ffc720;
}

/* Info Button */
.btn-info {
  --bs-btn-color: #000;
  --bs-btn-bg: var(--bs-info);
  --bs-btn-border-color: var(--bs-info);
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: #31d2f2;
  --bs-btn-hover-border-color: #25cff2;
  --bs-btn-focus-shadow-rgb: 13, 202, 240;
  --bs-btn-active-color: #000;
  --bs-btn-active-bg: #3dd5f3;
  --bs-btn-active-border-color: #25cff2;
}

/* ===== FORM CONTROL OVERRIDES ===== */
.form-control:focus,
.form-select:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.25rem rgba(107, 85, 177, 0.25);
}

.form-check-input:checked {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

.form-check-input:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.25rem rgba(107, 85, 177, 0.25);
}

/* ===== LINK OVERRIDES ===== */
a {
  color: var(--bs-link-color);
  text-decoration: var(--bs-link-decoration);
}

a:hover {
  color: var(--bs-link-hover-color);
}

/* ===== BADGE OVERRIDES ===== */
.badge.bg-primary {
  background-color: var(--bs-primary) !important;
}

.badge.text-bg-primary {
  color: #fff !important;
  background-color: var(--bs-primary) !important;
}

/* ===== ALERT OVERRIDES ===== */
.alert-primary {
  --bs-alert-color: #432c8b;
  --bs-alert-bg: var(--bs-primary-bg-subtle);
  --bs-alert-border-color: var(--bs-primary-border-subtle);
}

.alert-success {
  --bs-alert-color: #2a7260;
  --bs-alert-bg: var(--bs-success-bg-subtle);
  --bs-alert-border-color: var(--bs-success-border-subtle);
}

/* ===== PROGRESS BAR OVERRIDES ===== */
.progress-bar {
  background-color: var(--bs-primary);
}

/* ===== PAGINATION OVERRIDES ===== */
.pagination .page-link {
  color: var(--bs-primary);
}

.pagination .page-link:hover {
  color: var(--bs-primary-hover);
  background-color: var(--bs-primary-bg-subtle);
  border-color: var(--bs-primary-border-subtle);
}

.pagination .page-item.active .page-link {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

/* ===== UTILITY TEXT COLORS ===== */
.text-primary {
  color: var(--bs-primary) !important;
}

.text-secondary {
  color: #8b8cc8 !important;
}

.text-success {
  color: var(--bs-success) !important;
}

/* ===== UTILITY BACKGROUND COLORS ===== */
.bg-primary {
  background-color: var(--bs-primary) !important;
}

.bg-secondary {
  background-color: var(--bs-secondary) !important;
}

.bg-success {
  background-color: var(--bs-success) !important;
}

/* ===== UTILITY BORDER COLORS ===== */
.border-primary {
  border-color: var(--bs-primary) !important;
}

.border-secondary {
  border-color: var(--bs-secondary) !important;
}

.border-success {
  border-color: var(--bs-success) !important;
}
