.btn{
  border:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--spacing-2);
  min-height:40px;
  padding:10px 16px;
  border-radius:var(--radius-sm);
  font-weight:600;
  font-size:14px;
  line-height:1;
  transition:background .16s ease, color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.btn-primary{
  background:var(--color-primary);
  color:white;
}

.btn-primary:hover{
  background:var(--color-primary-hover);
}

.btn-success{
  background:var(--color-success-solid);
  color:white;
}

.btn-success:hover{
  background:var(--color-success-solid-hover);
}

.btn-danger{
  background:var(--color-danger-solid);
  color:white;
}

.btn-danger:hover{
  background:var(--color-danger-solid-hover);
}

/* Texto oscuro: el blanco sobre ámbar queda en 2,2:1. */
.btn-warning{
  background:var(--color-warning);
  color:var(--color-text-primary);
}

.btn-warning:hover{
  background:#D97706;
}

.btn-secondary{
  background:var(--color-neutral-soft);
  color:var(--color-text-primary);
  border:1px solid var(--color-border);
}

.btn-secondary:hover{
  background:#E5E7EB;
}

.btn-small,
.btn-sm{
  min-height:32px;
  padding:8px 10px;
  font-size:13px;
}

.btn-icon{
  width:36px;
  height:36px;
  min-height:36px;
  padding:0;
  border-radius:var(--radius-sm);
}

.btn:disabled,
.btn.disabled{
  cursor:not-allowed;
  opacity:.62;
}

.btn.is-loading{
  cursor:progress;
  opacity:.82;
}

.btn:not(:disabled):active{
  transform:translateY(1px);
}
