/* ======================================================================
   TEXTURA  ·  painel NO AR (/var/www/painel/)  ·  Café D' Família®
   GERADO por derivar_texturas.py em 07/09/2026. NÃO EDITAR À MÃO:
   toda medida daqui sai do script, e editar aqui desfaz a prova.

   A TEXTURA É UMA SÓ, e é a das CURVAS DE NÍVEL. O motivo é medido,
   não é gosto: a cobertura de tinta dela é 6,87% do quadro, contra
   57,01% do folha-e-grão e 33,38% da cereja. Só a primeira é textura;
   as outras duas são ESTAMPA e não entram em tela de trabalho.

   EM TINTA ÚNICA: a Lavoura #11463f.
   O vermelho do desenho original saiu porque o Café tem emprego neste
   sistema: ele quer dizer EXIGE AÇÃO. Sinal precisa de significado
   estável, senão o vermelho vira papel de parede, e linha vermelha
   decorativa no fundo é exatamente isso.

   POR QUE A TINTA DEIXOU DE SER A PLANTA. É o achado que custou a
   rodada de 07/09/2026, e ele não aparece em medição de contraste
   nenhuma. O `volta.php` herda o MATIZ da marca e TRAVA o croma dos
   quatro planos: é a regra que nasceu quando o Neto reprovou o app
   em 01/09/2026, com a tela monocromática por construção.

   Medido no plano #e3e1dc, com a força do sistema. A trava dele é
   C* 2,7, e o ruído de 8 bits nessa claridade vale 2,0, então o que
   se cobra é ficar dentro da trava MAIS o ruído, 4,7:

     Planta, composição normal ..... C* 6,5   FURA por 1,8
     Lavoura, multiplicada ......... C* 3,2   dentro do ruído

   A Planta levava o croma a mais do DOBRO da trava, e furava mesmo
   descontando o ruído: era furo de verdade, por uma porta que o
   contraste não enxerga. A Lavoura quase não desloca o matiz, e o valor
   dela fica indistinguível do plano limpo. Por isso é ela.

   ELA SE PENDURA NO PLANO, NÃO NA TELA. São duas regras: o plano da
   página e a barra do topo. O cartão e a faixa são opacos e pousam por
   cima, então ficam limpos POR CONSTRUÇÃO, sem regra de exceção. A
   textura aparece na sobra entre os blocos, que é onde ela é vida, e
   nunca atrás de número, que é onde ela é ruído.

   O MODO DE MISTURA É A DIREÇÃO. A textura empurra cada plano para
   LONGE do vizinho, e o modo diz para que lado:
     .appbar  screen    clareia, afastando-se da página escura
     body     multiply  escurece, afastando-se do cartão
   Numa página escura não existe cor da paleta mais escura que ela,
   então compor por cima só CLAREIA, e clarear é andar na direção do
   cartão: era assim que a versão anterior derrubava a separação do
   cartão de 1,29 para 1,18 com todo o texto ainda acima de 4,5:1.

   NENHUMA COR NOVA. A Lavoura é uma das quatro da SN3P. Quem clareia ou
   escurece é a opacidade e o modo, não um hexadecimal novo.

   SEM LADRILHO, e isto quase saiu errado. O padrão foi recortado de
   uma página do manual e não fecha nas bordas. A primeira prova, numa
   tira de 220px de altura, disse que a emenda sumia na opacidade de
   trabalho. Refeita num campo ALTO, ela aparece como risco vertical
   nítido, porque ali tem altura para o olho segui-la. Prova curta
   demais aprova o que a tela reprova. Por isso `cover` e `no-repeat`.

   O PREÇO DO `cover`, declarado: a escala acompanha a largura do
   bloco. Num telefone de 390px as linhas saem com 1px; num campo de
   1170px tudo triplica. O painel é ferramenta de telefone, então o
   preço é aceitável, mas ele existe.

   O PISO DESTE ALVO É 4,5:1 para texto pequeno (WCAG 1.4.3) e 3,0:1
   para elemento gráfico (WCAG 1.4.11), e ele é o piso DA CASA, lido
   do próprio alvo. Não é escolha minha.

   FICA DITO, porque a primeira versão errou nisto: eu havia usado
   7:1 citando a `regua.txt`, que é do painel2 e não deste painel.
   Além de ser régua de outro, 7:1 é IMPOSSÍVEL aqui: a --ink-2
   sobre a --pagina clara mede 5,50:1 LIMPA, e sobre a --faixa mede
   4,85:1. Um piso de 7:1 reprovaria a tela que já está no ar antes
   de eu encostar nela.
   ====================================================================== */

