/* ═══════════════════════════════════════════════════════════════════════
   Portal NHP — padrão de botões, compartilhado por TODAS as telas.
   Carregado DEPOIS do <style> de cada página, para valer sobre as variações
   que cada uma acumulou. Cada módulo tinha sua própria altura, peso de fonte
   e mistura de emoji com ícone; aqui tudo passa a ter a mesma medida.
   Regras: um só raio, uma só altura, ícone sempre à esquerda com o mesmo
   espaço, e nenhum emoji dentro de botão.
   ═══════════════════════════════════════════════════════════════════════ */

.btn{
  --btn-alt: 34px;
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  min-height:var(--btn-alt); padding:0 14px;
  border:1px solid var(--bd,#e4e7ec); border-radius:9px;
  background:var(--sf,#fff); color:var(--tx,#1f2a37);
  font-family:inherit; font-size:12.5px; font-weight:600; line-height:1;
  letter-spacing:-.005em; white-space:nowrap; cursor:pointer;
  transition:background .15s, border-color .15s, color .15s, box-shadow .15s;
}
.btn:hover{ border-color:var(--ac,#0095ce); color:var(--ac,#0095ce); background:var(--ac-sf,rgba(0,149,206,.07)); }
.btn:active{ transform:translateY(.5px); }
.btn:focus-visible{ outline:none; box-shadow:0 0 0 3px var(--ac-sf,rgba(0,149,206,.25)); border-color:var(--ac,#0095ce); }
.btn:disabled,.btn[disabled]{ opacity:.45; cursor:not-allowed; }
.btn:disabled:hover,.btn[disabled]:hover{ border-color:var(--bd,#e4e7ec); color:var(--tx,#1f2a37); background:var(--sf,#fff); }
/* o ícone nunca encolhe nem desalinha o texto */
.btn svg,.btn [data-ico]{ flex:0 0 auto; display:inline-flex; align-items:center; }
.btn svg{ vertical-align:0; }

/* Primário — a ação principal da tela. Um por grupo, no fim da linha. */
.btn.btn-p{ background:var(--ac,#0095ce); border-color:var(--ac,#0095ce); color:#fff; font-weight:600; }
.btn.btn-p:hover{ background:var(--ac2,#007bab); border-color:var(--ac2,#007bab); color:#fff; }

/* Discreto — ações secundárias; só ganha contorno no hover. */
.btn.btn-gh{ background:transparent; border-color:transparent; color:var(--tx2,#5b6675); font-weight:500; }
.btn.btn-gh:hover{ background:var(--ac-sf,rgba(0,149,206,.07)); border-color:transparent; color:var(--ac,#0095ce); }

/* Destrutivo — só onde a ação apaga algo de verdade. */
.btn.btn-rd{ color:var(--rd,#dc2626); border-color:var(--bd,#e4e7ec); background:var(--sf,#fff); }
.btn.btn-rd:hover{ color:#fff; background:var(--rd,#dc2626); border-color:var(--rd,#dc2626); }

/* Tamanhos */
.btn.btn-sm{ --btn-alt:28px; padding:0 10px; font-size:11.5px; gap:5px; }
.btn.btn-lg{ --btn-alt:40px; padding:0 20px; font-size:13.5px; }
/* Só ícone: quadrado, sem texto (linhas de tabela) */
.btn.btn-ico{ padding:0; width:var(--btn-alt); gap:0; }
.btn.btn-sm.btn-ico{ width:28px; }

/* Grupo de botões: espaçamento uniforme em qualquer barra */
.btn-group{ display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; }

/* Botão dentro de célula de tabela nasce pequeno, sem precisar de classe */
td .btn:not(.btn-lg){ --btn-alt:28px; padding:0 10px; font-size:11.5px; gap:5px; }
td .btn.btn-ico{ padding:0; width:28px; }
