/* Correcoes pontuais para componentes legados que ainda possuem paleta propria.
   Esta folha deve ser carregada depois de personalizacao_familias.css. */

/* Footer: contrato final contra estilos locais legados. */
.btn_submenu_footer {
    border: 0 !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    background-color: var(--cor-footer, var(--cor-fundo)) !important;
    color: var(--cor-texto-footer, var(--cor-texto)) !important;
}

.btn_submenu_footer .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background-color: var(--cor-botao-footer, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
}

.btn_submenu_footer .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):hover {
    background-color: var(--hover-botao-footer, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
}

/* Escala final de camadas: modais precisam bloquear toda a navegacao. */
:is(
    #modal-container,
    #modal-lote-serie,
    .modal-comprovante,
    .modal-orientacao-folha,
    .modal-impressao-venda,
    .modal-custom-overlay,
    .modal-overlay,
    .modal-selecao,
    .modal.fade
) {
    z-index: var(--z-layer-modal-backdrop, 10100) !important;
}

.alert-container,
#popup-alert {
    z-index: var(--z-layer-alert, 10200) !important;
}

/* Hover legado precisa trocar background e foreground como um par. */
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container table tbody tr:hover td {
    background-color: var(--hover-linha-listagem, var(--cor-hover)) !important;
    color: var(--texto-hover-linha-listagem, var(--cor-texto-linha-listagem)) !important;
}

body.page-family-listagem .pagination-link:hover:not(.active),
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container .pagination-link:hover:not(.active) {
    background: var(--hover-linha-listagem, var(--cor-hover)) !important;
    color: var(--texto-hover-linha-listagem, var(--cor-texto-linha-listagem)) !important;
}

/* Grupo: mensagem criada dinamicamente pelo filtro segue a listagem. */
.empresa-lista .no-results-message {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-linha-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-linha-listagem, var(--cor-texto)) !important;
}

/* Notificacoes de Acesso: sub-interface inteira pertence ao cadastro. */
.form-container .permissions-box {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

.form-container .permissions-box-title {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

.form-container .permissions-search-input,
.form-container .permission-item {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-campo-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

.form-container .permissions-search-input:focus {
    border-color: var(--foco-cadastro, var(--cor-botao)) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--foco-cadastro, var(--cor-botao)) 20%, transparent) !important;
}

.form-container .permission-item:hover {
    border-color: var(--foco-cadastro, var(--cor-botao)) !important;
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

.form-container .permission-checkbox {
    accent-color: var(--foco-cadastro, var(--cor-botao)) !important;
}

.form-container .permission-item label,
.form-container .permission-checkbox:checked + label,
.form-container .no-permissions {
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

.form-container .permissions-box::-webkit-scrollbar-track {
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
}

.form-container .permissions-box::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--cor-texto-cadastro, var(--cor-texto)) 38%, transparent) !important;
}

/* Listagem com edicao inline: a linha continua na familia listagem, mas os
   campos de edicao usam explicitamente o contrato de cadastro. */
:is(
    #novo-pais-row,
    #novo-estado-row,
    #novo-municipio-row,
    #novo-de-para-row,
    #novo-item-row,
    tr.editing
) :is(input, select, textarea) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-campo-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

:is(
    #novo-pais-row,
    #novo-estado-row,
    #novo-municipio-row,
    #novo-de-para-row,
    #novo-item-row,
    tr.editing
) :is(input, select, textarea):focus {
    border-color: var(--foco-cadastro, var(--cor-botao)) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--foco-cadastro, var(--cor-botao)) 20%, transparent) !important;
}

tr.editing {
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

:is(.btn-novo-pais, .btn-novo-estado, .btn-novo-municipio, .btn-novo-de-para, .btn-novo-item) {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-botao-listagem, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-listagem, var(--cor-icone)) !important;
}

:is(.btn-novo-pais, .btn-novo-estado, .btn-novo-municipio, .btn-novo-de-para, .btn-novo-item):hover {
    background: var(--hover-botao-listagem, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-listagem, var(--cor-icone)) !important;
}

