/* Bootstrap theme overrides mapped to our CSS variables */

:root {
  /* Default for .border-*, .border-bottom, .border-start, tables, etc. */
  --bs-border-color: var(--border-primary);
  --bs-border-radius: var(--radius-md);
  --bs-border-radius-sm: var(--radius-sm);
  --bs-border-radius-lg: var(--radius-lg);
  --bs-border-radius-xl: var(--radius-xl);
  --bs-border-radius-xxl: var(--radius-xl);
  --bs-card-border-radius: var(--radius-lg);
  --bs-card-bg: var(--bg-surface);
  --bs-card-border-color: var(--border-primary);
  --bs-card-cap-bg: var(--card-chrome-bg);
  --bs-card-cap-color: var(--text-primary);
  --bs-body-bg: var(--bg-primary);
  --bs-body-color: var(--text-primary);
  --bs-secondary-bg: var(--bg-elevated);
  --bs-tertiary-bg: var(--bg-tertiary);
  --bs-primary: var(--accent-primary);
  --bs-primary-rgb: var(--accent-primary-rgb);
  --bs-success: var(--success);
  --bs-success-rgb: var(--success-rgb);
  --bs-warning: var(--warning);
  --bs-warning-rgb: var(--warning-rgb);

  /* List group / index rows — Bootstrap chains these to light --bs-tertiary-bg by default */
  --bs-list-group-color: var(--text-secondary);
  --bs-list-group-bg: transparent;
  --bs-list-group-border-color: var(--border-primary);
  --bs-list-group-action-color: var(--text-secondary);
  --bs-list-group-action-hover-color: var(--list-row-hover-fg);
  --bs-list-group-action-hover-bg: var(--list-row-hover-bg);
  --bs-list-group-action-active-color: var(--list-row-active-fg);
  --bs-list-group-action-active-bg: var(--list-row-active-bg);
  --bs-list-group-disabled-color: var(--text-tertiary);
  --bs-list-group-disabled-bg: transparent;
}

/* Keep Bootstrap button interaction glows on-theme (no default blue ring). */
.btn {
  --bs-btn-focus-shadow-rgb: var(--accent-primary-rgb);
}

.btn-primary {
  --bs-btn-focus-shadow-rgb: var(--btn-primary-rgb);
}

.btn-outline-primary {
  --bs-btn-focus-shadow-rgb: var(--accent-primary-rgb);
}

/* Solid primary: brighter page CTAs (see --btn-primary-* in variables.css), distinct from nav chrome. */
.btn-primary {
  --bs-btn-color: #ffffff;
  --bs-btn-bg: var(--btn-primary-bg);
  --bs-btn-border-color: var(--btn-primary-bg);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--btn-primary-hover);
  --bs-btn-hover-border-color: var(--btn-primary-hover);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--btn-primary-hover);
  --bs-btn-active-border-color: var(--btn-primary-hover);
  --bs-btn-disabled-color: #ffffff;
  --bs-btn-disabled-bg: var(--btn-primary-bg);
  --bs-btn-disabled-border-color: var(--btn-primary-bg);
}

/* Ensure outline-primary buttons never fall back to Bootstrap blue states. */
.btn-outline-primary {
  --bs-btn-color: var(--accent-primary);
  --bs-btn-border-color: var(--accent-primary);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-hover-bg: var(--accent-primary);
  --bs-btn-hover-border-color: var(--accent-primary);
  --bs-btn-active-color: #ffffff;
  --bs-btn-active-bg: var(--accent-primary-hover);
  --bs-btn-active-border-color: var(--accent-primary-hover);
  --bs-btn-disabled-color: var(--accent-primary);
  --bs-btn-disabled-border-color: var(--accent-primary);
}

.btn-success,
.btn-outline-success {
  --bs-btn-focus-shadow-rgb: var(--success-rgb);
}

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

.btn-warning,
.btn-outline-warning {
  --bs-btn-focus-shadow-rgb: var(--warning-rgb);
}

/* Final guardrail against any Bootstrap/browser blue focus fallback. */
.btn:focus,
.btn:focus-visible,
.btn:active,
.btn.active {
  outline: none !important;
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-btn-focus-shadow-rgb), 0.3) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:focus-visible,
.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary,
.show > .btn-outline-primary.dropdown-toggle {
  color: #ffffff !important;
  background-color: var(--accent-primary-hover) !important;
  border-color: var(--accent-primary-hover) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active,
.btn-primary.active,
.btn-check:checked + .btn-primary,
.btn-check:active + .btn-primary,
.show > .btn-primary.dropdown-toggle {
  color: #ffffff !important;
  background-color: var(--btn-primary-hover) !important;
  border-color: var(--btn-primary-hover) !important;
}

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

/* Map Bootstrap “body” text utilities to our theme tokens. */
.text-body {
  color: var(--text-primary) !important;
}

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

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

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

.link-secondary:hover,
.link-secondary:focus {
  color: var(--text-primary) !important;
}

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

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

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

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

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

.bg-white {
  background: var(--bg-surface) !important;
}

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

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

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

/* Home — favorites card left accent (Bootstrap border utilities use theme colors; we use brand gold). */
.border-start-accent-gold {
  border-left: 4px solid var(--accent-gold) !important;
}

.text-xs {
  font-size: 0.75rem;
}

.text-xxs {
  font-size: 0.7rem;
}

/*
 * Navbar guest “Sign in” — declared last so it wins over `a` + `.btn`.
 * White label on green chrome; soft outline (border/bg stay subtle).
 */
nav.navbar.navbar-dark a.btn.navbar-guest-auth__sign-in {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  background-color: rgba(255, 255, 255, 0.07) !important;
  border: 1px solid rgba(255, 255, 255, 0.38) !important;
  box-shadow: none !important;
  font-weight: 600;
  --bs-btn-focus-shadow-rgb: 255, 255, 255;
}

nav.navbar.navbar-dark a.btn.navbar-guest-auth__sign-in:hover,
nav.navbar.navbar-dark a.btn.navbar-guest-auth__sign-in:focus,
nav.navbar.navbar-dark a.btn.navbar-guest-auth__sign-in:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  background-color: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.52) !important;
  box-shadow: none !important;
}

nav.navbar.navbar-dark a.btn.navbar-guest-auth__sign-in:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.4) !important;
}

nav.navbar.navbar-dark a.btn.navbar-guest-auth__sign-in.active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff;
  background-color: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.52) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.3) !important;
}