:root{
  --textura: url("/marca/textura/cdf-textura-curvas-de-nivel-lavoura.svg");

  /* AS OPACIDADES NÃO FORAM ESCOLHIDAS, FORAM DERIVADAS.
     Alfa não é unidade de intensidade: o mesmo 12% anda 3,12 em L*
     sobre a Lavoura e 4,65 sobre a Flor. O que é fixo é a FORÇA,
     4,0 de L* entre o ponto sem traço e o de traço cheio; o alfa de
     cada plano é o que produz essa força ali, e só depois ele é
     conferido contra o teto de contraste. Se não couber, o script
     para e não entrega nada. */

  /* .appbar: a barra do topo, em todas as telas
     --topo-a #11463f vira #145048. Força 3,96 L*.
       texto da barra, Flor (#eae3d2): 8,33:1 limpo, 7,23:1 no traço cheio.
     --topo-b #0d3a34 vira #10443e. Força 4,11 L*.
       texto da barra, Flor (#eae3d2): 9,82:1 limpo, 8,56:1 no traço cheio.
     Teto para o piso de 4,5:1 = 85,5%. Escolhido 19%, folga de 66,5 pontos.
     Tinta Lavoura #11463f, modo screen.
     A BORDA DO CARTÃO vale o MAIOR dos mecanismos de cor: 1,75 -> 1,75.
     contra a página escura (#101313): pior ponto 1,75 -> 1,75, e no traço
     cheio 2,02. A textura só pode afastar o plano do vizinho.
     contra a página escura (#101313): pior ponto 1,49 -> 1,49, e no traço
     cheio 1,71. A textura só pode afastar o plano do vizinho.
     */
  --textura-barra: 0.19;

  /* body: o plano da página, atrás de tudo
     --pagina #e3e1dc vira #d4d6d0. Força 4,23 L*.
       --ink (#11463f): 8,15:1 limpo, 7,27:1 no traço cheio.
       --ink-2 (#3f5d59): 5,5:1 limpo, 4,9:1 no traço cheio.
     Teto para o piso de 4,5:1 = 11,5%. Escolhido 7%, folga de 4,5 pontos.
     Tinta Lavoura #11463f, modo multiply.
     A BORDA DO CARTÃO vale o MAIOR dos mecanismos de cor: 1,75 -> 1,75.
       o limite contra o cartão: 1,75, e a textura não o alcança.
     contra o cartão --cartao (#fefcf7): pior ponto 1,27 -> 1,27, e no traço
     cheio 1,43. A textura só pode afastar o plano do vizinho.
     contra o limite --limite (#c3c1bc): pior ponto 1,38 -> 1,23, e no traço
     cheio 1,23. A textura só pode afastar o plano do vizinho.
     CROMA de --pagina: C* 2,7 -> 3,2. A trava do volta.php é 2,7, e a
     tolerância é o ruído de 8 bits do próprio plano, 2, medido
     e não escolhido. Ver o cabeçalho para a comparação com a
     tinta recusada, que furava esta mesma trava. */
  --textura-pagina: 0.07;
}

@media (prefers-color-scheme: dark){
  :root{
    /* body: o plano da página, atrás de tudo
       --pagina #101313 vira #030706. Força 3,96 L*.
         --ink (#eae3d2): 14,6:1 limpo, 15,83:1 no traço cheio.
         --ink-2 (#b6bdaf): 9,68:1 limpo, 10,5:1 no traço cheio.
       Teto para o piso de 4,5:1 = 100,0%. Escolhido 90%, folga de 10,0 pontos.
       Tinta Lavoura #11463f, modo multiply.
       A BORDA DO CARTÃO vale o MAIOR dos mecanismos de cor: 2,62 -> 2,62.
         o limite contra o cartão: 2,04, e a textura não o alcança.
       contra o cartão --cartao (#262a29): pior ponto 1,29 -> 1,29, e no traço
       cheio 1,39. A textura só pode afastar o plano do vizinho.
       contra o limite --limite (#545958): pior ponto 2,62 -> 2,62, e no traço
       cheio 2,84. A textura só pode afastar o plano do vizinho.
       CROMA de --pagina: C* 1,2 -> 1,2. A trava do volta.php é 1,2, e a
       tolerância é o ruído de 8 bits do próprio plano, 2, medido
       e não escolhido. Ver o cabeçalho para a comparação com a
       tinta recusada, que furava esta mesma trava. */
    --textura-pagina: 0.90;
  }
}

/* ----------------------------------------------------------------------
   COMO A CAMADA É PENDURADA

   Num ::before com z-index:-1. Dentro de um contexto de empilhamento,
   o filho de z-index negativo pinta ACIMA do fundo do pai e ABAIXO do
   conteúdo em fluxo: é exatamente o que se quer, custa uma linha e não
   obriga a mexer em nenhum filho.

   No plano da página a camada é `position:fixed`, e não absolute: o
   fundo da página não rola junto com o conteúdo, senão a textura
   desliza e chama atenção para si. Fixa, ela é cenário, que é o papel
   dela.

   `pointer-events:none` porque textura não é alvo de toque, e o alvo
   de 44px do WCAG 2.5.5 não pode ser roubado por um enfeite.
   ---------------------------------------------------------------------- */

