/* gerado por portico/gerar.py — nao editar */
@font-face{font-family:'Cardo';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/cardo-regular.woff2') format('woff2');}
@font-face{font-family:'Cardo';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/cardo-italic.woff2') format('woff2');}
@font-face{font-family:'Cardo';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/cardo-bold.woff2') format('woff2');}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/atkinson-hyperlegible-400.woff2') format('woff2');}
@font-face{font-family:'Atkinson Hyperlegible';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/atkinson-hyperlegible-400i.woff2') format('woff2');}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/atkinson-hyperlegible-700.woff2') format('woff2');}
@font-face{font-family:'Atkinson Hyperlegible';font-style:italic;font-weight:700;font-display:swap;src:url('/fonts/atkinson-hyperlegible-700i.woff2') format('woff2');}
@font-face{font-family:'OpenDyslexic';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/opendyslexic-400.woff') format('woff');}
@font-face{font-family:'OpenDyslexic';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/opendyslexic-700.woff') format('woff');}
@font-face{font-family:'OpenDyslexic';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/opendyslexic-400i.woff') format('woff');}
@font-face{font-family:'Marca Angular';font-style:normal;font-weight:400;font-display:block;src:url('/fonts/marca-angular.woff2') format('woff2');}
@font-face{font-family:'DejaVu Guarnicao';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/dejavu-sans.woff2') format('woff2');}
@font-face{font-family:'DejaVu Guarnicao';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/dejavu-sans-bold.woff2') format('woff2');}
/* Os nove temas, lidos de app-leitura/src/styles.css. Nao editar aqui. */

:root,
[data-theme='claro'] {
  --color-bg: #ffffff;
  --color-text: #000000;
  --color-muted: #2e2e2e;
  --color-accent: #0000b4;
  --color-surface: #ffffff;
  --color-border: #5a5a5a;
  --color-borda-ui: #5a5a5a;
  --shadow-color: rgba(0, 0, 0, 0.4);
  --color-error: #8f0000;
  --hl-bg: #ffe600;
  --hl-fg: #000000;
  --hl-cur-bg: #0000b4;
  --hl-cur-fg: #ffffff;
  --ui-foco: var(--color-accent);
  color-scheme: light;
}

[data-theme='escuro'],
[data-theme='dark'] {
  --color-bg: #000000;
  --color-text: #ffffff;
  --color-muted: #d6d6d6;
  --color-accent: #8ecbff;
  --color-surface: #0d0d0d;
  --color-border: #8a8a8a;
  --color-borda-ui: #8a8a8a;
  --shadow-color: rgba(255, 255, 255, 0.15);
  --hl-bg: #ffe600;
  --hl-fg: #000000;
  --hl-cur-bg: #ff8c00;
  --hl-cur-fg: #000000;
  --color-error: #ffffff;
  color-scheme: dark;
}

[data-theme='sepia'] {
  --color-bg: #faf7f2;
  --color-text: #2b2620;
  --color-muted: #585049;
  --color-accent: #6b3e15;
  --color-surface: #ffffff;
  --color-border: #e0d8cc;
  --color-borda-ui: #8a8377;
  --shadow-color: rgba(43, 38, 32, 0.25);
  --color-error: #8b2500;
  --hl-bg: #f5d76e;
  --hl-fg: #2b2620;
  --hl-cur-bg: #7a3a05;
  --hl-cur-fg: #ffffff;
  color-scheme: light;
}

[data-theme='amarelo'] {
  --color-bg: #000000;
  --color-text: #ffe600;
  --color-muted: #e6d24a;
  --color-accent: #ffffff;
  --color-surface: #0d0c00;
  --color-border: #a89b00;
  --color-borda-ui: #a89b00;
  --shadow-color: rgba(255, 230, 0, 0.2);
  --hl-bg: #ffffff;
  --hl-fg: #000000;
  --hl-cur-bg: #ff8c00;
  --hl-cur-fg: #000000;
  --color-error: #ffffff;
  color-scheme: dark;
}

[data-theme='verde'] {
  --color-bg: #000000;
  --color-text: #33ff33;
  --color-muted: #4ada4a;
  --color-accent: #ffffff;
  --color-surface: #001200;
  --color-border: #1f9e1f;
  --color-borda-ui: #1f9e1f;
  --shadow-color: rgba(51, 255, 51, 0.2);
  --hl-bg: #ffffff;
  --hl-fg: #000000;
  --hl-cur-bg: #ff8c00;
  --hl-cur-fg: #000000;
  --color-error: #ffffff;
  color-scheme: dark;
}

[data-theme='azul-noite'] {
  --color-bg: #0d142b;
  --color-text: #ffe4a8;
  --color-muted: #fafafa;
  --color-accent: #e7fb56;
  --color-surface: #0d1633;
  --color-border: #2f68f9;
  --color-borda-ui: #2f68f9;
  --shadow-color: rgba(0, 0, 0, 0.6);
  --hl-bg: #e3fc27;
  --hl-fg: #0a1128;
  --hl-cur-bg: #ff8c00;
  --hl-cur-fg: #000000;
  --color-error: #fe896c;
  color-scheme: dark;
}

[data-theme='azul-petroleo'] {
  --color-bg: #062a30;
  --color-text: #e8f4f1;
  --color-muted: #c0dcd6;
  --color-accent: #7fe0d0;
  --color-surface: #08343c;
  --color-border: #2a6b74;
  --color-borda-ui: #66aab4;
  --shadow-color: rgba(0, 0, 0, 0.55);
  --hl-bg: #ffe600;
  --hl-fg: #062a30;
  --hl-cur-bg: #ff8c00;
  --hl-cur-fg: #000000;
  --color-error: #ffb4a2;
  color-scheme: dark;
}

[data-theme='pergaminho'] {
  --color-bg: #ccbc9d;
  --color-text: #241a08;
  --color-muted: #392b13;
  --color-accent: #3d2208;
  --color-surface: #d5c7aa;
  --color-border: #a08d66;
  --color-borda-ui: #63542f;
  --shadow-color: rgba(58, 42, 16, 0.35);
  --hl-bg: #f5e08a;
  --hl-fg: #241a08;
  --hl-cur-bg: #3d2208;
  --hl-cur-fg: #f5ecd8;
  --color-error: #4d1200;
  color-scheme: light;
}

[data-theme='amarelo-azul'] {
  --color-bg: #001862;
  --color-text: #ffe600;
  --color-muted: #f0dc6e;
  --color-accent: #ffffff;
  --color-surface: #001048;
  --color-border: #5a6cb4;
  --color-borda-ui: #8c9ad6;
  --shadow-color: rgba(0, 0, 0, 0.5);
  --hl-bg: #ffffff;
  --hl-fg: #001862;
  --hl-cur-bg: #ff8c00;
  --hl-cur-fg: #000000;
  --color-error: #ffffff;
  color-scheme: dark;
}

[data-theme='pergaminho'] body {
  background-image:
    radial-gradient(ellipse 60% 45% at 50% 40%, rgba(255, 248, 224, 0.55), transparent 75%),
    radial-gradient(ellipse 22rem 18rem at 4% 4%, rgba(104, 70, 22, 0.4), transparent 70%),
    radial-gradient(ellipse 16rem 22rem at 98% 12%, rgba(96, 62, 20, 0.32), transparent 70%),
    radial-gradient(ellipse 26rem 14rem at 12% 99%, rgba(92, 60, 18, 0.38), transparent 70%),
    radial-gradient(ellipse 12rem 10rem at 82% 70%, rgba(122, 88, 36, 0.22), transparent 70%),
    radial-gradient(ellipse 8rem 7rem at 30% 45%, rgba(130, 96, 44, 0.16), transparent 70%),
    radial-gradient(ellipse 10rem 8rem at 62% 22%, rgba(118, 84, 34, 0.18), transparent 70%),
    radial-gradient(ellipse at 50% 50%, transparent 52%, rgba(78, 50, 14, 0.42) 100%);
  background-attachment: fixed;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--fonte-leitura);
  font-size:var(--corpo);
  line-height:var(--entrelinha);
  padding-top:var(--altura-barra);
}
:root{
  --corpo:18px;
  --entrelinha:1.7;
  --fonte-leitura:'Cardo','DejaVu Guarnicao',serif;
  --fonte-ui:'Atkinson Hyperlegible','DejaVu Guarnicao',system-ui,sans-serif;
  --fonte-mono:ui-monospace,'DejaVu Guarnicao','Consolas',monospace;
  --altura-barra:7.5rem;
  --esp:1rem;
}
[data-fonte='atkinson']{--fonte-leitura:'Atkinson Hyperlegible','DejaVu Guarnicao',sans-serif}
[data-fonte='opendyslexic']{--fonte-leitura:'OpenDyslexic','DejaVu Guarnicao',sans-serif}
@media (min-width:64rem){:root{--altura-barra:4.5rem}}

/* ===== Barra Angular — LEI 8. Φ na ponta esquerda, Ξ na ponta direita,
   A− e A+ entre os dois. O que e especifico desta pagina (as abas) vem na
   fila seguinte, nunca no lugar deles. ===== */
.barra-angular{
  position:fixed;inset:0 0 auto 0;z-index:50;
  /* No celular, como artefato do claude.ai, a pagina vai ate a borda e a
     barra do app fica por cima dela: barra fixa em top:0 some ali atras. A
     area protegida do topo entra como recuo (zero fora do celular). A altura
     medida pelo script ja a inclui, entao o texto desce junto. */
  padding-top:env(safe-area-inset-top,0px);
  background:var(--color-surface);
  border-bottom:2px solid var(--color-borda-ui);
  box-shadow:0 1px 8px var(--shadow-color);
}
.fila{display:flex;align-items:center;gap:.4rem;
  padding:.4rem max(.75rem,env(safe-area-inset-left)) .4rem .75rem;
  max-width:78rem;margin:0 auto}
.fila--angular{border-bottom:1px solid var(--color-border)}
.espaco{flex:1 1 auto}
.ui-botao-barra{
  min-width:2.75rem;min-height:2.75rem;
  padding:.25rem .5rem;
  border:2px solid currentColor;border-radius:.35rem;
  background:none;color:var(--color-accent);
  font-family:var(--fonte-ui);font-size:1.05rem;font-weight:700;line-height:1;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  gap:.35rem;
}
.ui-botao-barra--grego{font-family:'Marca Angular','Cardo',serif;font-weight:400;
  font-size:1.75rem}
.ui-botao-barra[aria-expanded='true']{background:var(--color-accent);color:var(--color-bg)}
.ui-botao-barra .rotulo{font-size:.8rem;font-weight:400;letter-spacing:.02em}
@media (max-width:34rem){.ui-botao-barra .rotulo{display:none}}

/* Abas — a fila especifica desta superficie */
.fila--abas{overflow-x:auto;gap:.3rem;padding-top:.3rem;padding-bottom:.3rem;
  scrollbar-width:thin}
.aba-botao{
  min-height:2.75rem;padding:.3rem .8rem;white-space:nowrap;
  border:2px solid transparent;border-radius:.35rem;
  background:none;color:var(--color-text);
  font-family:var(--fonte-ui);font-size:.95rem;cursor:pointer;
}
.aba-botao[aria-selected='true']{
  border-color:var(--color-accent);color:var(--color-accent);font-weight:700;
}
/* No site publico cada secao e uma pagina: o link e a aba, e funciona sem JS */
.aba-link{display:inline-flex;align-items:center;min-height:2.75rem;
  padding:.3rem .8rem;white-space:nowrap;border:2px solid transparent;
  border-radius:.35rem;color:var(--color-text);text-decoration:none;
  font-family:var(--fonte-ui);font-size:.95rem}
.aba-link[aria-current='page']{border-color:var(--color-accent);
  color:var(--color-accent);font-weight:700}

/* ===== Corpo ===== */
main{max-width:74ch;margin:0 auto;padding:2.5rem max(1rem,env(safe-area-inset-left)) 6rem 1rem}
.aba[hidden]{display:none}
h1,h2,h3,h4{font-family:var(--fonte-leitura);line-height:1.2;text-wrap:balance;
  margin:2.2rem 0 .6rem}
h1{font-size:2.1em;margin-top:0}
h2{font-size:1.55em;padding-bottom:.3rem;border-bottom:2px solid var(--color-accent)}
h3{font-size:1.2em}
h4{font-size:1.05em;color:var(--color-muted)}
p,ul,ol,blockquote,pre,.rolagem-tabela{margin:0 0 1.1rem}
li{margin:0 0 .4rem}
a{color:var(--color-accent);text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
strong{font-weight:700}
code{font-family:var(--fonte-mono);font-size:.88em;
  background:var(--color-surface);border:1px solid var(--color-border);
  padding:.06em .3em;border-radius:.2rem;word-break:break-word}
.bloco-codigo{background:var(--color-surface);border:1px solid var(--color-border);
  border-left:3px solid var(--color-accent);border-radius:.2rem;
  padding:.9rem 1rem;overflow-x:auto}
.bloco-codigo code{background:none;border:0;padding:0;font-size:.82em;line-height:1.5}
blockquote{border-left:3px solid var(--color-accent);
  padding:.2rem 0 .2rem 1rem;color:var(--color-muted);font-style:italic}
blockquote p:last-child{margin-bottom:0}
hr.regua{border:0;border-top:1px solid var(--color-border);margin:2.4rem 0}
.rolagem-tabela{overflow-x:auto;border:1px solid var(--color-border);border-radius:.2rem}
table{border-collapse:collapse;width:100%;font-size:.9em;
  font-variant-numeric:tabular-nums}
th,td{padding:.5rem .7rem;text-align:left;border-bottom:1px solid var(--color-border);
  vertical-align:top}
th{background:var(--color-surface);font-weight:700;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}

/* ===== Cabecalho de aba ===== */
.chapeu{font-family:var(--fonte-ui);font-size:.72em;letter-spacing:.14em;
  text-transform:uppercase;color:var(--color-muted);margin:0 0 .4rem}
.fonte-da-aba{font-family:var(--fonte-ui);font-size:.78em;color:var(--color-muted);
  border-top:1px solid var(--color-border);
  padding:.8rem 0 0;margin:3rem 0 0}
.fonte-da-aba code{background:none;border:0;padding:0}
/* Em andamento: caminho de pasta nao tem espaco para quebrar no celular */
#aba-andamento li,#aba-andamento p{overflow-wrap:anywhere}

/* ===== Paineis Φ e Ξ ===== */
dialog.painel{
  border:2px solid var(--color-borda-ui);border-radius:.4rem;padding:0;
  background:var(--color-surface);color:var(--color-text);
  max-width:min(32rem,92vw);width:100%;max-height:82vh;
  font-family:var(--fonte-ui);
}
dialog.painel::backdrop{background:rgb(0 0 0 / .55)}
.painel-topo{display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:.8rem 1rem;border-bottom:1px solid var(--color-border);
  position:sticky;top:0;background:var(--color-surface)}
.painel-topo h2{margin:0;font-size:1.15rem;border:0;padding:0;
  font-family:var(--fonte-ui)}
.painel-corpo{padding:.8rem 1rem 1.2rem;overflow-y:auto}
.painel-lista{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.painel-lista a,.painel-lista button{
  display:block;width:100%;text-align:left;
  padding:.6rem .7rem;min-height:2.75rem;
  border:1px solid transparent;border-radius:.25rem;
  background:none;color:var(--color-text);font:inherit;cursor:pointer;
  text-decoration:none;
}
.painel-lista a:hover,.painel-lista button:hover{
  border-color:var(--color-border);background:var(--color-bg)}
.painel-lista .n2{padding-left:1.8rem;font-size:.92em;color:var(--color-muted)}
.painel-grupo{margin:0 0 1.1rem}
.painel-grupo>h3{margin:0 0 .35rem;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--color-muted);font-family:var(--fonte-ui)}
.opcoes{display:grid;gap:.35rem}
@media (min-width:30rem){.opcoes--tema{grid-template-columns:1fr 1fr}}
.opcao{display:flex;align-items:center;gap:.6rem;min-height:2.75rem;
  padding:.4rem .6rem;border:2px solid var(--color-border);border-radius:.25rem;
  background:none;color:var(--color-text);font:inherit;cursor:pointer;text-align:left}
.opcao[aria-pressed='true']{border-color:var(--color-accent);
  box-shadow:inset 0 0 0 1px var(--color-accent)}
.amostra{width:2.2rem;height:2.2rem;flex:none;border-radius:.15rem;
  border:1px solid var(--color-borda-ui);
  display:flex;align-items:center;justify-content:center;
  font-family:'Marca Angular','Cardo',serif;font-size:1.1rem}
.opcao-texto{display:flex;flex-direction:column;line-height:1.25}
.opcao-dica{font-size:.75em;color:var(--color-muted)}

/* ===== Piso de acessibilidade — Capitulo 7 ===== */
:where(a,button,summary,[tabindex]):focus-visible{
  outline:3px solid var(--ui-foco,var(--color-accent));
  outline-offset:2px;border-radius:.2rem}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;
  scroll-behavior:auto!important}}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--altura-barra) + 1rem)}
