/* Camada final: deve ser carregada depois dos estilos legados e das paginas. */
html.alto-contraste-pendente body,
body.alto-contraste {
    --cor-ac-preto: #000;
    --cor-ac-branco: #fff;
    --cor-ac-amarelo: #ffd400;
    --cor-primaria: var(--cor-ac-amarelo);
    --cor-sobre-primaria: var(--cor-ac-preto);
    --cor-secundaria: var(--cor-ac-amarelo);
    --cor-sobre-secundaria: var(--cor-ac-preto);
    --cor-erro: var(--cor-ac-amarelo);
    --cor-sobre-erro: var(--cor-ac-preto);
    --cor-fundo: var(--cor-ac-preto);
    --cor-sobre-fundo: var(--cor-ac-branco);
    --cor-superficie: var(--cor-ac-preto);
    --cor-sobre-superficie: var(--cor-ac-branco);
    --cor-superficie-var: var(--cor-ac-preto);
    --cor-sobre-superficie-var: var(--cor-ac-branco);
    --cor-contorno: var(--cor-ac-branco);
    --cor-linha: var(--cor-ac-branco);
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-branco) !important;
}

html.alto-contraste-pendente body main,
body.alto-contraste main,
body.alto-contraste .inertia-app-shell,
body.alto-contraste .bg-fundo,
body.alto-contraste .bg-superficie,
body.alto-contraste .bg-superficie-var,
body.alto-contraste .card,
body.alto-contraste .modal,
body.alto-contraste dialog,
body.alto-contraste .dialog-container,
body.alto-contraste .atualizacao-modal,
body.alto-contraste .request-loading,
body.alto-contraste .request-loading__indicator {
    background-color: var(--cor-ac-preto) !important;
    background-image: none !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste :is(#menu, #menu .menu, #menu .dd, #menu .dd-mobile, .atualizacao-overlay, .menu-backdrop) {
    background-color: var(--cor-ac-preto) !important;
    background-image: none !important;
    color: var(--cor-ac-branco) !important;
    border-color: var(--cor-ac-branco) !important;
}

/* A barra de acessibilidade mantém uma aparência própria no modo normal,
 * mas volta à paleta estrita preto/branco/amarelo quando ativado. */
body.alto-contraste :is(.accessibility-bar, .mobile-accessibility-bar) {
    background: var(--cor-ac-preto) !important;
    border-bottom-color: var(--cor-ac-branco) !important;
}

body.alto-contraste #menu :is(a, button):hover,
body.alto-contraste #menu :is(a, button)[aria-expanded='true'] {
    background-color: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste :is(h1, h2, h3, h4, h5, h6, p, span, label, legend, small, td, th, li, dt, dd) {
    color: inherit;
}

body.alto-contraste :is(a, a:visited, .txt-link) {
    color: var(--cor-ac-amarelo) !important;
    text-decoration: underline;
}

body.alto-contraste :is(button, [role='button'], input, select, textarea, .card, dialog, .modal, table, th, td, .alert, .badge, .chip) {
    border-color: var(--cor-ac-branco) !important;
    box-shadow: none !important;
}

body.alto-contraste :is(input, select, textarea) {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-branco) !important;
    border: 2px solid var(--cor-ac-branco) !important;
}

body.alto-contraste :is(input[type='checkbox'], input[type='radio']) {
    accent-color: var(--cor-ac-amarelo);
}

body.alto-contraste :is(input, select, textarea)::placeholder {
    color: var(--cor-ac-branco) !important;
    opacity: 1;
}

/* Não permitir que o preenchimento automático do navegador introduza uma
 * cor que não pertence ao tema normal (inclusive no tema escuro). */
body:not(.alto-contraste) :is(input, textarea, select):-webkit-autofill,
body:not(.alto-contraste) :is(input, textarea, select):-webkit-autofill:hover,
body:not(.alto-contraste) :is(input, textarea, select):-webkit-autofill:focus,
body:not(.alto-contraste) :is(input, textarea, select):-webkit-autofill:active {
    -webkit-text-fill-color: var(--cor-sobre-superficie) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--cor-superficie) inset !important;
    box-shadow: 0 0 0 1000px var(--cor-superficie) inset !important;
    caret-color: var(--cor-sobre-superficie);
}

/* O Chrome aplica uma camada azul-clara aos campos preenchidos
 * automaticamente. A sombra interna é a forma suportada de neutralizá-la. */
body.alto-contraste :is(input, textarea, select):-webkit-autofill,
body.alto-contraste :is(input, textarea, select):-webkit-autofill:hover,
body.alto-contraste :is(input, textarea, select):-webkit-autofill:focus,
body.alto-contraste :is(input, textarea, select):-webkit-autofill:active {
    -webkit-text-fill-color: var(--cor-ac-branco) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--cor-ac-preto) inset !important;
    box-shadow: 0 0 0 1000px var(--cor-ac-preto) inset !important;
    caret-color: var(--cor-ac-branco);
}

