.loading-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  box-sizing: border-box;
  padding: 0.85rem;
  font-size: 1.1rem;
  font-weight: 700;
  font-family: inherit;
  border-radius: 0.5rem;
  border: none;
  cursor: pointer;
  color: var(--bg);
}
.loading-btn:disabled { cursor: default; opacity: 0.85; }
.loading-btn-primary { background: var(--accent); }
.loading-btn-danger { background: #ef4444; color: #fff; }
.loading-btn-secondary { background: var(--bg-border); color: var(--bg-text); }

.loading-btn .loading-btn-spinner {
  display: none;
  width: 1.1em;
  height: 1.1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: loading-btn-spin 0.6s linear infinite;
}
.loading-btn.is-loading .loading-btn-spinner { display: inline-block; }
.loading-btn.is-loading .loading-btn-label { opacity: 0.85; }

@keyframes loading-btn-spin {
  to { transform: rotate(360deg); }
}
