/*
 * Remapea los tokens de tokens.css sobre las variables propias de Bootstrap 5.3,
 * más overrides explícitos para las clases compiladas (.btn-*, .alert-*, .text-bg-*)
 * que llevan colores bakeados en variables locales por componente, no en var(--bs-primary).
 */
:root,
[data-bs-theme="light"] {
  --bs-body-bg: var(--surface-bg);
  --bs-body-color: var(--text-1);
  --bs-secondary-color: var(--text-2);
  --bs-tertiary-bg: var(--surface-2);
  --bs-secondary-bg: var(--surface-2);
  --bs-border-color: var(--surface-border);
  --bs-emphasis-color: var(--text-1);
  /* .bg-light/.text-light/.border-light se usan en la app como "panel neutro",
     así que deben seguir el tema en vez de quedarse siempre claros */
  --bs-light: var(--surface-2);
  --bs-light-rgb: 233, 236, 239;

  --bs-link-color: var(--brand-primary);
  --bs-link-color-rgb: var(--brand-primary-rgb);
  --bs-link-hover-color: var(--brand-primary-hover);

  --bs-primary: var(--brand-primary);
  --bs-primary-rgb: var(--brand-primary-rgb);
  --bs-success: var(--color-success);
  --bs-success-rgb: var(--color-success-rgb);
  --bs-warning: var(--color-warning);
  --bs-warning-rgb: var(--color-warning-rgb);
  --bs-danger: var(--color-danger);
  --bs-danger-rgb: var(--color-danger-rgb);
  --bs-info: var(--color-info);
  --bs-info-rgb: var(--color-info-rgb);
}

[data-bs-theme="dark"] {
  --bs-body-bg: var(--surface-bg);
  --bs-body-color: var(--text-1);
  --bs-secondary-color: var(--text-2);
  --bs-tertiary-bg: var(--surface-2);
  --bs-secondary-bg: var(--surface-2);
  --bs-border-color: var(--surface-border);
  --bs-emphasis-color: var(--text-1);
  --bs-light: var(--surface-2);
  --bs-light-rgb: 34, 39, 46;

  --bs-link-color: var(--brand-primary);
  --bs-link-color-rgb: var(--brand-primary-rgb);
  --bs-link-hover-color: var(--brand-primary-hover);

  --bs-primary: var(--brand-primary);
  --bs-primary-rgb: var(--brand-primary-rgb);
  --bs-success: var(--color-success);
  --bs-success-rgb: var(--color-success-rgb);
  --bs-warning: var(--color-warning);
  --bs-warning-rgb: var(--color-warning-rgb);
  --bs-danger: var(--color-danger);
  --bs-danger-rgb: var(--color-danger-rgb);
  --bs-info: var(--color-info);
  --bs-info-rgb: var(--color-info-rgb);
}

/* Clases compiladas: colores bakeados por componente, hay que sobreescribirlos explícitamente */
.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-active);
  --bs-btn-active-border-color: var(--brand-primary-active);
  --bs-btn-disabled-bg: var(--brand-primary);
  --bs-btn-disabled-border-color: var(--brand-primary);
}
.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-active);
  --bs-btn-active-border-color: var(--brand-primary-active);
}
.btn-success { --bs-btn-bg: var(--color-success); --bs-btn-border-color: var(--color-success); }
.btn-warning { --bs-btn-bg: var(--color-warning); --bs-btn-border-color: var(--color-warning); --bs-btn-color: #1a1300; }
.btn-danger  { --bs-btn-bg: var(--color-danger);  --bs-btn-border-color: var(--color-danger); }
.btn-info    { --bs-btn-bg: var(--color-info);    --bs-btn-border-color: var(--color-info); }

.text-bg-primary, .badge.bg-primary { background-color: var(--brand-primary) !important; }
.text-bg-success, .badge.bg-success { background-color: var(--color-success) !important; }
.text-bg-warning, .badge.bg-warning { background-color: var(--color-warning) !important; }
.text-bg-danger,  .badge.bg-danger  { background-color: var(--color-danger) !important; }
.text-bg-info,    .badge.bg-info    { background-color: var(--color-info) !important; }

.alert-primary {
  --bs-alert-bg: rgba(var(--brand-primary-rgb), .12);
  --bs-alert-color: var(--brand-primary);
  --bs-alert-border-color: rgba(var(--brand-primary-rgb), .25);
}
.alert-success {
  --bs-alert-bg: rgba(var(--color-success-rgb), .12);
  --bs-alert-color: var(--color-success);
  --bs-alert-border-color: rgba(var(--color-success-rgb), .25);
}
.alert-danger {
  --bs-alert-bg: rgba(var(--color-danger-rgb), .12);
  --bs-alert-color: var(--color-danger);
  --bs-alert-border-color: rgba(var(--color-danger-rgb), .25);
}
.alert-warning {
  --bs-alert-bg: rgba(var(--color-warning-rgb), .12);
  --bs-alert-color: var(--color-warning);
  --bs-alert-border-color: rgba(var(--color-warning-rgb), .25);
}
