/* ============================================================================
   MUBISYS — PADRÃO ÚNICO DE BOTÕES E CAMPOS  (css/mubi-padrao.css)
   Gerado em 2026-09-02 a partir do levantamento (docs/levantamento-botoes-inputs.md).

   COMO USAR
   1) Uma única linha em templates/app/_cabecalho.tpl.php, depois de css/botoes.css:
        <link href="css/mubi-padrao.css?v=1" rel="stylesheet">
   2) Remover a linha devolve o sistema exatamente ao visual anterior: este arquivo não
      altera nenhum outro CSS, JS ou template.
   3) Escapes: <body class="mubi-somente-novo"> desliga os aliases (parte 2);
      um wrapper <div class="mubi-original"> mantém o visual antigo só naquele trecho.

   ESTRUTURA
   PARTE 0 — variáveis --mubi-* (cole aqui o :root exportado pelo showcase)
   PARTE 1 — classes novas: .mubi-btn* e .mubi-campo* / .mubi-select / .mubi-check / .mubi-radio / .mubi-switch
   PARTE 2 — aliases: classes antigas -> padrão (temporário, some conforme o HTML migra)

   Showcase e índice de uso: levantamento-botoes.html (php -S 127.0.0.1:8765 -t .)
   ========================================================================== */
/* ---- PARTE 0/1 ---- */
:root {
  --mubi-primaria: #600A82;
  --mubi-primaria-hover: color-mix(in srgb, var(--mubi-primaria) 82%, #000);
  --mubi-primaria-suave: color-mix(in srgb, var(--mubi-primaria) 9%, #fff);
  --mubi-primaria-borda: color-mix(in srgb, var(--mubi-primaria) 32%, #fff);
  --mubi-foco: color-mix(in srgb, var(--mubi-primaria) 28%, transparent);

  --mubi-perigo: #D33A2C;
  --mubi-perigo-hover: #B22F23;
  --mubi-perigo-suave: #FDECEC;
  --mubi-perigo-borda: color-mix(in srgb, var(--mubi-perigo) 45%, #fff);
  --mubi-sucesso: #1E9E5A;
  --mubi-sucesso-hover: #17804A;
  --mubi-verde-suave: color-mix(in srgb, var(--mubi-sucesso) 10%, #fff);
  --mubi-verde-borda: color-mix(in srgb, var(--mubi-sucesso) 45%, #fff);
  --mubi-azul: #1D6FD8;
  --mubi-azul-hover: color-mix(in srgb, var(--mubi-azul) 82%, #000);
  --mubi-azul-suave: color-mix(in srgb, var(--mubi-azul) 9%, #fff);
  --mubi-azul-borda: color-mix(in srgb, var(--mubi-azul) 45%, #fff);
  /* paleta completa (estilo Bootstrap): secundaria, aviso, info(=azul), claro, escuro */
  --mubi-secundaria: #6B7288;
  --mubi-secundaria-hover: #555B70;
  --mubi-secundaria-suave: #F4F1F9;
  --mubi-secundaria-borda: #C9C4D6;
  --mubi-aviso: #E67E22;
  --mubi-aviso-hover: #C86A15;
  --mubi-aviso-suave: color-mix(in srgb, var(--mubi-aviso) 10%, #fff);
  --mubi-aviso-borda: color-mix(in srgb, var(--mubi-aviso) 45%, #fff);
  --mubi-info: var(--mubi-azul);
  --mubi-info-hover: var(--mubi-azul-hover);
  --mubi-info-suave: var(--mubi-azul-suave);
  --mubi-info-borda: var(--mubi-azul-borda);
  --mubi-claro: var(--mubi-primaria-suave);
  --mubi-claro-hover: color-mix(in srgb, var(--mubi-primaria) 18%, #fff);
  --mubi-escuro: #1B1035;
  --mubi-escuro-hover: #2E1F52;
  --mubi-escuro-borda: #C6BFD6;

  --mubi-texto: #1B1035;
  --mubi-texto-suave: #5B5470;
  --mubi-neutra-borda: #D9D3E6;
  --mubi-neutra-hover: #F4F1F9;

  --mubi-raio: 10px;
  --mubi-altura: 38px;
  --mubi-altura-sm: 30px;
  --mubi-altura-lg: 44px;
  --mubi-padx: 18px;
  --mubi-padx-sm: 12px;
  --mubi-padx-lg: 24px;
  --mubi-gap: 7px;
  --mubi-fonte: inherit;
  --mubi-peso: 600;
  --mubi-fonte-tam: 13px;
  --mubi-fonte-tam-sm: 12px;
  --mubi-fonte-tam-lg: 14.5px;
  --mubi-transicao: .15s ease;
}

/* ---------- base ---------- */
.mubi-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--mubi-gap);
  height: var(--mubi-altura); padding: 0 var(--mubi-padx);
  border: 1px solid transparent; border-radius: var(--mubi-raio);
  background: #fff; color: var(--mubi-texto);
  font-family: var(--mubi-fonte); font-size: var(--mubi-fonte-tam); font-weight: var(--mubi-peso); line-height: 1;
  white-space: nowrap; text-decoration: none; cursor: pointer; user-select: none; vertical-align: middle;
  transition: background var(--mubi-transicao), color var(--mubi-transicao), border-color var(--mubi-transicao), box-shadow var(--mubi-transicao);
  -webkit-appearance: none; appearance: none; position: relative; overflow: hidden; flex-shrink: 0;
}
/* js/index.js insere <span class="ripple"> com width/height inline em todo button clicado; aqui ele fica
   absoluto e cobrindo o botão, sem entrar no fluxo (senão o botão cresce ao clicar) */
.mubi-btn > .ripple { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; border-radius: inherit; pointer-events: none; }
.mubi-btn:hover, .mubi-btn:focus, .mubi-btn:active { text-decoration: none; outline: none; }
.mubi-btn:focus-visible, .mubi-btn.mubi-foco { box-shadow: 0 0 0 3px var(--mubi-foco); }
.mubi-btn i, .mubi-btn svg { font-size: 1.15em; line-height: 1; flex: none; }
.mubi-btn svg { width: 1.15em; height: 1.15em; }

/* ---------- variantes (estilo Bootstrap: cada cor em sólido e -contorno; -contorno preenche no hover) ----------
   cores: primario secundario sucesso(=verde) perigo aviso info(=azul) claro escuro  |  sem cor: fantasma link
   estados: :hover  .mubi-hover (documentação)  .mubi-ativo (fixa o hover)  [disabled]/.mubi-desabilitado  .mubi-btn-carregando */

.mubi-btn-primario { background: var(--mubi-primaria); border-color: var(--mubi-primaria); color: #fff; }
.mubi-btn-primario:hover, .mubi-btn-primario.mubi-hover, .mubi-btn-primario.mubi-ativo { background: var(--mubi-primaria-hover); border-color: var(--mubi-primaria-hover); color: #fff; }
.mubi-btn-primario-contorno { background: #fff; border-color: var(--mubi-primaria-borda); color: var(--mubi-primaria); }
.mubi-btn-primario-contorno:hover, .mubi-btn-primario-contorno.mubi-hover, .mubi-btn-primario-contorno.mubi-ativo { background: var(--mubi-primaria); border-color: var(--mubi-primaria); color: #fff; }
.mubi-btn-primario:focus-visible, .mubi-btn-primario-contorno:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mubi-primaria) 28%, transparent); }

.mubi-btn-secundario { background: var(--mubi-secundaria); border-color: var(--mubi-secundaria); color: #fff; }
.mubi-btn-secundario:hover, .mubi-btn-secundario.mubi-hover, .mubi-btn-secundario.mubi-ativo { background: var(--mubi-secundaria-hover); border-color: var(--mubi-secundaria-hover); color: #fff; }
.mubi-btn-secundario-contorno { background: #fff; border-color: var(--mubi-secundaria-borda); color: var(--mubi-secundaria); }
.mubi-btn-secundario-contorno:hover, .mubi-btn-secundario-contorno.mubi-hover, .mubi-btn-secundario-contorno.mubi-ativo { background: var(--mubi-secundaria); border-color: var(--mubi-secundaria); color: #fff; }
.mubi-btn-secundario:focus-visible, .mubi-btn-secundario-contorno:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mubi-secundaria) 28%, transparent); }

.mubi-btn-sucesso, .mubi-btn-verde { background: var(--mubi-sucesso); border-color: var(--mubi-sucesso); color: #fff; }
.mubi-btn-sucesso:hover, .mubi-btn-sucesso.mubi-hover, .mubi-btn-sucesso.mubi-ativo, .mubi-btn-verde:hover, .mubi-btn-verde.mubi-hover, .mubi-btn-verde.mubi-ativo { background: var(--mubi-sucesso-hover); border-color: var(--mubi-sucesso-hover); color: #fff; }
.mubi-btn-sucesso-contorno, .mubi-btn-verde-contorno { background: #fff; border-color: var(--mubi-sucesso-borda); color: var(--mubi-sucesso); }
.mubi-btn-sucesso-contorno:hover, .mubi-btn-sucesso-contorno.mubi-hover, .mubi-btn-sucesso-contorno.mubi-ativo, .mubi-btn-verde-contorno:hover, .mubi-btn-verde-contorno.mubi-hover, .mubi-btn-verde-contorno.mubi-ativo { background: var(--mubi-sucesso); border-color: var(--mubi-sucesso); color: #fff; }
.mubi-btn-sucesso:focus-visible, .mubi-btn-verde:focus-visible, .mubi-btn-sucesso-contorno:focus-visible, .mubi-btn-verde-contorno:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mubi-sucesso) 28%, transparent); }

.mubi-btn-perigo { background: var(--mubi-perigo); border-color: var(--mubi-perigo); color: #fff; }
.mubi-btn-perigo:hover, .mubi-btn-perigo.mubi-hover, .mubi-btn-perigo.mubi-ativo { background: var(--mubi-perigo-hover); border-color: var(--mubi-perigo-hover); color: #fff; }
.mubi-btn-perigo-contorno { background: #fff; border-color: var(--mubi-perigo-borda); color: var(--mubi-perigo); }
.mubi-btn-perigo-contorno:hover, .mubi-btn-perigo-contorno.mubi-hover, .mubi-btn-perigo-contorno.mubi-ativo { background: var(--mubi-perigo); border-color: var(--mubi-perigo); color: #fff; }
.mubi-btn-perigo:focus-visible, .mubi-btn-perigo-contorno:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mubi-perigo) 28%, transparent); }

.mubi-btn-aviso { background: var(--mubi-aviso); border-color: var(--mubi-aviso); color: #fff; }
.mubi-btn-aviso:hover, .mubi-btn-aviso.mubi-hover, .mubi-btn-aviso.mubi-ativo { background: var(--mubi-aviso-hover); border-color: var(--mubi-aviso-hover); color: #fff; }
.mubi-btn-aviso-contorno { background: #fff; border-color: var(--mubi-aviso-borda); color: var(--mubi-aviso); }
.mubi-btn-aviso-contorno:hover, .mubi-btn-aviso-contorno.mubi-hover, .mubi-btn-aviso-contorno.mubi-ativo { background: var(--mubi-aviso); border-color: var(--mubi-aviso); color: #fff; }
.mubi-btn-aviso:focus-visible, .mubi-btn-aviso-contorno:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mubi-aviso) 28%, transparent); }

.mubi-btn-info, .mubi-btn-azul { background: var(--mubi-info); border-color: var(--mubi-info); color: #fff; }
.mubi-btn-info:hover, .mubi-btn-info.mubi-hover, .mubi-btn-info.mubi-ativo, .mubi-btn-azul:hover, .mubi-btn-azul.mubi-hover, .mubi-btn-azul.mubi-ativo { background: var(--mubi-info-hover); border-color: var(--mubi-info-hover); color: #fff; }
.mubi-btn-info-contorno, .mubi-btn-azul-contorno { background: #fff; border-color: var(--mubi-info-borda); color: var(--mubi-info); }
.mubi-btn-info-contorno:hover, .mubi-btn-info-contorno.mubi-hover, .mubi-btn-info-contorno.mubi-ativo, .mubi-btn-azul-contorno:hover, .mubi-btn-azul-contorno.mubi-hover, .mubi-btn-azul-contorno.mubi-ativo { background: var(--mubi-info); border-color: var(--mubi-info); color: #fff; }
.mubi-btn-info:focus-visible, .mubi-btn-azul:focus-visible, .mubi-btn-info-contorno:focus-visible, .mubi-btn-azul-contorno:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mubi-info) 28%, transparent); }

.mubi-btn-escuro { background: var(--mubi-escuro); border-color: var(--mubi-escuro); color: #fff; }
.mubi-btn-escuro:hover, .mubi-btn-escuro.mubi-hover, .mubi-btn-escuro.mubi-ativo { background: var(--mubi-escuro-hover); border-color: var(--mubi-escuro-hover); color: #fff; }
.mubi-btn-escuro-contorno { background: #fff; border-color: var(--mubi-escuro-borda); color: var(--mubi-escuro); }
.mubi-btn-escuro-contorno:hover, .mubi-btn-escuro-contorno.mubi-hover, .mubi-btn-escuro-contorno.mubi-ativo { background: var(--mubi-escuro); border-color: var(--mubi-escuro); color: #fff; }
.mubi-btn-escuro:focus-visible, .mubi-btn-escuro-contorno:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--mubi-escuro) 28%, transparent); }

/* claro: fundo lilás claro, texto roxo (o "light" do Bootstrap na nossa paleta) */
.mubi-btn-claro { background: var(--mubi-claro); border-color: var(--mubi-claro); color: var(--mubi-primaria); }
.mubi-btn-claro:hover, .mubi-btn-claro.mubi-hover, .mubi-btn-claro.mubi-ativo { background: var(--mubi-claro-hover); border-color: var(--mubi-claro-hover); color: var(--mubi-primaria); }
.mubi-btn-claro-contorno { background: #fff; border-color: var(--mubi-neutra-borda); color: var(--mubi-texto-suave); }
.mubi-btn-claro-contorno:hover, .mubi-btn-claro-contorno.mubi-hover, .mubi-btn-claro-contorno.mubi-ativo { background: var(--mubi-claro); border-color: var(--mubi-claro); color: var(--mubi-primaria); }

/* sinônimos mantidos da primeira versão */
.mubi-btn-neutro { background: #fff; border-color: var(--mubi-neutra-borda); color: var(--mubi-texto-suave); }
.mubi-btn-neutro:hover, .mubi-btn-neutro.mubi-hover, .mubi-btn-neutro.mubi-ativo { background: var(--mubi-neutra-hover); border-color: #C6BFD6; color: var(--mubi-texto); }

/* sem cor de fundo */
.mubi-btn-fantasma { background: transparent; border-color: transparent; color: var(--mubi-primaria); }
.mubi-btn-fantasma:hover, .mubi-btn-fantasma.mubi-hover, .mubi-btn-fantasma.mubi-ativo { background: var(--mubi-primaria-suave); color: var(--mubi-primaria); }
.mubi-btn-link { background: none; border: 0; padding: 0; height: auto; color: var(--mubi-primaria); text-decoration: underline; text-underline-offset: 3px; border-radius: 4px; }
.mubi-btn-link:hover, .mubi-btn-link.mubi-hover { color: var(--mubi-primaria-hover); text-decoration: underline; }

/* ---------- tamanhos: só três (sm, padrão, lg) ---------- */
.mubi-btn-sm { height: var(--mubi-altura-sm); padding: 0 var(--mubi-padx-sm); font-size: var(--mubi-fonte-tam-sm); border-radius: calc(var(--mubi-raio) * .8); }
.mubi-btn-lg { height: var(--mubi-altura-lg); padding: 0 var(--mubi-padx-lg); font-size: var(--mubi-fonte-tam-lg); }

/* ---------- modificadores ---------- */
.mubi-btn-icone { width: var(--mubi-altura); padding: 0; }
.mubi-btn-icone.mubi-btn-sm { width: var(--mubi-altura-sm); }
.mubi-btn-icone.mubi-btn-lg { width: var(--mubi-altura-lg); }
.mubi-btn-redondo { border-radius: 999px; }
.mubi-btn-bloco { display: flex; width: 100%; }
.mubi-btn[disabled], .mubi-btn.mubi-desabilitado { opacity: .5; cursor: not-allowed; pointer-events: none; }

.mubi-btn-carregando { position: relative; color: transparent !important; pointer-events: none; }
.mubi-btn-carregando::after {
  content: ""; position: absolute; width: 16px; height: 16px; left: calc(50% - 8px); top: calc(50% - 8px);
  border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: mubiGira .7s linear infinite;
}
[class*="-contorno"].mubi-btn-carregando::after, .mubi-btn-neutro.mubi-btn-carregando::after, .mubi-btn-fantasma.mubi-btn-carregando::after, .mubi-btn-claro.mubi-btn-carregando::after {
  border-color: var(--mubi-primaria-borda); border-top-color: var(--mubi-primaria);
}
@keyframes mubiGira { to { transform: rotate(360deg); } }

/* contador/badge dentro do botão (ex.: "Filtros 3") */
.mubi-btn .mubi-contador { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; font-size: 11px; font-weight: 700; background: rgba(255,255,255,.25); color: inherit; }
[class*="-contorno"] .mubi-contador, .mubi-btn-neutro .mubi-contador, .mubi-btn-fantasma .mubi-contador, .mubi-btn-claro .mubi-contador { background: var(--mubi-primaria); color: #fff; }
.mubi-btn[class*="-contorno"]:hover .mubi-contador { background: rgba(255,255,255,.25); color: inherit; }

/* ---------- composições ---------- */
.mubi-btn-grupo { display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mubi-btn-grupo-direita { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.mubi-rodape-modal { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; padding-top: 12px; }

/* segmentado (Mês / Semana / Dia, modos de visualização) */
.mubi-segmento { display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--mubi-raio); background: var(--mubi-primaria-suave); }
.mubi-segmento .mubi-btn { height: calc(var(--mubi-altura) - 6px); padding: 0 14px; background: transparent; border-color: transparent; color: var(--mubi-texto-suave); border-radius: calc(var(--mubi-raio) - 3px); }
.mubi-segmento .mubi-btn:hover { color: var(--mubi-primaria); }
.mubi-segmento .mubi-btn.mubi-ativo { background: #fff; color: var(--mubi-primaria); box-shadow: 0 1px 3px rgba(27,16,53,.12); }

/* botão de ícone "silencioso" em listas/tabelas (editar, excluir, copiar) = fantasma + icone + sm */
.mubi-btn-tabela { height: var(--mubi-altura-sm); width: var(--mubi-altura-sm); padding: 0; border-radius: calc(var(--mubi-raio) * .8); background: transparent; border-color: transparent; color: var(--mubi-texto-suave); }
.mubi-btn-tabela:hover { background: var(--mubi-neutra-hover); color: var(--mubi-primaria); }
.mubi-btn-tabela.mubi-perigo:hover { background: var(--mubi-perigo-suave); color: var(--mubi-perigo); }

bi-altura) - 6px); padding: 0 14px; background: transparent; border-color: transparent; color: var(--mubi-texto-suave); border-radius: calc(var(--mubi-raio) - 3px); }
.mubi-segmento .mubi-btn:hover { color: var(--mubi-primaria); }
.mubi-segmento .mubi-btn.mubi-ativo { background: #fff; color: var(--mubi-primaria); box-shadow: 0 1px 3px rgba(27,16,53,.12); }

/* botão de ícone "silencioso" em listas/tabelas (editar, excluir, copiar) */
.mubi-btn-tabela { height: 28px; width: 28px; padding: 0; border-radius: 7px; background: transparent; border-color: transparent; color: var(--mubi-texto-suave); }
.mubi-btn-tabela:hover { background: var(--mubi-neutra-hover); color: var(--mubi-primaria); }
.mubi-btn-tabela.mubi-perigo:hover { background: var(--mubi-perigo-suave); color: var(--mubi-perigo); }

/* ============================================================================
   CAMPOS: input, textarea, select (nativo e bootstrap-select), rótulo, ajuda,
   erro, ícone dentro do campo, grupos (prefixo/sufixo/botão), checkbox, radio, switch
   ========================================================================== */
:root {
  --mubi-campo-altura: 38px;
  --mubi-campo-altura-sm: 30px;
  --mubi-campo-altura-lg: 44px;
  --mubi-campo-raio: 10px;
  --mubi-campo-padx: 12px;
  --mubi-campo-borda: #D9D3E6;
  --mubi-campo-borda-hover: #B9AFD0;
  --mubi-campo-fundo: #ffffff;
  --mubi-campo-fundo-desab: #F4F1F9;
  --mubi-campo-fonte-tam: 13px;
  --mubi-campo-placeholder: #9AA1B6;
  --mubi-rotulo-cor: #5B5470;
  --mubi-rotulo-tam: 12px;
  --mubi-check-tam: 18px;
}

/* ---------- campo base (input, textarea, select nativo) ---------- */
.mubi-campo {
  display: block; width: 100%; height: var(--mubi-campo-altura); padding: 0 var(--mubi-campo-padx);
  border: 1px solid var(--mubi-campo-borda); border-radius: var(--mubi-campo-raio);
  background: var(--mubi-campo-fundo); color: var(--mubi-texto);
  font-family: var(--mubi-fonte); font-size: var(--mubi-campo-fonte-tam); font-weight: 500; line-height: normal;
  outline: none; box-shadow: none; -webkit-appearance: none; appearance: none;
  transition: border-color var(--mubi-transicao), box-shadow var(--mubi-transicao), background var(--mubi-transicao);
}
.mubi-campo::placeholder { color: var(--mubi-campo-placeholder); font-weight: 400; opacity: 1; }
.mubi-campo:hover { border-color: var(--mubi-campo-borda-hover); }
.mubi-campo:focus, .mubi-campo.mubi-foco { border-color: var(--mubi-primaria); box-shadow: 0 0 0 3px var(--mubi-foco); }
.mubi-campo[disabled] { background: var(--mubi-campo-fundo-desab); color: var(--mubi-texto-suave); cursor: not-allowed; }
.mubi-campo[readonly]:not([disabled]) { background: var(--mubi-campo-fundo-desab); }
.mubi-campo.mubi-erro { border-color: var(--mubi-perigo); }
.mubi-campo.mubi-erro:focus { box-shadow: 0 0 0 3px var(--mubi-perigo-suave); }
.mubi-campo.mubi-ok { border-color: var(--mubi-sucesso); }
.mubi-campo-sm { height: var(--mubi-campo-altura-sm); padding: 0 10px; font-size: 12px; border-radius: calc(var(--mubi-campo-raio) * .8); }
.mubi-campo-lg { height: var(--mubi-campo-altura-lg); font-size: 14px; }
textarea.mubi-campo { height: auto; min-height: calc(var(--mubi-campo-altura) * 2.2); padding: 9px var(--mubi-campo-padx); line-height: 1.45; resize: vertical; }
input.mubi-campo[type="number"] { -moz-appearance: textfield; }
input.mubi-campo::-webkit-outer-spin-button, input.mubi-campo::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input.mubi-campo[type="date"], input.mubi-campo[type="time"] { padding-right: 8px; }

/* select nativo: seta própria */
select.mubi-campo {
  padding-right: 34px; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4.5l4 4 4-4' fill='none' stroke='%235B5470' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 12px;
}
select.mubi-campo[multiple] { height: auto; padding: 6px; background-image: none; }

/* ---------- bootstrap-select: <select class="selectpicker mubi-select"> ---------- */
.bootstrap-select.mubi-select { width: 100% !important; }
.bootstrap-select.mubi-select > .dropdown-toggle {
  display: flex; align-items: center; width: 100%; height: var(--mubi-campo-altura); padding: 0 34px 0 var(--mubi-campo-padx);
  border: 1px solid var(--mubi-campo-borda); border-radius: var(--mubi-campo-raio); background: var(--mubi-campo-fundo);
  color: var(--mubi-texto); font-family: var(--mubi-fonte); font-size: var(--mubi-campo-fonte-tam); font-weight: 500; line-height: normal;
  box-shadow: none; outline: none; transition: border-color var(--mubi-transicao), box-shadow var(--mubi-transicao);
}
.bootstrap-select.mubi-select > .dropdown-toggle .filter-option { position: static; display: flex; align-items: center; height: auto; padding: 0; float: none; }
.bootstrap-select.mubi-select > .dropdown-toggle .filter-option-inner { padding-right: 0; width: 100%; }
.bootstrap-select.mubi-select > .dropdown-toggle .filter-option-inner-inner { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bootstrap-select.mubi-select > .dropdown-toggle::after { position: absolute; right: 13px; top: 50%; margin: -2px 0 0; border-top-color: var(--mubi-texto-suave); }
.bootstrap-select.mubi-select > .dropdown-toggle.bs-placeholder { color: var(--mubi-campo-placeholder); font-weight: 400; }
.bootstrap-select.mubi-select > .dropdown-toggle:hover { border-color: var(--mubi-campo-borda-hover); background: var(--mubi-campo-fundo); }
.bootstrap-select.mubi-select > .dropdown-toggle:focus, .bootstrap-select.mubi-select.show > .dropdown-toggle { border-color: var(--mubi-primaria); box-shadow: 0 0 0 3px var(--mubi-foco); outline: none !important; }
.bootstrap-select.mubi-select.disabled > .dropdown-toggle, .bootstrap-select.mubi-select > .dropdown-toggle.disabled { background: var(--mubi-campo-fundo-desab); color: var(--mubi-texto-suave); opacity: 1; cursor: not-allowed; }
.bootstrap-select.mubi-select.mubi-erro > .dropdown-toggle { border-color: var(--mubi-perigo); }
.bootstrap-select.mubi-select.mubi-campo-sm > .dropdown-toggle { height: var(--mubi-campo-altura-sm); font-size: 12px; padding-left: 10px; border-radius: calc(var(--mubi-campo-raio) * .8); }
.bootstrap-select.mubi-select .dropdown-menu { border: 1px solid var(--mubi-campo-borda); border-radius: calc(var(--mubi-campo-raio) + 2px); box-shadow: 0 12px 28px rgba(27,16,53,.14); padding: 6px; font-family: var(--mubi-fonte); }
.bootstrap-select.mubi-select .dropdown-menu li a { border-radius: 7px; font-size: var(--mubi-campo-fonte-tam); color: var(--mubi-texto); padding: 8px 12px; }
.bootstrap-select.mubi-select .dropdown-menu li a:hover, .bootstrap-select.mubi-select .dropdown-menu li a:focus { background: var(--mubi-neutra-hover); }
.bootstrap-select.mubi-select .dropdown-menu li.selected a, .bootstrap-select.mubi-select .dropdown-menu li.active a { background: var(--mubi-primaria-suave); color: var(--mubi-primaria); font-weight: 600; }
.bootstrap-select.mubi-select .dropdown-menu li a .check-mark { color: var(--mubi-primaria); }
.bootstrap-select.mubi-select .bs-searchbox { padding: 4px 4px 8px; }
.bootstrap-select.mubi-select .bs-searchbox .form-control { height: var(--mubi-campo-altura-sm); border: 1px solid var(--mubi-campo-borda); border-radius: calc(var(--mubi-campo-raio) * .8); font-size: 12px; box-shadow: none; }
.bootstrap-select.mubi-select .bs-actionsbox .btn { height: 28px; font-size: 12px; border-radius: 7px; }
.bootstrap-select.mubi-select .bs-placeholder { color: var(--mubi-campo-placeholder); }

/* ---------- rótulo, ajuda, erro, item de formulário ---------- */
.mubi-rotulo { display: block; font-size: var(--mubi-rotulo-tam); font-weight: 600; color: var(--mubi-rotulo-cor); line-height: 1.2; margin: 0 0 5px; }
.mubi-rotulo.mubi-obrigatorio::after, .mubi-rotulo .mubi-obrigatorio::after { content: " *"; color: var(--mubi-perigo); font-weight: 700; }
.mubi-ajuda { display: block; font-size: 11.5px; color: var(--mubi-texto-suave); margin-top: 4px; line-height: 1.35; }
.mubi-erro-msg { display: block; font-size: 11.5px; color: var(--mubi-perigo); margin-top: 4px; font-weight: 600; }
.mubi-form-item { display: flex; flex-direction: column; min-width: 0; }
.mubi-form-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px 16px; }

/* ---------- ícone dentro do campo ---------- */
.mubi-campo-wrap { position: relative; display: block; }
.mubi-campo-wrap > i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--mubi-campo-placeholder); font-size: 15px; pointer-events: none; line-height: 1; }
.mubi-campo-wrap > .mubi-campo { padding-left: 36px; }
.mubi-campo-wrap.mubi-icone-dir > i { left: auto; right: 12px; }
.mubi-campo-wrap.mubi-icone-dir > .mubi-campo { padding-left: var(--mubi-campo-padx); padding-right: 36px; }
.mubi-campo-wrap > .mubi-campo:focus + i, .mubi-campo-wrap > .mubi-campo:focus ~ i { color: var(--mubi-primaria); }

/* ---------- grupo: prefixo / sufixo / botão colado ---------- */
.mubi-campo-grupo { display: flex; align-items: stretch; width: 100%; }
.mubi-campo-grupo > .mubi-campo, .mubi-campo-grupo > .mubi-campo-wrap { flex: 1 1 auto; min-width: 0; }
.mubi-campo-grupo > .mubi-campo-wrap > .mubi-campo { border-radius: inherit; }
.mubi-campo-grupo > *:not(:first-child) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; margin-left: -1px; }
.mubi-campo-grupo > *:not(:last-child) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
.mubi-campo-grupo > .mubi-campo:focus, .mubi-campo-grupo > .mubi-campo-wrap:focus-within { position: relative; z-index: 1; }
.mubi-campo-grupo > .mubi-btn { height: var(--mubi-campo-altura); border-radius: var(--mubi-campo-raio); flex: none; }
.mubi-campo-add { display: inline-flex; align-items: center; height: var(--mubi-campo-altura); padding: 0 12px; border: 1px solid var(--mubi-campo-borda); border-radius: var(--mubi-campo-raio); background: var(--mubi-neutra-hover); color: var(--mubi-texto-suave); font-size: var(--mubi-campo-fonte-tam); font-weight: 600; white-space: nowrap; flex: none; }

/* ---------- checkbox e radio ----------
   (seletores com `label.` de propósito: partials/pages/home.css tem `input[type=checkbox]{appearance:none;width:1.8em}` global) */
.mubi-check, .mubi-radio { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; font-weight: 500; color: var(--mubi-texto); cursor: pointer; line-height: 1.25; }
label.mubi-check > input, label.mubi-radio > input {
  -webkit-appearance: none; appearance: none; width: var(--mubi-check-tam); height: var(--mubi-check-tam); margin: 0; flex: none;
  border: 1.5px solid var(--mubi-campo-borda-hover); border-radius: 5px; background: #fff; display: inline-block; position: relative; vertical-align: middle; cursor: pointer;
  transition: background var(--mubi-transicao), border-color var(--mubi-transicao), box-shadow var(--mubi-transicao);
}
/* o desenho interno é posicionado em absoluto e centralizado com translate: <input> não vira grid/flex no Chrome */
label.mubi-check > input::after, label.mubi-radio > input::after { position: absolute; left: 50%; top: 50%; box-sizing: border-box; }
label.mubi-radio > input { border-radius: 50%; }
label.mubi-check > input:hover, label.mubi-radio > input:hover { border-color: var(--mubi-primaria); }
label.mubi-check > input:focus-visible, label.mubi-radio > input:focus-visible { box-shadow: 0 0 0 3px var(--mubi-foco); outline: none; }
label.mubi-check > input:checked, label.mubi-radio > input:checked { background: var(--mubi-primaria); border-color: var(--mubi-primaria); }
label.mubi-check > input:checked::after { content: ""; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: translate(-50%, -60%) rotate(45deg); }
label.mubi-check > input:indeterminate { background: var(--mubi-primaria); border-color: var(--mubi-primaria); }
label.mubi-check > input:indeterminate::after { content: ""; width: 8px; height: 2px; background: #fff; transform: translate(-50%, -50%); }
label.mubi-radio > input:checked::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff; transform: translate(-50%, -50%); }
label.mubi-check > input[disabled], label.mubi-radio > input[disabled] { background: var(--mubi-campo-fundo-desab); border-color: var(--mubi-campo-borda); cursor: not-allowed; }
label.mubi-check > input[disabled]:checked, label.mubi-radio > input[disabled]:checked { background: #C6BFD6; border-color: #C6BFD6; }
.mubi-check:has(> input[disabled]), .mubi-radio:has(> input[disabled]) { color: var(--mubi-texto-suave); cursor: not-allowed; }
.mubi-check.mubi-erro > input, .mubi-radio.mubi-erro > input { border-color: var(--mubi-perigo); }
label.mubi-check-sm > input, labellabel.mubi-radio-sm > input { width: 15px; height: 15px; border-radius: 4px; }
label.mubi-radio-sm > input { border-radius: 50%; }
.mubi-check-sm, .mubi-radio-sm { font-size: 12px; }
label.mubi-check-sm > input:checked::after { width: 4px; height: 7px; }
label.mubi-radio-sm > input:checked::after { width: 6px; height: 6px; }

/* ---------- switch ---------- */
.mubi-switch { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-size: 13px; font-weight: 500; color: var(--mubi-texto); cursor: pointer; line-height: 1.25; }
label.mubi-switch > input { -webkit-appearance: none; appearance: none; position: relative; width: 36px; height: 20px; margin: 0; flex: none; border: 0; border-radius: 999px; background: #CFC8DE; cursor: pointer; transition: background var(--mubi-transicao), box-shadow var(--mubi-transicao); }
label.mubi-switch > input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: left .15s ease; }
label.mubi-switch > input:checked { background: var(--mubi-primaria); }
label.mubi-switch > input:checked::after { left: 18px; }
label.mubi-switch > input:focus-visible { box-shadow: 0 0 0 3px var(--mubi-foco); outline: none; }
label.mubi-switch > input[disabled] { opacity: .45; cursor: not-allowed; }
.mubi-switch:has(> input[disabled]) { color: var(--mubi-texto-suave); cursor: not-allowed; }
label.mubi-switch-sm > input { width: 30px; height: 16px; }
label.mubi-switch-sm > input::after { width: 12px; height: 12px; }
label.mubi-switch-sm > input:checked::after { left: 16px; }
.mubi-switch-sm { font-size: 12px; }

/* grupo de opções (checks/radios/switches lado a lado ou em coluna) */
.mubi-opcoes { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.mubi-opcoes-coluna { flex-direction: column; align-items: flex-start; gap: 8px; }

/* ============================================================================
   PARTE 2 — ALIASES DE TRANSIÇÃO
   Fazem as classes ANTIGAS renderizarem no padrão sem mexer no HTML. Usam !important
   porque os CSS antigos também usam. Cada regra é prefixada com body:not(.mubi-somente-novo):
     - <body class="mubi-somente-novo">  desliga TODOS os aliases (só as classes .mubi-* continuam)
     - qualquer elemento dentro de .mubi-original fica com o visual antigo (isolar uma tela ou um trecho);
       o widget bootstrap-fileinput (.file-input) fica de fora dos aliases pelo mesmo mecanismo
   Excluídos de propósito: .dropdown-toggle do bootstrap-select nos aliases de botão, .btn-light, .btn-breadcrumb,
   .buscarglobal (busca do cabeçalho), input[type=file].
   Conforme o HTML migra para as classes .mubi-*, as regras desta parte vão sendo apagadas.
   ========================================================================== */

/* ---- listas por semântica ---- */
/* PRIMÁRIO: ação principal (Salvar, Contratar, Buscar, Adicionar, Avançar, Incluir) */
body:not(.mubi-somente-novo) :is(.btn-incluir, .btnSalvar,
    .mc-btn-primario, .mm-btn, .rtt-btn-salvar, .rtt-btn-avancar, .acomp-os .fp-search, .acomp-orc .fp-search, .mi-wizard .btn-primary,
    .opn-btn-primario, .btn-mubi, .btn-mubi-b, .botaoGenerico, .btn-mubi-rec, .onb-btn-primario, .btn-primary-modern, .acp-botao,
    .oferta-btn-primario, .btn-confirm, .btn-decisao, .btn-roxo, .mc-btn-nova, .terminal-btn-retomar, .btn-conciliar,
    .enviar-btn-orcPadrao, .btnEntrar, .btn-entrar):not(.bootstrap-select > .dropdown-toggle):not(.mm-btn-ghost):not(.mc-btn-negar):not(.btn-circle):not(:is(.mubi-original, .file-input) *) {
  background: var(--mubi-primaria) !important; border-color: var(--mubi-primaria) !important; color: #fff !important;
}
body:not(.mubi-somente-novo) :is(.btn-incluir, .btnSalvar,
    .mc-btn-primario, .mm-btn, .rtt-btn-salvar, .rtt-btn-avancar, .acomp-os .fp-search, .acomp-orc .fp-search, .mi-wizard .btn-primary,
    .opn-btn-primario, .btn-mubi, .btn-mubi-b, .botaoGenerico, .btn-mubi-rec, .onb-btn-primario, .btn-primary-modern, .acp-botao,
    .oferta-btn-primario, .btn-confirm, .btn-decisao, .btn-roxo, .mc-btn-nova, .terminal-btn-retomar, .btn-conciliar,
    .enviar-btn-orcPadrao, .btnEntrar, .btn-entrar):not(.bootstrap-select > .dropdown-toggle):not(.mm-btn-ghost):not(.mc-btn-negar):not(.btn-circle):not(:is(.mubi-original, .file-input) *):hover {
  background: var(--mubi-primaria-hover) !important; border-color: var(--mubi-primaria-hover) !important; color: #fff !important;
}

/* PRIMÁRIO-CONTORNO: tudo que hoje é contorno (btn-primary, btn-outline-primary, btn-outline-success, btn-success) fica contorno roxo e preenche no hover/ativo.
   Para migrar Salvar/Buscar para o sólido: trocar no HTML por .mubi-btn.mubi-btn-primario (ou mover .btn.btn-primary para a lista PRIMÁRIO acima). */
body:not(.mubi-somente-novo) :is(.btn.btn-primary, .btn.btn-outline-primary, .btn.btn-outline-success, .btn.btn-success, :is(.btn-danger, .btn-outline-danger):not([id*="excluir" i]):not([class*="excluir"]):not([id*="remov" i]):not([class*="remov"]):not([id*="delet" i]):not([class*="delet"]):not([id*="apagar" i]):not(.negar):not(.negativar)):not(.bootstrap-select > .dropdown-toggle):not(.btn-circle):not(.mi-wizard .btn-primary):not(:is(.mubi-original, .file-input) *) { background: #fff !important; border-color: var(--mubi-primaria-borda) !important; color: var(--mubi-primaria) !important; }
body:not(.mubi-somente-novo) :is(.btn.btn-primary, .btn.btn-outline-primary, .btn.btn-outline-success, .btn.btn-success, :is(.btn-danger, .btn-outline-danger):not([id*="excluir" i]):not([class*="excluir"]):not([id*="remov" i]):not([class*="remov"]):not([id*="delet" i]):not([class*="delet"]):not([id*="apagar" i]):not(.negar):not(.negativar)):not(.bootstrap-select > .dropdown-toggle):not(.btn-circle):not(.mi-wizard .btn-primary):not(:is(.mubi-original, .file-input) *):is(:hover, :focus-visible, :active, .active, .mubi-hover),
body:not(.mubi-somente-novo) .show > .btn.btn-primary.dropdown-toggle:not(:is(.mubi-original, .file-input) *) { background: var(--mubi-primaria) !important; border-color: var(--mubi-primaria) !important; color: #fff !important; }

/* tag verde de card usada como botão (a.tag2.tagGreen "Novo cliente" no funil) */
body:not(.mubi-somente-novo) a.tag2.tagGreen:not(:is(.mubi-original, .file-input) *) {
  display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: var(--mubi-gap) !important; width: auto !important;
  height: var(--mubi-altura-sm) !important; padding: 0 var(--mubi-padx-sm) !important; border: 1px solid var(--mubi-primaria-borda) !important; border-radius: calc(var(--mubi-raio) * .8) !important;
  background: #fff !important; color: var(--mubi-primaria) !important; font-size: var(--mubi-fonte-tam-sm) !important; font-weight: var(--mubi-peso) !important; text-decoration: none !important; line-height: 1 !important;
}
body:not(.mubi-somente-novo) a.tag2.tagGreen:not(:is(.mubi-original, .file-input) *):is(:hover, .mubi-hover) { background: var(--mubi-primaria) !important; border-color: var(--mubi-primaria) !important; color: #fff !important; }

/* SECUNDÁRIO: alternativa em destaque (Saiba mais, Exibir inativos, Voltar de wizard, filtros ativos) */
body:not(.mubi-somente-novo) :is(.btn-mubi-outline, .btn-decisao-light, .btn-cancel, .mm-btn-ghost, .acoesButtonPurple, .btn-unir, .btn-incluir-act,
    .btn-custom-hp, .opn-btn-contorno, .btn-expandir, .cal-rd .btn-add, 
    .rtt-chip, .ip-pill, .mc-btn-status, .mc-tab, .mc-btn-moderar, .evoBtnQst, .giBtnPeriodo, .acomp-os .load-more-btn,
    .btn-recuperar, .btn-laranja, .cal-rd .btn-hoje):not(.bootstrap-select > .dropdown-toggle):not(.avancar):not(:is(.mubi-original, .file-input) *) {
  background: #fff !important; border-color: var(--mubi-primaria-borda) !important; color: var(--mubi-primaria) !important;
}
body:not(.mubi-somente-novo) :is(.btn-mubi-outline, .btn-decisao-light, .btn-cancel, .mm-btn-ghost, .acoesButtonPurple, .btn-unir, .btn-incluir-act,
    .btn-custom-hp, .opn-btn-contorno, .btn-expandir, .cal-rd .btn-add, 
    .rtt-chip, .ip-pill, .mc-btn-status, .mc-tab, .mc-btn-moderar, .evoBtnQst, .giBtnPeriodo, .acomp-os .load-more-btn,
    .btn-recuperar, .btn-laranja, .cal-rd .btn-hoje):not(.bootstrap-select > .dropdown-toggle):not(.avancar):not(:is(.mubi-original, .file-input) *):hover {
  background: var(--mubi-primaria-suave) !important; border-color: var(--mubi-primaria) !important; color: var(--mubi-primaria) !important;
}

/* NEUTRO: Cancelar, Fechar, Voltar, ações secundárias sem destaque */
body:not(.mubi-somente-novo) :is(.btn.btn-outline-secondary, .btn-defaultn, .btn.btn-default, .btn.btn-secondary, .btnFechar, .btnN, .mc-btn-secundario, .rtt-btn-voltar,
    .mi-wizard .btn-defaultn, .btn-cinza, .btn-mubi-cz, .btn-upload, .btn-incluir-inact, .btn-novo-atalho, .btn-inativos, .acomp-os .sort-btn,
    .btn.btn-outline-dark, .btn.btn-dark, .btn-padrao-selecao, .opn-btn-pdf, .opn-btn-comparar, .btn-defaultn.rounded-pill):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *) {
  background: #fff !important; border-color: var(--mubi-neutra-borda) !important; color: var(--mubi-texto-suave) !important; border-style: solid !important;
}
body:not(.mubi-somente-novo) :is(.btn.btn-outline-secondary, .btn-defaultn, .btn.btn-default, .btn.btn-secondary, .btnFechar, .btnN, .mc-btn-secundario, .rtt-btn-voltar,
    .mi-wizard .btn-defaultn, .btn-cinza, .btn-mubi-cz, .btn-upload, .btn-incluir-inact, .btn-novo-atalho, .btn-inativos, .acomp-os .sort-btn,
    .btn.btn-outline-dark, .btn.btn-dark, .btn-padrao-selecao, .opn-btn-pdf, .opn-btn-comparar):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *):hover {
  background: var(--mubi-neutra-hover) !important; border-color: #C6BFD6 !important; color: var(--mubi-texto) !important;
}

/* AZUL: ações informativas/alternativas que hoje já são azuis (histórico, aproveitamento, compras) */
body:not(.mubi-somente-novo) :is(.aproveitamentoBtn, .btn-azul.botao):not(:is(.mubi-original, .file-input) *) { background: var(--mubi-azul) !important; border-color: var(--mubi-azul) !important; color: #fff !important; }
body:not(.mubi-somente-novo) :is(.aproveitamentoBtn, .btn-azul.botao):not(:is(.mubi-original, .file-input) *):hover { background: var(--mubi-azul-hover) !important; border-color: var(--mubi-azul-hover) !important; color: #fff !important; }
body:not(.mubi-somente-novo) :is(.acoesButtonBlue, .acoesButtonBlue2, .btnHistory, .btn-azul, .btn.btn-info, .btn.btn-outline-info):not(.botao):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *) { background: #fff !important; border-color: var(--mubi-azul-borda) !important; color: var(--mubi-azul) !important; }
body:not(.mubi-somente-novo) :is(.acoesButtonBlue, .acoesButtonBlue2, .btnHistory, .btn-azul, .btn.btn-info, .btn.btn-outline-info):not(.botao):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *):is(:hover, .mubi-hover) { background: var(--mubi-azul) !important; border-color: var(--mubi-azul) !important; color: #fff !important; }
/* VERDE: sólido = concluir/aprovar; contorno = ações verdes de hoje (salvar em partials, compras) */
body:not(.mubi-somente-novo) :is(.btn-success-modern, .buttonPlusGreen):not(:is(.mubi-original, .file-input) *) { background: var(--mubi-sucesso) !important; border-color: var(--mubi-sucesso) !important; color: #fff !important; }
body:not(.mubi-somente-novo) :is(.btn-success-modern, .buttonPlusGreen):not(:is(.mubi-original, .file-input) *):hover { background: var(--mubi-sucesso-hover) !important; border-color: var(--mubi-sucesso-hover) !important; }
body:not(.mubi-somente-novo) :is(.btn-verde, .btnSave, .acoesButtonGreen, .btn-verdinho):not(:is(.mubi-original, .file-input) *) { background: #fff !important; border-color: var(--mubi-verde-borda) !important; color: var(--mubi-sucesso) !important; }
body:not(.mubi-somente-novo) :is(.btn-verde, .btnSave, .acoesButtonGreen, .btn-verdinho):not(:is(.mubi-original, .file-input) *):is(:hover, .mubi-hover) { background: var(--mubi-sucesso) !important; border-color: var(--mubi-sucesso) !important; color: #fff !important; }

/* RIPPLE do js/index.js em QUALQUER botão: neutraliza o span para não esticar o botão ao clicar */
body:not(.mubi-somente-novo) :is(button, .btn, a.btn):not(:is(.mubi-original, .file-input) *) > .ripple { position: absolute !important; inset: 0 !important; top: 0 !important; left: 0 !important; width: 100% !important; height: 100% !important; margin: 0 !important; border-radius: inherit; pointer-events: none; }
body:not(.mubi-somente-novo) :is(button, .btn, a.btn):not(:is(.mubi-original, .file-input) *):has(> .ripple) { position: relative; overflow: hidden; }

/* FANTASMA: terciário, sem borda */
body:not(.mubi-somente-novo) :is(.btn.btn-link, .rtt-btn-cancelar, .onb-btn-link, .oferta-btn-secundario, .btn_contorno, .mm-link, .acomp-os .btn-event, .onb-btn-fantasma):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *) {
  background: transparent !important; border-color: transparent !important; color: var(--mubi-primaria) !important; text-decoration: none !important;
}
body:not(.mubi-somente-novo) :is(.btn.btn-link, .rtt-btn-cancelar, .onb-btn-link, .oferta-btn-secundario, .btn_contorno, .mm-link, .acomp-os .btn-event, .onb-btn-fantasma):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *):hover {
  background: var(--mubi-primaria-suave) !important; color: var(--mubi-primaria) !important;
}

/* PERIGO (contorno, preenche no hover): só btn-danger/btn-outline-danger DESTRUTIVOS (id/classe com excluir, remov, delet, apagar, negar).
   Os demais btn-danger (Cancelar, Fechar, Devolver, Nova despesa...) caem no PRIMÁRIO-CONTORNO abaixo. */
body:not(.mubi-somente-novo) :is(:is(.btn-danger, .btn-outline-danger):is([id*="excluir" i], [class*="excluir"], [id*="remov" i], [class*="remov"], [id*="delet" i], [class*="delet"], [id*="apagar" i], .negar, .negativar, .mc-btn-negar), .btn-vermelho, .btnSquareRed):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *) {
  background: #fff !important; border-color: var(--mubi-perigo-borda) !important; color: var(--mubi-perigo) !important;
}
body:not(.mubi-somente-novo) :is(:is(.btn-danger, .btn-outline-danger):is([id*="excluir" i], [class*="excluir"], [id*="remov" i], [class*="remov"], [id*="delet" i], [class*="delet"], [id*="apagar" i], .negar, .negativar, .mc-btn-negar), .btn-vermelho, .btnSquareRed):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *):is(:hover, .mubi-hover) { background: var(--mubi-perigo) !important; border-color: var(--mubi-perigo) !important; color: #fff !important; }
body:not(.mubi-somente-novo) :is(.mc-btn-negar, .btn-danger-modern, .fecharAproveitamentoBtn, .remove-image):not(:is(.mubi-original, .file-input) *) {
  background: var(--mubi-perigo) !important; border-color: var(--mubi-perigo) !important; color: #fff !important;
}
body:not(.mubi-somente-novo) :is(.mc-btn-negar, .btn-danger-modern, .fecharAproveitamentoBtn, .remove-image):not(:is(.mubi-original, .file-input) *):hover { background: var(--mubi-perigo-hover) !important; border-color: var(--mubi-perigo-hover) !important; }

/* ---- base comum a todos os aliases acima (formato) ---- */
body:not(.mubi-somente-novo) :is(.btn.btn-primary, .btn-incluir, .btn.btn-success, .btn.btn-outline-success, .btn.btn-outline-primary, .btnSalvar, .mc-btn-primario, .mm-btn, .mm-btn-ghost,
    .rtt-btn-salvar, .rtt-btn-avancar, .rtt-btn-voltar, .rtt-btn-cancelar, .rtt-chip, .acomp-os .fp-search, .acomp-orc .fp-search, .mi-wizard .btn-primary, .mi-wizard .btn-defaultn,
    .opn-btn-primario, .opn-btn-secundario, .opn-btn-contorno, .btn-mubi, .btn-mubi-b, .btn-mubi-cz, .botaoGenerico, .btn-mubi-rec, .btn-mubi-outline, .onb-btn-primario, .onb-btn-fantasma, .onb-btn-link,
    .btn-primary-modern, .btn-success-modern, .btn-danger-modern, .acp-botao, .oferta-btn-primario, .oferta-btn-secundario, .btn-confirm, .btn-cancel, .btn-decisao, .btn-decisao-light,
    .btn-roxo, .btn-verde, .btn-vermelho, .btn-cinza, .btn-azul, .btn-laranja, .btn-verdinho, .aproveitamentoBtn, .fecharAproveitamentoBtn, .mc-btn-nova, .mc-btn-secundario, .mc-btn-negar, .mc-btn-status, .mc-tab, .mc-btn-moderar,
    .btn-conciliar, .btn.btn-outline-secondary, .btn-defaultn, .btn.btn-default, .btn.btn-secondary, .btn.btn-outline-dark, .btn.btn-dark, .btnFechar, .btnN, .btn-upload, .btn-incluir-act, .btn-incluir-inact,
    .btn-novo-atalho, .btn-inativos, .acomp-os .sort-btn, .acomp-os .load-more-btn, .btn-danger, .btn-outline-danger, .btn.btn-info, .btn.btn-outline-info, .btn.btn-link, .btn_contorno, .mm-link,
    .acoesButtonPurple, .acoesButtonBlue, .acoesButtonBlue2, .acoesButtonGreen, .btnHistory, .btnSave, .btn-unir, .btn-custom-hp, .btn-expandir, .cal-rd .btn-add, .cal-rd .btn-hoje,
    .ip-pill, .evoBtnQst, .giBtnPeriodo, .btn-recuperar, .btn-entrar, .btnEntrar, .enviar-btn-orcPadrao, .terminal-btn-retomar, .btn-padrao-selecao, .opn-btn-pdf, .opn-btn-comparar):not(.bootstrap-select > .dropdown-toggle):not(.btn-circle):not(:is(.mubi-original, .file-input) *) {
  display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: var(--mubi-gap) !important;
  height: var(--mubi-altura) !important; min-height: 0 !important; padding: 0 var(--mubi-padx) !important;
  border-radius: var(--mubi-raio) !important; border-width: 1px !important; border-style: solid !important;
  font-family: var(--mubi-fonte) !important; font-size: var(--mubi-fonte-tam) !important; font-weight: var(--mubi-peso) !important; line-height: 1 !important;
  text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; background-image: none !important; text-decoration: none !important;
  transition: background .15s, color .15s, border-color .15s !important; margin-top: 0 !important; margin-bottom: 0 !important; transform: none !important; opacity: 1; white-space: nowrap !important; flex-shrink: 0 !important;
}
/* fantasmas e links não têm borda visível nem padding grande */
body:not(.mubi-somente-novo) :is(.btn.btn-link, .rtt-btn-cancelar, .onb-btn-link, .oferta-btn-secundario, .mm-link):not(:is(.mubi-original, .file-input) *) { padding: 0 10px !important; }

/* tamanhos */
body:not(.mubi-somente-novo) :is(.btn.btn-sm, .btn-sm.btn-danger, .mm-btn-sm, .btn-p, .rtt-chip, .ip-pill, .mc-btn-status, .mc-btn-moderar, .evoBtnQst, .giBtnPeriodo, .btn-acao, .btn-defaultn.rounded-pill):not(.bootstrap-select > .dropdown-toggle):not(.btn-circle):not(:is(.mubi-original, .file-input) *) {
  height: var(--mubi-altura-sm) !important; padding: 0 var(--mubi-padx-sm) !important; font-size: var(--mubi-fonte-tam-sm) !important; border-radius: calc(var(--mubi-raio) * .8) !important;
}
body:not(.mubi-somente-novo) :is(.btn.btn-lg, .btn-mubi-rec, .btn-mubi-outline, .mc-btn-nova, .btn-entrar):not(.bootstrap-select > .dropdown-toggle):not(:is(.mubi-original, .file-input) *) {
  height: var(--mubi-altura-lg) !important; padding: 0 var(--mubi-padx-lg) !important; font-size: var(--mubi-fonte-tam-lg) !important;
}
body:not(.mubi-somente-novo) .btn.btn-block:not(:is(.mubi-original, .file-input) *),
    body:not(.mubi-somente-novo) .mm-up-actions .mm-btn:not(:is(.mubi-original, .file-input) *),
    body:not(.mubi-somente-novo) .opn-btn-bloco:not(:is(.mubi-original, .file-input) *) { display: flex !important; width: 100% !important; }

/* botões só-ícone / circulares: mantêm o formato redondo, ganham cores do padrão */
body:not(.mubi-somente-novo) :is(.btn.btn-circle, .action-btn, .acomp-os .hd-btn, .acomp-os .filter-btn, .acomp-os .osa, .btn-zoom, .btnAddTask, .btnEditClient, .c4-arrow, .pp-nav, .pp-ynav, .mc-gbtn, .cal-rd .cal-collapse, .btn-delete-os, .mc-btn-excluir, .buttonPlusGreen, .buttonStarGold):not(:is(.mubi-original, .file-input) *) {
  display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: 0 !important; line-height: 1 !important;
  border: 1px solid var(--mubi-neutra-borda) !important; background: #fff !important; color: var(--mubi-primaria) !important; box-shadow: none !important; font-family: var(--mubi-fonte) !important;
}
body:not(.mubi-somente-novo) :is(.btn.btn-circle, .action-btn, .acomp-os .hd-btn, .acomp-os .filter-btn, .acomp-os .osa, .btn-zoom, .btnAddTask, .btnEditClient, .c4-arrow, .pp-nav, .pp-ynav, .mc-gbtn, .cal-rd .cal-collapse, .btn-delete-os, .mc-btn-excluir, .buttonPlusGreen, .buttonStarGold):not(:is(.mubi-original, .file-input) *):hover {
  background: var(--mubi-primaria-suave) !important; border-color: var(--mubi-primaria) !important;
}
body:not(.mubi-somente-novo) .btn.btn-circle:not(.btn-circle-sm):not(.btn-circle-smm):not(.btn-circle-md):not(.btn-lg):not(.btn-xl):not(:is(.mubi-original, .file-input) *) { width: var(--mubi-altura) !important; height: var(--mubi-altura) !important; border-radius: 999px !important; }
body:not(.mubi-somente-novo) .btn.btn-circle.btn-sm:not(:is(.mubi-original, .file-input) *) { width: var(--mubi-altura-sm) !important; height: var(--mubi-altura-sm) !important; }
body:not(.mubi-somente-novo) :is(.acomp-os .hd-btn, .acomp-os .filter-btn, .acomp-os .osa, .btn-zoom, .c4-arrow, .pp-nav, .mc-gbtn, .cal-rd .cal-collapse, .action-btn):not(:is(.mubi-original, .file-input) *) { border-radius: var(--mubi-raio) !important; }

/* o "+" em círculo (span.icon#plus) dentro de btn-incluir: some, o ícone passa a ser o icofont */
body:not(.mubi-somente-novo) :is(.btn-incluir, .btn-incluir-act, .btn-incluir-inact):not(:is(.mubi-original, .file-input) *) > .icon { border: 0 !important; width: auto !important; height: auto !important; }
body:not(.mubi-somente-novo) :is(.btn-incluir, .btn-incluir-act, .btn-incluir-inact):not(:is(.mubi-original, .file-input) *) > .icon:before { border: 0 !important; width: auto !important; height: auto !important; font-size: 1.15em !important; font-weight: 700; padding: 0 !important; }

/* ============================================================================
   ALIASES DE CAMPOS: form-control, selectpicker, input-group, redesigns,
   checkbox (icheck / custom-control / form-check), switch (common.css)
   ========================================================================== */
/* campo de texto / textarea / select nativo */
body:not(.mubi-somente-novo) :is(input.form-control, textarea.form-control, select.form-control, .acomp-os .fp-input, .acomp-orc .fp-input, .mc-input, .mc-textarea, .mc-select, .input-cadastro,
    .estiloFormControl, input.input-search, .textarea-file-legend, .form-control-modern, .search-input, select:not([class]), select.show-tick:not(.selectpicker),
    .bs-searchbox .form-control):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=range]):not(.buscarglobal):not(:is(.mubi-original, .file-input) *) {
  height: var(--mubi-campo-altura) !important; padding: 0 var(--mubi-campo-padx) !important;
  border: 1px solid var(--mubi-campo-borda) !important; border-radius: var(--mubi-campo-raio) !important;
  background-color: var(--mubi-campo-fundo) !important; color: var(--mubi-texto) !important;
  font-family: var(--mubi-fonte) !important; font-size: var(--mubi-campo-fonte-tam) !important; font-weight: 500 !important; line-height: normal !important;
  box-shadow: none !important; outline: none !important; margin-top: 0 !important; -webkit-appearance: none; appearance: none;
  transition: border-color .15s, box-shadow .15s !important;
}
body:not(.mubi-somente-novo) :is(input.form-control, textarea.form-control, select.form-control, .acomp-os .fp-input, .mc-input, .mc-textarea, .input-cadastro, .estiloFormControl, input.input-search, .textarea-file-legend, .form-control-modern, .search-input):not(:is(.mubi-original, .file-input) *)::placeholder { color: var(--mubi-campo-placeholder) !important; font: inherit !important; font-weight: 400 !important; }
body:not(.mubi-somente-novo) :is(input.form-control, textarea.form-control, select.form-control, .acomp-os .fp-input, .mc-input, .mc-textarea, .mc-select, .input-cadastro, .estiloFormControl, input.input-search, .textarea-file-legend, .form-control-modern, .search-input, select:not([class])):not(:is(.mubi-original, .file-input) *):hover { border-color: var(--mubi-campo-borda-hover) !important; }
body:not(.mubi-somente-novo) :is(input.form-control, textarea.form-control, select.form-control, .acomp-os .fp-input, .mc-input, .mc-textarea, .mc-select, .input-cadastro, .estiloFormControl, input.input-search, .textarea-file-legend, .form-control-modern, .search-input, select:not([class])):not(:is(.mubi-original, .file-input) *):focus { border-color: var(--mubi-primaria) !important; box-shadow: 0 0 0 3px var(--mubi-foco) !important; }
body:not(.mubi-somente-novo) :is(input.form-control, textarea.form-control, select.form-control):not(:is(.mubi-original, .file-input) *):disabled,
    body:not(.mubi-somente-novo) :is(input.form-control, textarea.form-control):not(:is(.mubi-original, .file-input) *)[readonly] { background-color: var(--mubi-campo-fundo-desab) !important; color: var(--mubi-texto-suave) !important; }
body:not(.mubi-somente-novo) :is(.form-control.is-invalid, .erro_selecao, .form-control.erro):not(:is(.mubi-original, .file-input) *) { border-color: var(--mubi-perigo) !important; background-image: none !important; padding-right: var(--mubi-campo-padx) !important; }
body:not(.mubi-somente-novo) .form-control.form-control-sm:not(:is(.mubi-original, .file-input) *) { height: var(--mubi-campo-altura-sm) !important; padding: 0 10px !important; font-size: 12px !important; border-radius: calc(var(--mubi-campo-raio) * .8) !important; }
body:not(.mubi-somente-novo) .form-control.form-control-lg:not(:is(.mubi-original, .file-input) *) { height: var(--mubi-campo-altura-lg) !important; font-size: 14px !important; }
body:not(.mubi-somente-novo) :is(textarea.form-control, .mc-textarea, .textarea-file-legend):not(:is(.mubi-original, .file-input) *) { height: auto !important; min-height: calc(var(--mubi-campo-altura) * 2.2) !important; padding: 9px var(--mubi-campo-padx) !important; line-height: 1.45 !important; resize: vertical; }
body:not(.mubi-somente-novo) :is(select.form-control, select:not([class]), .mc-select, select.show-tick:not(.selectpicker)):not([multiple]):not(:is(.mubi-original, .file-input) *) {
  padding-right: 34px !important; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4.5l4 4 4-4' fill='none' stroke='%235B5470' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important; background-position: right 12px center !important; background-size: 12px !important;
}

/* bootstrap-select (todos, inclusive #modal.mm-modal e .acomp-os .fp-field) */
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle {
  display: flex !important; align-items: center !important; height: var(--mubi-campo-altura) !important; padding: 0 34px 0 var(--mubi-campo-padx) !important;
  border: 1px solid var(--mubi-campo-borda) !important; border-radius: var(--mubi-campo-raio) !important; background: var(--mubi-campo-fundo) !important;
  color: var(--mubi-texto) !important; font-family: var(--mubi-fonte) !important; font-size: var(--mubi-campo-fonte-tam) !important; font-weight: 500 !important; line-height: normal !important;
  box-shadow: none !important; outline: none !important; text-transform: none !important;
}
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle .filter-option { position: static !important; display: flex !important; align-items: center !important; height: auto !important; padding: 0 !important; float: none !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle .filter-option-inner { padding-right: 0 !important; width: 100%; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle .filter-option-inner-inner { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle::after { position: absolute; right: 13px; top: 50%; margin: -2px 0 0; border-top-color: var(--mubi-texto-suave); }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle.bs-placeholder { color: var(--mubi-campo-placeholder) !important; font-weight: 400 !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle:hover { border-color: var(--mubi-campo-borda-hover) !important; background: var(--mubi-campo-fundo) !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle:focus,
    body:not(.mubi-somente-novo) .bootstrap-select.show:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle { border-color: var(--mubi-primaria) !important; box-shadow: 0 0 0 3px var(--mubi-foco) !important; }
body:not(.mubi-somente-novo) .bootstrap-select.disabled:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle,
    body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle.disabled { background: var(--mubi-campo-fundo-desab) !important; color: var(--mubi-texto-suave) !important; opacity: 1 !important; }
body:not(.mubi-somente-novo) .bootstrap-select.form-control-sm:not(:is(.mubi-original, .file-input) *) > .dropdown-toggle { height: var(--mubi-campo-altura-sm) !important; font-size: 12px !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) .dropdown-menu { border: 1px solid var(--mubi-campo-borda) !important; border-radius: calc(var(--mubi-campo-raio) + 2px) !important; box-shadow: 0 12px 28px rgba(27,16,53,.14) !important; padding: 6px !important; font-family: var(--mubi-fonte) !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) .dropdown-menu li a { border-radius: 7px !important; font-size: var(--mubi-campo-fonte-tam) !important; color: var(--mubi-texto) !important; padding: 8px 12px !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) .dropdown-menu li a:hover { background: var(--mubi-neutra-hover) !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) .dropdown-menu li.selected a,
    body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) .dropdown-menu li.active a { background: var(--mubi-primaria-suave) !important; color: var(--mubi-primaria) !important; font-weight: 600 !important; }
body:not(.mubi-somente-novo) .bootstrap-select:not(:is(.mubi-original, .file-input) *) .bs-searchbox .form-control { height: var(--mubi-campo-altura-sm) !important; border-radius: calc(var(--mubi-campo-raio) * .8) !important; font-size: 12px !important; }

/* input-group: campo + botão (btn-search / btn-aux) ou prefixo (input-group-text) */
body:not(.mubi-somente-novo) .input-group:not(:is(.mubi-original, .file-input) *) > .form-control:not(:last-child) { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
body:not(.mubi-somente-novo) .input-group:not(:is(.mubi-original, .file-input) *) > .form-control:not(:first-child) { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; }
body:not(.mubi-somente-novo) .input-group-btn:not(:is(.mubi-original, .file-input) *) { background: transparent !important; border: 0 !important; border-radius: 0 !important; display: flex !important; }
body:not(.mubi-somente-novo) :is(.input-group-btn .btn, .btn-search, .btn-aux):not(:is(.mubi-original, .file-input) *) {
  height: var(--mubi-campo-altura) !important; padding: 0 12px !important; margin-left: -1px !important; display: inline-flex !important; align-items: center !important;
  border: 1px solid var(--mubi-campo-borda) !important; border-radius: 0 var(--mubi-campo-raio) var(--mubi-campo-raio) 0 !important;
  background: var(--mubi-neutra-hover) !important; color: var(--mubi-primaria) !important; font-size: 15px !important; box-shadow: none !important;
}
body:not(.mubi-somente-novo) :is(.input-group-btn .btn, .btn-search, .btn-aux):not(:is(.mubi-original, .file-input) *):hover { background: var(--mubi-primaria-suave) !important; border-color: var(--mubi-primaria) !important; }
body:not(.mubi-somente-novo) .input-group-text:not(:is(.mubi-original, .file-input) *) { height: var(--mubi-campo-altura) !important; padding: 0 12px !important; border: 1px solid var(--mubi-campo-borda) !important; border-radius: var(--mubi-campo-raio) !important; background: var(--mubi-neutra-hover) !important; color: var(--mubi-texto-suave) !important; font-size: var(--mubi-campo-fonte-tam) !important; font-weight: 600 !important; }
body:not(.mubi-somente-novo) .input-group-prepend:not(:is(.mubi-original, .file-input) *) > .input-group-text { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
body:not(.mubi-somente-novo) .input-group-append:not(:is(.mubi-original, .file-input) *) > * { border-top-left-radius: 0 !important; border-bottom-left-radius: 0 !important; height: var(--mubi-campo-altura) !important; }

/* rótulos */
body:not(.mubi-somente-novo) :is(label.form-label, .label-cadastro, .mc-label, .acomp-os .fp-field label, .acomp-orc .fp-field label, .mm-field-label):not(:is(.mubi-original, .file-input) *) { font-size: var(--mubi-rotulo-tam) !important; font-weight: 600 !important; color: var(--mubi-rotulo-cor) !important; margin: 0 0 5px !important; line-height: 1.2 !important; display: block; }

/* checkbox / radio: icheck (botoes.css), custom-control (bootstrap), form-check (nativo) */
body:not(.mubi-somente-novo) [class*="icheck-"]:not(:is(.mubi-original, .file-input) *) > input:first-child + label::before,
    body:not(.mubi-somente-novo) [class*="icheck-"]:not(:is(.mubi-original, .file-input) *) > input:first-child + input[type="hidden"] + label::before {
  width: var(--mubi-check-tam) !important; height: var(--mubi-check-tam) !important; border: 1.5px solid var(--mubi-campo-borda-hover) !important; border-radius: 5px !important; background: #fff; margin-left: -27px !important; margin-top: 0 !important; top: 2px !important; left: auto !important; /* sem left: fica na posição estática, como no icheck */
}
body:not(.mubi-somente-novo) [class*="icheck-"]:not(:is(.mubi-original, .file-input) *) > input[type="radio"]:first-child + label::before { border-radius: 50% !important; }
body:not(.mubi-somente-novo) [class*="icheck-"]:not(:is(.mubi-original, .file-input) *) > input:first-child:checked + label::before { background-color: var(--mubi-primaria) !important; border-color: var(--mubi-primaria) !important; }
body:not(.mubi-somente-novo) [class*="icheck-"]:not(:is(.mubi-original, .file-input) *) > input:first-child:checked + label::after { width: 5px !important; height: 9px !important; border-width: 0 2px 2px 0 !important; transform: translate(6.5px, 5px) rotate(45deg) !important; top: 2px !important; left: 0 !important; }
body:not(.mubi-somente-novo) [class*="icheck-"]:not(:is(.mubi-original, .file-input) *) > input[type="radio"]:first-child:checked + label::after { width: 7px !important; height: 7px !important; border: 0 !important; border-radius: 50%; background: #fff; transform: translate(5.5px, 5.5px) !important; }
body:not(.mubi-somente-novo) [class*="icheck-"]:not(:is(.mubi-original, .file-input) *) > label { padding-left: 27px !important; font-size: 13px; font-weight: 500; color: var(--mubi-texto); line-height: 22px; }
body:not(.mubi-somente-novo) .custom-control-label:not(:is(.mubi-original, .file-input) *)::before { border: 1.5px solid var(--mubi-campo-borda-hover) !important; border-radius: 5px !important; width: var(--mubi-check-tam); height: var(--mubi-check-tam); top: .1rem; box-shadow: none !important; }
body:not(.mubi-somente-novo) .custom-radio .custom-control-label:not(:is(.mubi-original, .file-input) *)::before { border-radius: 50% !important; }
body:not(.mubi-somente-novo) .custom-control-input:checked ~ .custom-control-label:not(:is(.mubi-original, .file-input) *)::before { background-color: var(--mubi-primaria) !important; border-color: var(--mubi-primaria) !important; }
body:not(.mubi-somente-novo) .custom-control-label:not(:is(.mubi-original, .file-input) *)::after { width: var(--mubi-check-tam); height: var(--mubi-check-tam); top: .1rem; }
body:not(.mubi-somente-novo) .custom-switch .custom-control-label:not(:is(.mubi-original, .file-input) *)::before { border-radius: 999px !important; width: 36px; height: 20px; background: #CFC8DE !important; border: 0 !important; }
body:not(.mubi-somente-novo) .custom-switch .custom-control-label:not(:is(.mubi-original, .file-input) *)::after { width: 16px; height: 16px; top: calc(.1rem + 2px); left: calc(-2.25rem + 2px); background: #fff !important; border-radius: 50%; box-shadow: 0 1px 2px rgba(0,0,0,.25); }
body:not(.mubi-somente-novo) .custom-switch .custom-control-input:checked ~ .custom-control-label:not(:is(.mubi-original, .file-input) *)::before { background: var(--mubi-primaria) !important; }
body:not(.mubi-somente-novo) .custom-switch .custom-control-input:checked ~ .custom-control-label:not(:is(.mubi-original, .file-input) *)::after { transform: translateX(16px); }
body:not(.mubi-somente-novo) :is(.form-check-input, input[type="checkbox"]:not([class]), input[type="radio"]:not([class])):not(:is(.mubi-original, .file-input) *):not(label[class*="mubi-"] > input):not(.mubi-campo) { accent-color: var(--mubi-primaria); width: 16px; height: 16px; }
body:not(.mubi-somente-novo) .form-check-label:not(:is(.mubi-original, .file-input) *) { font-size: 13px; font-weight: 500; color: var(--mubi-texto); }

/* switch do common.css (label.switch > input.input-switch + span.slider.round) */
body:not(.mubi-somente-novo) label.switch:not(:is(.mubi-original, .file-input) *) { width: 36px !important; height: 20px !important; margin: 0 !important; vertical-align: middle; }
body:not(.mubi-somente-novo) label.switch:not(:is(.mubi-original, .file-input) *) .slider { width: 36px !important; height: 20px !important; border-radius: 999px !important; background-color: #CFC8DE !important; }
body:not(.mubi-somente-novo) label.switch:not(:is(.mubi-original, .file-input) *) .slider:before { width: 16px !important; height: 16px !important; left: 2px !important; bottom: 2px !important; top: auto !important; border-radius: 50% !important; background-color: #fff !important; box-shadow: 0 1px 2px rgba(0,0,0,.25); }
body:not(.mubi-somente-novo) label.switch:not(:is(.mubi-original, .file-input) *) .input-switch:checked + .slider { background-color: var(--mubi-primaria) !important; }
body:not(.mubi-somente-novo) label.switch:not(:is(.mubi-original, .file-input) *) .input-switch:checked + .slider:before { transform: translateX(16px) !important; background-color: #fff !important; }
body:not(.mubi-somente-novo) label.switch:not(:is(.mubi-original, .file-input) *) .input-switch:disabled + .slider { opacity: .45; }
body:not(.mubi-somente-novo) label.switch:not(:is(.mubi-original, .file-input) *) .input-switch:disabled + .slider:before { background-color: #fff !important; }
/* radio animado do partials/forms.css */
body:not(.mubi-somente-novo) .option-input:not(:is(.mubi-original, .file-input) *) { width: var(--mubi-check-tam) !important; height: var(--mubi-check-tam) !important; background: #fff !important; border: 1.5px solid var(--mubi-campo-borda-hover) !important; margin-right: 6px !important; }
body:not(.mubi-somente-novo) .option-input:not(:is(.mubi-original, .file-input) *):checked { background: var(--mubi-primaria) !important; border-color: var(--mubi-primaria) !important; }
body:not(.mubi-somente-novo) .option-input:not(:is(.mubi-original, .file-input) *):checked::before { content: "" !important; position: absolute; width: 7px !important; height: 7px !important; top: 4px !important; left: 4px !important; border-radius: 50%; background: #fff; }
body:not(.mubi-somente-novo) .option-input:not(:is(.mubi-original, .file-input) *):checked::after { display: none !important; }
