/* Acessibilidade escolhida por cada pessoa (Configurações → Acessibilidade, Etapa 12).
   O servidor põe no <html> data-tamanho, data-tema, data-contraste e data-movimento;
   aqui ficam as variações, todas por variáveis do tema (tokens.css). Sem estilo inline
   (CSP). As páginas públicas não recebem os atributos e ficam no tema claro. */

/* ── Tamanho do texto: tudo cresce junto (texto, campos e espaços) ──────── */
:root[data-tamanho="grande"] body {
  zoom: 1.12;
}

:root[data-tamanho="maior"] body {
  zoom: 1.25;
}

/* ── Tema escuro (escolhido, ou "igual ao computador" num aparelho escuro) ─
   Só na tela: a impressão sai sempre no tema claro. */
@media screen {
:root[data-tema="escuro"] {
  color-scheme: dark;
  --cabecalho: #0b1424;
  --cabecalho-marca: #070e1a;
  --fundo: #0e1520;
  --superficie: #161f2c;
  --superficie-2: #1b2635;
  --superficie-3: #24324a;
  --menu: #121a26;
  --menu-ativo: #ffffff;
  --texto: #e7ecf3;
  --texto-2: #bcc7d6;
  --texto-3: #9fadc0;
  --icone: #8d9bb0;
  --linha: #2a3648;
  --linha-2: #3a4a60;
  --linha-tabela: #222e3f;
  --campo-borda: #7486a0;
  --acento: #6aa5f2;
  --acento-hover: #8ab9f6;
  --acento-suave: #1d3150;
  --sobre-acento: #0b1424;
  --sobre-acento-suave: #ffffff;
  --th-fundo: #1b2635;
  --th-borda: #3a4a60;
  --linha-hover: #1e2a3b;
  --ok: #6fcf97;
  --ok-fundo: #15301f;
  --ok-borda: #2c5a3c;
  --info: #7fb2f5;
  --info-fundo: #172a45;
  --alerta: #f2c46d;
  --alerta-fundo: #33270f;
  --alerta-borda: #5e4818;
  --neutro: #bcc7d6;
  --neutro-fundo: #243045;
  --erro: #ff8f84;
  --erro-fundo: #3a1714;
  --erro-hover: #ffaca3;
  --sobre-erro: #2a0d0a;
  --perigo: #ff8f8f;
  --perigo-fundo: #3a1717;
  --grafico-receita: #5d9cf0;
  --grafico-despesa: #3cc4b2;
  --grafico-resultado: #d9e1ec;
  --cancelado: #9aa5b5;
  --ok-marca: #4fbf7f;
  --info-marca: #6aa5f2;
  --alerta-marca: #e5a93c;
  --neutro-marca: #66748a;
}
}

@media screen and (prefers-color-scheme: dark) {
  :root[data-tema="auto"] {
    color-scheme: dark;
    --cabecalho: #0b1424;
    --cabecalho-marca: #070e1a;
    --fundo: #0e1520;
    --superficie: #161f2c;
    --superficie-2: #1b2635;
    --superficie-3: #24324a;
    --menu: #121a26;
    --menu-ativo: #ffffff;
    --texto: #e7ecf3;
    --texto-2: #bcc7d6;
    --texto-3: #9fadc0;
    --icone: #8d9bb0;
    --linha: #2a3648;
    --linha-2: #3a4a60;
    --linha-tabela: #222e3f;
    --campo-borda: #7486a0;
    --acento: #6aa5f2;
    --acento-hover: #8ab9f6;
    --acento-suave: #1d3150;
    --sobre-acento: #0b1424;
    --sobre-acento-suave: #ffffff;
    --th-fundo: #1b2635;
    --th-borda: #3a4a60;
    --linha-hover: #1e2a3b;
    --ok: #6fcf97;
    --ok-fundo: #15301f;
    --ok-borda: #2c5a3c;
    --info: #7fb2f5;
    --info-fundo: #172a45;
    --alerta: #f2c46d;
    --alerta-fundo: #33270f;
    --alerta-borda: #5e4818;
    --neutro: #bcc7d6;
    --neutro-fundo: #243045;
    --erro: #ff8f84;
    --erro-fundo: #3a1714;
    --erro-hover: #ffaca3;
    --sobre-erro: #2a0d0a;
    --perigo: #ff8f8f;
    --perigo-fundo: #3a1717;
    --grafico-receita: #5d9cf0;
    --grafico-despesa: #3cc4b2;
    --grafico-resultado: #d9e1ec;
    --cancelado: #9aa5b5;
    --ok-marca: #4fbf7f;
    --info-marca: #6aa5f2;
    --alerta-marca: #e5a93c;
    --neutro-marca: #66748a;
  }
}

/* ── Logo sobre o fundo da página (fatura): a negativa no tema escuro ──── */
.marca-tema-escuro {
  display: none;
}

@media screen {
  :root[data-tema="escuro"] .marca-tema-claro {
    display: none;
  }

  :root[data-tema="escuro"] .marca-tema-escuro {
    display: block;
  }
}

@media screen and (prefers-color-scheme: dark) {
  :root[data-tema="auto"] .marca-tema-claro {
    display: none;
  }

  :root[data-tema="auto"] .marca-tema-escuro {
    display: block;
  }
}

/* ── Alto contraste: textos secundários e bordas mais fortes ───────────── */
:root[data-contraste="alto"] {
  --texto: #000000;
  --texto-2: #1b2430;
  --texto-3: #2b3546;
  --icone: #3b4658;
  --linha: #8d99ab;
  --linha-2: #6b788c;
  --linha-tabela: #a9b3c2;
  --campo-borda: #3b4658;
  --acento: #123a6e;
  --acento-hover: #0c2a52;
}

@media screen {
:root[data-contraste="alto"][data-tema="escuro"] {
  --texto: #ffffff;
  --texto-2: #e7ecf3;
  --texto-3: #d0d8e4;
  --icone: #c3cddb;
  --linha: #5d6e86;
  --linha-2: #7f90a8;
  --linha-tabela: #46566d;
  --campo-borda: #c3cddb;
  --acento: #9cc6ff;
  --acento-hover: #bcd8ff;
}
}

@media screen and (prefers-color-scheme: dark) {
  :root[data-contraste="alto"][data-tema="auto"] {
    --texto: #ffffff;
    --texto-2: #e7ecf3;
    --texto-3: #d0d8e4;
    --icone: #c3cddb;
    --linha: #5d6e86;
    --linha-2: #7f90a8;
    --linha-tabela: #46566d;
    --campo-borda: #c3cddb;
    --acento: #9cc6ff;
    --acento-hover: #bcd8ff;
  }
}

/* ── Reduzir animações (além da preferência do sistema operacional) ─────── */
:root[data-movimento="reduzido"] *:not(.confirmacao-acao),
:root[data-movimento="reduzido"] *::before,
:root[data-movimento="reduzido"] *::after {
  animation: none !important;
  transition: none !important;
}

:root[data-movimento="reduzido"] .confirmacao-circulo,
:root[data-movimento="reduzido"] .confirmacao-marca {
  stroke-dashoffset: 0;
}

:root[data-movimento="reduzido"] .janela-modal::backdrop,
:root[data-movimento="reduzido"] .janela-pergunta::backdrop,
:root[data-movimento="reduzido"] .visualizador::backdrop {
  animation: none !important;
}

:root[data-movimento="reduzido"]::view-transition-group(aba-atual),
:root[data-movimento="reduzido"]::view-transition-group(periodo-atual) {
  animation: none !important;
}

