/* MasterPlating V1118 — padrão global de botões por função.
   Primário: laranja | Secundário: azul contornado | Sucesso: verde
   Perigo: vermelho contornado | Neutro: cinza.
   Os botões de ícone Visualizar/Editar/Excluir seguem o padrão V1114. */
:root {
  --mp-action-orange: #f58216;
  --mp-action-orange-hover: #d96b0f;
  --mp-action-blue: #1766b3;
  --mp-action-blue-hover: #12558f;
  --mp-action-green: #218653;
  --mp-action-green-hover: #196b40;
  --mp-action-red: #dc3939;
  --mp-action-red-border: #f0a8a4;
  --mp-action-neutral: #526579;
  --mp-action-neutral-border: #cbd5df;
}

/* Geometria e tipografia comuns, sem modificar os botões quadrados de ícone. */
button.mp-btn-role-primary:not(.mp-icon-action),
button.mp-btn-role-secondary:not(.mp-icon-action),
button.mp-btn-role-success:not(.mp-icon-action),
button.mp-btn-role-danger:not(.mp-icon-action),
button.mp-btn-role-neutral:not(.mp-icon-action),
a.mp-btn-role-primary,
a.mp-btn-role-secondary,
a.mp-btn-role-success,
a.mp-btn-role-danger,
a.mp-btn-role-neutral,
[role="button"].mp-btn-role-primary,
[role="button"].mp-btn-role-secondary,
[role="button"].mp-btn-role-success,
[role="button"].mp-btn-role-danger,
[role="button"].mp-btn-role-neutral {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 34px !important;
  padding: 7px 12px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 7px !important;
  font-family: var(--mp-font-global, Inter, Arial, sans-serif) !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  text-decoration: none !important;
  text-transform: none !important;
  text-indent: 0 !important;
  box-shadow: none !important;
  cursor: pointer !important;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease !important;
  vertical-align: middle !important;
}

/* 1. Ação principal: laranja institucional. */
button.mp-btn-role-primary:not(.mp-icon-action),
a.mp-btn-role-primary,
[role="button"].mp-btn-role-primary {
  background: var(--mp-action-orange) !important;
  border-color: var(--mp-action-orange) !important;
  color: #fff !important;
}
button.mp-btn-role-primary:not(.mp-icon-action):hover,
a.mp-btn-role-primary:hover,
[role="button"].mp-btn-role-primary:hover {
  background: var(--mp-action-orange-hover) !important;
  border-color: var(--mp-action-orange-hover) !important;
  color: #fff !important;
  box-shadow: 0 2px 5px rgba(217, 107, 15, .18) !important;
}

/* 2. Ação secundária: fundo branco, contorno e texto azuis. */
button.mp-btn-role-secondary:not(.mp-icon-action),
a.mp-btn-role-secondary,
[role="button"].mp-btn-role-secondary {
  background: #fff !important;
  border-color: #8db8f6 !important;
  color: var(--mp-action-blue) !important;
}
button.mp-btn-role-secondary:not(.mp-icon-action):hover,
a.mp-btn-role-secondary:hover,
[role="button"].mp-btn-role-secondary:hover {
  background: #edf5ff !important;
  border-color: var(--mp-action-blue) !important;
  color: var(--mp-action-blue-hover) !important;
  box-shadow: 0 1px 4px rgba(22, 102, 179, .12) !important;
}

/* 3. Sucesso / aprovação: verde preenchido, reservado a conclusões positivas. */
button.mp-btn-role-success:not(.mp-icon-action),
a.mp-btn-role-success,
[role="button"].mp-btn-role-success {
  background: var(--mp-action-green) !important;
  border-color: var(--mp-action-green) !important;
  color: #fff !important;
}
button.mp-btn-role-success:not(.mp-icon-action):hover,
a.mp-btn-role-success:hover,
[role="button"].mp-btn-role-success:hover {
  background: var(--mp-action-green-hover) !important;
  border-color: var(--mp-action-green-hover) !important;
  color: #fff !important;
  box-shadow: 0 2px 5px rgba(33, 134, 83, .17) !important;
}

