.auth-card button {
  position: relative;
  min-height: 46px;
  cursor: pointer;
  transition: transform .12s ease, box-shadow .18s ease, background-color .18s ease, opacity .18s ease;
  box-shadow: 0 5px 14px rgb(37 99 217 / 18%);
}

.auth-card button:hover:not(:disabled) {
  background: #1d55c3;
  box-shadow: 0 7px 18px rgb(37 99 217 / 28%);
  transform: translateY(-1px);
}

.auth-card button:active:not(:disabled),
.auth-card button.is-pressed {
  transform: translateY(1px) scale(.99);
  box-shadow: inset 0 2px 5px rgb(0 0 0 / 20%);
}

.auth-card button:focus-visible {
  outline: 3px solid rgb(37 99 217 / 25%);
  outline-offset: 3px;
}

.auth-card button.is-loading,
.auth-card button[aria-busy="true"] {
  cursor: wait;
  opacity: .9;
}

.auth-card button.is-loading::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  margin: 0 9px -3px 0;
  border: 2px solid rgb(255 255 255 / 45%);
  border-top-color: #fff;
  border-radius: 50%;
  animation: ledger-auth-spin .7s linear infinite;
}

.auth-card button + button,
.auth-card hr + button {
  margin-top: 10px;
}

@keyframes ledger-auth-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .auth-card button { transition: none; }
  .auth-card button.is-loading::before { animation-duration: 1.4s; }
}
