/* Camada final dos temas por familia de tela.
   Carregada depois do CSS de cada app para manter a personalizacao como
   contrato visual unico, inclusive em modulos legados. */

/* Menu principal / drawer */
.menu-trilho-ready .menu-drawer-header,
.menu-trilho-ready .menu-toggle > .submenu {
    border-color: var(--cor-borda-drawer, var(--cor-borda));
    background: var(--cor-drawer);
    color: var(--cor-texto-painel);
}

.menu-trilho-ready .submenu .btn_navbar_painel {
    border-color: var(--cor-borda-drawer, var(--cor-borda));
    border-left-color: var(--cor-borda-item-painel, var(--cor-painel));
    background: var(--cor-drawer);
    color: var(--cor-texto-painel, var(--cor-texto));
}

.menu-trilho-ready .submenu .btn_navbar_painel :is(a, span, i),
.menu-trilho-ready :is(.menu-drawer-title, .menu-drawer-close) {
    color: inherit;
}

.menu-trilho-ready .submenu .btn_navbar_painel:is(:hover, :focus-visible),
.menu-trilho-ready .submenu .btn_navbar_painel.active {
    border-color: var(--cor-painel);
    border-left-color: var(--cor-borda-item-painel, var(--cor-painel));
    background: var(--hover-painel, var(--cor-hover));
    color: var(--cor-texto-painel, var(--cor-texto));
}

body.page-family-menu .main_container_empresa {
    background-color: var(--cor-fundo-menu, var(--cor-fundo));
    color: var(--cor-texto-menu, var(--cor-texto));
}

/* Cadastro */
body.page-family-cadastro :is(.form-container, .form-container-itens) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda));
    background-color: var(--cor-fundo-cadastro, var(--cor-fundo));
    color: var(--cor-texto-cadastro, var(--cor-texto));
}

body.page-family-cadastro :is(
    .form-group,
    .painel-extra-formulario,
    .form-tab-panel,
    .inline-wrapper
) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda));
    background-color: var(--cor-superficie-cadastro, var(--cor-fundo));
    color: var(--cor-texto-cadastro, var(--cor-texto));
}

body.page-family-cadastro :is(
    .form-group,
    .filter-group,
    .inline-editor-row
) :is(input, select, textarea):-webkit-autofill {
    -webkit-text-fill-color: var(--cor-texto-campo-cadastro, var(--cor-texto));
    box-shadow: 0 0 0 1000px var(--cor-campo-cadastro, var(--cor-fundo)) inset;
}

body.page-family-cadastro :is(
    .form-group,
    .filter-group,
    .inline-editor-row
) :is(input, select, textarea),
body.page-family-cadastro .select2-container--default :is(
    .select2-selection--single,
    .select2-selection--multiple
) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda));
    background-color: var(--cor-campo-cadastro, var(--cor-fundo));
    color: var(--cor-texto-campo-cadastro, var(--cor-texto));
}

body.page-family-cadastro :is(
    .form-group,
    .filter-group,
    .inline-editor-row
) :is(input, select, textarea):focus,
body.page-family-cadastro .select2-container--focus :is(
    .select2-selection--single,
    .select2-selection--multiple
) {
    border-color: var(--foco-cadastro, var(--cor-botao));
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--foco-cadastro, var(--cor-botao)) 20%, transparent);
}

body.page-family-cadastro :is(
    .form-title,
    .form-group label,
    .form-tab-help,
    .form-container-itens h1,
    .form-container-itens h2,
    .form-container-itens h3
) {
    color: var(--cor-texto-cadastro, var(--cor-texto));
}

body.page-family-cadastro .form-tabs {
    border-color: var(--cor-borda-cadastro, var(--cor-borda));
    background: var(--cor-superficie-cadastro, var(--cor-fundo));
}

body.page-family-cadastro .form-tab-trigger {
    color: var(--cor-texto-cadastro, var(--cor-texto));
}

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

body.page-family-cadastro .btn-action-empresa:not(.disable, :disabled) {
    background: var(--cor-botao-cadastro);
    color: var(--cor-texto-botao-cadastro);
}

body.page-family-cadastro .btn-action-empresa:not(.disable, :disabled):hover {
    background: var(--hover-botao-cadastro);
    color: var(--cor-texto-botao-cadastro);
}

/* Listagem */
body.page-family-listagem :is(.form-container.lista, .form-container-itens) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background-color: var(--cor-fundo-listagem, var(--cor-fundo));
    color: var(--cor-texto-listagem, var(--cor-texto));
}

