@charset "UTF-8";
/* ==========================================================================
   DigProc - padrao visual (UniGUI)
   Somente a tela de login e o login do suporte (classes dp-login-*, dp-btn-*,
   dp-ico-*, dp-suporte) e as caixas de mensagem (x-message-box, no fim). As classes sao aplicadas pelos .pas (AplicarEstiloVisual),
   via evento afterrender -> sender.addCls(...). Telas sem essas classes nao mudam.

   Fonte: usa Inter se estiver disponivel; senao Segoe UI (Windows) / system-ui.
   Para servir a Inter pelo proprio servidor, coloque os arquivos
   inter-latin-400/500/600/700-normal.woff2 em files/fonts e descomente o
   bloco @font-face abaixo.
   ========================================================================== */

/*
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/inter-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/inter-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/inter-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/inter-latin-700-normal.woff2") format("woff2"); }
*/

:root {
  --dp-primaria: #0E5AA7;
  --dp-primaria-hover: #0B4A8A;
  --dp-foco: rgba(14, 90, 167, 0.16);
  --dp-marca: #0B2E59;
  --dp-texto: #16202C;
  --dp-texto-2: #5A6575;
  --dp-rotulo: #344054;
  --dp-borda-campo: #CDD5DF;
  --dp-borda: #E6EAF0;
  --dp-desabilitado: #F1F4F7;
  --dp-hover: #EEF2F6;
  --dp-fonte: Inter, "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
}

/* --------------------------------------------------------------------------
   Janela do login (TUniLoginForm, BorderStyle = bsNone)
   -------------------------------------------------------------------------- */
.x-window:has(.dp-login-brand) {
  border: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  box-shadow: 0 24px 48px -12px rgba(16, 24, 40, 0.28) !important;
}
.x-window:has(.dp-login-brand) .x-window-body {
  background: #FFFFFF !important;
  border: 0 !important;
}

/* --------------------------------------------------------------------------
   Metade esquerda: marca (pnlDadosSistema)
   -------------------------------------------------------------------------- */
.dp-login-brand,
.dp-login-brand .x-panel-body {
  border: 0 !important;
  background: var(--dp-marca) url("../icons/dp-rede.svg") no-repeat right -170px bottom -150px / 520px 520px !important;
}
.dp-login-logo {
  background: #FFFFFF !important;
  border-radius: 16px !important;
}
.dp-login-titulo {
  color: #FFFFFF !important;
  font: 600 28px/1.15 var(--dp-fonte) !important;
  letter-spacing: -0.02em;
  white-space: normal !important;
  text-align: left !important;
}
.dp-login-subtitulo {
  color: #C3D4EA !important;
  font: 400 15px/1.5 var(--dp-fonte) !important;
  white-space: normal !important;
  text-align: left !important;
}
.dp-login-rodape {
  color: #A9C1DE !important;
  font: 400 12.5px/18px var(--dp-fonte) !important;
  text-align: left !important;
}
.dp-login-copyright {
  color: #E3ECF7 !important;
  font: 500 12.5px/18px var(--dp-fonte) !important;
  text-align: left !important;
  cursor: pointer;
}
.dp-login-copyright:hover {
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Metade direita: entidade, acesso interno e externo
   -------------------------------------------------------------------------- */
.dp-login-main,
.dp-login-painel,
.dp-login-painel .x-panel-body {
  background: #FFFFFF !important;
  border: 0 !important;
}

.dp-login-brasao {
  border: 1px solid var(--dp-borda) !important;
  border-radius: 12px !important;
  background: #FFFFFF !important;
  overflow: hidden;
}
.dp-login-entidade {
  color: var(--dp-texto) !important;
  font: 600 17px/22px var(--dp-fonte) !important;
  text-align: left !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dp-login-entidade-info {
  color: var(--dp-texto-2) !important;
  font: 400 13px/18px var(--dp-fonte) !important;
  text-align: left !important;
}
.dp-login-entidade-site {
  color: var(--dp-primaria) !important;
  font: 500 13px/18px var(--dp-fonte) !important;
  text-align: left !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dp-login-entidade-site::before {
  content: "\00B7\00A0";
  color: var(--dp-texto-2);
}

.dp-login-h2 {
  color: var(--dp-texto) !important;
  font: 600 22px/30px var(--dp-fonte) !important;
  letter-spacing: -0.01em;
  text-align: left !important;
}
.dp-login-rotulo {
  color: var(--dp-rotulo) !important;
  font: 500 13px/18px var(--dp-fonte) !important;
}
.dp-login-usuario {
  color: var(--dp-texto-2) !important;
  font: 500 13px/18px var(--dp-fonte) !important;
}

/* Campos (TUniEdit / TUniDateTimePicker) */
.dp-login-campo .x-form-trigger-wrap {
  border: 1px solid var(--dp-borda-campo) !important;
  border-radius: 10px !important;
  background: #FFFFFF !important;
  box-sizing: border-box;
  overflow: hidden;
}
.dp-login-campo .x-form-trigger-wrap:focus-within {
  border-color: var(--dp-primaria) !important;
  box-shadow: 0 0 0 4px var(--dp-foco) !important;
}
.dp-login-campo .x-form-text-wrap {
  border: 0 !important;
  background: transparent !important;
}
.dp-login-campo input.x-form-field {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent none !important;
  padding: 0 12px !important;
  color: var(--dp-texto) !important;
  font: 400 14px var(--dp-fonte) !important;
}
.dp-ico-usuario input.x-form-field {
  padding-left: 40px !important;
  background: transparent url("../icons/dp-usuario.svg") no-repeat 12px center / 18px 18px !important;
}
.dp-ico-senha input.x-form-field {
  padding-left: 40px !important;
  background: transparent url("../icons/dp-senha.svg") no-repeat 12px center / 18px 18px !important;
}
.dp-login-data .x-form-trigger {
  border: 0 !important;
  background-color: transparent !important;
}
/* Data bloqueada pela entidade (PERMMUDARDATA = Nao) */
.dp-login-campo.x-item-disabled,
.dp-login-campo.x-item-disabled * {
  opacity: 1 !important;
}
.dp-login-campo.x-item-disabled .x-form-trigger-wrap {
  background: var(--dp-desabilitado) !important;
  border-color: var(--dp-borda) !important;
}
.dp-login-campo.x-item-disabled input.x-form-field {
  color: var(--dp-texto-2) !important;
}

/* Botoes */
.x-btn.dp-btn-primario,
.x-btn.dp-btn-secundario {
  border-radius: 10px !important;
  background-image: none !important;
  box-shadow: none !important;
}
.x-btn.dp-btn-primario {
  background-color: var(--dp-primaria) !important;
  border: 1px solid var(--dp-primaria) !important;
}
.x-btn.dp-btn-primario.x-btn-over,
.x-btn.dp-btn-primario:hover {
  background-color: var(--dp-primaria-hover) !important;
  border-color: var(--dp-primaria-hover) !important;
}
.x-btn.dp-btn-primario .x-btn-inner {
  color: #FFFFFF !important;
  font: 600 15px var(--dp-fonte) !important;
}
.x-btn.dp-btn-secundario {
  background-color: #FFFFFF !important;
  border: 1px solid var(--dp-borda-campo) !important;
}
.x-btn.dp-btn-secundario.x-btn-over,
.x-btn.dp-btn-secundario:hover {
  background-color: #F7F9FC !important;
  border-color: #B8C2CF !important;
}
.x-btn.dp-btn-secundario .x-btn-inner {
  color: #334155 !important;
  font: 500 14px var(--dp-fonte) !important;
}
.x-btn.dp-btn-pill {
  border-radius: 999px !important;
}
.x-btn.dp-btn-primario.x-btn-focus,
.x-btn.dp-btn-secundario.x-btn-focus {
  box-shadow: 0 0 0 4px var(--dp-foco) !important;
}
.dp-login-acessar .x-btn-inner::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-left: 8px;
  vertical-align: -4px;
  background: url("../icons/dp-seta-branca.svg") no-repeat center / 18px 18px;
}
.dp-ico-portal .x-btn-inner::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 8px;
  vertical-align: -4px;
  background: url("../icons/dp-portal.svg") no-repeat center / 18px 18px;
}

/* Divisor "Usuarios externos" */
.dp-login-divisor {
  display: flex !important;
  align-items: center;
  gap: 12px;
  color: var(--dp-texto-2) !important;
  font: 500 13px/18px var(--dp-fonte) !important;
}
.dp-login-divisor::before,
.dp-login-divisor::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--dp-borda);
}

.dp-login-govbr {
  cursor: pointer;
}

/* ==========================================================================
   Fase 1b - fundo do login (opcao C: faixa azul institucional) e ajustes
   Aplicado somente enquanto o login esta na tela (body:has(.dp-login-brand)).
   ========================================================================== */
/* A pagina do login tem altura 0 (o cartao e posicionado por cima), por isso o
   fundo e ancorado na janela do navegador (background-attachment: fixed). */
