/* Camada final de contraste dos controles, compartilhada por todos os layouts. */
:root {
  --button-green: var(--front-green, var(--color-green, #2E7D32));
  --button-green-hover: var(--color-green-light, #43A047);
  --button-ink: #24332b;
  --button-border: #65766d;
}

/* Fallback seguro: botão sem variante nunca herda texto branco sobre superfície branca. */
.btn:not(.btn-primary):not(.btn-success):not(.btn-secondary):not(.btn-danger):not(.btn-warning):not(.btn-info):not(.btn-dark):not(.btn-light):not(.btn-link):not([class*="btn-outline-"]):not(.solid-btn):not(.solid-btn-light):not(.outline-btn):not(.no-border-btn):not(.warning-btn):not(.danger-btn):not(.gray-btn):not(.sig-btn):not(.proto-action):not(.public-login-btn):not(.auth-submit):not(.auth-secondary):not(.docs-tab) {
  border-color: var(--button-border) !important;
  background-color: #fff !important;
  color: var(--button-ink) !important;
  -webkit-text-fill-color: currentColor;
}

.btn-primary, .btn-success, .solid-btn, .solid-btn-light, .sig-btn--primary, .proto-action,
.filter button[type="submit"].btn, .ds-filter button[type="submit"].btn {
  border-color: var(--button-green) !important;
  background-color: var(--button-green) !important;
  color: #fff !important;
  -webkit-text-fill-color: currentColor;
}

.btn-primary:is(:hover, :focus-visible, :active),
.btn-success:is(:hover, :focus-visible, :active),
.solid-btn:is(:hover, :focus-visible, :active),
.solid-btn-light:is(:hover, :focus-visible, :active),
.sig-btn--primary:is(:hover, :focus-visible, :active),
.proto-action:is(:hover, :focus-visible, :active),
.filter button[type="submit"].btn:is(:hover, :focus-visible, :active),
.ds-filter button[type="submit"].btn:is(:hover, :focus-visible, :active) {
  border-color: var(--button-green-hover) !important;
  background-color: var(--button-green-hover) !important;
  color: #fff !important;
}

:where(.btn-outline-primary, .btn-outline-success, .outline-btn, .sig-btn:not(.sig-btn--primary), .public-login-btn, .gray-btn) {
  border-color: var(--button-green) !important;
  background-color: #fff !important;
  color: var(--button-green) !important;
}

:where(.btn-outline-primary, .btn-outline-success, .outline-btn, .sig-btn:not(.sig-btn--primary), .public-login-btn, .gray-btn):is(:hover, :focus-visible, :active) {
  border-color: var(--button-green) !important;
  background-color: var(--button-green) !important;
  color: #fff !important;
}

:where(.btn-secondary, .btn-outline-secondary, .btn-light, .no-border-btn) {
  border-color: var(--button-border) !important;
  background-color: #fff !important;
  color: var(--button-ink) !important;
}

:where(.btn-secondary, .btn-outline-secondary, .btn-light, .no-border-btn):is(:hover, :focus-visible, :active) {
  border-color: var(--button-green) !important;
  background-color: #edf7f0 !important;
  color: var(--button-green-hover) !important;
}

:where(.btn-danger) { background-color: #b42318 !important; border-color: #b42318 !important; color: #fff !important; }
:where(.btn-warning) { background-color: #f4c430 !important; border-color: #c99a00 !important; color: #302600 !important; }
:where(.btn-info) { background-color: #d9eff8 !important; border-color: #4b91ad !important; color: #153f50 !important; }
:where(.btn-dark) { background-color: #26332c !important; border-color: #26332c !important; color: #fff !important; }

:where(.btn, button, input[type="button"], input[type="submit"]):disabled {
  border-color: #a9b4ae !important;
  background-color: #e8ecea !important;
  color: #58635d !important;
  opacity: 1;
}

@media (forced-colors: active) {
  :where(.btn, button, input[type="button"], input[type="submit"]) {
    border: 1px solid ButtonText !important;
    background: ButtonFace !important;
    color: ButtonText !important;
  }
}