body.page-family-listagem :is(
    .filter-input,
    .form-filter input,
    .form-filter select,
    .form-filter textarea,
    .filters-advanced input,
    .filters-advanced select,
    .filters-advanced textarea
) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background-color: var(--cor-linha-listagem, var(--cor-fundo));
    color: var(--cor-texto-linha-listagem, var(--cor-texto));
}

body.page-family-listagem .select2-container--default :is(
    .select2-selection--single,
    .select2-selection--multiple,
    .select2-selection__rendered
) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background-color: var(--cor-linha-listagem, var(--cor-fundo));
    color: var(--cor-texto-linha-listagem, var(--cor-texto));
}

body.page-family-listagem .filters-advanced {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background: var(--cor-fundo-listagem, var(--cor-fundo));
    color: var(--cor-texto-listagem, var(--cor-texto));
}

body.page-family-listagem :is(.tabela-container, table) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    color: var(--cor-texto-listagem, var(--cor-texto));
}

body.page-family-listagem :is(.tabela-container, table) thead,
body.page-family-listagem :is(.tabela-container, table) th {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background-color: var(--cor-cabecalho-listagem, var(--cor-fundo));
    color: var(--cor-texto-cabecalho-listagem, var(--cor-texto));
}

body.page-family-listagem :is(.tabela-container, table) tbody td {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background-color: var(--cor-linha-listagem, var(--cor-fundo));
    color: var(--cor-texto-linha-listagem, var(--cor-texto));
}

body.page-family-listagem :is(.tabela-container, table) tbody tr:hover td {
    background-color: var(--hover-linha-listagem, var(--cor-hover));
    color: var(--texto-hover-linha-listagem, var(--cor-texto-linha-listagem));
}

body.page-family-listagem .btn-action-empresa:not(.disable, :disabled) {
    background: var(--cor-botao-listagem);
    color: var(--cor-texto-botao-listagem);
}

body.page-family-listagem .btn-action-empresa:not(.disable, :disabled):hover {
    background: var(--hover-botao-listagem);
    color: var(--cor-texto-botao-listagem);
}

body.page-family-listagem :is(.form-title, .pagination-info, .no-results) {
    color: var(--cor-texto-listagem, var(--cor-texto));
}

/* Relatorios */
body.page-family-relatorio :is(.form-container, .form-container-itens) {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    background-color: var(--cor-fundo-relatorio, var(--cor-fundo));
    color: var(--cor-texto-relatorio, var(--cor-texto));
}

body.page-family-relatorio .filters-advanced {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    background-color: var(--cor-filtro-relatorio, var(--cor-fundo));
    color: var(--cor-texto-filtro-relatorio, var(--cor-texto-relatorio));
}

body.page-family-relatorio :is(
    .filter-input,
    .form-filter input,
    .form-filter select,
    .form-filter textarea,
    .filters-advanced input,
    .filters-advanced select,
    .filters-advanced textarea
) {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    background-color: var(--cor-campo-relatorio, var(--cor-fundo));
    color: var(--cor-texto-campo-relatorio, var(--cor-texto));
}

body.page-family-relatorio .select2-container--default :is(
    .select2-selection--single,
    .select2-selection--multiple,
    .select2-selection__rendered
) {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    background-color: var(--cor-campo-relatorio, var(--cor-fundo));
    color: var(--cor-texto-campo-relatorio, var(--cor-texto));
}

body.page-family-relatorio table {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    color: var(--cor-texto-relatorio, var(--cor-texto));
}

body.page-family-relatorio table :is(thead, th) {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    background-color: var(--cor-cabecalho-relatorio, var(--cor-fundo));
    color: var(--cor-texto-cabecalho-relatorio, var(--cor-texto));
}

body.page-family-relatorio table tbody td {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    background-color: var(--cor-linha-relatorio, var(--cor-fundo-relatorio));
    color: var(--cor-texto-linha-relatorio, var(--cor-texto-relatorio));
}

body.page-family-relatorio table tbody tr:hover td {
    background-color: var(--hover-linha-relatorio);
    color: var(--texto-hover-linha-relatorio);
}

body.page-family-relatorio .btn-action-empresa:not(.disable, :disabled) {
    background: var(--cor-botao-relatorio);
    color: var(--cor-texto-botao-relatorio);
}