/* Modal de ordenacao da Tabela de Preco possui wrapper intermediario. */
#modal-container .modal-ordenacao {
    z-index: var(--z-layer-modal-backdrop, 10100) !important;
    background: color-mix(in srgb, var(--cor-overlay-modal, var(--cor-painel)) 58%, transparent) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

#modal-container .modal-ordenacao > .modal-content {
    border: 1px solid var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

#modal-container .modal-ordenacao .modal-header {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-cabecalho-modal, var(--cor-navbar)) !important;
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar)) !important;
}

#modal-container .modal-ordenacao .modal-header :is(h3, .modal-close) {
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar)) !important;
}

#modal-container .modal-ordenacao .modal-close {
    background: var(--cor-cabecalho-modal, var(--cor-navbar)) !important;
}

#modal-container .modal-ordenacao :is(.modal-body, .modal-actions, .radio-group label) {
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

#modal-container .modal-ordenacao input[type="radio"] {
    accent-color: var(--cor-botao-modal, var(--cor-botao)) !important;
}

#modal-container .modal-ordenacao .modal-actions button {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-botao-modal, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

#modal-container .modal-ordenacao .modal-actions button:hover {
    background: var(--hover-botao-modal, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

/* Tabela de Preco: neutraliza os !important locais dos campos/edicao. */
#tabelaItens input,
.tabela-preco-tabela :is(input, select),
.form-card-cabecalho :is(input, select, textarea) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-campo-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

#tabelaItens input:focus,
.tabela-preco-tabela :is(input, select):focus,
.form-card-cabecalho :is(input, select, textarea):focus {
    border-color: var(--foco-cadastro, var(--cor-botao)) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--foco-cadastro, var(--cor-botao)) 20%, transparent) !important;
}

/* ICMS De/Para e modais de selecao de produto. */
.modal-selecao {
    background: color-mix(in srgb, var(--cor-overlay-modal, var(--cor-painel)) 58%, transparent) !important;
}

.modal-selecao > .modal-content,
.modal-selecao .modal-content {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

.modal-selecao .modal-header {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-cabecalho-modal, var(--cor-navbar)) !important;
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar)) !important;
}

.modal-selecao .produto-item {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-linha-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-linha-listagem, var(--cor-texto)) !important;
}

.modal-selecao .produto-item:hover {
    background: var(--hover-linha-listagem, var(--cor-hover)) !important;
    color: var(--texto-hover-linha-listagem, var(--cor-texto-linha-listagem)) !important;
}

