/**
 * Bootstrap Custom Theme
 *
 * Ce fichier override les couleurs Bootstrap pour utiliser notre design system.
 * Il remplace les couleurs Bootstrap par défaut par nos design tokens.
 *
 * Important: Ce fichier doit être chargé APRÈS Bootstrap et APRÈS design-tokens.css
 *
 * @requires bootstrap
 * @requires design-tokens.css
 */


/* ========================================
   OVERRIDE BOOTSTRAP BUTTONS
   ======================================== */

.btn-primary {
  --bs-btn-bg: var(--brand-primary);
  --bs-btn-border-color: var(--brand-primary);
  --bs-btn-hover-bg: var(--brand-primary-hover);
  --bs-btn-hover-border-color: var(--brand-primary-hover);
  --bs-btn-active-bg: var(--brand-primary-hover);
  --bs-btn-active-border-color: var(--brand-primary-hover);
  --bs-btn-disabled-bg: var(--brand-primary);
  --bs-btn-disabled-border-color: var(--brand-primary);
}

.btn-success {
  --bs-btn-bg: var(--color-success);
  --bs-btn-border-color: var(--color-success);
  --bs-btn-hover-bg: var(--color-success-hover);
  --bs-btn-hover-border-color: var(--color-success-hover);
  --bs-btn-active-bg: var(--color-success-hover);
  --bs-btn-active-border-color: var(--color-success-hover);
}

.btn-warning {
  --bs-btn-bg: var(--color-warning);
  --bs-btn-border-color: var(--color-warning);
  --bs-btn-hover-bg: var(--color-warning-hover);
  --bs-btn-hover-border-color: var(--color-warning-hover);
  --bs-btn-active-bg: var(--color-warning-hover);
  --bs-btn-active-border-color: var(--color-warning-hover);
}

.btn-danger {
  --bs-btn-bg: var(--color-danger);
  --bs-btn-border-color: var(--color-danger);
  --bs-btn-hover-bg: var(--color-danger-hover);
  --bs-btn-hover-border-color: var(--color-danger-hover);
  --bs-btn-active-bg: var(--color-danger-hover);
  --bs-btn-active-border-color: var(--color-danger-hover);
}

.btn-info {
  --bs-btn-bg: var(--color-info);
  --bs-btn-border-color: var(--color-info);
  --bs-btn-hover-bg: var(--color-info-hover);
  --bs-btn-hover-border-color: var(--color-info-hover);
  --bs-btn-active-bg: var(--color-info-hover);
  --bs-btn-active-border-color: var(--color-info-hover);
}

/* Outline buttons */
.btn-outline-primary {
  --bs-btn-color: var(--brand-primary);
  --bs-btn-border-color: var(--brand-primary);
  --bs-btn-hover-bg: var(--brand-primary);
  --bs-btn-hover-border-color: var(--brand-primary);
  --bs-btn-active-bg: var(--brand-primary);
  --bs-btn-active-border-color: var(--brand-primary);
}

.btn-outline-success {
  --bs-btn-color: var(--color-success);
  --bs-btn-border-color: var(--color-success);
  --bs-btn-hover-bg: var(--color-success);
  --bs-btn-hover-border-color: var(--color-success);
}

.btn-outline-danger {
  --bs-btn-color: var(--color-danger);
  --bs-btn-border-color: var(--color-danger);
  --bs-btn-hover-bg: var(--color-danger);
  --bs-btn-hover-border-color: var(--color-danger);
}


/* ========================================
   OVERRIDE BOOTSTRAP BADGES
   ======================================== */

.badge.bg-primary {
  background-color: var(--brand-primary-light) !important;
  color: var(--brand-primary-dark) !important;
}

.badge.bg-success {
  background-color: var(--color-success-light) !important;
  color: var(--color-success-dark) !important;
}

.badge.bg-warning {
  background-color: var(--color-warning-light) !important;
  color: var(--color-warning-dark) !important;
}

.badge.bg-danger {
  background-color: var(--color-danger-light) !important;
  color: var(--color-danger-dark) !important;
}

.badge.bg-info {
  background-color: var(--color-info-light) !important;
  color: var(--color-info-dark) !important;
}


/* ========================================
   OVERRIDE BOOTSTRAP ALERTS
   ======================================== */

.alert-success {
  --bs-alert-bg: var(--color-success-light);
  --bs-alert-color: var(--color-success-dark);
  --bs-alert-border-color: var(--color-success);
  border-left: 4px solid var(--color-success);
}