body.page-family-relatorio .btn-action-empresa:not(.disable, :disabled):hover {
    background: var(--hover-botao-relatorio);
    color: var(--cor-texto-botao-relatorio);
}

body.page-family-relatorio :is(.form-title, .no-results, .pagination-info) {
    color: var(--cor-texto-relatorio, var(--cor-texto));
}

/* Detalhes */
body.page-family-detalhes :is(.form-container, .form-container-itens) {
    border-color: var(--cor-borda-detalhes, var(--cor-borda));
    background-color: var(--cor-fundo-detalhes, var(--cor-fundo));
    color: var(--cor-texto-detalhes, var(--cor-texto));
}

body.page-family-detalhes :is(
    .tabela-container,
    .workflow-summary-item,
    .workflow-action-panel,
    .workflow-status-panel,
    .workflow-history-panel,
    .linha-cotacao-item
) {
    border-color: var(--cor-borda-detalhes, var(--cor-borda));
    background-color: var(--cor-card-detalhes, var(--cor-fundo));
    color: var(--cor-texto-card-detalhes, var(--cor-texto));
}

body.page-family-detalhes :is(input, select, textarea),
body.page-family-detalhes .select2-container--default :is(
    .select2-selection--single,
    .select2-selection--multiple,
    .select2-selection__rendered
) {
    border-color: var(--cor-borda-detalhes, var(--cor-borda));
    background-color: var(--cor-card-detalhes, var(--cor-fundo));
    color: var(--cor-texto-card-detalhes, var(--cor-texto));
}

/* A paginação acompanha a família ativa, inclusive em módulos que ainda
   carregam paginator.css com os aliases genéricos antigos. */
body.page-family-listagem :is(.pagination, .pagination-info) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    color: var(--cor-texto-listagem, var(--cor-texto));
}

body.page-family-listagem .pagination-link:not(.active) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background: var(--cor-linha-listagem, var(--cor-fundo));
    color: var(--cor-texto-linha-listagem, var(--cor-texto));
}

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

body.page-family-relatorio :is(.pagination, .pagination-info) {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    color: var(--cor-texto-relatorio, var(--cor-texto));
}

body.page-family-relatorio .pagination-link:not(.active) {
    border-color: var(--cor-borda-relatorio, var(--cor-borda));
    background: var(--cor-campo-relatorio, var(--cor-fundo));
    color: var(--cor-texto-campo-relatorio, var(--cor-texto));
}

/* Compatibilidade automática para cadastros/listagens legados que ainda não
   declaram uma família no body. */
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda));
    background-color: var(--cor-fundo-cadastro, var(--cor-fundo));
    color: var(--cor-texto-cadastro, var(--cor-texto));
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container.lista {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    background-color: var(--cor-fundo-listagem, var(--cor-fundo));
    color: var(--cor-texto-listagem, var(--cor-texto));
}

body.page-family-detalhes :is(.tabela-container, table) :is(th, td) {
    border-color: var(--cor-borda-detalhes, var(--cor-borda));
    background-color: var(--cor-card-detalhes, var(--cor-fundo));
    color: var(--cor-texto-card-detalhes, var(--cor-texto));
}

body.page-family-detalhes :is(
    .form-title,
    .workflow-kicker,
    .workflow-detail-title h1,
    .workflow-section-header h2
) {
    color: var(--cor-texto-detalhes, var(--cor-texto));
}

body.page-family-detalhes :is(
    .status-badge,
    .workflow-status-badge,
    .workflow-kicker
) {
    background: var(--cor-destaque-detalhes, var(--cor-botao));
    color: var(--cor-texto-destaque-detalhes, var(--cor-icone));
}

body.page-family-detalhes .btn-action-empresa:not(.disable, :disabled) {
    background: var(--cor-botao-detalhes);
    color: var(--cor-texto-botao-detalhes);
}

body.page-family-detalhes .btn-action-empresa:not(.disable, :disabled):hover {
    background: var(--hover-botao-detalhes);
    color: var(--cor-texto-botao-detalhes);
}

/* Modais compartilhados */
#modal-container {
    background-color: color-mix(in srgb, var(--cor-overlay-modal, var(--cor-painel)) 58%, transparent);
}

#modal-container > .modal-content {
    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));
}

#modal-container > .modal-content .modal-header {
    border-color: 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));
}

#modal-container > .modal-content :is(.modal-header h2, .modal-header h3, .close-modal) {
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar));
}