.appbar{ isolation: isolate; }
.appbar::before{
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background: var(--textura) center / cover no-repeat;
  opacity: var(--textura-barra);
  pointer-events: none;
  border-radius: inherit;   /* a barra tem canto de 22px embaixo */
  /* LUZ, e aqui é o contrário da página, de propósito. A barra
     precisa se afastar da página ESCURA, que é o par mais fraco
     da tela (1,49 limpo). Clareando, ela sobe para 1,71. É a
     mesma regra: a textura empurra o plano para longe do
     vizinho, e o modo é a direção. */
  mix-blend-mode: screen;
  /* A ÁREA DE PROTEÇÃO DA MARCA, cumprida em CSS. A barra carrega a
     marca na tela: a policroma escura a 130,6px na chegada e o símbolo
     a 24,6px nas telas de dentro. O manual proíbe grafismo dentro de
     1X da marca, e textura é grafismo. Medido: sobre a barra limpa a
     policroma escura dá 2,34:1 pela tinta Café, e com a textura a 14%
     cai para 2,01:1. Logotipo é isento de piso pela WCAG 1.4.11 e o
     número já era decisão de identidade, então nada ali REPROVA; mas
     perder 14% do pouco que há, por enfeite, não se faz. A máscara
     resolve sem tocar no desenho e sem baixar a opacidade do resto.
     O 208px = 16px de recuo + 130,6px da assinatura + 1X de proteção,
     arredondado para cima. A entrada de 48px evita borda dura. */
  -webkit-mask-image: linear-gradient(90deg,
      transparent 0 208px, #000 256px 100%);
  mask-image: linear-gradient(90deg,
      transparent 0 208px, #000 256px 100%);
}

body{ position: relative; isolation: isolate; }
body::before{
  content: "";
  position: fixed; inset: 0; z-index: -1;
  background: var(--textura) center / cover no-repeat;
  opacity: var(--textura-pagina);
  pointer-events: none;
  /* SOMBRA, não luz. Numa página escura não existe cor da paleta
     mais escura que ela, então compor por cima só CLAREIA, e
     clarear é andar na direção do cartão. Multiplicando, o
     resultado é sempre mais escuro que os dois: a página se
     afasta do cartão nos dois temas, sem cor nova e sem furar a
     trava de croma do volta.php. */
  mix-blend-mode: multiply;
}

/* Textura não carrega informação: em impressão ela só gasta tinta e
   come definição, e quem pede menos movimento também pede menos ruído
   de fundo. Nos dois casos ela sai inteira. */
@media print, (prefers-reduced-motion: reduce){
  .appbar::before, body::before{ opacity: 0; }
}

/* ----------------------------------------------------------------------
   ONDE A TEXTURA NÃO ENTRA. Cada linha com o número que a barra.

   --cartao claro #fefcf7
     --ink-2: 7,01:1 limpo, 6,33:1 com textura, piso 4,5:1. Teto 24,0%, e a
     força do sistema pediria 5,8%.
     o cartão é onde mora o número, e é opaco por cima da página: não precisa de regra nenhuma para ficar limpo, e é isso que torna esta arquitetura segura.

   --faixa clara #d6d4cf
     --ink-2: 4,85:1 limpo, 4,32:1 com textura, piso 4,5:1. Teto 4,5%, e a
     força do sistema pediria 7,0%.
     a --ink-2 já está em 4,85:1 ali, e o teto de alfa não alcança a força do sistema. Não há orçamento.

   --cartao escuro #262a29
     --ink-2: 7,53:1 limpo, 8,37:1 com textura, piso 4,5:1. Teto 100,0%, e a
     força do sistema pediria 27,0%.
     mesmo motivo do cartão claro: é onde mora o número.

   Todo cartão com número, e toda faixa dentro dele
     o número é o produto da tela. Fundo que se mexe atrás dele é ruído puro, e a queixa que abriu a reforma foi tela bagunçada. Nesta arquitetura eles já ficam limpos sozinhos, porque são opacos.

   Qualquer tabela
     a linha da tabela já é um ritmo visual. Dois ritmos sobrepostos embaralham, e quem lê perde a linha em que estava.

   Qualquer gráfico
     o traço do gráfico e a curva de nível são o MESMO desenho, uma linha fina curva. O olho não separa os dois, e o leitor passa a ver série onde não há.

   A área de proteção da marca
     o manual da SN3P proíbe qualquer grafismo dentro de 1X, e textura é grafismo. Na barra isso é cumprido por máscara, ver o CSS.

   Atrás de foto ou de imagem de satélite
     sobre foto a medição de cor é outra, contra a imagem e não contra o fundo. É a razão da exceção declarada no painel de Máquinas.
   ---------------------------------------------------------------------- */