.modal-selecao .btn-selecionar-produto {
    background: var(--cor-botao-modal, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

.modal-selecao .btn-selecionar-produto:hover {
    background: var(--hover-botao-modal, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

.tabela-de-para :is(thead, th) {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-cabecalho-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-cabecalho-listagem, var(--cor-texto)) !important;
}

.tabela-de-para tbody td {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-linha-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-linha-listagem, var(--cor-texto)) !important;
}

.tabela-de-para tbody tr:hover td {
    background: var(--hover-linha-listagem, var(--cor-hover)) !important;
    color: var(--texto-hover-linha-listagem, var(--cor-texto-linha-listagem)) !important;
}

/* Caixa cockpit: remapeia a paleta local para a personalizacao.
   Success/danger continuam semanticos e permanecem definidos pelo modulo. */
:root {
    --cx-primary: var(--cor-botao);
    --cx-primary-dark: var(--cor-hover);
    --cx-text: var(--cor-texto-cadastro, var(--cor-texto));
    --cx-muted: var(--cx-text);
    --cx-border: var(--cor-borda-cadastro, var(--cor-borda));
    --cx-bg: var(--cor-fundo-cadastro, var(--cor-fundo));
    --cx-surface: var(--cor-superficie-cadastro, var(--cor-fundo));
}

.cx-list,
.cx-table-wrap,
.kpi,
.chip,
.cf-fech-totais,
.cf-fech-badge {
    border-color: var(--cx-border) !important;
    background-color: var(--cx-surface) !important;
    color: var(--cx-text) !important;
}

.cx-search {
    border-color: var(--cx-border) !important;
    background: var(--cx-bg) !important;
    color: var(--cx-text) !important;
}

.cx-table-wrap .tabela_transacoes thead th {
    border-color: var(--cx-border) !important;
    background: var(--cx-bg) !important;
    color: var(--cx-muted) !important;
}

.cx-table-wrap .tabela_transacoes tbody td {
    border-color: var(--cx-border) !important;
    color: var(--cx-text);
}

.cx-table-wrap .tabela_transacoes tbody tr:not(.entrada):not(.saida):nth-child(even) td {
    background: var(--cx-surface) !important;
    color: var(--cx-text) !important;
}

.cx-search input,
.cx-search select,
.cx-top__item select,
.cx-abertura__ctx-item select,
.cx-abertura__money-input,
.cf-fech-money__input,
.cf-fech-staffbox select {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-campo-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

.cx-abertura__money-input input,
.cf-fech-money__input input {
    background: transparent !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

.cx-abertura__money-prefix,
.cf-fech-money__prefix {
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

.modal-conteudo,
.modal-corpo,
.cf-modal-body,
.cf-fech-expected,
.cf-caixa-fechado,
.caixa-info-container,
.pagamento,
.resumo-item,
.cf-resumo-item:not(.cf-destaque):not(.cf-positivo):not(.cf-negativo) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

.modal-cabecalho {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-cabecalho-modal, var(--cor-navbar)) !important;
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar)) !important;
}

.cf-resumo-fechamento h2,
.cf-resumo-label,
.cf-resumo-valor,
.cf-fech-col__title,
.cf-fech-sumrow,
.cf-fech-sumrow b,
.cf-fech-money__l,
.cx-abertura__money-label,
.cx-abertura__help,
.info-label,
.info-valor {
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

.cf-resumo-fechamento .cf-tabela-final,
.cf-resumo-fechamento .cf-tabela-final tbody,
table.tabela_transacoes thead {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-fundo-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-listagem, var(--cor-texto)) !important;
}

.cf-resumo-fechamento .cf-tabela-final th {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-cabecalho-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-cabecalho-listagem, var(--cor-texto)) !important;
}

.cf-resumo-fechamento .cf-tabela-final tbody tr:not(.entrada):not(.saida) td {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background: var(--cor-linha-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-linha-listagem, var(--cor-texto)) !important;
}

/* --------------------------------------------------------------------------
   Contrato final de contraste: esta secao deve permanecer por ultimo.
   -------------------------------------------------------------------------- */

/* O preview usa a mesma superficie real. Nao clarear/escurecer o fundo evita
   criar uma combinacao que nao passou pela validacao de contraste. */
[data-theme-preview],
.personalizacao-preview {
    --preview-background-gradient: linear-gradient(var(--cor-fundo), var(--cor-fundo));
}

/* Botoes globais legados usam o par base; familias mais especificas continuam
   vencendo por especificidade com seus tokens dedicados. */
.btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]),
.form-submit button:not(:disabled):not([aria-disabled="true"]):not([aria-readonly="true"]) {
    background-color: var(--cor-botao) !important;
    color: var(--cor-icone) !important;
}

.btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"])
    :is(span, i, svg, label),
.form-submit button:not(:disabled):not([aria-disabled="true"]):not([aria-readonly="true"]) :is(span, i, svg, label) {
    color: inherit !important;
    fill: currentColor;
    stroke: currentColor;
}

.btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus-visible),
.form-submit button:not(:disabled):not([aria-disabled="true"]):not([aria-readonly="true"]):is(:hover, :focus-visible) {
    background-color: var(--cor-hover) !important;
    color: var(--cor-icone) !important;
}

/* Reafirma cada familia como um par atomico foreground/background, inclusive
   em hover/focus. Esses seletores vencem o fallback global acima. */
body.page-family-cadastro .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background-color: var(--cor-botao-cadastro, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-cadastro, var(--cor-icone)) !important;
}

body.page-family-cadastro .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus, :focus-visible) {
    background-color: var(--hover-botao-cadastro, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-cadastro, var(--cor-icone)) !important;
}

body.page-family-listagem .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background-color: var(--cor-botao-listagem, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-listagem, var(--cor-icone)) !important;
}

body.page-family-listagem .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus, :focus-visible) {
    background-color: var(--hover-botao-listagem, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-listagem, var(--cor-icone)) !important;
}

