/* Shared states; loaded after page styles. Preserve the FitConnect orange. */
:is(button, a[href], [role="button"], input[type="submit"]):not(:disabled) {
  transition: transform .2s ease-in-out, box-shadow .2s ease-in-out;
}
:is(button, [role="button"], input[type="submit"]):not(:disabled):hover {
  box-shadow: 0 3px 12px rgb(17 18 20 / 18%);
}
:is(button, a[href], [role="button"], input[type="submit"]):not(:disabled):active {
  transform: scale(.96);
}
:is(button, a[href], [role="button"], input, select, textarea):focus-visible {
  outline: 3px solid #111214;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #fff !important;
}
.primary-login, .portal-topbar .topbar-actions button,
.feature-actions a, .performance-feature > a {
  color: #111214;
}
:is(button, input[type="submit"])[aria-busy="true"] {
  cursor: not-allowed;
}
button[aria-busy="true"]::after {
  content: "";
  display: inline-block;
  width: .9em;
  height: .9em;
  margin-inline-start: .5em;
  border: 2px solid currentColor;
  border-inline-end-color: transparent;
  border-radius: 50%;
  animation: fc-button-spin .7s linear infinite;
}
@keyframes fc-button-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  :is(button, a[href], [role="button"], input[type="submit"]) {
    transition: none;
  }
  button[aria-busy="true"]::after { animation: none; }
}