#modal-container > .modal-content :is(.modal-body, .modal-footer) {
    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));
}

#modal-container > .modal-content .btn-action-empresa:not(.disable, :disabled),
:is(.modal-dialog, .modal-custom, .modal-tef-container) .btn-action-empresa:not(.disable, :disabled) {
    background: var(--cor-botao-modal, var(--cor-botao));
    color: var(--cor-texto-botao-modal, var(--cor-icone));
}

#modal-container > .modal-content .btn-action-empresa:not(.disable, :disabled):hover,
:is(.modal-dialog, .modal-custom, .modal-tef-container) .btn-action-empresa:not(.disable, :disabled):hover {
    background: var(--hover-botao-modal, var(--cor-hover));
    color: var(--cor-texto-botao-modal, var(--cor-icone));
}

/* Contratos alternativos ainda usados por telas antigas. Esta camada é
   carregada depois dos CSS dos módulos para manter a personalização como a
   fonte final das cores, sem alterar geometria ou comportamento dos modais. */
:is(
    #modal-lote-serie,
    .modal-orientacao-folha,
    .modal-comprovante,
    .modal-impressao-venda,
    .modal-custom-overlay,
    .modal-overlay,
    .modal.fade
) {
    background-color: color-mix(in srgb, var(--cor-overlay-modal, var(--cor-painel)) 58%, transparent);
}

:is(
    #modal-lote-serie .modal-content,
    .modal-orientacao-folha .modal-content,
    .modal-comprovante-dialog,
    .modal-impressao-venda .modal-content,
    .modal-custom-content,
    .modal-dialog,
    .modal-custom,
    .modal-tef-container
) {
    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));
}

:is(
    .modal-orientacao-folha .modal-header,
    .modal-comprovante-cabecalho,
    .modal-impressao-venda .modal-header,
    .modal-custom-header,
    .custom-modal-header,
    .modal-tef-header,
    .modal.fade .modal-header
) {
    border-color: 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));
}

:is(
    .modal-orientacao-folha .modal-header,
    .modal-comprovante-cabecalho,
    .modal-impressao-venda .modal-header,
    .modal-custom-header,
    .custom-modal-header,
    .modal-tef-header,
    .modal.fade .modal-header
) :is(h2, h3, p, .modal-close, .close-modal, .custom-modal-close) {
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar));
}

:is(
    .modal-orientacao-folha .modal-body,
    .modal-orientacao-folha .modal-actions,
    .modal-comprovante-corpo,
    .modal-comprovante-rodape,
    .modal-impressao-venda .modal-body,
    .modal-impressao-venda .modal-footer,
    .modal-custom-body,
    .modal-custom-footer,
    .modal-tef-body,
    .modal.fade .modal-body,
    .modal.fade .modal-footer
) {
    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));
}

:is(
    #modal-lote-serie,
    .modal-orientacao-folha,
    .modal-comprovante,
    .modal-impressao-venda,
    .modal-custom-overlay,
    .modal-overlay,
    .modal.fade
) :is(input, select, textarea) {
    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));
}

/* Compatibilidade completa para paginas legadas */
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) :is(
        .form-group,
        .painel-extra-formulario,
        .form-tab-panel,
        .inline-wrapper,
        .field-group,
        .form-row-info,
        .permission-group
    ) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda));
    background-color: var(--cor-superficie-cadastro, var(--cor-fundo));
    color: var(--cor-texto-cadastro, var(--cor-texto));
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) :is(.form-group, .filter-group, .inline-editor-row, .input-group)
    :is(input, select, textarea) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background-color: var(--cor-campo-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) :is(.form-title, .form-group label, .field-group-title, .permission-title) {
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) :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);
}