body.alto-contraste button {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-branco) !important;
    border: 2px solid var(--cor-ac-branco) !important;
}

body.alto-contraste :is(button.btn-pre, button.btn-primary, .btn-flu, .btn-flu-g) {
    background: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-amarelo) !important;
}

body.alto-contraste :is(button, .btn-pre, .btn-cont, .btn-txt, .btn-flu, .btn-flu-g, a, input, select, textarea, [role='button'], [tabindex]):focus-visible {
    outline: 3px solid var(--cor-ac-branco) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 6px var(--cor-ac-preto) !important;
}

body.alto-contraste :is(button, input, select, textarea):disabled,
body.alto-contraste [aria-disabled='true'] {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-branco) !important;
    border: 2px dashed var(--cor-ac-branco) !important;
    opacity: 1;
}

body.alto-contraste :is(.erro, .error, .invalid, [aria-invalid='true'], .alert-danger, .alert-warning, .alert-success) {
    color: var(--cor-ac-branco) !important;
    border-color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste :is(.elev1, .elev2, .elev3, .elev4, .elev5) {
    border: 2px solid var(--cor-ac-branco) !important;
    box-shadow: none !important;
}

/* Orientações do modal "Incluir itens" (Pré-postagem). Os painéis usam
 * cores literais no CSS legado e precisam manter texto e limites visíveis. */
body.alto-contraste #modalIncluiItens .card-descricao-item,
body.alto-contraste #modalIncluiItens .card-descricao-item__body,
body.alto-contraste #modalIncluiItens .card-coluna-descricao,
body.alto-contraste #modalIncluiItens .card-dica-descricao,
body.alto-contraste #modalIncluiItens .card-exemplo-descricao {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-branco) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste #modalIncluiItens .card-descricao-item__header,
body.alto-contraste #modalIncluiItens .card-descricao-item__body {
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste #modalIncluiItens :is(
    .card-descricao-item__titulo-wrap h3,
    .card-descricao-item__titulo-wrap p,
    .card-coluna-descricao h4,
    .card-coluna-descricao li,
    .card-coluna-descricao li span,
    .card-dica-descricao p,
    .card-exemplo-descricao
) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste #modalIncluiItens :is(
    .card-descricao-item__toggle,
    .card-dica-descricao strong,
    .card-coluna-descricao h4
) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste #modalIncluiItens :is(
    .card-descricao-item__icone-info,
    .card-lista-icone--ok,
    .card-lista-icone--erro
) {
    background: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste #modalIncluiItens .card-lista-icone--erro i {
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste #modalIncluiItens :is(.card-dica-descricao, .card-exemplo-descricao) {
    border: 2px solid var(--cor-ac-amarelo) !important;
}

/* Etapa "Informações complementares" da pré-postagem. Esta etapa possui
 * cartões e textos com cores literais em componentes independentes. */