.pular{position:absolute;left:-9999px;top:0}
.pular:focus{left:.5rem;top:.5rem;z-index:100;padding:.6rem .9rem;
  background:var(--color-accent);color:var(--color-bg);border-radius:.25rem}

/* ===== Sem JavaScript: tudo aberto, tudo legivel — LEI 1 e LEI 2 ===== */
.so-com-js{display:none}
html.js .so-com-js{display:revert}
html.js .fila--abas .aba-botao{display:inline-block}
.aviso-sem-js{border:2px dashed var(--color-border);border-radius:.25rem;
  padding:.7rem .9rem;margin:0 0 2rem;color:var(--color-muted);
  font-family:var(--fonte-ui);font-size:.85em}
html.js .aviso-sem-js{display:none}

.colofao{margin-top:4rem;padding-top:1.4rem;border-top:1px solid var(--color-border);
  text-align:center;color:var(--color-muted)}
.colofao .selo{font-family:'Cardo',serif;font-size:1.15em}
.colofao .miudo{font-family:var(--fonte-ui);font-size:.75em;margin-top:.4rem}

/* ===== Conferidor (contribuir.html) ===== */
.conf{margin:1.5rem 0 2.5rem;font-family:var(--fonte-ui)}
.conf-zona{border:2px dashed var(--color-borda-ui);border-radius:.4rem;padding:1.2rem;
  display:flex;flex-direction:column;gap:.8rem;align-items:flex-start}
