/* P3.4B.2 Button contrast guard
   Loaded last to prevent global link color rules from repainting solid buttons. */
:root {
  --fd-button-text-on-primary: #ffffff;
  --fd-button-text-on-danger: #ffffff;
  --fd-button-text-on-success: #ffffff;
  --fd-button-text-on-warning: #422006;
}

.fd-app-body a.btn.btn-primary,
.fd-app-body button.btn.btn-primary,
.fd-app-body input.btn.btn-primary,
.fd-app-body .btn.btn-primary,
.fd-public-body a.btn.btn-primary,
.fd-public-body button.btn.btn-primary,
.fd-public-body input.btn.btn-primary,
.fd-public-body .btn.btn-primary {
  --bs-btn-color: var(--fd-button-text-on-primary);
  --bs-btn-hover-color: var(--fd-button-text-on-primary);
  --bs-btn-active-color: var(--fd-button-text-on-primary);
  --bs-btn-disabled-color: var(--fd-button-text-on-primary);
  color: var(--fd-button-text-on-primary) !important;
  background-color: var(--fd-primary) !important;
  border-color: var(--fd-primary) !important;
}

.fd-app-body a.btn.btn-primary:hover,
.fd-app-body a.btn.btn-primary:focus,
.fd-app-body button.btn.btn-primary:hover,
.fd-app-body button.btn.btn-primary:focus,
.fd-app-body .btn.btn-primary:hover,
.fd-app-body .btn.btn-primary:focus,
.fd-public-body a.btn.btn-primary:hover,
.fd-public-body a.btn.btn-primary:focus,
.fd-public-body button.btn.btn-primary:hover,
.fd-public-body button.btn.btn-primary:focus,
.fd-public-body .btn.btn-primary:hover,
.fd-public-body .btn.btn-primary:focus {
  color: var(--fd-button-text-on-primary) !important;
  background-color: var(--fd-primary-strong) !important;
  border-color: var(--fd-primary-strong) !important;
}

.fd-app-body a.btn.btn-danger,
.fd-app-body button.btn.btn-danger,
.fd-app-body .btn.btn-danger,
.fd-public-body a.btn.btn-danger,
.fd-public-body button.btn.btn-danger,
.fd-public-body .btn.btn-danger {
  color: var(--fd-button-text-on-danger) !important;
}

.fd-app-body a.btn.btn-success,
.fd-app-body button.btn.btn-success,
.fd-app-body .btn.btn-success,
.fd-public-body a.btn.btn-success,
.fd-public-body button.btn.btn-success,
.fd-public-body .btn.btn-success {
  color: var(--fd-button-text-on-success) !important;
}

.fd-app-body a.btn.btn-warning,
.fd-app-body button.btn.btn-warning,
.fd-app-body .btn.btn-warning,
.fd-public-body a.btn.btn-warning,
.fd-public-body button.btn.btn-warning,
.fd-public-body .btn.btn-warning {
  color: var(--fd-button-text-on-warning) !important;
}

.fd-app-body a.btn.btn-primary *,
.fd-app-body button.btn.btn-primary *,
.fd-app-body .btn.btn-primary *,
.fd-app-body a.btn.btn-danger *,
.fd-app-body button.btn.btn-danger *,
.fd-app-body .btn.btn-danger *,
.fd-app-body a.btn.btn-success *,
.fd-app-body button.btn.btn-success *,
.fd-app-body .btn.btn-success *,
.fd-public-body a.btn.btn-primary *,
.fd-public-body button.btn.btn-primary *,
.fd-public-body .btn.btn-primary *,
.fd-public-body a.btn.btn-danger *,
.fd-public-body button.btn.btn-danger *,
.fd-public-body .btn.btn-danger *,
.fd-public-body a.btn.btn-success *,
.fd-public-body button.btn.btn-success *,
.fd-public-body .btn.btn-success * {
  color: inherit !important;
}

/* Keep outline buttons intentionally red-on-light, but never red-on-solid. */
.fd-app-body a.btn.btn-outline-primary,
.fd-app-body button.btn.btn-outline-primary,
.fd-public-body a.btn.btn-outline-primary,
.fd-public-body button.btn.btn-outline-primary {
  color: var(--fd-primary) !important;
}

.fd-app-body a.btn.btn-outline-primary:hover,
.fd-app-body button.btn.btn-outline-primary:hover,
.fd-public-body a.btn.btn-outline-primary:hover,
.fd-public-body button.btn.btn-outline-primary:hover {
  color: var(--fd-primary-strong) !important;
}