.alert-warning {
  --bs-alert-bg: var(--color-warning-light);
  --bs-alert-color: var(--color-warning-dark);
  --bs-alert-border-color: var(--color-warning);
  border-left: 4px solid var(--color-warning);
}

.alert-danger {
  --bs-alert-bg: var(--color-danger-light);
  --bs-alert-color: var(--color-danger-dark);
  --bs-alert-border-color: var(--color-danger);
  border-left: 4px solid var(--color-danger);
}

.alert-info {
  --bs-alert-bg: var(--color-info-light);
  --bs-alert-color: var(--color-info-dark);
  --bs-alert-border-color: var(--color-info);
  border-left: 4px solid var(--color-info);
}


/* ========================================
   OVERRIDE BOOTSTRAP FORMS
   ======================================== */

.form-control:focus {
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 0.25rem rgba(var(--brand-primary-rgb), 0.15);
}

.form-select:focus {
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 0.25rem rgba(var(--brand-primary-rgb), 0.15);
}

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

.form-check-input:focus {
  border-color: var(--brand-primary);
  box-shadow: 0 0 0 0.25rem rgba(var(--brand-primary-rgb), 0.15);
}

.was-validated .form-control:valid,
.form-control.is-valid {
  border-color: var(--color-success);
}

.was-validated .form-control:valid:focus,
.form-control.is-valid:focus {
  border-color: var(--color-success);
  box-shadow: 0 0 0 0.25rem rgba(var(--color-success-rgb), 0.15);
}

.was-validated .form-control:invalid,
.form-control.is-invalid {
  border-color: var(--color-danger);
}

.was-validated .form-control:invalid:focus,
.form-control.is-invalid:focus {
  border-color: var(--color-danger);
  box-shadow: 0 0 0 0.25rem rgba(var(--color-danger-rgb), 0.15);
}


/* ========================================
   OVERRIDE BOOTSTRAP LINKS
   ======================================== */

a {
  color: var(--brand-primary);
  text-decoration: none;
}

a:hover {
  color: var(--brand-primary-hover);
  text-decoration: underline;
}


/* ========================================
   OVERRIDE BOOTSTRAP TEXT COLORS
   ======================================== */

.text-primary {
  color: var(--brand-primary) !important;
}

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

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

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

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

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


/* ========================================
   OVERRIDE BOOTSTRAP BACKGROUNDS
   ======================================== */

.bg-primary {
  background-color: var(--brand-primary) !important;
}

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

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

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

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

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


/* ========================================
   OVERRIDE BOOTSTRAP BORDERS
   ======================================== */

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

.border-primary {
  border-color: var(--brand-primary) !important;
}

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

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

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


/* ========================================
   OVERRIDE BOOTSTRAP CARDS
   ======================================== */

.card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  background-color: var(--color-bg-primary);
}

.card-header {
  background-color: var(--color-bg-primary);
  border-bottom: 1px solid var(--color-border-light);
}

.card-footer {
  background-color: var(--color-bg-primary);
  border-top: 1px solid var(--color-border-light);
}


/* ========================================
   OVERRIDE BOOTSTRAP MODALS
   ======================================== */

.modal-content {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
}

.modal-header {
  border-bottom: 1px solid var(--color-border-light);
}

.modal-footer {
  border-top: 1px solid var(--color-border-light);
}


/* ========================================
   OVERRIDE BOOTSTRAP DROPDOWN
   ======================================== */

.dropdown-menu {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--color-bg-hover);
  color: var(--brand-primary);
}

.dropdown-item.active {
  background-color: var(--brand-primary);
  color: white;
}


/* ========================================
   OVERRIDE BOOTSTRAP PAGINATION
   ======================================== */

.page-link {
  color: var(--brand-primary);
  border-color: var(--color-border);
}

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

.page-link:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--brand-primary-rgb), 0.15);
}

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


/* ========================================
   OVERRIDE BOOTSTRAP PROGRESS
   ======================================== */

.progress {
  background-color: var(--color-bg-tertiary);
}

.progress-bar {
  background-color: var(--brand-primary);
}

.progress-bar-success,
.bg-success .progress-bar {
  background-color: var(--color-success);
}

.progress-bar-warning,
.bg-warning .progress-bar {
  background-color: var(--color-warning);
}

.progress-bar-danger,
.bg-danger .progress-bar {
  background-color: var(--color-danger);
}
