/*
 * Sistema de botões Mania de Aprovação
 * Camada semântica carregada por último para unificar ações sem atingir
 * abas, paginação, editores ricos, switches ou controles de navegação.
 */
:root{
  --button-primary:#117ce5;
  --button-primary-hover:#0868c7;
  --button-primary-pressed:#0756a6;
  --button-secondary-bg:#dceeff;
  --button-secondary-hover:#c8e4ff;
  --button-secondary-pressed:#afd7ff;
  --button-secondary-text:#0968c7;
  --button-ink:#10244a;
  --button-neutral:#e7ebf1;
  --button-neutral-hover:#d9dee6;
  --button-neutral-pressed:#cbd2dc;
  --button-success:#18a957;
  --button-success-hover:#118d47;
  --button-success-pressed:#0c743a;
  --button-danger-bg:#ffe3e5;
  --button-danger-border:#f06c73;
  --button-danger-text:#cf1827;
  --button-dark:#252a33;
  --button-focus:rgba(17,124,229,.28);
  --button-radius:4px;
  --button-height:42px;
}

:where(
  .mda-button,
  button.btn:not(.btn-link):not(.note-btn):not(.navbar-toggler):not(.close),
  a.btn:not(.btn-link),
  input.btn[type="submit"],
  input.btn[type="button"],
  button.sbtn,
  a.sbtn,
  .public-button,
  .contest-card__action,
  button.fin-btn,
  a.fin-btn
){
  -webkit-appearance:none;
  appearance:none;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  vertical-align:middle;
  gap:8px;
  min-height:var(--button-height);
  padding:9px 16px!important;
  border:1px solid transparent;
  border-radius:var(--button-radius)!important;
  font-family:inherit;
  font-size:14px;
  font-weight:700;
  line-height:1.2!important;
  text-align:center;
  text-decoration:none!important;
  white-space:normal;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(16,36,74,.08);
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .08s ease;
}

:where(
  .mda-button,
  button.btn:not(.btn-link):not(.note-btn),
  a.btn:not(.btn-link),
  button.sbtn,
  a.sbtn,
  .public-button,
  .contest-card__action,
  button.fin-btn,
  a.fin-btn
) > :where(i,svg,.fa,.fas,.far,.fal,.fab,[class^="icon-"],[class*=" icon-"]){
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:1.15em;
  margin:0!important;
  color:inherit!important;
  font-size:1em!important;
  line-height:1!important;
  text-align:center;
}

:where(.mda-button,button.btn,a.btn,button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn) svg{
  height:1.15em;
  fill:none;
  stroke:currentColor;
}

:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn) > :where(span,strong,b,small){
  color:inherit!important;
}

/* Primário: salvar, confirmar, cadastrar, filtrar e ações principais. */
:where(
  .mda-button--primary,
  .btn-primary,
  .btn-ef,
  .sbtn-blue,
  .public-button--light,
  .public-auth__submit,
  .fin-btn:not(.secondary)
){
  color:#fff!important;
  border-color:var(--button-primary)!important;
  background:linear-gradient(180deg,#1688f3 0%,var(--button-primary) 100%)!important;
  box-shadow:0 4px 10px rgba(17,124,229,.20)!important;
}
:where(.mda-button--primary,:is(button,a,input).btn-primary,.btn-ef,.sbtn-blue,.public-button--light,.public-auth__submit,.fin-btn:not(.secondary)):hover{
  color:#fff!important;
  border-color:var(--button-primary-hover)!important;
  background:var(--button-primary-hover)!important;
  box-shadow:0 5px 13px rgba(8,104,199,.24)!important;
}
:where(.mda-button--primary,:is(button,a,input).btn-primary,.btn-ef,.sbtn-blue,.public-button--light,.public-auth__submit,.fin-btn:not(.secondary)):active,
:where(.mda-button--primary,:is(button,a,input).btn-primary,.btn-ef,.sbtn-blue,.public-button--light,.public-auth__submit,.fin-btn:not(.secondary)).active{
  background:var(--button-primary-pressed)!important;
  border-color:var(--button-primary-pressed)!important;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.18)!important;
}

