/* licenca.css — as regras de CSS que valem para QUEM USA a licença Enterprise, e não para o resto do Tomé
   (B s42, decisão COORD — B s41; escopo por conta na B s43, decisão COORD — REV B s42, I-2).
   ---------------------------------------------------------------------------
   POR CONTA, NÃO POR PÁGINA. Toda regra daqui começa em `html[data-licenca]`, salvo as exceções por página dos itens 2 e 3. Quem marca (B s44, I-2 da REV-CODIGO-B-s43):
   · na 1ª pintura, o script inline do `<head>` (MARCA_DA_LICENCA_NO_HEAD de backend/src/seo.ts, a mesma linha copiada nas
     páginas estáticas e conferida pelo rodape_sbplano.test.mjs L9c): marca se a impressão do token guardada em
     `tome_conta_licenca` é a do token atual. O SSR não conhece a sessão (o token vive no localStorage), por isso a marca é
     do navegador, antes de qualquer .js;
   · depois, o auth-comum.js confirma pela conta lida (`/api/conta/eu`): gere um contrato da licença ou tem classe de
     contrato (a lista é a CLASSES_DO_CONTRATO de backend/src/direitos.ts), e grava ou apaga a impressão.
   Sem a marca (anônimo, conta gratuita, qualquer conta fora da licença), esta folha não muda nada: a mesma página fica como
   no resto do Tomé (medido na B s44: assinatura de linhas igual à de antes em 23 páginas + o shell SSR, 1366 e 390).
   Quem liga: TODA página que carrega o auth-comum.js (as que o menu da licença alcança e as demais) e o shell SSR do seo.ts,
   DEPOIS das outras folhas e do `<style>` da página (rodape_sbplano.test.mjs L9 e L11). A ficha do admin
   (admin-licenca-ficha.html, da TA), o Radar da licença (licenca-radar.html, da SI-RC) e o /nota (nota_pagina.ts) entram
   pelos donos (recados da B s43 e s44).

   1 · Nada de `text-wrap: pretty/balance`. A regra do Daniel é "texto nunca quebra com espaço sobrando": `balance` encurta
   as linhas de propósito para igualá-las, e `pretty` leva palavra para a última linha deixando vão na de cima (medido na
   remedição da B s41: 14.641 quebras equilibradas em 75 pastas assinadas, todas herdadas destas duas regras do ds-v5.css,
   `h1…{text-wrap:balance}` e `.pagina, main…{text-wrap:pretty}`, que valem para o Tomé inteiro e lá ficam).
   `text-wrap-style`, nunca o atalho `text-wrap`: o atalho também põe `text-wrap-mode: wrap` e desfaria o `nowrap` de abas,
   botões e valores (m-5 da REV-CODIGO-B-s41). O seletor `html[data-licenca] *` (0,1,1) vence as regras de uma classe do
   ds-v5 e do auth-comum (`.pagina`, `.rodape`, `.av2-caminhos`, 0,1,0) e as de elemento (`h1`) sem `!important` (o DS só o
   admite contra estilo inline de terceiro: DESIGN-SYSTEM-O-QUE-NAO-FAZER.md, A13). NÃO vence regra com id: o
   `#conversa{text-wrap:pretty}` do index.html fica no próprio contêiner, que não tem texto direto (os filhos recebem `auto`
   daqui); a medição da B s43 conta 1 elemento com pretty/balance no chat da conta da licença, o próprio #conversa, com
   0 caractere de texto direto. Quem medir: a régua de
   quebra (scripts/qa_visual/regua_quebra.mjs) mede pretty/balance como qualquer bloco e acusa `quebra-equilibrada`.

   2 · As telas da licença que quem ainda NÃO usa a licença vê (B s62, decisão da COORD sobre a (c) da B s61): o G0
   "Aceite do contrato" (workspace-aceite.js; a conta ainda é gratuita, sem a marca), a página pública do contrato
   (/contrato/<modelo>/v<n>, contrato_publico.ts, aberta sem login) e o espelho HTML do PDF do contrato (o PDF de produção
   sai do pdfkit, que não equilibra linha). A mesma regra 1, só ela, por um gancho que a tela JÁ tem, e NÃO pela marca:
   `data-licenca` é lido como "a conta é da licença" pelo auth-comum.js (a barra e o menu da licença, `marcadaDaLicenca`),
   e marcar o G0 daria a barra da licença a quem ainda não aceitou. Os ganchos: `[data-contrato-publico]` (o `.pagina`
   da página pública), `[data-mk^="G0."]` (a raiz de cada bloco do G0: cabeçalho, conteúdo e modal) e `[data-mk^="PDF."]`
   (as folhas do espelho do PDF). `html :is(…) *` tem (0,1,1), como a regra 1. O rodapé do /workspace ("O Tomé responde só
   com o que está nos documentos públicos…") fica fora do bloco do G0, mas está na mesma tela: entra pela página que mostra
   o G0 (`html:has([data-mk^="G0."]) .rodape`, 0,2,1, contra o `.rodape{text-wrap:pretty}` do DS).

   3 · A ficha do cliente no admin (admin-licenca-ficha.html, da TA; TA s21): a página é do operador da Liqi
   (admin-sessao.js), sem a marca, e a CSP estrita do admin proíbe `<style>` na página (admin_csp_estrita). A mesma regra 1,
   só ela, pela página que tem a ficha (`html:has(.ficha-raiz)`, a classe que a admin-painel.css já usa para a ficha) e no
   MESMO alcance que o `<style>` local tinha até a r6.8: o `<main>` da `.app` e os modais (`.modal-scrim`, que a ficha
   acrescenta no `<body>`), cada um com os filhos (0,2,2, contra o `main`/`.modal-scrim{text-wrap:pretty}` e os títulos
   `balance` do DS). O mockup da ficha não tem a regra pela tela: o gerador copia só a `.app` e liga ds-v5, admin-nav e
   admin-painel; o da próxima variante (r6.9 em diante) liga também ../../frontend/licenca.css, ou o mockup volta a
   pretty/balance e a prova visual acusa uma diferença que não é da tela (M-2 da ADV-TA-s21). Fora dessas telas, nada muda: o rodape_sbplano.test.mjs (L8) aceita só estes ganchos e só com
   `text-wrap-style`. */
html[data-licenca], html[data-licenca] *, html[data-licenca] *::before, html[data-licenca] *::after,
html :is([data-contrato-publico], [data-mk^="G0."], [data-mk^="PDF."]),
html :is([data-contrato-publico], [data-mk^="G0."], [data-mk^="PDF."]) *,
html:has([data-mk^="G0."]) .rodape,
html:has(.ficha-raiz) :is(.app main, .modal-scrim),
html:has(.ficha-raiz) :is(.app main, .modal-scrim) *{ text-wrap-style: auto }