/* 4. Ação destrutiva / rejeição: fundo branco e contorno vermelho. */
button.mp-btn-role-danger:not(.mp-icon-action),
a.mp-btn-role-danger,
[role="button"].mp-btn-role-danger {
  background: #fff !important;
  border-color: var(--mp-action-red-border) !important;
  color: var(--mp-action-red) !important;
}
button.mp-btn-role-danger:not(.mp-icon-action):hover,
a.mp-btn-role-danger:hover,
[role="button"].mp-btn-role-danger:hover {
  background: #fff0ef !important;
  border-color: var(--mp-action-red) !important;
  color: #b92b2b !important;
  box-shadow: 0 1px 4px rgba(220, 57, 57, .12) !important;
}

/* 5. Neutro: cancelar, fechar e voltar sem competir com a ação principal. */
button.mp-btn-role-neutral:not(.mp-icon-action),
a.mp-btn-role-neutral,
[role="button"].mp-btn-role-neutral {
  background: #fff !important;
  border-color: var(--mp-action-neutral-border) !important;
  color: var(--mp-action-neutral) !important;
}
button.mp-btn-role-neutral:not(.mp-icon-action):hover,
a.mp-btn-role-neutral:hover,
[role="button"].mp-btn-role-neutral:hover {
  background: #f4f7fa !important;
  border-color: #9baebe !important;
  color: #34495e !important;
}

/* Ícones dentro de botões textuais alinhados sem impor aparência aos ícones da tabela. */
button.mp-btn-role-primary:not(.mp-icon-action) > svg,
button.mp-btn-role-secondary:not(.mp-icon-action) > svg,
button.mp-btn-role-success:not(.mp-icon-action) > svg,
button.mp-btn-role-danger:not(.mp-icon-action) > svg,
button.mp-btn-role-neutral:not(.mp-icon-action) > svg,
button.mp-btn-role-primary:not(.mp-icon-action) > i,
button.mp-btn-role-secondary:not(.mp-icon-action) > i,
button.mp-btn-role-success:not(.mp-icon-action) > i,
button.mp-btn-role-danger:not(.mp-icon-action) > i,
button.mp-btn-role-neutral:not(.mp-icon-action) > i {
  flex: 0 0 auto !important;
  width: 14px;
  height: 14px;
}

/* Botões compactos mantêm dimensões próprias, mas respeitam as cores semânticas. */
button.mp-btn-role-primary.small:not(.mp-icon-action),
button.mp-btn-role-secondary.small:not(.mp-icon-action),
button.mp-btn-role-success.small:not(.mp-icon-action),
button.mp-btn-role-danger.small:not(.mp-icon-action),
button.mp-btn-role-neutral.small:not(.mp-icon-action),
button.mp-btn-role-primary.btn-small:not(.mp-icon-action),
button.mp-btn-role-secondary.btn-small:not(.mp-icon-action),
button.mp-btn-role-success.btn-small:not(.mp-icon-action),
button.mp-btn-role-danger.btn-small:not(.mp-icon-action),
button.mp-btn-role-neutral.btn-small:not(.mp-icon-action) {
  min-height: 30px !important;
  padding: 5px 9px !important;
  font-size: 10.5px !important;
}

/* Acessibilidade e estado indisponível. */
button.mp-btn-role-primary:focus-visible,
button.mp-btn-role-secondary:focus-visible,
button.mp-btn-role-success:focus-visible,
button.mp-btn-role-danger:focus-visible,
button.mp-btn-role-neutral:focus-visible,
a.mp-btn-role-primary:focus-visible,
a.mp-btn-role-secondary:focus-visible,
a.mp-btn-role-success:focus-visible,
a.mp-btn-role-danger:focus-visible,
a.mp-btn-role-neutral:focus-visible {
  outline: 2px solid rgba(22, 102, 179, .35) !important;
  outline-offset: 2px !important;
}
button.mp-btn-role-primary:disabled,
button.mp-btn-role-secondary:disabled,
button.mp-btn-role-success:disabled,
button.mp-btn-role-danger:disabled,
button.mp-btn-role-neutral:disabled,
button.mp-btn-role-primary[aria-disabled="true"],
button.mp-btn-role-secondary[aria-disabled="true"],
button.mp-btn-role-success[aria-disabled="true"],
button.mp-btn-role-danger[aria-disabled="true"],
button.mp-btn-role-neutral[aria-disabled="true"] {
  opacity: .52 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}