/* Secundário: consultas e análises, como o Raio-X. */
:where(.mda-button--secondary,:is(button,a,input).btn-info,.sbtn-info,.public-button--insight,.contest-card__action--insight){
  color:var(--button-secondary-text)!important;
  border-color:#9dcdf7!important;
  background:var(--button-secondary-bg)!important;
}
:where(.mda-button--secondary,:is(button,a,input).btn-info,.sbtn-info,.public-button--insight,.contest-card__action--insight):hover{
  color:#0759ad!important;
  border-color:#72b7f3!important;
  background:var(--button-secondary-hover)!important;
}
:where(.mda-button--secondary,:is(button,a,input).btn-info,.sbtn-info,.public-button--insight,.contest-card__action--insight):active,
:where(.mda-button--secondary,:is(button,a,input).btn-info,.sbtn-info,.public-button--insight,.contest-card__action--insight).active{
  background:var(--button-secondary-pressed)!important;
  box-shadow:inset 0 2px 4px rgba(9,104,199,.14)!important;
}

/* Contornado: ação de baixa ênfase, como Ver edital. */
:where(
  .mda-button--outline,
  .btn-outline-primary,
  .btn-outline-secondary,
  .btn--ghost,
  .public-button--document,.contest-card__action--document,
  .public-button--outline-dark,
  .fin-btn.secondary
){
  color:var(--button-ink)!important;
  border-color:#244d86!important;
  background:#fff!important;
  box-shadow:0 1px 2px rgba(16,36,74,.05)!important;
}
:where(.mda-button--outline,:is(button,a,input).btn-outline-primary,:is(button,a,input).btn-outline-secondary,.btn--ghost,.public-button--document,.contest-card__action--document,.public-button--outline-dark,.fin-btn.secondary):hover{
  color:#075eb8!important;
  border-color:#117ce5!important;
  background:#f2f8ff!important;
}
:where(.mda-button--outline,:is(button,a,input).btn-outline-primary,:is(button,a,input).btn-outline-secondary,.btn--ghost,.public-button--document,.contest-card__action--document,.public-button--outline-dark,.fin-btn.secondary):active,
:where(.mda-button--outline,:is(button,a,input).btn-outline-primary,:is(button,a,input).btn-outline-secondary,.btn--ghost,.public-button--document,.contest-card__action--document,.public-button--outline-dark,.fin-btn.secondary).active{
  color:var(--button-ink)!important;
  background:#e8edf3!important;
  box-shadow:inset 0 2px 4px rgba(16,36,74,.12)!important;
}

/* Neutro: limpar, cancelar, fechar e ações complementares. */
:where(.mda-button--neutral,:is(button,a,input).btn-secondary,:is(button,a,input).btn-light,:is(button,a).sbtn:not(.sbtn-blue):not(.sbtn-info):not(.sbtn-success):not(.sbtn-danger):not(.sbtn-dark),.mda-js-neutral){
  color:#202631!important;
  border-color:#aab3c0!important;
  background:var(--button-neutral)!important;
}
:where(.mda-button--neutral,:is(button,a,input).btn-secondary,:is(button,a,input).btn-light,:is(button,a).sbtn:not(.sbtn-blue):not(.sbtn-info):not(.sbtn-success):not(.sbtn-danger):not(.sbtn-dark),.mda-js-neutral):hover{
  color:#151a21!important;
  border-color:#929dab!important;
  background:var(--button-neutral-hover)!important;
}
:where(.mda-button--neutral,:is(button,a,input).btn-secondary,:is(button,a,input).btn-light,:is(button,a).sbtn:not(.sbtn-blue):not(.sbtn-info):not(.sbtn-success):not(.sbtn-danger):not(.sbtn-dark),.mda-js-neutral):active,
:where(.mda-button--neutral,:is(button,a,input).btn-secondary,:is(button,a,input).btn-light,:is(button,a).sbtn:not(.sbtn-blue):not(.sbtn-info):not(.sbtn-success):not(.sbtn-danger):not(.sbtn-dark),.mda-js-neutral).active{
  background:var(--button-neutral-pressed)!important;
  box-shadow:inset 0 2px 4px rgba(32,38,49,.14)!important;
}

