@import 'brainopme-comum.css?ox=0.1.20231115_001';

/* brainopme-claro.css - arquivo de entrada da cadeia para a marca BrainOPME no tema claro.
   Declara as primitivas do projeto (paleta clara); nenhum seletor de layout, nenhuma variavel
   do OpenXava. A ponte para os tokens do prefixo itsbrain que o chrome le fica em
   brainopme-comum.css (plano 01-04). Fonte dos 20 valores do mockup: medico-app.html, bloco
   :root, linhas 11 a 31. */

:root {
	--brainopme-cadeia-entrada: "18226-claro";

	/* Primitivas do mockup (medico-app.html linhas 11-31), valor literal, hex e rgba permitidos
	   aqui: sao primitivas do projeto, nao variaveis do OpenXava/chrome (a restricao de TEMA-03
	   vale para essas outras, mapeadas em brainopme-comum.css). */
	--ink: #0f2036;
	/* D-26 (A11Y-02, plano 04-03): valor do mockup era #0583F2. Escurecido para atingir o piso
	   de 4.5:1 do texto branco (--on-accent) sobre o acento (botao de acao primaria), que media
	   3.79:1. Registro completo em 04-DIVERGENCIAS-CONTRASTE.md. */
	--orange: #0475D7;        /* ACENTO, nome historico do contrato do jar; carrega o azul de acento do projeto */
	--orange-d: #034AA6;
	--amber: #66B1F2;
	--paper: #eef4fb;
	--paper2: #e3ecf7;
	--card: #fbfdff;
	--line: #d3e0ee;
	/* D-26 (A11Y-02, plano 04-03): valor do mockup era #b4c8dd. Escurecido para atingir o piso
	   de 3.0:1 de borda/componente contra --bg, que media 1.48:1. Registro completo em
	   04-DIVERGENCIAS-CONTRASTE.md. */
	--line-d: #7A8896;
	--muted: #5c6b7d;
	--green: #1f9d68;
	/* D-26 (A11Y-02, plano 04-03): valor do mockup era #d64550. Escurecido para atingir o piso
	   de 4.5:1 de texto contra --card, que media 4.27:1. Registro completo em
	   04-DIVERGENCIAS-CONTRASTE.md. */
	--red: #CB424C;
	--blue: #0583F2;
	--bg: #e7eff8;
	--field-bg: #ffffff;
	/* G-04 (plano 04-09, gap closure): lupa do campo de busca de modulos, mesma tecnica de
	   --itsbrain-logo-horizontal (background-image por var(), cor bakeada no proprio SVG porque
	   um data-URI de imagem nao le custom properties do CSS -- so o VALOR do token muda por
	   tema, igual a logo). Stroke = --muted deste tema (#5c6b7d), ASCII puro com reservados
	   percent-encoded (# -> %23, < -> %3C, > -> %3E), pela mesma regra do CSSServlet
	   (Writer ISO-8859-1) que ja vale para o resto do arquivo. */
	--icone-busca: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c6b7d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
	--on-accent: #ffffff;
	--chip: #0f2036;
	--chip-text: #eef4fb;
	/* D-26a (emenda de D-26, plano 04-07, gap G-07 do UAT humano): D-26 elevou o alfa deste
	   token de .20 para .95 para atingir o piso 3.0:1 -- a espessura nunca mudou (o jar sempre
	   pintou box-shadow de 3px), mas um halo a 95% de opacidade le como tarja solida, e o
	   operador reportou a borda de foco como "muito mais grossa que o aceitavel". A correcao e
	   geometrica, nao de opacidade: o anel passa a ter DUAS camadas (1px interno em
	   --focus-ring-inner, que separa o anel da borda do campo, mais 2px externos SOLIDOS nesta
	   cor), mantendo os 3px totais. Este token volta a cor solida do mockup (alfa 1.0, revertendo
	   a METADE de D-26 que subiu o alfa) porque a camada externa solida mede MELHOR que o alfa
	   .95 de hoje em toda superficie candidata (3.18:1 vs 3.01:1 contra --paper2, a pior). Emenda
	   delimitada AO ANEL DE FOCO -- --line-d, --orange e --red, tambem ajustados por D-26, nao
	   foram revisitados. Detalhe completo em 04-CONTEXT.md, secao "Emendas de decisao", entrada
	   D-26a; valores medidos em 04-DIVERGENCIAS-CONTRASTE.md. */
	--focus-ring: rgba(5,131,242,1);
	/* D-26a: camada INTERNA de 1px do anel de foco de duas camadas -- separa o anel externo
	   solido da borda do proprio campo, resolvendo visualmente o problema de "tarja" sem abrir
	   mao do contraste solido da camada externa. Valor = --field-bg (branco puro no claro, o
	   mesmo fundo do campo): a camada interna "some" contra o campo e so a externa fica visivel
	   como anel, que e o efeito pedido pelo operador. */
	--focus-ring-inner: var(--field-bg);
	--sky: #66B1F2;

	/* Extensao: triplas RGB, sem parenteses, para o chrome montar rgba() (UI-SPEC) */
	--orange-rgb: 4, 117, 215;
	--amber-rgb: 102, 177, 242;
	--blue-rgb: 5, 131, 242;
	--green-rgb: 31, 157, 104;
	--red-rgb: 203, 66, 76;
	--shadow-rgb: 15, 32, 54;   /* derivado de --ink; sombra neutra do tema claro */

	/* Extensao: efeitos que o chrome le e o mockup nao nomeia, valor minimo seguro (UI-SPEC) */
	--accent-veil: rgba(5, 131, 242, .08);
	--cta-glow: rgba(5, 131, 242, .35);
	--cta-glow-hover: rgba(5, 131, 242, .5);
	/* D-26a (emenda de D-26, plano 04-07, gap G-07): mesmo tratamento do irmao --focus-ring --
	   camada externa solida em vez de alfa alto (quick task 260902-jhr havia corrigido para
	   rgba(203,66,76,.79); agora vira opaca). Deixar so este token com o desenho antigo
	   produziria dois vocabularios de foco no mesmo produto (WR-01 do code review ja pegou uma
	   variante desta incoerencia). Consome a mesma --focus-ring-inner como camada 1px interna. */
	--focus-ring-red: rgba(203,66,76,1);
	--orange-text: var(--orange-d);   /* texto/link sobre acento; --orange puro reprova legibilidade como texto */

	/* Marca: o asset azul abaixo fica na raiz do webapp, nao em xava/style; caminho relativo sobe
	   dois niveis a partir daqui, igual ao que o CSS de marca legado do BrainOPME (removido no
	   plano 01-07, TEMA-08) fazia para a mesma logo. O
	   UI-SPEC trazia url('logo.svg'), forma que resolveria dentro de xava/style e devolveria
	   HTTP 500 do CSSServlet (FileNotFoundException) em vez de pintar a logo; corrigido aqui.

	   D-11a (emenda de D-11, plano 04-06, gap G-01 do UAT humano): D-11 fixava "uma logo por
	   marca, mesma nos dois temas" (logo.svg branca, ambos os temas). Essa regra nao sobrevive
	   ao contraste da superficie clara: a logo branca sobre --card mede 1.02:1 e sobre --paper2
	   mede 1.19:1, medido ao vivo (04-GAPS-UAT.md, secao G-01), muito abaixo do piso de produto
	   de 3.0. Regra nova: uma logo por marca POR TEMA -- azul (#034AA6, ja existente no
	   repositorio, nunca usado ate aqui) no claro, branca no escuro. So este arquivo (claro)
	   muda de asset; o gemeo escuro (brainopme-escuro.css) fica com a logo branca de proposito,
	   com o motivo escrito no comentario dele (o mesmo azul mede 1.89:1 contra --card do
	   escuro -- trocar nos dois temas so moveria o defeito de lado). Detalhe completo,
	   inclusive a isencao WCAG de logotipo (1.4.11) que torna o piso de 3.0 um criterio de
	   produto e nao de norma, em 04-CONTEXT.md, secao "Emendas de decisao", entrada D-11a. */
	--logo-horizontal: url('../../logo_azul.svg');
	--logo-vertical: var(--logo-horizontal);

	/* G-12 (plano 04-13, segunda rodada de UAT humano): --simbolo reusava --logo-horizontal
	   (a logo INTEIRA, 2.75:1, com a palavra) numa caixa quase quadrada de 20x20 do indicador
	   de carregamento -- o asset renderizava 20x7, a palavra inteira espremida em sete pixels.
	   Substituido por um simbolo dedicado (simbolo_azul.svg), derivado mecanicamente da marca
	   isolada (path[0] de logo_azul.svg) por scripts/a11y/derivar-simbolo.js, com diff como
	   portao -- mesma tecnica de logo_itsbrain_azul.svg (plano 04-06). Proporcao do simbolo:
	   1.00:1 (marca), nao 2.75:1 (lockup com a palavra).

	   O simbolo herda a MESMA assimetria por tema que D-11a fixou para a logo: o fundo do
	   indicador de carregamento (#xava_loading) e var(--itsbrain-card), a MESMA superficie do
	   G-01 -- recalculado aqui de forma independente (nao copiado do comentario acima): azul
	   #034AA6 contra --card do CLARO (#fbfdff) mede 8.13:1 (OK, acima do piso 3.0); contra
	   --card do ESCURO (#172436) mede 1.89:1 (abaixo do piso) -- por isso o escuro usa o
	   simbolo BRANCO (simbolo.svg, ver brainopme-escuro.css), nao este. Usar o mesmo arquivo
	   nos dois temas moveria o defeito de G-01 para dentro do spinner. A WCAG isenta logotipos
	   de contraste minimo (Criterio 1.4.11); o piso de 3.0 usado aqui e criterio de PRODUTO
	   ("o simbolo tem de aparecer"), nao exigencia normativa -- mesma franqueza de D-11a. */
	--simbolo: url('../../simbolo_azul.svg');

	/* Assets decorativos sem arte definida nesta fase (UI-SPEC); Fase 2 decide se precisa de arte real */
	--pattern: none;
	--grain: none;
	--grain-line: none;
}