body:has(.dp-login-brand) {
  background-color: #F2F5F9 !important;
  background-image:
    url("../images/dp-fundo-login.svg"),
    linear-gradient(to bottom, #164580 0, #164580 47%, #F2F5F9 47%, #F2F5F9 100%) !important;
  background-size: 100% 47%, 100% 100% !important;
  background-position: center top, center top !important;
  background-repeat: no-repeat, no-repeat !important;
  background-attachment: fixed, fixed !important;
}
/* Marca da Publica no rodape da pagina */
body:has(.dp-login-brand)::after {
  content: "";
  position: fixed;
  left: 50%;
  bottom: 28px;
  width: 140px;
  height: 56px;
  transform: translateX(-50%);
  background: url("../images/dp-publica.png") center / contain no-repeat;
  pointer-events: none;
}
@media (max-height: 720px) {
  body:has(.dp-login-brand)::after { display: none; }
}

/* Remove a moldura do tema em volta do cartao (920 x 560 = tamanho do form) */
.x-window:has(.dp-login-brand) {
  padding: 0 !important;
  border-width: 0 !important;
  width: 920px !important;
  height: 560px !important;
}
.x-window:has(.dp-login-brand) > .x-window-body,
.x-window:has(.dp-login-brand) > .x-window-bodyWrap,
.x-window:has(.dp-login-brand) > .x-window-bodyWrap > .x-window-body {
  left: 0 !important;
  top: 0 !important;
}
body:has(.dp-login-brand) .x-css-shadow {
  display: none !important;
}

/* gov.br sem fundo cinza */
.dp-login-govbr,
.dp-login-govbr * {
  background-color: transparent !important;
}

/* Icone do calendario centralizado no campo de data */
.dp-login-data .x-form-trigger {
  width: 40px !important;
  height: 42px !important;
  margin: 0 !important;
  border: 0 !important;
  background: url("../icons/dp-calendario.svg") no-repeat center / 18px 18px !important;
  cursor: pointer;
}

/* ==========================================================================
   Fase 1c - login do suporte tecnico (uFrmLoginSuporte, 440 x 340)
   Reaproveita as classes do login (dp-login-*, dp-btn-*, dp-ico-*).
   ========================================================================== */
.x-window:has(.dp-suporte) {
  padding: 0 !important;
  border-width: 0 !important;
  width: 440px !important;
  height: 340px !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  box-shadow: 0 24px 48px -12px rgba(16, 24, 40, 0.35) !important;
}
.x-window:has(.dp-suporte) > .x-window-body,
.x-window:has(.dp-suporte) > .x-window-bodyWrap,
.x-window:has(.dp-suporte) > .x-window-bodyWrap > .x-window-body {
  left: 0 !important;
  top: 0 !important;
  background: #FFFFFF !important;
  border: 0 !important;
}
.dp-suporte .dp-login-h2 {
  font-size: 19px !important;
  white-space: nowrap;
}
/* Escurece o login por tras enquanto o suporte esta aberto. So vale com o login
   na tela: o form do suporte pode continuar na pagina depois do login e, sem
   essa condicao, escurecia as mascaras das outras telas (group box desabilitado) */
body:has(.dp-login-brand):has(.dp-suporte) .x-mask {
  background-color: rgba(11, 46, 89, 0.45) !important;
  opacity: 1 !important;
}

/* ==========================================================================
   Caixas de mensagem (MessageDlg / tbConf / tbAtencao / tbMsg / tbErro...)
   Sao as janelas x-message-box do Ext, criadas fora dos forms; por isso as
   regras abaixo valem para todas as telas, sem classe aplicada pelo Delphi.
   Cada tipo (atencao, erro, informacao, pergunta) tem a sua cor, aplicada na
   faixa do topo, no cabecalho, no titulo e no botao principal. O titulo
   padrao vem em ingles ("Confirm", "Warning"...); aqui ele e trocado pelo
   equivalente em portugues de acordo com o icone da mensagem.
   Espacamentos so com box-shadow/translate e dentro das medidas que o Ext
   calcula, para nao cortar a janela nem os botoes.
   ========================================================================== */

/* Cores por tipo (informacao e o padrao) */
.x-message-box {
  --dlg-cor: #0E5AA7;
  --dlg-claro: #F0F6FD;
  --dlg-linha: #D5E4F5;
  --dlg-titulo: #0B3F78;
  --dlg-btn: var(--dp-primaria);
  --dlg-btn-hover: var(--dp-primaria-hover);
  --dlg-foco: rgba(14, 90, 167, 0.22);
}
.x-message-box:has(.x-message-box-warning) {
  --dlg-cor: #DC6803;
  --dlg-claro: #FFF7EC;
  --dlg-linha: #FBE2C2;
  --dlg-titulo: #93370D;
  --dlg-btn: #DC6803;
  --dlg-btn-hover: #B54708;
  --dlg-foco: rgba(220, 104, 3, 0.25);
}
.x-message-box:has(.x-message-box-error) {
  --dlg-cor: #D92D20;
  --dlg-claro: #FEF3F2;
  --dlg-linha: #FBD5D1;
  --dlg-titulo: #912018;
  --dlg-btn: #D92D20;
  --dlg-btn-hover: #B42318;
  --dlg-foco: rgba(217, 45, 32, 0.22);
}
.x-message-box:has(.x-message-box-question) {
  --dlg-cor: #3559C7;
  --dlg-claro: #F2F5FD;
  --dlg-linha: #D8E0F7;
  --dlg-titulo: #23398A;
}

/* Janela */
.x-window.x-message-box {
  background-color: #FFFFFF !important;
  border-color: #FFFFFF !important;
  border-radius: 14px !important;
  box-shadow: 0 0 0 1px rgba(16, 24, 40, 0.06), 0 28px 56px -12px rgba(16, 24, 40, 0.40) !important;
}

/* Cabecalho: faixa colorida no topo, fundo claro na cor do tipo */
.x-message-box .x-window-header-default {
  background: var(--dlg-claro) none !important;
  border-color: var(--dlg-claro) !important;
  border-radius: 14px 14px 0 0 !important;
  box-shadow: inset 0 4px 0 var(--dlg-cor), inset 0 -1px 0 var(--dlg-linha) !important;
}
.x-message-box .x-window-header-default .x-title-text {
  color: var(--dlg-titulo) !important;
  font-family: var(--dp-fonte) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
}
.x-message-box .x-window-body-default {
  background: #FFFFFF !important;
  border-color: #FFFFFF !important;
}

/* Titulo em portugues conforme o tipo da mensagem */
.x-message-box:has(.x-message-box-question) .x-window-header-default .x-title-text,
.x-message-box:has(.x-message-box-warning) .x-window-header-default .x-title-text,
.x-message-box:has(.x-message-box-error) .x-window-header-default .x-title-text,
.x-message-box:has(.x-message-box-info) .x-window-header-default .x-title-text {
  font-size: 0 !important;
}
.x-message-box .x-window-header-default .x-title-text::after {
  color: var(--dlg-titulo);
  font: 700 16px/22px var(--dp-fonte);
}
.x-message-box:has(.x-message-box-question) .x-window-header-default .x-title-text::after { content: "Confirma\00E7\00E3o"; }
.x-message-box:has(.x-message-box-warning) .x-window-header-default .x-title-text::after  { content: "Aten\00E7\00E3o"; }
.x-message-box:has(.x-message-box-error) .x-window-header-default .x-title-text::after    { content: "Erro"; }
.x-message-box:has(.x-message-box-info) .x-window-header-default .x-title-text::after     { content: "Informa\00E7\00E3o"; }

/* Botao fechar (x) do cabecalho */
.x-message-box .x-tool-img.x-tool-close,
.x-message-box .x-tool-close {
  background: url("../icons/dp-limpar.svg") no-repeat center / 12px 12px !important;
  border-radius: 6px;
}
.x-message-box .x-tool-over .x-tool-img.x-tool-close,
.x-message-box .x-tool-close:hover {
  background-color: rgba(16, 24, 40, 0.06) !important;
}

/* Icones: circulo na cor do tipo, com anel claro em volta */
.x-message-box .x-message-box-icon.x-message-box-question,
.x-message-box .x-message-box-icon.x-message-box-warning,
.x-message-box .x-message-box-icon.x-message-box-error,
.x-message-box .x-message-box-icon.x-message-box-info {
  background-color: transparent !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: 32px 32px !important;
  border-radius: 50%;
  box-shadow: 0 0 0 5px var(--dlg-claro);
}
.x-message-box .x-message-box-question { background-image: url("../icons/dp-dlg-pergunta.svg") !important; }
.x-message-box .x-message-box-warning  { background-image: url("../icons/dp-dlg-atencao.svg") !important; }
.x-message-box .x-message-box-error    { background-image: url("../icons/dp-dlg-erro.svg") !important; }
.x-message-box .x-message-box-info     { background-image: url("../icons/dp-dlg-info.svg") !important; }

/* Texto da mensagem */
.x-message-box .x-window-text,
.x-message-box .x-form-display-field {
  color: #1D2939 !important;
  font-family: var(--dp-fonte) !important;
  font-size: 15px !important;
  line-height: 22px !important;
}

/* Campo de digitacao (Prompt / InputBox) */
.x-message-box .x-form-trigger-wrap {
  border: 1px solid var(--dp-borda-campo) !important;
  border-radius: 8px !important;
  overflow: hidden;
}
.x-message-box .x-form-trigger-wrap:focus-within,
.x-message-box .x-form-trigger-wrap-focus {
  border-color: var(--dlg-cor) !important;
  box-shadow: 0 0 0 3px var(--dlg-foco) !important;
}
.x-message-box .x-form-text-wrap,
.x-message-box input.x-form-text,
.x-message-box textarea.x-form-text {
  border: 0 !important;
  background-image: none !important;
  font-family: var(--dp-fonte) !important;
}

/* Rodape com os botoes: o Ext cria os 4 botoes na ordem OK, Sim, Nao,
   Cancelar e esconde os que nao se aplicam. OK e Sim (1o e 2o) sao a acao
   principal, na cor do tipo; Nao fica com contorno; Cancelar so com texto */
.x-message-box .x-toolbar-footer,
.x-message-box .x-toolbar-footer-docked-bottom {
  background: #FFFFFF none !important;
  border-color: #FFFFFF !important;
}
/* O Ext calcula a altura da janela antes do CSS (borda e raio dos botoes):
   sobe o rodape para os botoes nao encostarem/cortarem na borda de baixo */
.x-message-box .x-toolbar-footer {
  transform: translateY(-8px);
}
/* Os botoes ficaram mais altos que a faixa que o Ext reserva para eles e o
   x-box-inner (overflow hidden) cortava a parte de baixo: deixa transbordar */
.x-message-box .x-toolbar-footer,
.x-message-box .x-toolbar-footer .x-box-inner,
.x-message-box .x-toolbar-footer .x-box-target,
.x-window.x-message-box,
.x-message-box .x-window-body {
  overflow: visible !important;
}
.x-message-box .x-toolbar-footer .x-btn.x-btn {
  background: #FFFFFF none !important;
  border: 1px solid var(--dp-borda-campo) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.06) !important;
}
.x-message-box .x-toolbar-footer .x-btn.x-btn.x-btn-over,
.x-message-box .x-toolbar-footer .x-btn.x-btn:hover {
  background-color: #F7F9FC !important;
  border-color: #B8C2CF !important;
}
.x-message-box .x-toolbar-footer .x-btn .x-btn-inner {
  color: #344054 !important;
  font-family: var(--dp-fonte) !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
}
/* Principal (OK / Sim) */
.x-message-box .x-toolbar-footer .x-box-target > .x-btn.x-btn:nth-child(-n+2) {
  background-color: var(--dlg-btn) !important;
  border-color: var(--dlg-btn) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.10) !important;
}
.x-message-box .x-toolbar-footer .x-box-target > .x-btn.x-btn:nth-child(-n+2).x-btn-over,
.x-message-box .x-toolbar-footer .x-box-target > .x-btn.x-btn:nth-child(-n+2):hover {
  background-color: var(--dlg-btn-hover) !important;
  border-color: var(--dlg-btn-hover) !important;
}
.x-message-box .x-toolbar-footer .x-box-target > .x-btn:nth-child(-n+2) .x-btn-inner {
  color: #FFFFFF !important;
}
/* Cancelar (4o): so texto, para nao competir com Sim/Nao */
.x-message-box .x-toolbar-footer .x-box-target > .x-btn.x-btn:nth-child(4) {
  background: transparent none !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.x-message-box .x-toolbar-footer .x-box-target > .x-btn.x-btn:nth-child(4).x-btn-over,
.x-message-box .x-toolbar-footer .x-box-target > .x-btn.x-btn:nth-child(4):hover {
  background-color: #F2F4F7 !important;
}
.x-message-box .x-toolbar-footer .x-box-target > .x-btn:nth-child(4) .x-btn-inner {
  color: #475467 !important;
}
/* Foco: anel na cor do tipo no lugar do pontilhado do tema */
.x-message-box .x-toolbar-footer .x-btn *,
.x-message-box .x-toolbar-footer .x-btn *::before,
.x-message-box .x-toolbar-footer .x-btn *::after {
  outline: 0 !important;
}
.x-message-box .x-toolbar-footer .x-btn *::before,
.x-message-box .x-toolbar-footer .x-btn *::after {
  border-color: transparent !important;
}
.x-message-box .x-toolbar-footer .x-btn.x-btn.x-btn-focus {
  box-shadow: 0 0 0 3px var(--dlg-foco) !important;
}

/* Espacamentos: o Ext le o padding do CSS ao calcular a janela, entao aqui
   ele pode crescer sem cortar nada (conferido com os 4 tipos e Sim/Nao/Cancelar) */
.x-message-box .x-window-header-default {
  padding: 14px 18px 12px 20px !important;
}
.x-message-box .x-window-body-default {
  padding: 20px 24px 6px 24px !important;
}
.x-message-box .x-window-body .x-box-inner,
.x-message-box .x-window-body .x-box-target,
.x-message-box .x-window-body .x-container {
  overflow: visible !important;
}
/* Afasta o icone do texto sem mexer na largura que o Ext calculou */
.x-message-box .x-message-box-icon {
  transform: translateX(-6px);
}
.x-message-box .x-toolbar-footer {
  padding: 10px 16px 14px 16px !important;
}
.x-message-box .x-toolbar-footer .x-btn.x-btn {
  min-width: 96px;
  padding-top: 7px !important;
  padding-bottom: 7px !important;
}

/* --------------------------------------------------------------------------
   Aguarde (uFrmAguarde, BorderStyle = bsNone): cartao de processamento.
   O HTML vem do TfrmAguarde.MontarHtml; dp-ag-ind = sem progresso real.
   -------------------------------------------------------------------------- */
.x-window:has(.dp-ag) {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  box-shadow: 0 24px 48px -12px rgba(16, 24, 40, 0.35), 0 0 0 1px rgba(16, 24, 40, 0.06) !important;
}
.x-window:has(.dp-ag) .x-window-body,
.x-window:has(.dp-ag) .x-panel-body {
  background: #FFFFFF !important;
  border: 0 !important;
}
.x-window:has(.dp-ag) > .x-window-body,
.x-window:has(.dp-ag) > .x-window-bodyWrap,
.x-window:has(.dp-ag) > .x-window-bodyWrap > .x-window-body {
  left: 0 !important;
  top: 0 !important;
}
body:has(.dp-ag) .x-css-shadow {
  display: none !important;
}
.dp-ag {
  position: relative;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  padding: 16px 22px;
  font-family: var(--dp-fonte);
  color: #344054;
  cursor: progress;
}
.dp-ag-topo {
  display: flex;
  align-items: center;
  gap: 14px;
}
.dp-ag-spin {
  flex: none;
  width: 30px;
  height: 30px;
  box-sizing: border-box;
  border-radius: 50%;
  border: 3px solid #DCE6F2;
  border-top-color: var(--dp-marca);
  animation: dp-ag-gira 0.8s linear infinite;
}
.dp-ag-textos {
  min-width: 0;
  flex: 1;
  padding-right: 18px;
}
.dp-ag-tit {
  font-size: 15px;
  font-weight: 700;
  line-height: 20px;
  color: #16202C;
}
.dp-ag-txt {
  font-size: 13px;
  line-height: 18px;
  color: #475467;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dp-ag-barra {
  position: relative;
  margin-top: 18px;
  height: 6px;
  border-radius: 3px;
  background: #E6EAF0;
  overflow: hidden;
}
.dp-ag-barra i {
  display: block;
  height: 100%;
  border-radius: 3px;
  background: var(--dp-marca);
}
.dp-ag-ind .dp-ag-barra i {
  position: absolute;
  top: 0;
  width: 35% !important;
  animation: dp-ag-vai 1.2s ease-in-out infinite;
}
.dp-ag-rod {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: 12px;
  line-height: 16px;
  color: #667085;
  font-variant-numeric: tabular-nums;
}
.dp-ag-x {
  position: absolute;
  top: 8px;
  right: 10px;
  padding: 3px;
  font-size: 13px;
  line-height: 13px;
  color: #98A2B3;
  cursor: pointer;
}
.dp-ag-x:hover {
  color: #344054;
}
@keyframes dp-ag-gira {
  to { transform: rotate(360deg); }
}
@keyframes dp-ag-vai {
  0% { left: -35%; }
  100% { left: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .dp-ag-spin,
  .dp-ag-ind .dp-ag-barra i { animation-duration: 3s; }
}

/* --------------------------------------------------------------------------
   Temas de cor (USUARIOS.TEMA / ENTIDADE.TEMA), classe dp-tema-* no body,
   posta pelo DTMUniGui.AplicarTema: 1 azul, 2 cinza, 3 verde, 4 areia, 5 lilas, 6 marrom, 7 rosa.
   Base: tema classic do UniGUI (cinza usa o gray, da mesma familia). So cores
   de fundo e borda: nenhuma regra muda tamanho, margem ou posicao.
   As variaveis --dp-t-* tambem sao usadas pelo Painel web (uFrmViewDashboardWeb).
   -------------------------------------------------------------------------- */
body.dp-tema-azul {
  --dp-t-campo: #F8FAFD;
  --dp-t-fundo: #DCE6F2; --dp-t-painel: #F2F6FB; --dp-t-cartao: #F4F8FC;
  --dp-t-linha: #FAFCFE; --dp-t-zebra: #EEF4FA; --dp-t-cab: #E6EEF8;
  --dp-t-faixa: #D3E1F3; --dp-t-faixa2: #C5D7EE; --dp-t-borda: #C5D7EE;
  --dp-t-acento: #0E5AA7; --dp-t-acento-txt: #0B3F75; --dp-t-det: #E9F1FB;
}
body.dp-tema-cinza {
  --dp-t-campo: #F9FAFB;
  --dp-t-fundo: #E2E4E8; --dp-t-painel: #F3F4F6; --dp-t-cartao: #F3F4F6;
  --dp-t-linha: #F9F9FA; --dp-t-zebra: #EEEFF2; --dp-t-cab: #E8EAED;
  --dp-t-faixa: #D9DCE1; --dp-t-faixa2: #CBD0D7; --dp-t-borda: #CBD0D7;
  --dp-t-acento: #4B5563; --dp-t-acento-txt: #1F2937; --dp-t-det: #ECEDF0;
}
body.dp-tema-verde {
  --dp-t-campo: #F8FBF9;
  --dp-t-fundo: #DDEBE3; --dp-t-painel: #F1F7F3; --dp-t-cartao: #F3F8F5;
  --dp-t-linha: #FAFCFB; --dp-t-zebra: #EDF5F0; --dp-t-cab: #E3EFE8;
  --dp-t-faixa: #CFE3D7; --dp-t-faixa2: #BFD9CA; --dp-t-borda: #BFD9CA;
  --dp-t-acento: #2F7D5B; --dp-t-acento-txt: #1F5A41; --dp-t-det: #E8F2EC;
}
body.dp-tema-areia {
  --dp-t-campo: #FCFBF7;
  --dp-t-fundo: #EFE8D6; --dp-t-painel: #F9F6EE; --dp-t-cartao: #FBF8F0;
  --dp-t-linha: #FDFCF8; --dp-t-zebra: #F6F1E4; --dp-t-cab: #F3ECDB;
  --dp-t-faixa: #E8DCBF; --dp-t-faixa2: #DDCDA6; --dp-t-borda: #DDCDA6;
  --dp-t-acento: #A16207; --dp-t-acento-txt: #713F12; --dp-t-det: #F5EFDF;
}
body.dp-tema-lilas {
  --dp-t-campo: #FAF9FD;
  --dp-t-fundo: #E5E0EF; --dp-t-painel: #F5F3FA; --dp-t-cartao: #F7F5FB;
  --dp-t-linha: #FCFBFE; --dp-t-zebra: #F1EEF7; --dp-t-cab: #ECE8F4;
  --dp-t-faixa: #DCD3EC; --dp-t-faixa2: #CEC2E4; --dp-t-borda: #CEC2E4;
  --dp-t-acento: #6B4FA3; --dp-t-acento-txt: #4C3780; --dp-t-det: #EEEAF6;
}
body.dp-tema-marrom {
  --dp-t-campo: #FBF9F6;
  --dp-t-fundo: #E9E1D9; --dp-t-painel: #F6F2EE; --dp-t-cartao: #F8F5F1;
  --dp-t-linha: #FCFAF8; --dp-t-zebra: #F3EEE8; --dp-t-cab: #EFE8E0;
  --dp-t-faixa: #E2D5C8; --dp-t-faixa2: #D6C4B3; --dp-t-borda: #D6C4B3;
  --dp-t-acento: #7A4B2A; --dp-t-acento-txt: #573219; --dp-t-det: #F1EAE2;
}
body.dp-tema-rosa {
  --dp-t-campo: #FDF8FA;
  --dp-t-fundo: #F2DFE7; --dp-t-painel: #FBF4F7; --dp-t-cartao: #FCF6F9;
  --dp-t-linha: #FEFBFC; --dp-t-zebra: #F8EDF2; --dp-t-cab: #F6E7EE;
  --dp-t-faixa: #EBCFDB; --dp-t-faixa2: #E2BDCD; --dp-t-borda: #E2BDCD;
  --dp-t-acento: #B83A6E; --dp-t-acento-txt: #8A2452; --dp-t-det: #F7E9EF;
}
/* Grafite (tema 8, 10/11/2026): cinza escuro com texto escuro, meio-termo entre o Cinza e um tema preto;
   usa os cinzas sugeridos pelos usuarios (737373/888888/BBBBBB/CCCCCC) e a folha theme-gray, como o Cinza */
body.dp-tema-grafite {
  --dp-t-campo: #EDEDED;
  --dp-t-fundo: #8C8C8C; --dp-t-painel: #CCCCCC; --dp-t-cartao: #D4D4D4;
  --dp-t-linha: #DCDCDC; --dp-t-zebra: #CFCFCF; --dp-t-cab: #BBBBBB;
  --dp-t-faixa: #A6A6A6; --dp-t-faixa2: #999999; --dp-t-borda: #737373;
  --dp-t-acento: #374151; --dp-t-acento-txt: #111827; --dp-t-det: #C4C4C4;
}
/* Grafite: telas em HTML com cartoes cinza bem claro (no lugar do branco puro) e textos de apoio mais escuros;
   campos desabilitados menos transparentes (o 0.3 do classic some no cinza). So cor/opacidade. */
body.dp-tema-grafite {
  --dpb-ffffff: #E4E4E4; --dpf-5a6575: #2F3640; --dpf-9aa4b2: #3F4650;
}
body.dp-tema-grafite .x-form-item-default.x-item-disabled {
  opacity: .6;
}

/* Todos os temas: fundo dos paineis levemente tingido no lugar do branco puro
   (campos, grades e caixas de texto continuam brancos) */
body[class*="dp-tema-"] .x-panel-body-default {
  background-color: var(--dp-t-painel);
}

/* Verde, areia, lilas, marrom, rosa e grafite: cabecalhos, janelas e abas do classic (azuis) na cor do tema.
   O grafite usa a folha theme-gray, mas precisa destas regras para as barras e botoes nao ficarem claros. */
body.dp-tema-verde .x-panel-header-default,
body.dp-tema-areia .x-panel-header-default,
body.dp-tema-lilas .x-panel-header-default,
body.dp-tema-marrom .x-panel-header-default,
body.dp-tema-rosa .x-panel-header-default,
body.dp-tema-grafite .x-panel-header-default,
body.dp-tema-verde .x-window-header-default,
body.dp-tema-areia .x-window-header-default,
body.dp-tema-lilas .x-window-header-default,
body.dp-tema-marrom .x-window-header-default,
body.dp-tema-rosa .x-window-header-default,
body.dp-tema-grafite .x-window-header-default,
body.dp-tema-verde .x-window-default,
body.dp-tema-areia .x-window-default,
body.dp-tema-lilas .x-window-default,
body.dp-tema-marrom .x-window-default,
body.dp-tema-rosa .x-window-default,
body.dp-tema-grafite .x-window-default {
  background-image: none;
  background-color: var(--dp-t-faixa);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-panel-header-title-default,
body.dp-tema-areia .x-panel-header-title-default,
body.dp-tema-lilas .x-panel-header-title-default,
body.dp-tema-marrom .x-panel-header-title-default,
body.dp-tema-rosa .x-panel-header-title-default,
body.dp-tema-grafite .x-panel-header-title-default,
body.dp-tema-verde .x-window-header-title-default,
body.dp-tema-areia .x-window-header-title-default,
body.dp-tema-lilas .x-window-header-title-default,
body.dp-tema-marrom .x-window-header-title-default,
body.dp-tema-rosa .x-window-header-title-default,
body.dp-tema-grafite .x-window-header-title-default {
  color: var(--dp-t-acento-txt);
}
body.dp-tema-verde .x-tab-bar-default,
body.dp-tema-areia .x-tab-bar-default,
body.dp-tema-lilas .x-tab-bar-default,
body.dp-tema-marrom .x-tab-bar-default,
body.dp-tema-rosa .x-tab-bar-default,
body.dp-tema-grafite .x-tab-bar-default {
  background-image: none;
  background-color: var(--dp-t-faixa);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-tab-default,
body.dp-tema-areia .x-tab-default,
body.dp-tema-lilas .x-tab-default,
body.dp-tema-marrom .x-tab-default,
body.dp-tema-rosa .x-tab-default,
body.dp-tema-grafite .x-tab-default {
  background-image: none;
  background-color: var(--dp-t-faixa2);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-tab-default.x-tab-active,
body.dp-tema-areia .x-tab-default.x-tab-active,
body.dp-tema-lilas .x-tab-default.x-tab-active,
body.dp-tema-marrom .x-tab-default.x-tab-active,
body.dp-tema-rosa .x-tab-default.x-tab-active,
body.dp-tema-grafite .x-tab-default.x-tab-active {
  background-color: var(--dp-t-cartao);
}
body.dp-tema-verde .x-tab-default .x-tab-inner-default,
body.dp-tema-areia .x-tab-default .x-tab-inner-default,
body.dp-tema-lilas .x-tab-default .x-tab-inner-default,
body.dp-tema-marrom .x-tab-default .x-tab-inner-default,
body.dp-tema-rosa .x-tab-default .x-tab-inner-default,
body.dp-tema-grafite .x-tab-default .x-tab-inner-default {
  color: var(--dp-t-acento-txt);
}

/* Verde, areia e lilas: barra do menu principal, barras de ferramentas e de status,
   titulos de grupos (fieldset), itens de menu e botoes de seta dos campos */
body.dp-tema-verde .x-toolbar-default,
body.dp-tema-areia .x-toolbar-default,
body.dp-tema-lilas .x-toolbar-default,
body.dp-tema-marrom .x-toolbar-default,
body.dp-tema-rosa .x-toolbar-default,
body.dp-tema-grafite .x-toolbar-default {
  background-image: none;
  background-color: var(--dp-t-faixa);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over,
body.dp-tema-areia .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over,
body.dp-tema-lilas .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over,
body.dp-tema-marrom .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over,
body.dp-tema-rosa .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over,
body.dp-tema-grafite .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over,
body.dp-tema-verde .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active,
body.dp-tema-areia .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active,
body.dp-tema-lilas .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active,
body.dp-tema-marrom .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active,
body.dp-tema-rosa .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active,
body.dp-tema-grafite .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active {
  background-image: none;
  background-color: var(--dp-t-faixa2);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-menu-item-focus,
body.dp-tema-areia .x-menu-item-focus,
body.dp-tema-lilas .x-menu-item-focus,
body.dp-tema-marrom .x-menu-item-focus,
body.dp-tema-rosa .x-menu-item-focus,
body.dp-tema-grafite .x-menu-item-focus,
body.dp-tema-verde .x-menu-item-active,
body.dp-tema-areia .x-menu-item-active,
body.dp-tema-lilas .x-menu-item-active,
body.dp-tema-marrom .x-menu-item-active,
body.dp-tema-rosa .x-menu-item-active,
body.dp-tema-grafite .x-menu-item-active {
  background-image: none;
  background-color: var(--dp-t-faixa);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-fieldset,
body.dp-tema-areia .x-fieldset,
body.dp-tema-lilas .x-fieldset,
body.dp-tema-marrom .x-fieldset,
body.dp-tema-rosa .x-fieldset,
body.dp-tema-grafite .x-fieldset {
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-fieldset-header-text,
body.dp-tema-areia .x-fieldset-header-text,
body.dp-tema-lilas .x-fieldset-header-text,
body.dp-tema-marrom .x-fieldset-header-text,
body.dp-tema-rosa .x-fieldset-header-text,
body.dp-tema-grafite .x-fieldset-header-text {
  color: var(--dp-t-acento-txt);
}
/* A seta dos combos, datas e spinners e os icones de ferramenta (recolher, fechar) sao imagem no classic: so o matiz e girado
   (filter nao muda tamanho nem posicao). Azul do classic ~ 213 graus. */
body.dp-tema-verde .x-form-trigger,
body.dp-tema-verde .x-tool-img {
  filter: hue-rotate(-60deg) saturate(.7);
}
body.dp-tema-areia .x-form-trigger,
body.dp-tema-areia .x-tool-img {
  filter: hue-rotate(180deg) saturate(.6);
}
body.dp-tema-lilas .x-form-trigger,
body.dp-tema-marrom .x-form-trigger,
body.dp-tema-rosa .x-form-trigger,
body.dp-tema-lilas .x-tool-img,
body.dp-tema-marrom .x-tool-img,
body.dp-tema-rosa .x-tool-img {
  filter: hue-rotate(45deg) saturate(.75);
}
/* o fechar das caixas de mensagem ja e um icone proprio (dp-limpar.svg) */
body[class*="dp-tema-"] .x-message-box .x-tool-img {
  filter: none;
}

/* Verde, areia e lilas: bordas azuis do classic (paineis, janelas, abas), linha
   selecionada das grades e botoes comuns */
body.dp-tema-verde .x-panel-default,
body.dp-tema-areia .x-panel-default,
body.dp-tema-lilas .x-panel-default,
body.dp-tema-marrom .x-panel-default,
body.dp-tema-rosa .x-panel-default,
body.dp-tema-grafite .x-panel-default,
body.dp-tema-verde .x-panel-body-default,
body.dp-tema-areia .x-panel-body-default,
body.dp-tema-lilas .x-panel-body-default,
body.dp-tema-marrom .x-panel-body-default,
body.dp-tema-rosa .x-panel-body-default,
body.dp-tema-grafite .x-panel-body-default,
body.dp-tema-verde .x-window-body-default,
body.dp-tema-areia .x-window-body-default,
body.dp-tema-lilas .x-window-body-default,
body.dp-tema-marrom .x-window-body-default,
body.dp-tema-rosa .x-window-body-default,
body.dp-tema-grafite .x-window-body-default,
body.dp-tema-verde .x-tab-bar-strip-default,
body.dp-tema-areia .x-tab-bar-strip-default,
body.dp-tema-lilas .x-tab-bar-strip-default,
body.dp-tema-marrom .x-tab-bar-strip-default,
body.dp-tema-rosa .x-tab-bar-strip-default,
body.dp-tema-grafite .x-tab-bar-strip-default,
body.dp-tema-verde .x-grid-header-ct,
body.dp-tema-areia .x-grid-header-ct,
body.dp-tema-lilas .x-grid-header-ct,
body.dp-tema-marrom .x-grid-header-ct,
body.dp-tema-rosa .x-grid-header-ct,
body.dp-tema-grafite .x-grid-header-ct {
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-tab-bar-strip-default,
body.dp-tema-areia .x-tab-bar-strip-default,
body.dp-tema-lilas .x-tab-bar-strip-default,
body.dp-tema-marrom .x-tab-bar-strip-default,
body.dp-tema-rosa .x-tab-bar-strip-default,
body.dp-tema-grafite .x-tab-bar-strip-default {
  background-color: var(--dp-t-cartao);
}
body.dp-tema-verde .x-grid-item-over,
body.dp-tema-areia .x-grid-item-over,
body.dp-tema-lilas .x-grid-item-over,
body.dp-tema-marrom .x-grid-item-over,
body.dp-tema-rosa .x-grid-item-over,
body.dp-tema-grafite .x-grid-item-over {
  background-color: var(--dp-t-zebra);
}
body.dp-tema-verde .x-grid-item-selected,
body.dp-tema-areia .x-grid-item-selected,
body.dp-tema-lilas .x-grid-item-selected,
body.dp-tema-marrom .x-grid-item-selected,
body.dp-tema-rosa .x-grid-item-selected,
body.dp-tema-grafite .x-grid-item-selected {
  background-color: var(--dp-t-faixa);
}
body.dp-tema-verde .x-btn-default-small,
body.dp-tema-areia .x-btn-default-small,
body.dp-tema-lilas .x-btn-default-small,
body.dp-tema-marrom .x-btn-default-small,
body.dp-tema-rosa .x-btn-default-small,
body.dp-tema-grafite .x-btn-default-small {
  background-image: none;
  background-color: var(--dp-t-cab);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-btn-default-small.x-btn-over,
body.dp-tema-areia .x-btn-default-small.x-btn-over,
body.dp-tema-lilas .x-btn-default-small.x-btn-over,
body.dp-tema-marrom .x-btn-default-small.x-btn-over,
body.dp-tema-rosa .x-btn-default-small.x-btn-over,
body.dp-tema-grafite .x-btn-default-small.x-btn-over,
body.dp-tema-verde .x-btn-default-small.x-btn-pressed,
body.dp-tema-areia .x-btn-default-small.x-btn-pressed,
body.dp-tema-lilas .x-btn-default-small.x-btn-pressed,
body.dp-tema-marrom .x-btn-default-small.x-btn-pressed,
body.dp-tema-rosa .x-btn-default-small.x-btn-pressed,
body.dp-tema-grafite .x-btn-default-small.x-btn-pressed {
  background-image: none;
  background-color: var(--dp-t-faixa2);
}

/* Combo de tema do menu lateral (uFrmMain.cbxTema): amostra de cor de cada tema na lista,
   na ordem dos itens (Padrao, Azul, Cinza, Verde, Areia, Lilas, Marrom, Rosa), e a do tema
   atual no campo. Nao muda o tamanho do combo. */
.dp-lista-tema .x-boundlist-item:before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-right: 7px;
  vertical-align: -2px;
  border-radius: 3px;
  border: 1px solid rgba(0, 0, 0, .25);
  box-sizing: border-box;
}
.dp-lista-tema .x-boundlist-item:nth-child(1):before {
  border: 1px dashed #8A93A0;
  background: linear-gradient(135deg, #FFFFFF 50%, #E2E6EC 50%);
}
.dp-lista-tema .x-boundlist-item:nth-child(2):before { background: linear-gradient(135deg, #DCE6F2 50%, #0E5AA7 50%); }
.dp-lista-tema .x-boundlist-item:nth-child(3):before { background: linear-gradient(135deg, #E2E4E8 50%, #4B5563 50%); }
.dp-lista-tema .x-boundlist-item:nth-child(4):before { background: linear-gradient(135deg, #DDEBE3 50%, #2F7D5B 50%); }
.dp-lista-tema .x-boundlist-item:nth-child(5):before { background: linear-gradient(135deg, #EFE8D6 50%, #A16207 50%); }
.dp-lista-tema .x-boundlist-item:nth-child(6):before { background: linear-gradient(135deg, #E5E0EF 50%, #6B4FA3 50%); }
.dp-lista-tema .x-boundlist-item:nth-child(7):before { background: linear-gradient(135deg, #E9E1D9 50%, #7A4B2A 50%); }
.dp-lista-tema .x-boundlist-item:nth-child(8):before { background: linear-gradient(135deg, #F2DFE7 50%, #B83A6E 50%); }
.dp-cbx-tema .x-form-text {
  padding-left: 12px;
  box-shadow: inset 6px 0 0 var(--dp-t-acento, #0E5AA7);
}

/* Combo da versao do Painel de Controle (uFrmMain.cbxDashboard): miniatura de cada versao
   na lista, na ordem dos itens (Padrao, Legado, Moderno), e a marca da escolhida no campo.
   Legado = grade cinza com linhas; Moderno = faixa na cor do tema e cartoes; Padrao = contorno
   tracejado (segue a versao do sistema). Nao muda o tamanho do combo. */
.dp-lista-painel .x-boundlist-item:before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 13px;
  margin-right: 7px;
  vertical-align: -2px;
  border-radius: 3px;
  border: 1px solid rgba(0, 0, 0, .25);
  box-sizing: border-box;
}
.dp-lista-painel .x-boundlist-item:nth-child(1):before {
  border: 1px dashed #8A93A0;
  background: linear-gradient(180deg, #C9D3E0 0 3px, #FFFFFF 3px);
}
.dp-lista-painel .x-boundlist-item:nth-child(2):before {
  border-radius: 0;
  border-color: #6B7280;
  background: repeating-linear-gradient(180deg, #F3F4F6 0 2px, #9CA3AF 2px 3px);
}
.dp-lista-painel .x-boundlist-item:nth-child(3):before {
  border-color: var(--dp-t-acento, #0E5AA7);
  background:
    linear-gradient(180deg, var(--dp-t-acento, #0E5AA7) 0 3px, transparent 3px),
    linear-gradient(90deg, #DCE6F2 0 6px, #FFFFFF 6px 7px, #DCE6F2 7px);
}
.dp-cbx-painel .x-form-text {
  padding-left: 12px;
}
.dp-cbx-painel.dp-painel-0 .x-form-text { box-shadow: inset 6px 0 0 #C9D3E0; }
.dp-cbx-painel.dp-painel-1 .x-form-text { box-shadow: inset 6px 0 0 #6B7280; }
.dp-cbx-painel.dp-painel-2 .x-form-text { box-shadow: inset 6px 0 0 var(--dp-t-acento, #0E5AA7); }

/* Verde, areia e lilas: aba ativa e aba sob o mouse. O classic usa seletores mais fortes
   (.x-tab.x-tab-active...) com degrade azul; estes vencem pela especificidade (html body). */
html body.dp-tema-verde .x-tab.x-tab-default.x-tab-active,
html body.dp-tema-areia .x-tab.x-tab-default.x-tab-active,
html body.dp-tema-lilas .x-tab.x-tab-default.x-tab-active,
html body.dp-tema-marrom .x-tab.x-tab-default.x-tab-active,
html body.dp-tema-rosa .x-tab.x-tab-default.x-tab-active {
  background-image: none;
  background-color: var(--dp-t-cartao);
  border-color: var(--dp-t-borda);
}
html body.dp-tema-verde .x-tab.x-tab-default.x-tab-over,
html body.dp-tema-areia .x-tab.x-tab-default.x-tab-over,
html body.dp-tema-lilas .x-tab.x-tab-default.x-tab-over,
html body.dp-tema-marrom .x-tab.x-tab-default.x-tab-over,
html body.dp-tema-rosa .x-tab.x-tab-default.x-tab-over {
  background-image: none;
  background-color: var(--dp-t-faixa);
}
html body.dp-tema-verde .x-tab.x-tab-default.x-tab-active .x-tab-inner-default,
html body.dp-tema-areia .x-tab.x-tab-default.x-tab-active .x-tab-inner-default,
html body.dp-tema-lilas .x-tab.x-tab-default.x-tab-active .x-tab-inner-default,
html body.dp-tema-marrom .x-tab.x-tab-default.x-tab-active .x-tab-inner-default,
html body.dp-tema-rosa .x-tab.x-tab-default.x-tab-active .x-tab-inner-default {
  color: var(--dp-t-acento);
}

/* Caixas de mensagem com tema: informacao, confirmacao e mensagens sem icone usam a cor
   do tema. Atencao (ambar) e erro (vermelho) mantem as cores proprias, que tem significado. */
body[class*="dp-tema-"] .x-message-box:not(:has(.x-message-box-warning, .x-message-box-error)) {
  --dlg-cor: var(--dp-t-acento);
  --dlg-claro: var(--dp-t-cab);
  --dlg-linha: var(--dp-t-borda);
  --dlg-titulo: var(--dp-t-acento-txt);
  --dlg-btn: var(--dp-t-acento);
  --dlg-btn-hover: var(--dp-t-acento-txt);
  --dlg-foco: color-mix(in srgb, var(--dp-t-acento) 25%, transparent);
}
/* Icones (svg azul/anil) de informacao e confirmacao no matiz do tema */
body.dp-tema-cinza .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-cinza .x-message-box .x-message-box-icon.x-message-box-info,
body.dp-tema-grafite .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-grafite .x-message-box .x-message-box-icon.x-message-box-info {
  filter: grayscale(1);
}
body.dp-tema-verde .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-verde .x-message-box .x-message-box-icon.x-message-box-info {
  filter: hue-rotate(-70deg) saturate(.7);
}
body.dp-tema-areia .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-areia .x-message-box .x-message-box-icon.x-message-box-info {
  filter: hue-rotate(170deg) saturate(.6);
}
body.dp-tema-lilas .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-marrom .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-rosa .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-lilas .x-message-box .x-message-box-icon.x-message-box-info,
body.dp-tema-marrom .x-message-box .x-message-box-icon.x-message-box-info,
body.dp-tema-rosa .x-message-box .x-message-box-icon.x-message-box-info {
  filter: hue-rotate(40deg) saturate(.75);
}

/* Verde, areia e lilas: menus suspensos (fundo, borda, linha dos icones, separadores e setas) */
body.dp-tema-verde .x-menu-default,
body.dp-tema-areia .x-menu-default,
body.dp-tema-lilas .x-menu-default,
body.dp-tema-marrom .x-menu-default,
body.dp-tema-rosa .x-menu-default,
body.dp-tema-verde .x-menu-body-default,
body.dp-tema-areia .x-menu-body-default,
body.dp-tema-lilas .x-menu-body-default,
body.dp-tema-marrom .x-menu-body-default,
body.dp-tema-rosa .x-menu-body-default {
  background-image: none;
  background-color: var(--dp-t-painel);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-menu-icon-separator-default,
body.dp-tema-areia .x-menu-icon-separator-default,
body.dp-tema-lilas .x-menu-icon-separator-default,
body.dp-tema-marrom .x-menu-icon-separator-default,
body.dp-tema-rosa .x-menu-icon-separator-default {
  background-color: var(--dp-t-borda);
  border-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-menu-item-separator-default,
body.dp-tema-areia .x-menu-item-separator-default,
body.dp-tema-lilas .x-menu-item-separator-default,
body.dp-tema-marrom .x-menu-item-separator-default,
body.dp-tema-rosa .x-menu-item-separator-default,
body.dp-tema-verde .x-menu-default .x-menu-item-separator,
body.dp-tema-areia .x-menu-default .x-menu-item-separator,
body.dp-tema-lilas .x-menu-default .x-menu-item-separator,
body.dp-tema-marrom .x-menu-default .x-menu-item-separator,
body.dp-tema-rosa .x-menu-default .x-menu-item-separator {
  border-top-color: var(--dp-t-borda);
  background-color: var(--dp-t-borda);
}
body.dp-tema-verde .x-menu-item-arrow-default,
body.dp-tema-verde .x-menu-item-arrow {
  filter: hue-rotate(-60deg) saturate(.7);
}
body.dp-tema-areia .x-menu-item-arrow-default,
body.dp-tema-areia .x-menu-item-arrow {
  filter: hue-rotate(180deg) saturate(.6);
}
body.dp-tema-lilas .x-menu-item-arrow-default,
body.dp-tema-marrom .x-menu-item-arrow-default,
body.dp-tema-rosa .x-menu-item-arrow-default,
body.dp-tema-lilas .x-menu-item-arrow,
body.dp-tema-marrom .x-menu-item-arrow,
body.dp-tema-rosa .x-menu-item-arrow {
  filter: hue-rotate(45deg) saturate(.75);
}

/* Todos os temas: campos de digitacao um pouco mais claros que o fundo do form, sem o branco puro;
   o campo em edicao (com foco) ganha um leve toque da cor do tema. Campos com cor
   propria definida na tela (Color) continuam com ela. */
body[class*="dp-tema-"] .x-form-text-default,
body[class*="dp-tema-"] .x-form-text-wrap-default,
body[class*="dp-tema-"] .x-form-trigger-wrap-default,
body[class*="dp-tema-"] textarea.x-form-text-default {
  background-image: none;
  background-color: var(--dp-t-campo);
}
body[class*="dp-tema-"] .x-form-trigger-wrap-focus,
body[class*="dp-tema-"] .x-form-trigger-wrap-focus .x-form-text-wrap-default,
body[class*="dp-tema-"] .x-form-trigger-wrap-focus .x-form-text-default,
body[class*="dp-tema-"] .x-form-text-default.x-form-focus {
  background-color: color-mix(in srgb, var(--dp-t-acento) 4%, #FFFFFF);
}

/* Todos os temas: campos de entrada (edit, combo, data, memo) com cantos levemente
   arredondados e destaque do campo com foco (borda na cor do tema + anel suave).
   No classic (Ext 6) a borda fica no .x-form-text-wrap e as setas (triggers) ficam ao lado
   dele, com borda propria na imagem: o arredondamento vai em cada um, sem cortar nada.
   Raio, sombra e cor nao mudam tamanho nem posicao dos componentes. */
body[class*="dp-tema-"] .x-form-text-wrap-default {
  border-radius: 5px;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--dp-t-borda) 55%, #8A93A0);
  transition: border-color .12s ease;
}
body[class*="dp-tema-"] .x-form-trigger-wrap-default:has(.x-form-trigger) .x-form-text-wrap-default {
  border-radius: 5px 0 0 5px;
}
body[class*="dp-tema-"] .x-form-trigger-wrap-default .x-form-trigger:last-child {
  border-radius: 0 5px 5px 0;
}
body[class*="dp-tema-"] .x-form-trigger-wrap-default {
  border-radius: 5px;
  transition: box-shadow .12s ease;
}
body[class*="dp-tema-"] .x-form-trigger-wrap-default:hover .x-form-text-wrap-default {
  border-color: color-mix(in srgb, var(--dp-t-acento) 45%, #8A93A0);
}
body[class*="dp-tema-"] .x-form-trigger-wrap-default.x-form-trigger-wrap-focus .x-form-text-wrap-default,
body[class*="dp-tema-"] .x-form-trigger-wrap-default:focus-within .x-form-text-wrap-default {
  border-color: var(--dp-t-acento);
}
body[class*="dp-tema-"] .x-form-trigger-wrap-default.x-form-trigger-wrap-focus,
body[class*="dp-tema-"] .x-form-trigger-wrap-default:focus-within {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--dp-t-acento) 14%, transparent);
}
/* Campo com erro de validacao continua com a borda vermelha do Ext */
body[class*="dp-tema-"] .x-form-invalid .x-form-text-wrap-default {
  border-color: #CF4C35;
}

/* Todos os temas: aba ativa dos PageControls (TUniTabSheet) no mesmo estilo das abas do Painel web:
   fundo claro, filete ambar no topo e linha na cor do tema embaixo. So sombra interna: nao muda medidas. */
html body[class*="dp-tema-"] .x-tab.x-tab-default.x-tab-active {
  background-image: none;
  background-color: var(--dp-t-cartao);
  border-color: var(--dp-t-borda);
  box-shadow: inset 0 3px 0 #E8A13A, inset 0 -2px 0 var(--dp-t-acento);
}
html body[class*="dp-tema-"] .x-tab.x-tab-default.x-tab-active .x-tab-inner-default {
  color: var(--dp-t-acento-txt);
}

/* Todos os temas: grades (TUniDBGrid). Cabecalho liso no tom do tema com linha de destaque,
   linhas no fundo claro do tema com zebra suave, linha selecionada com filete a esquerda,
   divisorias discretas. Cores postas pelo codigo (OnDrawColumnCell) continuam valendo.
   Nada aqui muda altura de linha nem largura de coluna. */
body[class*="dp-tema-"] .x-grid-header-ct {
  background-image: none;
  background-color: var(--dp-t-cab);
  border-color: var(--dp-t-borda);
  border-bottom-color: var(--dp-t-borda);
}
body[class*="dp-tema-"] .x-column-header {
  background-image: none;
  background-color: var(--dp-t-cab);
  border-right-color: var(--dp-t-borda);
  color: var(--dp-t-acento-txt);
  box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--dp-t-acento) 35%, transparent);
}
body[class*="dp-tema-"] .x-column-header.x-column-header-over {
  background-image: none;
  background-color: var(--dp-t-faixa);
}
body[class*="dp-tema-"] .x-column-header.x-column-header-sort-ASC,
body[class*="dp-tema-"] .x-column-header.x-column-header-sort-DESC {
  background-image: none;
  background-color: var(--dp-t-faixa);
  box-shadow: inset 0 -2px 0 var(--dp-t-acento);
}
body[class*="dp-tema-"] .x-grid-body {
  background-color: var(--dp-t-painel);
  border-color: var(--dp-t-borda);
}
body[class*="dp-tema-"] .x-grid-item {
  background-color: var(--dp-t-linha);
}
body[class*="dp-tema-"] .x-grid-item.x-grid-item-alt {
  background-color: var(--dp-t-zebra);
}
body[class*="dp-tema-"] .x-grid-with-row-lines .x-grid-item {
  border-color: color-mix(in srgb, var(--dp-t-borda) 60%, transparent);
}
body[class*="dp-tema-"] .x-grid-with-col-lines .x-grid-cell {
  border-right-color: color-mix(in srgb, var(--dp-t-borda) 45%, transparent);
}
body[class*="dp-tema-"] .x-grid-item.x-grid-item-over {
  background-color: color-mix(in srgb, var(--dp-t-acento) 7%, var(--dp-t-linha));
}
body[class*="dp-tema-"] .x-grid-item.x-grid-item-selected {
  background-color: color-mix(in srgb, var(--dp-t-acento) 15%, var(--dp-t-linha));
}
body[class*="dp-tema-"] .x-grid-item.x-grid-item-selected .x-grid-cell:first-child {
  box-shadow: inset 3px 0 0 var(--dp-t-acento);
}
body[class*="dp-tema-"] .x-grid-item-selected .x-grid-cell-special {
  background-image: none;
  background-color: color-mix(in srgb, var(--dp-t-acento) 20%, var(--dp-t-linha));
  border-right-color: var(--dp-t-borda);
}
body[class*="dp-tema-"] .x-grid-cell.x-grid-cell-selected,
body[class*="dp-tema-"] .x-grid-item .x-grid-cell-selected {
  background-color: color-mix(in srgb, var(--dp-t-acento) 24%, var(--dp-t-linha));
}

/* Todos os temas: botoes de radio (TUniRadioGroup / TUniRadioButton) desenhados em CSS no lugar
   da imagem do classic: circulo na cor de borda do tema e ponto na cor de destaque quando marcado,
   anel suave com foco. Mesmo tamanho da imagem (13 px): nada muda de posicao. */
body[class*="dp-tema-"] .x-form-radio-default {
  background-image: none;
  box-sizing: border-box;
  border: 1.5px solid color-mix(in srgb, var(--dp-t-borda) 40%, #8A93A0);
  border-radius: 50%;
  background-color: var(--dp-t-campo);
  transition: border-color .12s ease, box-shadow .12s ease;
}
body[class*="dp-tema-"] .x-form-cb-wrap-inner:hover .x-form-radio-default,
body[class*="dp-tema-"] .x-form-cb-wrap:hover .x-form-radio-default {
  border-color: var(--dp-t-acento);
}
body[class*="dp-tema-"] .x-form-cb-checked .x-form-radio-default {
  border-color: var(--dp-t-acento);
  /* !important: nenhum estado de mouse/foco do ExtJS/UniGUI pode apagar o ponto do radio marcado */
  background-image: radial-gradient(circle, var(--dp-t-acento) 0 3px, transparent 3.5px) !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 100% 100% !important;
}
body[class*="dp-tema-"] .x-form-radio-default.x-form-checkbox-focus {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--dp-t-acento) 20%, transparent);
}
body[class*="dp-tema-"] .x-form-cb-checked .x-form-radio-default ~ .x-form-cb-label,
body[class*="dp-tema-"] .x-form-cb-checked .x-form-cb-label-after {
  color: var(--dp-t-acento-txt);
}

/* Marrom: as imagens azuis do classic (setas, icones de ferramenta e de menu, icones das caixas de
   mensagem) com o matiz girado para o marrom; vem por ultimo para valer sobre as regras copiadas. */
body.dp-tema-marrom .x-form-trigger,
body.dp-tema-marrom .x-tool-img,
body.dp-tema-marrom .x-menu-item-arrow-default,
body.dp-tema-marrom .x-menu-item-arrow,
body.dp-tema-marrom .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-marrom .x-message-box .x-message-box-icon.x-message-box-info {
  filter: hue-rotate(172deg) saturate(.45) brightness(.9);
}
body.dp-tema-marrom .x-message-box .x-tool-img {
  filter: none;
}
/* Rosa: o mesmo, com o matiz girado do azul para o rosa framboesa */
body.dp-tema-rosa .x-form-trigger,
body.dp-tema-rosa .x-tool-img,
body.dp-tema-rosa .x-menu-item-arrow-default,
body.dp-tema-rosa .x-menu-item-arrow,
body.dp-tema-rosa .x-message-box .x-message-box-icon.x-message-box-question,
body.dp-tema-rosa .x-message-box .x-message-box-icon.x-message-box-info {
  filter: hue-rotate(120deg) saturate(.6);
}
body.dp-tema-rosa .x-message-box .x-tool-img {
  filter: none;
}

/* Menu lateral retrátil do frmMain (dp-menu-box no boxLeft): no compacto, sem rolagem horizontal;
   alfinete apagado quando solto e aceso quando o menu está fixo aberto */
.dp-menu-box.dp-menu-compacto > .x-panel-body,
.dp-menu-box.dp-menu-compacto .x-scroller {
  overflow-x: hidden !important;
}
/* Compacto: os botões ficam sem texto, mas o UniGUI deixa o elemento do texto vazio, que empurra e corta o ícone */
.dp-menu-box.dp-menu-compacto .x-fieldset .x-btn-inner {
  display: none !important;
}
/* Compacto: grupos sem a falha do titulo vazio na borda de cima e icones sem o fundo branco do botao */
.dp-menu-box.dp-menu-compacto .x-fieldset-header {
  padding: 0 !important;
  margin: 0 !important;
  width: 0 !important;
  overflow: hidden !important;
}
/* Icones sem o fundo branco do botao, no menu aberto e no retraido */
.dp-menu-box .x-fieldset .x-btn {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.dp-menu-box .x-fieldset .x-btn:hover {
  background: rgba(0, 0, 0, .06) !important;
}
/* Retraido: sem a seta do ExtJS (o botao estreito so deixava o risco separador dela) */
.dp-menu-box.dp-menu-compacto .x-fieldset .x-btn-split-right:after,
.dp-menu-box.dp-menu-compacto .x-fieldset .x-btn-split-bottom:after {
  display: none !important;
}
/* Retraido: sem o espaco que o ExtJS reserva para a seta, o icone fica centralizado como nos demais */
.dp-menu-box.dp-menu-compacto .x-fieldset .x-btn-split-right,
.dp-menu-box.dp-menu-compacto .x-fieldset .x-btn-split-right > .x-btn-button {
  padding-right: 0 !important;
}
/* Retraido: seta pequena no canto dos botoes que abrem menu (Receber, Enviar) */
.dp-menu-box.dp-menu-compacto .dp-menu-mb:after {
  content: "";
  position: absolute;
  right: 2px;
  bottom: 3px;
  border: 5px solid transparent;
  border-top-color: #5A6575;
  border-bottom: 0;
  pointer-events: none;
}
.dp-menu-pino {
  opacity: .45;
}
.dp-menu-pino.dp-fixo {
  opacity: 1;
}
/* Botao do menu (tres riscos) continua com o texto no menu retraido */
.dp-menu-box.dp-menu-compacto .dp-menu-tg .x-btn-inner {
  display: block !important;
}

/* ==========================================================================
   Tema 9 - Alto contraste (dp-tema-contraste), para baixa visao e daltonismo.
   Fundo branco, texto preto, bordas pretas, destaque azul escuro (#0050B3, 7,5:1) e foco do
   teclado bem visivel (anel ambar com contorno preto). Vermelho/verde de situacao trocados pela
   paleta segura para daltonicos (laranja-escuro #9C3D00 / azul #005A8C), sempre com texto ou simbolo.
   So cores, contornos e sombras: nada muda medida. Letra maior: zoom do navegador (Ctrl +).
   ========================================================================== */
body.dp-tema-contraste {
  --dp-t-campo: #FFFFFF;
  --dp-t-fundo: #FFFFFF; --dp-t-painel: #FFFFFF; --dp-t-cartao: #FFFFFF;
  --dp-t-linha: #FFFFFF; --dp-t-zebra: #F0F0F0; --dp-t-cab: #FFFFFF;
  --dp-t-faixa: #E6E6E6; --dp-t-faixa2: #D9D9D9; --dp-t-borda: #000000;
  --dp-t-acento: #0050B3; --dp-t-acento-txt: #003A80; --dp-t-det: #FFFFFF;
  --dp-t-acento-fg: #0050B3;
  --dp-t-txt: #000000; --dp-t-txt2: #333333; --dp-t-borda2: #000000;
  --dp-texto: #000000; --dp-texto-2: #333333; --dp-rotulo: #000000;
  --dp-borda-campo: #000000; --dp-borda: #000000; --dp-desabilitado: #F0F0F0; --dp-hover: #E6E6E6;
  --dp-primaria: #0050B3; --dp-primaria-hover: #003A80;
  --dp-cs-foco: 0 0 0 2px #000000, 0 0 0 5px #FFB000;
  background-color: #FFFFFF;
  color: #000000;
}
body.dp-tema-contraste.x-body,
body.dp-tema-contraste .x-body {
  color: #000000;
}
body.dp-tema-contraste .x-border-layout-ct,
body.dp-tema-contraste .x-viewport,
body.dp-tema-contraste .x-splitter {
  background-color: #FFFFFF;
}
body.dp-tema-contraste .x-splitter {
  background-color: #595959;
}

/* Paineis e janelas: corpo branco com borda preta; cabecalho preto com titulo branco */
body.dp-tema-contraste .x-panel-default,
body.dp-tema-contraste .x-window-default,
body.dp-tema-contraste .x-panel-body-default,
body.dp-tema-contraste .x-window-body-default,
body.dp-tema-contraste .x-panel-body {
  background-color: #FFFFFF;
  border-color: #000000;
  color: #000000;
}
body.dp-tema-contraste .x-panel-header-default,
body.dp-tema-contraste .x-window-header-default,
body.dp-tema-contraste .x-window-default,
body.dp-tema-contraste .x-panel-header-default-collapsed-left,
body.dp-tema-contraste .x-panel-header-default-collapsed-right {
  background-image: none;
  background-color: #1A1A1A;
  border-color: #000000;
}
body.dp-tema-contraste .x-panel-header-title-default,
body.dp-tema-contraste .x-window-header-title-default,
body.dp-tema-contraste .x-panel-header-title-default .x-title-text,
body.dp-tema-contraste .x-window-header-title-default .x-title-text {
  color: #FFFFFF;
}
body.dp-tema-contraste .x-panel-header-default .x-tool-img,
body.dp-tema-contraste .x-window-header-default .x-tool-img {
  filter: grayscale(1) invert(1) contrast(2);
}
body.dp-tema-contraste .x-form-checkbox-default {
  filter: grayscale(1) contrast(1.8);
}
body.dp-tema-contraste .x-form-trigger,
body.dp-tema-contraste .x-menu-item-arrow-default,
body.dp-tema-contraste .x-menu-item-arrow,
body.dp-tema-contraste .x-tbar-page-first,
body.dp-tema-contraste .x-tbar-page-prev,
body.dp-tema-contraste .x-tbar-page-next,
body.dp-tema-contraste .x-tbar-page-last,
body.dp-tema-contraste .x-tbar-loading,
body.dp-tema-contraste .x-column-header-trigger,
body.dp-tema-contraste .x-datepicker-prev,
body.dp-tema-contraste .x-datepicker-next {
  filter: grayscale(1) contrast(3) brightness(.7);
}
body.dp-tema-contraste .x-message-box .x-tool-img {
  filter: none;
}

/* Abas: inativa branca com borda preta; ativa preta com texto branco */
body.dp-tema-contraste .x-tab-bar-default {
  background-image: none;
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-tab-bar-strip-default {
  background-color: #000000;
  border-color: #000000;
}
html body.dp-tema-contraste .x-tab.x-tab-default {
  background-image: none;
  background-color: #FFFFFF;
  border-color: #000000;
}
html body.dp-tema-contraste .x-tab.x-tab-default .x-tab-inner-default {
  color: #000000;
}
html body.dp-tema-contraste .x-tab.x-tab-default.x-tab-over {
  background-color: #E6E6E6;
}
html body.dp-tema-contraste .x-tab.x-tab-default.x-tab-active {
  background-color: #000000;
  box-shadow: none;
}
html body.dp-tema-contraste .x-tab.x-tab-default.x-tab-active .x-tab-inner-default {
  color: #FFFFFF;
}
html body.dp-tema-contraste .x-tab.x-tab-default.x-tab-focus {
  box-shadow: var(--dp-cs-foco);
}

/* Barras */
body.dp-tema-contraste .x-toolbar-default,
body.dp-tema-contraste .x-toolbar-footer {
  background-image: none;
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-toolbar-text,
body.dp-tema-contraste .x-toolbar-text-default,
body.dp-tema-contraste .x-btn-default-toolbar-small .x-btn-inner-default-toolbar-small {
  color: #000000;
}
body.dp-tema-contraste .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over,
body.dp-tema-contraste .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active,
body.dp-tema-contraste .x-toolbar-default .x-btn-default-toolbar-small.x-btn-pressed {
  background-image: none;
  background-color: #000000;
  border-color: #000000;
}
body.dp-tema-contraste .x-toolbar-default .x-btn-default-toolbar-small.x-btn-over .x-btn-inner,
body.dp-tema-contraste .x-toolbar-default .x-btn-default-toolbar-small.x-btn-menu-active .x-btn-inner,
body.dp-tema-contraste .x-toolbar-default .x-btn-default-toolbar-small.x-btn-pressed .x-btn-inner {
  color: #FFFFFF;
}
body.dp-tema-contraste .x-toolbar-default .x-toolbar-separator-horizontal {
  border-color: #000000;
}

/* Botoes */
body.dp-tema-contraste .x-btn-default-small {
  background-image: none;
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-btn-default-small .x-btn-inner-default-small,
body.dp-tema-contraste .x-btn-default-medium .x-btn-inner-default-medium,
body.dp-tema-contraste .x-btn-default-large .x-btn-inner-default-large {
  color: #000000;
  font-weight: bold;
}
body.dp-tema-contraste .x-btn-default-small.x-btn-over,
body.dp-tema-contraste .x-btn-default-small.x-btn-pressed,
body.dp-tema-contraste .x-btn-default-small.x-btn-menu-active {
  background-image: none;
  background-color: #000000;
  border-color: #000000;
}
body.dp-tema-contraste .x-btn-default-small.x-btn-over .x-btn-inner,
body.dp-tema-contraste .x-btn-default-small.x-btn-pressed .x-btn-inner,
body.dp-tema-contraste .x-btn-default-small.x-btn-menu-active .x-btn-inner {
  color: #FFFFFF;
}
html body.dp-tema-contraste .x-btn-default-small.x-btn-disabled {
  background-image: none;
  background-color: #F0F0F0;
  border-color: #595959;
}
body.dp-tema-contraste .x-btn.x-item-disabled .x-btn-inner {
  color: #595959;
}
body.dp-tema-contraste .x-btn.x-btn-focus,
body.dp-tema-contraste .x-btn:focus-visible {
  box-shadow: var(--dp-cs-foco) !important;
}
body.dp-tema-contraste .x-btn-focus .x-btn-wrap,
body.dp-tema-contraste .x-btn *,
body.dp-tema-contraste .x-btn *::before,
body.dp-tema-contraste .x-btn *::after {
  outline: 0;
}

/* Campos */
html body.dp-tema-contraste .x-form-text-default,
html body.dp-tema-contraste .x-form-text-wrap-default,
html body.dp-tema-contraste .x-form-trigger-wrap-default,
html body.dp-tema-contraste textarea.x-form-text-default {
  background-image: none;
  background-color: #FFFFFF;
  color: #000000;
}
html body.dp-tema-contraste .x-form-text-wrap-default,
html body.dp-tema-contraste .x-form-trigger-wrap-default:hover .x-form-text-wrap-default {
  border-color: #000000;
}
html body.dp-tema-contraste .x-form-trigger-wrap-focus,
html body.dp-tema-contraste .x-form-trigger-wrap-focus .x-form-text-wrap-default,
html body.dp-tema-contraste .x-form-trigger-wrap-focus .x-form-text-default,
html body.dp-tema-contraste .x-form-text-default.x-form-focus {
  background-color: #FFFBE6;
}
html body.dp-tema-contraste .x-form-trigger-wrap-default.x-form-trigger-wrap-focus .x-form-text-wrap-default,
html body.dp-tema-contraste .x-form-trigger-wrap-default:focus-within .x-form-text-wrap-default {
  border-color: #000000;
}
html body.dp-tema-contraste .x-form-trigger-wrap-default.x-form-trigger-wrap-focus,
html body.dp-tema-contraste .x-form-trigger-wrap-default:focus-within {
  box-shadow: var(--dp-cs-foco);
}
body.dp-tema-contraste .x-form-text-default::placeholder,
body.dp-tema-contraste .x-form-empty-field {
  color: #595959;
}
body.dp-tema-contraste .x-form-item-label-default,
body.dp-tema-contraste .x-form-item-label,
body.dp-tema-contraste .x-form-cb-label,
body.dp-tema-contraste .x-form-cb-label-default,
body.dp-tema-contraste .x-form-display-field,
body.dp-tema-contraste .x-form-display-field-default,
body.dp-tema-contraste .x-component-default,
body.dp-tema-contraste label {
  color: #000000;
}
body.dp-tema-contraste .x-form-cb-checked .x-form-radio-default ~ .x-form-cb-label,
body.dp-tema-contraste .x-form-cb-checked .x-form-cb-label-after {
  color: #000000;
  font-weight: bold;
}
body.dp-tema-contraste .x-item-disabled,
body.dp-tema-contraste .x-item-disabled * {
  opacity: 1 !important;
}
body.dp-tema-contraste .x-item-disabled .x-form-item-label,
body.dp-tema-contraste .x-item-disabled .x-form-text-default,
body.dp-tema-contraste .x-item-disabled .x-form-cb-label {
  color: #595959;
}
html body.dp-tema-contraste .x-item-disabled .x-form-text-wrap-default {
  border-color: #595959;
  border-style: dashed;
  background-color: #F0F0F0;
}
html body.dp-tema-contraste .x-form-invalid .x-form-text-wrap-default {
  border-color: #9C3D00;
  box-shadow: inset 0 0 0 1px #9C3D00;
}
body.dp-tema-contraste .x-form-invalid-icon-default {
  filter: grayscale(1) brightness(.4);
}
body.dp-tema-contraste .x-form-radio-default {
  border-color: #000000;
}
body.dp-tema-contraste .x-form-cb-checked .x-form-radio-default {
  border-color: #000000;
  background-image: radial-gradient(circle, #000000 0 3.5px, transparent 4px) !important;
}
body.dp-tema-contraste .x-form-radio-default.x-form-checkbox-focus,
body.dp-tema-contraste .x-form-checkbox-default.x-form-checkbox-focus,
body.dp-tema-contraste .x-form-cb-focus .x-form-checkbox-default,
body.dp-tema-contraste .x-form-cb-focus .x-form-radio-default {
  box-shadow: var(--dp-cs-foco);
}

/* Grupos */
body.dp-tema-contraste .x-fieldset,
body.dp-tema-contraste .x-fieldset-default {
  border-color: #000000;
  background-color: transparent;
}
body.dp-tema-contraste .x-fieldset-header-text,
body.dp-tema-contraste .x-fieldset-header-text-default {
  color: #000000;
  font-weight: bold;
}

/* Grades: cabecalho cinza com texto preto; linha selecionada azul escuro com texto branco */
body.dp-tema-contraste .x-grid-header-ct,
body.dp-tema-contraste .x-column-header {
  background-image: none;
  background-color: #E6E6E6;
  border-color: #000000;
  box-shadow: none;
}
body.dp-tema-contraste .x-column-header,
body.dp-tema-contraste .x-column-header-inner,
body.dp-tema-contraste .x-column-header-text {
  color: #000000;
  font-weight: bold;
}
body.dp-tema-contraste .x-grid-header-ct {
  box-shadow: inset 0 -2px 0 #000000;
}
body.dp-tema-contraste .x-grid-body,
body.dp-tema-contraste .x-grid-view,
body.dp-tema-contraste .x-grid-empty {
  background-color: #FFFFFF;
  border-color: #000000;
  color: #000000;
}
body.dp-tema-contraste .x-grid-item,
body.dp-tema-contraste .x-grid-cell {
  color: #000000;
}
body.dp-tema-contraste .x-grid-item {
  background-color: #FFFFFF;
}
body.dp-tema-contraste .x-grid-item.x-grid-item-alt {
  background-color: #F0F0F0;
}
body.dp-tema-contraste .x-grid-with-row-lines .x-grid-item {
  border-color: #595959;
}
body.dp-tema-contraste .x-grid-with-col-lines .x-grid-cell {
  border-right-color: #8C8C8C;
}
body.dp-tema-contraste .x-grid-item.x-grid-item-over {
  background-color: #E6E6E6;
}
body.dp-tema-contraste .x-grid-item.x-grid-item-selected,
body.dp-tema-contraste .x-grid-item.x-grid-item-selected .x-grid-cell,
body.dp-tema-contraste .x-grid-item.x-grid-item-selected .x-grid-cell .x-grid-cell-inner {
  background-color: #0050B3 !important;
  color: #FFFFFF !important;
}
body.dp-tema-contraste .x-grid-item.x-grid-item-selected .x-grid-cell:first-child {
  box-shadow: inset 4px 0 0 #FFB000;
}
body.dp-tema-contraste .x-grid-cell-special {
  background-image: none;
  background-color: #E6E6E6;
  border-right-color: #000000;
}
body.dp-tema-contraste .x-grid-item .x-grid-cell-selected {
  background-color: #003A80;
  color: #FFFFFF;
}

/* Combos, menus, calendario, dicas */
body.dp-tema-contraste .x-boundlist,
body.dp-tema-contraste .x-boundlist-default {
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-boundlist-item {
  color: #000000;
  border-color: transparent;
}
body.dp-tema-contraste .x-boundlist-item-over {
  background-color: #E6E6E6;
  border-color: #000000;
}
body.dp-tema-contraste .x-boundlist-selected {
  background-color: #0050B3;
  border-color: #0050B3;
  color: #FFFFFF;
}
body.dp-tema-contraste .x-menu-default,
body.dp-tema-contraste .x-menu-body-default {
  background-image: none;
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-menu-item-text,
body.dp-tema-contraste .x-menu-item-text-default,
body.dp-tema-contraste .x-menu-item-link {
  color: #000000;
}
body.dp-tema-contraste .x-menu-item-focus,
body.dp-tema-contraste .x-menu-item-active {
  background-image: none;
  background-color: #0050B3;
  border-color: #0050B3;
}
body.dp-tema-contraste .x-menu-item-focus .x-menu-item-text,
body.dp-tema-contraste .x-menu-item-active .x-menu-item-text {
  color: #FFFFFF;
}
body.dp-tema-contraste .x-menu-icon-separator-default,
body.dp-tema-contraste .x-menu-item-separator-default,
body.dp-tema-contraste .x-menu-default .x-menu-item-separator {
  background-color: #000000;
  border-color: #000000;
}
body.dp-tema-contraste .x-menu-item-disabled .x-menu-item-text {
  color: #595959;
}
body.dp-tema-contraste .x-datepicker,
body.dp-tema-contraste .x-datepicker-inner,
body.dp-tema-contraste .x-monthpicker {
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-datepicker-header,
body.dp-tema-contraste .x-datepicker-column-header,
body.dp-tema-contraste .x-datepicker-footer {
  background-image: none;
  background-color: #E6E6E6;
  color: #000000;
  border-color: #000000;
}
body.dp-tema-contraste .x-datepicker-date,
body.dp-tema-contraste .x-datepicker-month-btn {
  color: #000000;
}
body.dp-tema-contraste .x-datepicker-prevday .x-datepicker-date,
body.dp-tema-contraste .x-datepicker-nextday .x-datepicker-date {
  color: #595959;
}
body.dp-tema-contraste .x-datepicker-selected .x-datepicker-date,
body.dp-tema-contraste .x-datepicker-date:hover {
  background-color: #0050B3;
  color: #FFFFFF;
}
body.dp-tema-contraste .x-datepicker-today {
  box-shadow: inset 0 0 0 2px #000000;
}
body.dp-tema-contraste .x-tip,
body.dp-tema-contraste .x-tip-default,
body.dp-tema-contraste .x-tip-body,
body.dp-tema-contraste .x-tip-body-default,
body.dp-tema-contraste .x-tip-header-default {
  background-image: none;
  background-color: #FFFFFF;
  border-color: #000000;
  color: #000000;
}

/* Mascaras */
body.dp-tema-contraste .x-mask {
  background-color: rgba(0, 0, 0, .5);
}
body.dp-tema-contraste .x-mask-msg,
body.dp-tema-contraste .x-mask-msg-inner {
  background-image: none;
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-mask-msg-text {
  color: #000000;
}
body.dp-tema-contraste .x-tree-node-text {
  color: #000000;
}
body.dp-tema-contraste .x-progress-default {
  background-color: #FFFFFF;
  border-color: #000000;
}
body.dp-tema-contraste .x-progress-bar-default {
  background-image: none;
  background-color: #0050B3;
}

/* Caixas de mensagem: atencao e erro na paleta segura para daltonicos */
body.dp-tema-contraste .x-message-box {
  --dlg-cor: #0050B3;
  --dlg-claro: #FFFFFF;
  --dlg-linha: #000000;
  --dlg-titulo: #000000;
  --dlg-btn: #0050B3;
  --dlg-btn-hover: #003A80;
  --dlg-foco: #FFB000;
}
body.dp-tema-contraste .x-message-box:has(.x-message-box-warning) {
  --dlg-cor: #7A5000;
  --dlg-btn: #7A5000;
  --dlg-btn-hover: #5C3C00;
}
body.dp-tema-contraste .x-message-box:has(.x-message-box-error) {
  --dlg-cor: #9C3D00;
  --dlg-btn: #9C3D00;
  --dlg-btn-hover: #7A3000;
}
body.dp-tema-contraste .x-window.x-message-box {
  border-color: #000000 !important;
  box-shadow: 0 0 0 2px #000000, 0 28px 56px -12px rgba(0, 0, 0, .5) !important;
}
body.dp-tema-contraste .x-message-box .x-window-text,
body.dp-tema-contraste .x-message-box .x-form-display-field {
  color: #000000 !important;
}
body.dp-tema-contraste .x-message-box .x-toolbar-footer .x-btn.x-btn {
  border-color: #000000 !important;
}
body.dp-tema-contraste .x-message-box .x-toolbar-footer .x-btn .x-btn-inner {
  color: #000000 !important;
  font-weight: bold !important;
}
body.dp-tema-contraste .x-message-box .x-toolbar-footer .x-box-target > .x-btn:nth-child(-n+2) .x-btn-inner {
  color: #FFFFFF !important;
}
body.dp-tema-contraste .x-message-box .x-toolbar-footer .x-btn.x-btn.x-btn-focus {
  box-shadow: var(--dp-cs-foco) !important;
}
body.dp-tema-contraste .x-message-box .x-message-box-icon {
  filter: grayscale(1) contrast(2) brightness(.6);
}

/* Aguarde */
body.dp-tema-contraste .dp-ag,
body.dp-tema-contraste .dp-ag-tit,
body.dp-tema-contraste .dp-ag-txt,
body.dp-tema-contraste .dp-ag-rod { color: #000000; }
body.dp-tema-contraste .dp-ag-barra { background: #FFFFFF; box-shadow: inset 0 0 0 1px #000000; }
body.dp-tema-contraste .dp-ag-barra i { background: #0050B3; }
body.dp-tema-contraste .dp-ag-spin { border-color: #D9D9D9; border-top-color: #000000; }
body.dp-tema-contraste .x-window:has(.dp-ag) {
  box-shadow: 0 0 0 2px #000000 !important;
}

/* Menu lateral */
body.dp-tema-contraste .dp-menu-box .x-fieldset .x-btn:hover {
  background: #E6E6E6 !important;
  box-shadow: inset 0 0 0 1px #000000 !important;
}
body.dp-tema-contraste .dp-menu-box.dp-menu-compacto .dp-menu-mb:after {
  border-top-color: #000000;
}
body.dp-tema-contraste .dp-menu-box .x-fieldset .x-btn-inner {
  color: #000000;
}

/* Links e foco geral do teclado */
body.dp-tema-contraste a:not([class*="x-"]),
body.dp-tema-contraste a:not([class*="x-"]):visited {
  color: #0050B3;
  text-decoration: underline;
}
body.dp-tema-contraste :focus-visible {
  outline: 3px solid #FFB000 !important;
  outline-offset: 1px;
  box-shadow: 0 0 0 1px #000000;
}

/* Cores fixas das telas: fundos neutros brancos; textos vermelho/verde na paleta segura para daltonicos */
body.dp-tema-contraste [style*="background-color:rgb(240, 240, 240)"],
body.dp-tema-contraste [style*="background-color:#F0F0F0" i],
body.dp-tema-contraste [style*="background-color: rgb(240, 240, 240)"],
body.dp-tema-contraste [style*="background-color: #F0F0F0" i],
body.dp-tema-contraste [style*="background-color:rgb(244, 247, 252)"],
body.dp-tema-contraste [style*="background-color:#F4F7FC" i],
body.dp-tema-contraste [style*="background-color: rgb(244, 247, 252)"],
body.dp-tema-contraste [style*="background-color: #F4F7FC" i],
body.dp-tema-contraste [style*="background-color:rgb(227, 227, 227)"],
body.dp-tema-contraste [style*="background-color:#E3E3E3" i],
body.dp-tema-contraste [style*="background-color: rgb(227, 227, 227)"],
body.dp-tema-contraste [style*="background-color: #E3E3E3" i],
body.dp-tema-contraste [style*="background-color:rgb(191, 205, 219)"],
body.dp-tema-contraste [style*="background-color:#BFCDDB" i],
body.dp-tema-contraste [style*="background-color: rgb(191, 205, 219)"],
body.dp-tema-contraste [style*="background-color: #BFCDDB" i],
body.dp-tema-contraste [style*="background-color:rgb(215, 228, 242)"],
body.dp-tema-contraste [style*="background-color:#D7E4F2" i],
body.dp-tema-contraste [style*="background-color: rgb(215, 228, 242)"],
body.dp-tema-contraste [style*="background-color: #D7E4F2" i],
body.dp-tema-contraste [style*="background-color:rgb(200, 200, 200)"],
body.dp-tema-contraste [style*="background-color:#C8C8C8" i],
body.dp-tema-contraste [style*="background-color: rgb(200, 200, 200)"],
body.dp-tema-contraste [style*="background-color: #C8C8C8" i],
body.dp-tema-contraste [style*="background-color:rgb(185, 209, 234)"],
body.dp-tema-contraste [style*="background-color:#B9D1EA" i],
body.dp-tema-contraste [style*="background-color: rgb(185, 209, 234)"],
body.dp-tema-contraste [style*="background-color: #B9D1EA" i],
body.dp-tema-contraste [style*="background-color:rgb(153, 180, 209)"],
body.dp-tema-contraste [style*="background-color:#99B4D1" i],
body.dp-tema-contraste [style*="background-color: rgb(153, 180, 209)"],
body.dp-tema-contraste [style*="background-color: #99B4D1" i] {
  background-color: #FFFFFF !important;
  color: #000000;
}
body.dp-tema-contraste [style^="color:rgb(255, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#FF0000" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(255, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #FF0000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(255, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#FF0000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(255, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #FF0000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(255, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#FF0000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(255, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #FF0000" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color:rgb(128, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#800000" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(128, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #800000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(128, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#800000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(128, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #800000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(128, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#800000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(128, 0, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #800000" i]:not([style*="background"]) {
  color: #9C3D00 !important;
}
body.dp-tema-contraste [style^="color:rgb(0, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#008000" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(0, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #008000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(0, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#008000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(0, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #008000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(0, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#008000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(0, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #008000" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color:rgb(0, 128, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#008080" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(0, 128, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #008080" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(0, 128, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#008080" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(0, 128, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #008080" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(0, 128, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#008080" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(0, 128, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #008080" i]:not([style*="background"]) {
  color: #005A8C !important;
}
body.dp-tema-contraste [style^="color:rgb(0, 0, 255)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#0000FF" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(0, 0, 255)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #0000FF" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(0, 0, 255)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#0000FF" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(0, 0, 255)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #0000FF" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(0, 0, 255)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#0000FF" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(0, 0, 255)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #0000FF" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color:rgb(0, 0, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#000080" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(0, 0, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #000080" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(0, 0, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#000080" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(0, 0, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #000080" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(0, 0, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#000080" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(0, 0, 128)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #000080" i]:not([style*="background"]) {
  color: #00307A !important;
}
body.dp-tema-contraste [style^="color:rgb(128, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#808000" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(128, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #808000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(128, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#808000" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(128, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #808000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(128, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#808000" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(128, 128, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #808000" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color:rgb(154, 91, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color:#9A5B00" i]:not([style*="background"]),
body.dp-tema-contraste [style^="color: rgb(154, 91, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style^="color: #9A5B00" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:rgb(154, 91, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color:#9A5B00" i]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: rgb(154, 91, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*=";color: #9A5B00" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:rgb(154, 91, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color:#9A5B00" i]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: rgb(154, 91, 0)"]:not([style*="background"]),
body.dp-tema-contraste [style*="; color: #9A5B00" i]:not([style*="background"]) {
  color: #5C4400 !important;
}

/* Telas em HTML (Painel web, Minhas pendencias, listas de documentos de Processos e Peticoes): as cores fixas do
   codigo usam var(--dpb-RRGGBB / --dpf- / --dpl-, cor original) - b = fundo, f = texto, l = borda/linha/sombra.
   Nos temas claros as variaveis nao existem e vale a cor original; aqui o Alto contraste as redefine.
   --dp-t-mix: quanto da cor de linha (CorFundoCSS) aparece sobre o fundo. */
body.dp-tema-contraste {
  --dp-t-mix: 100%;
  --dpb-000000: #000000; --dpb-0b4a8a: #0B4A8A; --dpb-0e5aa7: #0354A1; --dpb-16202c: #000000;
  --dpb-b42318: #8B3F0A; --dpb-c4ffc4: #C4FFC4; --dpb-d3e2f6: #D3E2F6; --dpb-d5dde8: #D5DDE8;
  --dpb-dcf5e5: #DCF5E5; --dpb-dcfce7: #DCFCE7; --dpb-dde5ef: #DDE5EF; --dpb-e0ecff: #E0ECFF;
  --dpb-e1e6ee: #E1E6EE; --dpb-e2c6ff: #E2C6FF; --dpb-e3edfa: #E3EDFA; --dpb-e3eefb: #E3EEFB;
  --dpb-e6eaf0: #E6EAF0; --dpb-e8edf4: #E8EDF4; --dpb-e8f0fb: #E8F0FB; --dpb-ede9fe: #EDE9FE;
  --dpb-eef1f5: #FFFFFF; --dpb-eef2f7: #FFFFFF; --dpb-eef4fc: #EEF4FC; --dpb-f3f4f6: #FFFFFF;
  --dpb-f3f5f9: #FFFFFF; --dpb-f4f8fd: #FFFFFF; --dpb-f7f9fc: #FFFFFF; --dpb-f7fafe: #FFFFFF;
  --dpb-f8fafc: #FFFFFF; --dpb-fafbfd: #FFFFFF; --dpb-fde4e4: #FDE4E4; --dpb-fde8e8: #FDE8E8;
  --dpb-fdf3d7: #FDF3D7; --dpb-fec2ce: #FEC2CE; --dpb-fee4e2: #FEE4E2; --dpb-fef3c7: #FEF3C7;
  --dpb-fff5f5: #FFF5F5; --dpb-ffffff: #FFFFFF; --dpf-000000: #000000; --dpf-0b3f75: #0B3F75;
  --dpf-0e4c8f: #0E4C8F; --dpf-0e5aa7: #0354A1; --dpf-14532d: #004B71; --dpf-14753b: #065B87;
  --dpf-16202c: #000000; --dpf-166534: #0D5B85; --dpf-1d4ed8: #1341CB; --dpf-1f2937: #000000;
  --dpf-34475f: #34475F; --dpf-374151: #000000; --dpf-475569: #000000; --dpf-4c1d95: #4C1D95;
  --dpf-5a6575: #000000; --dpf-5b21b6: #5B21B6; --dpf-7a1028: #6B2D03; --dpf-92400e: #8B3902;
  --dpf-9a5b00: #794809; --dpf-9aa4b2: #000000; --dpf-9b1c1c: #873C06; --dpf-b42318: #883C05;
  --dpf-b45309: #873D05; --dpf-b8c4d4: #FFFFFF; --dpf-b91c1c: #853E10; --dpf-ffffff: #FFFFFF;
  --dpl-0e5aa7: #0E5AA7; --dpl-16202c: #000000; --dpl-166534: #0D5B85; --dpl-1d4ed8: #1D4ED8;
  --dpl-2563eb: #1754DB; --dpl-3b82f6: #115BCC; --dpl-5a6575: #000000; --dpl-64748b: #55647B;
  --dpl-6b7280: #000000; --dpl-7c3aed: #7128DE; --dpl-9aa4b2: #000000; --dpl-9db8de: #4C6587;
  --dpl-b42318: #9D4607; --dpl-b8c2cf: #767676; --dpl-b9c3d0: #767676; --dpl-b9c7d8: #767676;
  --dpl-b9d0ee: #767676; --dpl-bfd3ee: #767676; --dpl-c5d7ee: #767676; --dpl-c9d8ee: #767676;
  --dpl-cdd5df: #767676; --dpl-cfddf0: #767676; --dpl-d5dce5: #767676; --dpl-d5dde8: #767676;
  --dpl-d6e2f2: #767676; --dpl-db2777: #9C470F; --dpl-dc2626: #9B4812; --dpl-dce6f3: #767676;
  --dpl-e6eaf0: #767676; --dpl-e8a13a: #87580A; --dpl-eef1f5: #767676; --dpl-f59e0b: #8A5601;
  --dpl-fda29b: #767676; --dpl-ffffff: #767676;
}

/* Alto contraste: situacao nunca so pela cor (daltonismo). Vermelho ganha "!" e ambar ganha um relogio. */
body.dp-tema-contraste .dpw-qtd-verm:before,
body.dp-tema-contraste .dpp-etq-verm:before,
body.dp-tema-contraste .dpw-chip.dpw-vermelho:before,
body.dp-tema-contraste .dpw-chip.dpw-venc:before,
body.dp-tema-contraste .dpw-chip.dpw-alerta:before,
body.dp-tema-contraste .dpp-chip.dpp-vermelho:before,
body.dp-tema-contraste .dpp-chip.dpp-venc:before,
body.dp-tema-contraste .dpp-chip.dpp-alerta:before {
  content: "! ";
  font-weight: 800;
}
body.dp-tema-contraste .dpp-etq-amar:before,
body.dp-tema-contraste .dpw-chip.dpw-ambar:before,
body.dp-tema-contraste .dpp-chip.dpp-ambar:before {
  content: "\25D4 ";
}

/* Miniaturas do combo de tema: 8 Grafite e 9 Alto contraste (itens 9 e 10, o 1 e o "Padrao") */
.dp-lista-tema .x-boundlist-item:nth-child(9):before { background: linear-gradient(135deg, #A6A6A6 50%, #374151 50%); }
.dp-lista-tema .x-boundlist-item:nth-child(10):before { background: linear-gradient(135deg, #FFFFFF 50%, #000000 50%); border-color: #000000; }

/* Icone "parar" (quadrado) para botoes com IconCls = 'dp-ico-parar' (o 'cancel' nao existe entre os icones do UniGUI) */
.x-btn-icon-el.dp-ico-parar {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='3' y='3' width='10' height='10' rx='1.5' fill='%23333333'/%3E%3C/svg%3E") no-repeat center / 14px 14px !important;
}

/* Icones do menu principal (ImagensMenu) nos botoes das telas web: files/images/dp-menu-icones.png tem os
   icones em 32 px lado a lado, na ordem dos indices. --i = indice, --s = tamanho desenhado. */
.dpi{display:inline-block;flex:none;vertical-align:middle;width:var(--s,16px);height:var(--s,16px);background:url(../images/dp-menu-icones.png) no-repeat;background-size:calc(var(--s,16px) * 109) var(--s,16px);background-position:calc(var(--i,0) * var(--s,16px) * -1) 0}
/* Botao principal (fundo de destaque): o icone colorido ganha um fundo claro para manter o contraste */
.dpp-btn .dpi,.dpp-acao.p .dpi,.dpw-acao.p .dpi{background-color:#FFF;border-radius:3px;box-shadow:0 0 0 1px #FFF}