/* Sucesso: publicar, aprovar e ativar. */
:where(.mda-button--success,:is(button,a,input).btn-success,.sbtn-success,.mda-js-success){
  color:#fff!important;
  border-color:var(--button-success)!important;
  background:linear-gradient(180deg,#20b961 0%,var(--button-success) 100%)!important;
  box-shadow:0 4px 10px rgba(24,169,87,.20)!important;
}
:where(.mda-button--success,:is(button,a,input).btn-success,.sbtn-success,.mda-js-success):hover{
  color:#fff!important;
  border-color:var(--button-success-hover)!important;
  background:var(--button-success-hover)!important;
}
:where(.mda-button--success,:is(button,a,input).btn-success,.sbtn-success,.mda-js-success):active,
:where(.mda-button--success,:is(button,a,input).btn-success,.sbtn-success,.mda-js-success).active{
  background:var(--button-success-pressed)!important;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.18)!important;
}

/* Perigo: excluir e remover. */
:where(.mda-button--danger,:is(button,a,input).btn-danger,.sbtn-danger,.mda-button.is-danger,.mda-js-danger){
  color:var(--button-danger-text)!important;
  border-color:var(--button-danger-border)!important;
  background:var(--button-danger-bg)!important;
  box-shadow:none!important;
}
:where(.mda-button--danger,:is(button,a,input).btn-danger,.sbtn-danger,.mda-button.is-danger,.mda-js-danger):hover{
  color:#fff!important;
  border-color:#d92332!important;
  background:#d92332!important;
}
:where(.mda-button--danger,:is(button,a,input).btn-danger,.sbtn-danger,.mda-button.is-danger,.mda-js-danger):active,
:where(.mda-button--danger,:is(button,a,input).btn-danger,.sbtn-danger,.mda-button.is-danger,.mda-js-danger).active{
  color:#fff!important;
  border-color:#b71421!important;
  background:#b71421!important;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.18)!important;
}

/* Escuro: menus e opções adicionais. */
:where(.mda-button--dark,:is(button,a,input).btn-dark,.sbtn-dark,.mda-js-dark){
  color:#fff!important;
  border-color:var(--button-dark)!important;
  background:var(--button-dark)!important;
}
:where(.mda-button--dark,:is(button,a,input).btn-dark,.sbtn-dark,.mda-js-dark):hover{
  color:#fff!important;
  border-color:#15191f!important;
  background:#15191f!important;
}
:where(.mda-button--dark,:is(button,a,input).btn-dark,.sbtn-dark,.mda-js-dark):active,
:where(.mda-button--dark,:is(button,a,input).btn-dark,.sbtn-dark,.mda-js-dark).active{
  background:#080a0d!important;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.28)!important;
}

/* Tamanhos e ações compactas. */
:where(.mda-button--small,.btn-sm){
  min-height:34px!important;
  padding:6px 11px!important;
  gap:6px;
  font-size:12px!important;
}
:where(.mda-button--large,.btn-lg){
  min-height:50px!important;
  padding:12px 22px!important;
  font-size:16px!important;
}
:where(.mda-button--icon,.mda-js-icon-only){
  width:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  gap:0!important;
}
:where(.mda-button--icon,.mda-js-icon-only) > :where(i,svg,.fa,.fas,.far,.fal,.fab,[class^="icon-"],[class*=" icon-"]){
  width:auto!important;
  font-size:16px!important;
}

/* Foco, pressionado, carregamento e indisponibilidade. */
:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn):focus-visible{
  outline:3px solid var(--button-focus)!important;
  outline-offset:2px!important;
}
:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn):active{
  transform:translateY(1px);
}
:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn):disabled,
:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn)[disabled],
:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn)[aria-disabled="true"]{
  color:#94a0b1!important;
  border-color:#d9dfe7!important;
  background:#eef1f5!important;
  box-shadow:none!important;
  opacity:.72!important;
  cursor:not-allowed!important;
  pointer-events:none;
  transform:none!important;
}
:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn).is-loading{
  position:relative;
  cursor:wait!important;
  pointer-events:none;
}
:where(.mda-button,button.btn:not(.btn-link):not(.note-btn),a.btn:not(.btn-link),button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn).is-loading::before{
  content:"";
  width:15px;
  height:15px;
  flex:0 0 15px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:mda-button-spin .7s linear infinite;
}
@keyframes mda-button-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  :where(.mda-button,button.btn,a.btn,button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn){transition:none!important}
  :where(.mda-button,button.btn,a.btn,button.sbtn,a.sbtn,.public-button,.contest-card__action,button.fin-btn,a.fin-btn).is-loading::before{animation-duration:1.4s}
}