/* Listagens legadas e regioes hibridas */
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container :is(.form-filter, .filters-advanced) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    color: var(--cor-texto-listagem, var(--cor-texto));
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container .filters-advanced {
    background-color: var(--cor-fundo-listagem, var(--cor-fundo));
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container :is(.filter-input, .form-filter input, .form-filter select, .form-filter textarea, .filters-advanced input, .filters-advanced select, .filters-advanced textarea) {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background-color: var(--cor-linha-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-linha-listagem, var(--cor-texto)) !important;
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container :is(.tabela-container, .form-list-custom, .table-mobile-scroll, table) {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background-color: var(--cor-fundo-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-listagem, var(--cor-texto)) !important;
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container table :is(thead, th) {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background-color: var(--cor-cabecalho-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-cabecalho-listagem, var(--cor-texto)) !important;
}

body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container table tbody td {
    border-color: var(--cor-borda-listagem, var(--cor-borda)) !important;
    background-color: var(--cor-linha-listagem, var(--cor-fundo)) !important;
    color: var(--cor-texto-linha-listagem, var(--cor-texto)) !important;
}

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:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container :is(.pagination, .pagination-info, .no-results, .no-results-message) {
    border-color: var(--cor-borda-listagem, var(--cor-borda));
    color: var(--cor-texto-listagem, var(--cor-texto)) !important;
}

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

/* Select2: override final contra imports locais legados */
.select2-container--default :is(.select2-selection--single, .select2-selection--multiple) {
    border-color: var(--select2-border, var(--cor-borda-cadastro, var(--cor-borda))) !important;
    background-color: var(--select2-surface, var(--cor-campo-cadastro, var(--cor-fundo))) !important;
    color: var(--select2-foreground, var(--cor-texto-campo-cadastro, var(--cor-texto))) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__rendered,
.select2-container--default .select2-selection--single .select2-selection__placeholder,
.select2-container--default .select2-selection--multiple .select2-search__field {
    color: var(--select2-foreground, var(--cor-texto-campo-cadastro, var(--cor-texto))) !important;
}

.select2-dropdown {
    border-color: var(--select2-border, var(--cor-borda-cadastro, var(--cor-borda))) !important;
    background-color: var(--select2-surface, var(--cor-campo-cadastro, var(--cor-fundo))) !important;
    color: var(--select2-foreground, var(--cor-texto-campo-cadastro, var(--cor-texto))) !important;
}

.select2-search--dropdown .select2-search__field {
    border-color: var(--select2-border, var(--cor-borda-cadastro, var(--cor-borda))) !important;
    background-color: var(--select2-surface, var(--cor-campo-cadastro, var(--cor-fundo))) !important;
    color: var(--select2-foreground, var(--cor-texto-campo-cadastro, var(--cor-texto))) !important;
}

.select2-results__option {
    background-color: transparent !important;
    color: var(--select2-foreground, var(--cor-texto-campo-cadastro, var(--cor-texto))) !important;
}

.select2-container--default .select2-results__option--selected,
.select2-container--default .select2-results__option[aria-selected="true"] {
    background-color: var(--select2-surface, var(--cor-fundo)) !important;
    color: var(--select2-foreground, var(--cor-texto)) !important;
    font-weight: 700;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: var(--select2-highlight, var(--cor-hover)) !important;
    color: var(--select2-highlight-foreground, var(--cor-icone)) !important;
}

body.page-family-cadastro {
    --select2-highlight: var(--foco-cadastro, var(--cor-hover));
    --select2-highlight-foreground: var(--cor-texto-foco-cadastro, var(--cor-icone));
}

body.page-family-listagem {
    --select2-surface: var(--cor-linha-listagem, var(--cor-fundo));
    --select2-foreground: var(--cor-texto-linha-listagem, var(--cor-texto));
    --select2-border: var(--cor-borda-listagem, var(--cor-borda));
    --select2-highlight: var(--hover-linha-listagem, var(--cor-hover));
    --select2-highlight-foreground: var(--texto-hover-linha-listagem, var(--cor-icone));
}

body.page-family-relatorio {
    --select2-surface: var(--cor-campo-relatorio, var(--cor-fundo));
    --select2-foreground: var(--cor-texto-campo-relatorio, var(--cor-texto));
    --select2-border: var(--cor-borda-relatorio, var(--cor-borda));
    --select2-highlight: var(--hover-linha-relatorio, var(--cor-hover));
    --select2-highlight-foreground: var(--texto-hover-linha-relatorio, var(--cor-icone));
}

/* Relatorios: botoes de exportacao acompanham a personalizacao */
.btn-pdf-footer {
    background: var(--cor-botao-footer, var(--cor-botao)) !important;
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
}

.btn-pdf-footer:hover {
    background: var(--hover-botao-footer, var(--cor-hover)) !important;
    color: var(--cor-texto-botao-footer, var(--cor-icone)) !important;
}

body.page-family-relatorio :is(.table-mobile-scroll, .total-row, .th1) {
    border-color: var(--cor-borda-relatorio, var(--cor-borda)) !important;
    background-color: var(--cor-fundo-relatorio, var(--cor-fundo)) !important;
    color: var(--cor-texto-relatorio, var(--cor-texto)) !important;
}

/* Caixa: neutraliza cores estruturais fixas */
.seletor,
.caixa-info-container,
.modal-conteudo,
.cf-caixa-fechado,
.cf-resumo-item,
.resumo-item {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background-color: 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-color: var(--cor-cabecalho-modal, var(--cor-navbar)) !important;
    color: var(--cor-texto-cabecalho-modal, var(--cor-texto-navbar)) !important;
}

.campo-form label,
.info-label,
.info-valor,
.cf-resumo-fechamento h2,
.cf-resumo-label,
.cf-resumo-valor {
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

.input-prefix {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background-color: var(--cor-campo-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

.btn-primario {
    background-color: var(--cor-botao) !important;
    color: var(--cor-icone) !important;
}

.btn-primario:hover {
    background-color: var(--cor-hover) !important;
    color: var(--cor-icone) !important;
}

/* Venda e orcamento: preserva layout e usa um par validado da familia de cadastro. */
#campo_venda .wrapper,
#campo_orcamento .wrapper,
#container-pdv .wrapper {
    background: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

:is(#campo_venda, #campo_orcamento, #container-pdv) :is(
    .arvore-filtro,
    .info-resumo,
    .container-resumo,
    .container-ultimo-produto,
    .container-busca-produto,
    .pagamento-tabela
) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background-color: var(--cor-superficie-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}

:is(#campo_venda, #campo_orcamento, #container-pdv) :is(input, select, textarea) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background-color: var(--cor-campo-cadastro, var(--cor-fundo)) !important;
    color: var(--cor-texto-campo-cadastro, var(--cor-texto)) !important;
}

/* Checkboxes editaveis seguem o foco da familia de cadastro. */
body.page-family-cadastro input[type="checkbox"]:not([readonly]):not(:disabled),
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) input[type="checkbox"]:not([readonly]):not(:disabled),
:is(#campo_venda, #campo_orcamento, #container-pdv)
    input[type="checkbox"]:not([readonly]):not(:disabled) {
    accent-color: var(--foco-cadastro, var(--cor-botao)) !important;
}

/* Readonly e disabled mantem a selecao visivel com a paleta bloqueada. */
body.page-family-cadastro input[type="checkbox"]:is([readonly], :disabled),
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) input[type="checkbox"]:is([readonly], :disabled),
:is(#campo_venda, #campo_orcamento, #container-pdv)
    input[type="checkbox"]:is([readonly], :disabled) {
    accent-color: color-mix(
        in srgb,
        var(--cor-texto-cadastro, var(--cor-texto)) 58%,
        var(--cor-fundo-cadastro, var(--cor-fundo)) 42%
    ) !important;
}

/* Campos nao editaveis usam a superficie da pagina levemente escurecida para
   permanecerem distintos dos campos editaveis sem perder a personalizacao. */
body.page-family-cadastro :is(input, select, textarea):is([readonly], :disabled),
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista) :is(input, select, textarea):is([readonly], :disabled),
:is(#campo_venda, #campo_orcamento, #container-pdv)
    :is(input, select, textarea):is([readonly], :disabled) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background-color: color-mix(in srgb, var(--cor-fundo-cadastro, var(--cor-fundo)) 94%, black 6%) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
    -webkit-text-fill-color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
    opacity: 1 !important;
}

body.page-family-cadastro .select2-container--default.select2-container--disabled
    :is(.select2-selection--single, .select2-selection--multiple),
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista)
    .select2-container--default.select2-container--disabled
    :is(.select2-selection--single, .select2-selection--multiple) {
    border-color: var(--cor-borda-cadastro, var(--cor-borda)) !important;
    background-color: color-mix(in srgb, var(--cor-fundo-cadastro, var(--cor-fundo)) 94%, black 6%) !important;
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
    opacity: 1 !important;
}

body.page-family-cadastro .select2-container--default.select2-container--disabled
    :is(.select2-selection__rendered, .select2-selection__placeholder, .select2-selection__choice),
body:not(.page-family-cadastro, .page-family-listagem, .page-family-relatorio, .page-family-detalhes)
    .form-container:not(.lista)
    .select2-container--default.select2-container--disabled
    :is(.select2-selection__rendered, .select2-selection__placeholder, .select2-selection__choice) {
    color: var(--cor-texto-cadastro, var(--cor-texto)) !important;
}