body.page-family-relatorio .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background-color: var(--cor-botao-relatorio, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-relatorio, var(--cor-icone)) !important;
}

body.page-family-relatorio .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus, :focus-visible) {
    background-color: var(--hover-botao-relatorio, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-relatorio, var(--cor-icone)) !important;
}

body.page-family-detalhes .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background-color: var(--cor-botao-detalhes, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-detalhes, var(--cor-icone)) !important;
}

body.page-family-detalhes .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus, :focus-visible) {
    background-color: var(--hover-botao-detalhes, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-detalhes, var(--cor-icone)) !important;
}

/* Estado bloqueado unico para botoes nativos, links desabilitados e fluxos
   que usam aria-readonly como representacao de "apenas leitura". */
.btn-action-empresa:is(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]),
.btn-action-empresa:is(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus, :focus-visible) {
    background-color: color-mix(in srgb, var(--cor-fundo, var(--bg-color, #f8f9fa)) 94%, black 6%) !important;
    color: var(--cor-texto, var(--text-color, #333333)) !important;
    border: 1px solid var(--cor-borda, var(--border-color, #dee2e6)) !important;
    border-color: var(--cor-borda, var(--border-color, #dee2e6)) !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

.btn-action-empresa:is(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) :is(span, i, svg, label) {
    color: inherit !important;
    fill: currentColor;
    stroke: currentColor;
    opacity: 1 !important;
}

button#btn-excluir-padrao:is(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background-color: color-mix(in srgb, var(--cor-fundo, var(--bg-color, #f8f9fa)) 94%, black 6%) !important;
    color: var(--cor-texto, var(--text-color, #333333)) !important;
    border-color: var(--cor-borda, var(--border-color, #dee2e6)) !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

/* Footer: descendentes nunca podem recuperar o foreground do container. */
.btn_submenu_footer :is(a:not(.btn-action-empresa), label),
.btn_submenu_footer > span {
    color: var(--cor-texto-footer, var(--cor-texto)) !important;
}

.btn_submenu_footer .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background-color: var(--cor-botao-footer, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
}

.btn_submenu_footer .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) :is(span, i, svg, label) {
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
    fill: currentColor;
    stroke: currentColor;
}

.btn_submenu_footer .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus-visible) {
    background-color: var(--hover-botao-footer, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
}

.btn_submenu_footer .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus-visible) :is(span, i, svg, label) {
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
}

.btn_submenu_footer .btn-action-empresa:is(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]),
.btn_submenu_footer .btn-action-empresa:is(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus, :focus-visible) {
    background-color: color-mix(in srgb, var(--cor-fundo, var(--bg-color, #f8f9fa)) 94%, black 6%) !important;
    color: var(--cor-texto, var(--text-color, #333333)) !important;
    border: 1px solid var(--cor-borda, var(--border-color, #dee2e6)) !important;
    border-color: var(--cor-borda, var(--border-color, #dee2e6)) !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

.btn_submenu_footer .btn-action-empresa:is(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) :is(span, i, svg, label) {
    color: inherit !important;
    fill: currentColor;
    stroke: currentColor;
    opacity: 1 !important;
}

body.page-family-relatorio .pagination-link:hover:not(.active) {
    background-color: var(--hover-linha-relatorio, var(--cor-hover)) !important;
    color: var(--texto-hover-linha-relatorio, var(--cor-texto-linha-relatorio)) !important;
}

/* Navegacao: rotulos e icones formam o foreground unico do rail. */
.navbar_empresa_container.menu-trilho-ready {
    --menu-icon-color: var(--cor-icone, var(--cor-texto-painel));
}

.notification-wrapper,
.navbar .notification-wrapper {
    color: var(--cor-texto-navbar, var(--cor-texto)) !important;
}

/* Preview: os mesmos papeis semanticos usados na aplicacao real. */
.personalizacao-preview__tabs [role="tab"][aria-selected="true"],
.preview-ui-help,
.preview-ui-inner-tabs .is-active {
    background: var(--cor-botao) !important;
    color: var(--cor-icone) !important;
}

.personalizacao-preview__tabs [role="tab"]:not([aria-selected="true"]) {
    background: var(--cor-fundo) !important;
    color: var(--cor-texto) !important;
}

.personalizacao-preview__tabs [role="tab"]:not([aria-selected="true"]):hover {
    background: var(--cor-hover) !important;
    color: var(--cor-icone) !important;
}

.personalizacao-preview__device:hover,
.personalizacao-preview__device.is-active {
    background: var(--cor-botao) !important;
    color: var(--cor-icone) !important;
}

.preview-ui-search {
    border-color: var(--cor-borda-pesquisa) !important;
    background: var(--cor-campo-pesquisa) !important;
    color: var(--cor-texto-pesquisa) !important;
    opacity: 1;
}

.preview-ui-search :is(b, span, i, svg) {
    color: inherit !important;
    fill: currentColor;
    stroke: currentColor;
}

.preview-ui-notification {
    background: var(--cor-navbar) !important;
    color: var(--cor-texto-navbar) !important;
}

.preview-ui-rail {
    background: var(--cor-painel) !important;
    color: var(--cor-texto-painel) !important;
}

.preview-ui-rail span,
.preview-ui-rail .is-active {
    color: var(--cor-texto-painel) !important;
}

.preview-ui-button.is-muted {
    background: var(--cor-fundo) !important;
    color: var(--cor-texto) !important;
    opacity: 1;
}

.preview-page--detalhes .preview-details-grid h6 {
    color: var(--cor-texto-card-detalhes) !important;
}

.preview-ui-footer {
    background: var(--cor-footer) !important;
    color: var(--cor-texto-footer) !important;
}

.preview-ui-footer span:not(.is-muted) {
    background: var(--cor-botao-footer) !important;
    color: var(--cor-texto-botao-footer) !important;
}

.preview-ui-footer span:not(.is-muted):hover,
.preview-ui-footer .is-hover-preview {
    background: var(--hover-botao-footer) !important;
    color: var(--cor-texto-botao-footer) !important;
}

.preview-ui-footer .is-muted {
    background: var(--cor-footer) !important;
    color: var(--cor-texto-footer) !important;
    opacity: 1;
}

/* Cliente/documentos: o conteudo da aba e cadastro; o dialogo e modal. */
body.page-family-cadastro .documento-cliente-modal-backdrop {
    background: color-mix(in srgb, var(--cor-overlay-modal) 58%, transparent) !important;
    color: var(--cor-texto-modal) !important;
    z-index: var(--z-layer-modal-backdrop, 10100) !important;
}

body.page-family-cadastro .documento-cliente-modal,
body.page-family-cadastro .documento-cliente-modal :is(
    .documento-cliente-modal-cabecalho,
    .documento-cliente-modal-corpo,
    .documento-cliente-modal-acoes,
    .form-group
) {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

body.page-family-cadastro .documento-cliente-modal :is(h3, label) {
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

body.page-family-cadastro .documento-cliente-modal :is(input, textarea, select) {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

body.page-family-cadastro .documento-cliente-modal .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]),
body.page-family-cadastro .documento-cliente-modal .btn-remover-documento-cliente:not(:disabled) {
    background: var(--cor-botao-modal, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

body.page-family-cadastro .documento-cliente-modal :is(.btn-action-empresa, .btn-remover-documento-cliente):not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus-visible) {
    background: var(--hover-botao-modal, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

/* Funcionario: abas/documentos pertencem ao cadastro; somente o dialogo usa
   os tokens de modal. */
body.page-family-cadastro .funcionario-tabs,
body.page-family-cadastro .documentos-funcionario-container,
body.page-family-cadastro .documentos-cabecalho div,
body.page-family-cadastro .documento-card {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

body.page-family-cadastro .funcionario-tab-button,
body.page-family-cadastro :is(.documento-data, .documento-descricao, .documento-arquivo) {
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

body.page-family-cadastro .funcionario-tab-button.is-active {
    background: var(--foco-cadastro, var(--cor-botao)) !important;
    color: var(--cor-texto-foco-cadastro, var(--cor-icone)) !important;
}

body.page-family-cadastro .documento-modal-backdrop {
    background: color-mix(in srgb, var(--cor-overlay-modal) 58%, transparent) !important;
    color: var(--cor-texto-modal) !important;
    z-index: var(--z-layer-modal-backdrop, 10100) !important;
}

body.page-family-cadastro .documento-modal,
body.page-family-cadastro .documento-modal :is(
    .documento-modal-cabecalho,
    .documento-modal-corpo,
    .documento-modal-acoes,
    .form-group
) {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

body.page-family-cadastro .documento-modal :is(h3, label) {
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

body.page-family-cadastro .documento-modal :is(input, textarea, select) {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

body.page-family-cadastro .documento-modal :is(.btn-action-empresa, .btn-remover-alocacao):not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background: var(--cor-botao-modal, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

body.page-family-cadastro .documento-modal :is(.btn-action-empresa, .btn-remover-alocacao):not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus-visible) {
    background: var(--hover-botao-modal, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

/* Dispositivos: remove dependencias visuais de aliases inexistentes do CSS
   inline, sem alterar geometria ou fluxo da tela. */
#dispositivo-form .network-fields h4 {
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

#modal-buscar-impressoras,
#modal-buscar-impressoras #impressoras-lista {
    border-color: var(--cor-borda-modal, var(--cor-borda)) !important;
    background: var(--cor-fundo-modal, var(--cor-fundo)) !important;
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

#modal-buscar-impressoras #impressoras-lista p {
    color: var(--cor-texto-modal, var(--cor-texto)) !important;
}

#modal-buscar-impressoras #impressoras-lista li:hover {
    background: var(--cor-cabecalho-modal, var(--cor-navbar)) !important;
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar)) !important;
}

#modal-buscar-impressoras .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]) {
    background: var(--cor-botao-modal, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

#modal-buscar-impressoras .btn-action-empresa:not(.disable, :disabled, [aria-disabled="true"], [aria-readonly="true"]):is(:hover, :focus-visible) {
    background: var(--hover-botao-modal, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-modal, var(--cor-icone)) !important;
}

/* Venda/Orcamento: drawers de resumo mobile removem a paleta inline e usam
   o mesmo contrato visual dos modais. */
.modal-resumo-temporario {
    background: color-mix(in srgb, var(--cor-overlay-modal, #0f172a) 58%, transparent);
    color: var(--cor-texto-modal, var(--cor-texto));
    z-index: var(--z-layer-modal-backdrop, 10100) !important;
}

.conteudo-resumo-temporario,
.conteudo-resumo-temporario .resumo-mobile-body,
.conteudo-resumo-temporario .wrapper-resumo,
.conteudo-resumo-temporario .resumo-financeiro {
    border-color: var(--cor-borda-modal, var(--cor-borda));
    background: var(--cor-fundo-modal, var(--cor-fundo));
    color: var(--cor-texto-modal, var(--cor-texto));
}

.conteudo-resumo-temporario {
    border-left: 1px solid var(--cor-borda-modal, var(--cor-borda));
}

.resumo-mobile-header {
    border-bottom: 1px solid var(--cor-borda-modal, var(--cor-borda));
    background: var(--cor-cabecalho-modal, var(--cor-navbar));
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar));
}

.resumo-mobile-header h3,
.resumo-mobile-fechar {
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar));
}

.resumo-mobile-fechar {
    border: 0;
    background: transparent;
}

.conteudo-resumo-temporario .resumo-linha {
    border-color: var(--cor-borda-modal, var(--cor-borda));
    color: var(--cor-texto-modal, var(--cor-texto));
}

/* Venda: loading da NFC-e e um overlay estrutural, nao um estado cromatico. */
.loading-nfce-overlay {
    background: color-mix(in srgb, var(--cor-overlay-modal, #0f172a) 70%, transparent);
    color: var(--cor-texto-modal, var(--cor-texto));
}

.loading-nfce-card {
    border: 1px solid var(--cor-borda-modal, var(--cor-borda));
    background: var(--cor-fundo-modal, var(--cor-fundo));
    color: var(--cor-texto-modal, var(--cor-texto));
}

.loading-nfce-note {
    color: var(--cor-texto-modal, var(--cor-texto));
    opacity: .72;
}

.loading-nfce-spinner {
    border-color: color-mix(in srgb, var(--cor-borda-modal, var(--cor-borda)) 70%, transparent);
    border-top-color: var(--cor-botao-modal, var(--cor-botao));
}
