/* =====================================================================
   Botões — partials: componentes/_botao e componentes/_botao_icone
   ===================================================================== */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--espaco-2);
  min-height: var(--altura-controle); padding: var(--espaco-2) var(--espaco-4);
  border-radius: var(--raio-sm);
  border: 1px solid transparent;
  font-weight: var(--peso-semibold); font-size: var(--tamanho-md); line-height: var(--altura-linha-compacta);
  white-space: nowrap;
  transition: background-color var(--transicao), border-color var(--transicao), color var(--transicao), transform var(--transicao), box-shadow var(--transicao);
  user-select: none;
}
.btn:active:not(:disabled) { transform: translateY(1px); }
.btn:disabled { opacity: 0.55; }
.btn .icone { width: 18px; height: 18px; }

.btn-primario { background: var(--primaria); color: var(--primaria-contraste); }
.btn-primario:hover:not(:disabled) { background: var(--primaria-hover); }

.btn-secundario { background: var(--superficie); color: var(--texto); border-color: var(--borda-forte); }
.btn-secundario:hover:not(:disabled) { background: var(--superficie-2); border-color: var(--texto-3); }

.btn-fantasma { color: var(--texto-2); }
.btn-fantasma:hover:not(:disabled) { background: var(--superficie-3); color: var(--texto); }

.btn-perigo { background: var(--despesa); color: #fff; }
.btn-perigo:hover:not(:disabled) { background: #B91C1C; }
.btn-perigo-contorno { color: var(--despesa-texto); border-color: var(--despesa); background: transparent; }
.btn-perigo-contorno:hover:not(:disabled) { background: var(--despesa-suave); }

.btn-sm { min-height: var(--altura-controle-sm); padding: var(--espaco-1) var(--espaco-2-5); font-size: var(--tamanho-sm); border-radius: 8px; }
.btn-bloco { width: 100%; }

.btn-icone {
  display: inline-flex; align-items: center; justify-content: center;
  width: var(--altura-controle); height: var(--altura-controle); border-radius: var(--raio-sm);
  color: var(--texto-2);
  transition: background-color var(--transicao), color var(--transicao);
}
.btn-icone:hover:not(:disabled) { background: var(--superficie-3); color: var(--texto); }
.btn-icone.btn-sm { width: var(--altura-controle-sm); height: var(--altura-controle-sm); min-height: 0; padding: 0; }
.btn-icone.perigo:hover:not(:disabled) { background: var(--despesa-suave); color: var(--despesa-texto); }

.btn-link { color: var(--primaria-texto); font-weight: var(--peso-semibold); padding: var(--espaco-0-5) 0; }
.btn-link:hover { text-decoration: underline; }

.btn .spinner { width: 16px; height: 16px; border-width: 2px; }
.btn.carregando { position: relative; }
