/* ============================================================
   QAD Calidad — Botones
   Primario (azul marino) y secundario (borde), variantes de
   color/tamaño/estado. No declarar aquí badges/píldoras — ver
   badges.css.
   ============================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.5rem 1rem;
  border-radius: var(--radius-sm);
  font-weight: 500;
  font-size: 0.875rem;
  cursor: pointer;
  border: none;
  transition: all 0.15s;
  white-space: nowrap;
  line-height: 1.25;
}
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn:active:not(:disabled) { transform: scale(0.98); }
.btn[data-loading] { opacity: 0.75; cursor: not-allowed; pointer-events: none; }

.btn-primary {
  background: var(--color-navy);
  color: var(--color-surface);
}
.btn-primary:hover:not(:disabled) { background: #0C1B30; }

.btn-secondary {
  background: var(--color-surface);
  color: var(--color-text-body);
  border: 1px solid var(--color-border);
}
.btn-secondary:hover:not(:disabled) { background: var(--color-bg); border-color: #C7D2DD; }

.btn-success { background: var(--color-success); color: var(--color-surface); }
.btn-success:hover:not(:disabled) { background: var(--color-success-text); }

.btn-danger { background: var(--color-danger); color: var(--color-surface); }
.btn-danger:hover:not(:disabled) { background: var(--color-danger-text); }

.btn-ghost { background: transparent; color: var(--color-text-muted); }
.btn-ghost:hover:not(:disabled) { background: var(--color-bg); color: var(--color-text); }

.btn-sm  { padding: 0.375rem 0.75rem; font-size: 0.8125rem; }
.btn-xs  { padding: 0.25rem 0.625rem; font-size: 0.75rem; border-radius: var(--radius-sm); }
.btn-lg  { padding: 0.6875rem 1.375rem; font-size: 0.9375rem; }

/* Variante compacta de .btn-icon (ej. botón "eliminar" dentro de un chip) */
.btn-icon-xs { padding: 0.1875rem; }

.btn-ai { background: var(--color-copper); color: var(--color-surface); }
.btn-ai:hover:not(:disabled) { background: #8F6531; }

.btn-centered { justify-content: center; }

.spinner {
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: currentColor;
  animation: spin 0.7s linear infinite;
}
.spinner-sm { width: 0.875rem; height: 0.875rem; }
