button,
.button,
.text-button {
  -webkit-tap-highlight-color: transparent;
}

:root {
  --muted: #4f5f6b;
  --brand: #0a5d46;
}

.health-meta {
  color: #4f5f6b !important;
}

.footer-content a,
.footer-content p,
.footer-copyright {
  color: #eef1f3 !important;
}

.button {
  border: 1px solid rgba(0, 91, 68, .28);
  border-radius: 8px;
  min-height: 46px;
  padding: 11px 18px;
  cursor: pointer;
  color: #164536;
  background: linear-gradient(180deg, #ffffff 0%, #e9f4ef 100%);
  box-shadow: 0 3px 0 #b8d1c6, 0 7px 16px rgba(22, 87, 65, .12);
  font: 700 .86rem/1.2 Arial, sans-serif;
  transition: transform .12s ease, box-shadow .12s ease, background .18s ease, border-color .18s ease;
}

.button:hover {
  border-color: #074b3b;
  background: linear-gradient(180deg, #0a6d50 0%, #074b3b 100%);
  color: #ffffff !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 0 #043a2d, 0 10px 20px rgba(22, 87, 65, .24);
}

.button:active,
.button.is-pressed {
  transform: translateY(3px);
  box-shadow: 0 0 0 #9dbfb0, 0 3px 8px rgba(22, 87, 65, .14);
}

.button.primary {
  color: #ffffff;
  border-color: #006247;
  background: linear-gradient(180deg, #0b6d50 0%, #095c45 100%);
  box-shadow: 0 3px 0 #004e3b, 0 8px 18px rgba(0, 102, 76, .23);
}

.button.primary:hover {
  background: linear-gradient(180deg, #0a6d50 0%, #074b3b 100%);
  color: #ffffff !important;
  box-shadow: 0 4px 0 #004e3b, 0 11px 22px rgba(0, 102, 76, .28);
}

.button.primary:active,
.button.primary.is-pressed {
  background: linear-gradient(180deg, #0a5b45 0%, #074b3a 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 0 0 #004e3b, 0 3px 8px rgba(0, 102, 76, .2);
}

.button:focus-visible,
.text-button:focus-visible {
  outline: 3px solid rgba(255, 205, 85, .95);
  outline-offset: 3px;
}

.button:disabled,
.text-button:disabled {
  cursor: not-allowed;
  opacity: .58;
  transform: none;
  box-shadow: none;
}

.text-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid transparent;
  border-radius: 7px;
  cursor: pointer;
  color: #126b54;
  background: transparent;
  font: 700 .82rem/1.2 Arial, sans-serif;
  transition: transform .12s ease, color .18s ease, background .18s ease, box-shadow .12s ease;
}

.text-button:hover {
  color: #ffffff !important;
  background: #0a5d46;
  border-color: #074b3b;
  transform: translateY(-1px);
  box-shadow: 0 3px 8px rgba(7, 75, 59, .28);
}

.text-button:active,
.text-button.is-pressed {
  transform: translateY(2px);
  background: #0a5d46;
  color: #ffffff !important;
  border-color: rgba(10, 76, 58, .35);
  box-shadow: none;
}

:root[data-theme="dark"] .text-button:hover {
  background: #0a5d46;
  color: #ffffff !important;
}

:root[data-theme="dark"] .text-button:active,
:root[data-theme="dark"] .text-button.is-pressed {
  background: #0d775d;
  color: #ffffff !important;
}

.topbar .text-button {
  color: #ffffff;
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .18);
  box-shadow: 0 2px 0 rgba(0, 63, 39, .35);
}

.topbar .text-button:hover {
  color: #ffffff !important;
  background: #074b3b;
  border-color: #043a2d;
  box-shadow: 0 3px 0 rgba(0, 45, 28, .45), 0 5px 12px rgba(0, 0, 0, .2);
}

.topbar .text-button:active,
.topbar .text-button.is-pressed {
  background: rgba(0, 45, 28, .3);
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  .button,
  .text-button {
    transition: none;
  }
}
