/* Camada de contraste para painéis, cartões e blocos de comunicação escuros. */
.bg-primary, .bg-primary-container, .bg-secondary, .bg-tertiary, .bg-error,
.public-hero-grid ~ *, .public-glass-card, .chat-admin-shell {
  color: #fff;
}

.bg-primary :is(h1,h2,h3,h4,p,span,label,a,button),
.bg-primary-container :is(h1,h2,h3,h4,p,span,label,a,button),
.bg-secondary :is(h1,h2,h3,h4,p,span,label,a,button),
.bg-tertiary :is(h1,h2,h3,h4,p,span,label,a,button),
.public-glass-card :is(h1,h2,h3,h4,p,span,label,a,button),
.chat-admin-shell :is(h1,h2,h3,h4,p,span,label,a,button) {
  color: inherit;
}

/* Textos auxiliares ganham contraste suficiente em fundos azul-marinho. */
.bg-primary .text-white\/60, .bg-primary .text-white\/70, .bg-primary .text-white\/75,
.bg-primary-container .text-white\/60, .bg-primary-container .text-white\/70,
.public-glass-card .text-white\/60, .public-glass-card .text-white\/70 {
  color: rgba(255,255,255,.86);
}

/* Inputs e cards claros continuam legíveis mesmo dentro de uma área escura. */
.bg-primary input, .bg-primary textarea, .bg-primary select,
.bg-primary-container input, .bg-primary-container textarea, .bg-primary-container select,
.chat-admin-shell input, .chat-admin-shell textarea {
  color: #10243a;
  background-color: #fff;
}

/* Acessibilidade: foco claro visível em qualquer fundo escuro. */
.bg-primary :focus-visible, .bg-primary-container :focus-visible,
.public-glass-card :focus-visible, .chat-admin-shell :focus-visible {
  outline-color: #fff;
  box-shadow: 0 0 0 4px rgba(255,255,255,.3);
}