.conf-zona.conf-sobre{border-style:solid;border-color:var(--color-accent)}
.conf-zona p{margin:0}
.conf input[type=file]{font:inherit;color:var(--color-text);max-width:100%}
.conf label{display:block;font-weight:700;margin:1.2rem 0 .4rem}
.conf textarea{width:100%;font-family:var(--fonte-mono);font-size:.9em;
  color:var(--color-text);background:var(--color-surface);
  border:2px solid var(--color-borda-ui);border-radius:.35rem;padding:.6rem}
.conf-botao{min-height:2.75rem;padding:.4rem 1rem;margin-top:.6rem;font:inherit;font-weight:700;
  color:var(--color-text);background:var(--color-surface);cursor:pointer;
  border:2px solid var(--color-accent);border-radius:.35rem}
.conf-bloco{margin-top:1.4rem;padding:1rem 1.2rem;border:2px solid var(--color-borda-ui);
  border-radius:.4rem}
.conf-bloco.conf-aprovado{border-color:var(--color-accent)}
.conf-bloco h3{margin:0 0 .3rem;font-size:1.05rem;overflow-wrap:anywhere}
.conf-veredito{margin:0 0 .6rem}
.conf-lista{margin:0;padding-left:1.1rem}
.conf-lista li{margin:.8rem 0}
.conf-ex{display:block;margin:.3rem 0;white-space:pre-wrap;overflow-wrap:anywhere}
.conf-mais{display:block;color:var(--color-muted)}
.conf-dica{margin:.3rem 0 0}

html:not(.js) .so-sem-js-conf{display:block}
.so-sem-js-conf{display:none}