body.alto-contraste .detalhes-native {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detalhes-native > h1,
body.alto-contraste .detalhes-native :is(.restricoes-native, .due-native) > h1 {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .detalhes-native :is(
    .card-detalhe,
    .documentos-native,
    .due-card,
    .restricoes-card,
    .restricao,
    .form-documento,
    .painel-docs,
    .fispq-criterios-toggle,
    .fispq-criterios-conteudo,
    .fispq-descricao
) {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
    box-shadow: none !important;
}

body.alto-contraste .detalhes-native :is(
    .documentos-native,
    .restricoes-native,
    .due-native
) :is(h2, h3, h4, h5, h6, p, span, strong, small, label, legend) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detalhes-native :is(
    .restricao-divider,
    .restricao,
    .restricoes-card,
    .painel-docs,
    .fispq-criterios-toggle,
    .fispq-criterios-conteudo
) {
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detalhes-native .restricao-divider {
    border-left-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detalhes-native .restricao-icone {
    filter: brightness(0) saturate(100%) invert(79%) sepia(96%) saturate(1135%) hue-rotate(357deg) brightness(103%) contrast(106%) !important;
}

/* explosivo.png é o único ícone de restrição sem canal alfa. O recorte evita
 * que o fundo da imagem se transforme em um quadrado amarelo. */
body.alto-contraste .detalhes-native .restricao:last-child .restricao-icone {
    border-radius: 50%;
    clip-path: circle(50%);
}

body.alto-contraste .detalhes-native .ajuda {
    background: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
    border: 1px solid var(--cor-ac-amarelo) !important;
}

body.alto-contraste .detalhes-native :is(.painel-titulo, .fispq-label-arquivo) {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-amarelo) !important;
}

/* Os diálogos de ajuda são teletransportados para o body e não herdam as
 * regras de .detalhes-native. */
body.alto-contraste .dialog-restricao {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
}

body.alto-contraste .dialog-restricao :is(h1, h2, h3, h4, h5, h6, p, span, strong) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .dialog-restricao .dialog-header-restricao {
    border-bottom-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .dialog-restricao .dialog-header-restricao h4 {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .dialog-restricao .dialog-link-legislacao {
    color: var(--cor-ac-amarelo) !important;
}

/* Resumo da pré-postagem: o CSS da página usa tons fixos nos destaques. */
body.alto-contraste .resumo-vue .valores-container::before {
    color: var(--cor-ac-amarelo) !important;
    border-bottom-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .resumo-vue .pacote .protecao.protegido {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
}

body.alto-contraste .resumo-vue .pacote .protecao.protegido :is(p, strong, span) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .resumo-vue .confirmacao-passo > a.btn-pre {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .request-loading__label {
    color: var(--cor-ac-branco) !important;
}

/* Listagem "Minhas Remessas". A tabela usa cores explícitas do tema claro. */
body.alto-contraste .remessas-page .page-header p,
body.alto-contraste .remessas-page .table-toolbar,
body.alto-contraste .remessas-page .table-footer {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .remessas-page .remessas-table,
body.alto-contraste .remessas-page .remessas-table :is(tbody, tr, td) {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-branco) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .remessas-page .remessas-table thead th {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .remessas-page .sort-button {
    background: transparent !important;
    border: 0 !important;
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .remessas-page .icone-tipo-remessa {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .remessas-page .requirement-dropdown {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
}

/* Consulta de exigências / pendências de postagem. */
body.alto-contraste .exigencias-page {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .exigencias-page :is(.filter-panel, .results-panel) {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
    box-shadow: none !important;
}

body.alto-contraste .exigencias-page :is(.filter-panel h2, .results-heading h2) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .exigencias-page .results-heading span,
body.alto-contraste .exigencias-page .filter-form label {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .exigencias-page table,
body.alto-contraste .exigencias-page :is(tbody, tr, td) {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-branco) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .exigencias-page th {
    background: var(--cor-ac-preto) !important;
    color: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .exigencias-page .status-badge {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .exigencias-page :is(.btn-limpar, .btn-visualizar, .btn-resolver, .voltar, .pagination button) {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .exigencias-page .btn-pesquisar,
body.alto-contraste .exigencias-page .pagination button.active {
    background: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

/* Exceção semântica: os status mantêm sua cor de fundo, com contraste
 * suficiente no texto e uma borda explícita para não depender só da cor. */
body.alto-contraste .exigencias-page .status-badge.status-aprovado {
    background: #dff5e7 !important;
    border-color: #16713a !important;
    color: #16713a !important;
}

body.alto-contraste .exigencias-page .status-badge.status-recusado {
    background: #fde3e3 !important;
    border-color: #a82424 !important;
    color: #a82424 !important;
}

body.alto-contraste .exigencias-page .status-badge.status-cancelado {
    background: #edf0f3 !important;
    border-color: #52667a !important;
    color: #52667a !important;
}

body.alto-contraste .exigencias-page .status-badge.status-expirado {
    background: #fff1d7 !important;
    border-color: #9a6200 !important;
    color: #9a6200 !important;
}

body.alto-contraste .exigencias-page .status-badge.status-pendente {
    background: #ffd500 !important;
    border-color: #443e00 !important;
    color: #443e00 !important;
}

/* Pendências de postagem: resumo, conversa, anexos e retificações. */
body.alto-contraste .pendencias-page,
body.alto-contraste .pendencias-page :is(p, dt, dd, label, strong, em, h2, h3, h4) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .pendencias-page :is(.resumo-item, .bg-chat-mensagem, .upload-documento, .exigencia-item, .form-secao, .arquivo) {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
    box-shadow: none !important;
}

body.alto-contraste .pendencias-page .resumo-item > i,
body.alto-contraste .pendencias-page .upload-documento h2 {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .pendencias-page :is(.resposta-enviada, .arquivo-enviado-corpo) {
    background: var(--cor-ac-amarelo) !important;
    border: 2px solid var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste .pendencias-page :is(.resposta-enviada, .arquivo-enviado-corpo) :is(p, strong, em, i) {
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste .pendencias-page .arquivo-enviado-corpo :is(.arquivo-confirmado, .btn-icone) {
    background: var(--cor-ac-branco) !important;
    border: 2px solid var(--cor-ac-preto) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste :is(.modal-overlay .painel-retificacao, .modal-overlay .orientacao, .modal-overlay .cinco-rs) {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .modal-overlay .painel-retificacao :is(h2, h3, h4, p, label, span, strong) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .modal-overlay .painel-retificacao :is(header, footer) {
    border-color: var(--cor-ac-branco) !important;
}

/* A página usa a variante legada .btn-primario, que não é coberta pela
 * regra global de botões primários. */
body.alto-contraste .pendencias-page .btn-primario {
    background: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste .pendencias-page .btn-txt {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-amarelo) !important;
}

/* Modal de detalhamento da remessa (renderizado via Teleport). */
body.alto-contraste .detail-dialog {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detail-dialog :is(
    .info-resumo,
    .package-heading,
    .weight-summary,
    .coverage
) {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detail-dialog :is(p, span, strong, h4, li) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detail-dialog :is(
    .dialog-header h2,
    .section-title,
    .package-title h4,
    .address-heading h4,
    .package-item strong,
    .service-block > strong,
    .total-block > strong
) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .detail-dialog :is(.summary-icon, .package-icon) {
    background: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste .detail-dialog :is(.item-info strong, .weight-summary strong, .package-weight strong) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .detail-dialog .item-badge {
    background: var(--cor-ac-preto) !important;
    border: 1px solid var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .detail-dialog :is(.address-card, .package, .service-summary) {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .detail-dialog :is(.address-card p > i, .section-title > i, .service-note > i) {
    color: var(--cor-ac-amarelo) !important;
}

/* Modal de anexos da remessa (renderizado via Teleport). */
body.alto-contraste :is(.attachments-dialog, .confirmation-dialog) {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .attachments-dialog :is(p, span, small, strong, label, h4),
body.alto-contraste .confirmation-dialog :is(p, strong) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .attachments-dialog :is(
    .attachments-header h2,
    .document-types-section > h3,
    .attached-section h3,
    .document-type-copy h4
),
body.alto-contraste .confirmation-dialog h2 {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .attachments-dialog :is(.upload-intro, .attachment-note, .attachment-type, .file-row) {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .attachments-dialog .attachment-note {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .attachments-dialog :is(.upload-intro-icon, .document-icon) {
    background: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste .attachments-dialog :is(.upload-intro-folder, .attachment-note > i, .document-open-icon) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .attachments-dialog .upload-button,
body.alto-contraste .attachments-dialog .file-action,
body.alto-contraste .confirmation-dialog .cancel-button {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .confirmation-dialog .confirm-delete-button,
body.alto-contraste .attachments-dialog .close-action {
    background: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

/* Modal "Lista de documentos gerados". */
body.alto-contraste .documents-dialog {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .documents-dialog :is(p, span, small, strong) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .documents-dialog :is(.documents-header h2, .document-types-section h3) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .documents-dialog :is(.documents-intro-copy strong, .document-copy strong) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .documents-dialog :is(.documents-intro, .document-note, .document-action) {
    background: var(--cor-ac-preto) !important;
    border-color: var(--cor-ac-branco) !important;
}

body.alto-contraste .documents-dialog .document-note {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .documents-dialog :is(.documents-intro-icon, .document-icon) {
    background: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste .documents-dialog :is(.documents-intro-folder, .document-open-icon, .document-note > i) {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .documents-dialog .close-action {
    background: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

/* Modal de exclusão de postagem. */
body.alto-contraste .delete-dialog {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .delete-dialog :is(.delete-header p, .delete-warning-copy span, .remessa-reference span) {
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .delete-dialog .delete-header h2,
body.alto-contraste .delete-dialog .remessa-reference strong {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .delete-dialog :is(.delete-warning, .remessa-reference) {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-amarelo) !important;
}

body.alto-contraste .delete-dialog .delete-warning-icon {
    background: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

body.alto-contraste .delete-dialog .delete-warning-copy strong {
    color: var(--cor-ac-amarelo) !important;
}

body.alto-contraste .delete-dialog .cancel-button {
    background: var(--cor-ac-preto) !important;
    border: 2px solid var(--cor-ac-branco) !important;
    color: var(--cor-ac-branco) !important;
}

body.alto-contraste .delete-dialog .delete-button {
    background: var(--cor-ac-amarelo) !important;
    border-color: var(--cor-ac-amarelo) !important;
    color: var(--cor-ac-preto) !important;
}

/* O fundo dos modais precisa reduzir a concorrência visual com o diálogo.
 * Uma camada quase opaca mantém o contexto perceptível sem misturá-lo ao modal. */
body.alto-contraste :is(
    .dialog-backdrop,
    .modal-overlay,
    .confirmation-backdrop,
    .overlay-restricao,
    .overlay-documento,
    .atualizacao-overlay
) {
    background: rgba(0, 0, 0, 0.92) !important;
    backdrop-filter: brightness(0.25) grayscale(1);
}

@media (forced-colors: active) {
    body.alto-contraste :is(button, input, select, textarea, a) { forced-color-adjust: auto; }
}
