/* Camada de cor do site. Gerada por tools/build_site_theme.py — nao edite a mao.
 *
 * So redeclara cor, fundo e borda; geometria nao e tocada. Carrega por ultimo e
 * vale apenas nas paginas que a incluem, entao remover o <link> desfaz tudo.
 *
 * A decisao de qual token cada regra recebe usa um dado que so o DOM tem: se
 * aquele seletor vive sobre painel escuro. Sem isso, "texto claro de painel" e
 * "cinza sobre branco" sao indistinguiveis pelo valor da cor, e foi o que
 * derrubou a primeira tentativa.
 */
/* Os valores dos tokens vivem em tokens.css, gerado por tools/design_tokens.py
   e carregado antes desta folha. Duas copias iguais hoje sao duas copias
   divergentes amanha. */
/* Rede de seguranca: os tokens da paleta antiga passam a apontar para os novos.
   O gerador reescreve as regras que consegue ler; o que escapar — declaracao com
   mais de uma cor, seletor exotico — ao menos segue o tema em vez de ficar preso
   numa cor fixa. Foi assim que um span com --v-muted sobrou em /para-escritorios. */
:root, :root[data-theme="dark"] {
  --navy: var(--fg); --ink: var(--fg); --ink-strong: var(--fg);
  --v-navy: var(--fg); --v-ink: var(--fg);
  --muted: var(--fg-2); --ink-soft: var(--fg-2); --ink-muted: var(--fg-2);
  --ink-faint: var(--fg-2); --v-muted: var(--fg-2);
  --teal: var(--acao); --brand-green: var(--acao); --v-teal: var(--acao);
  --series-color: var(--acao); --gold: var(--acao); --v-gold: var(--acao);
  --v-line: var(--line); --hairline: var(--line); --hairline-strong: var(--line-strong);
  --cream: var(--canvas); --v-cream: var(--canvas); --surface: var(--canvas);
  --v-white: var(--canvas); --surface-soft: var(--card); --surface-sunk: var(--card);
  --mint: var(--acao-fraco); --surface-mint: var(--acao-fraco); --v-teal-soft: var(--acao-fraco);
  --dark: var(--inverso); --v-dark: var(--inverso); --brand-dark: var(--inverso);
}

body, body.version-page { background: var(--canvas); color: var(--fg);
       font-family: var(--sans); }
h1, h2, h3, h4, h5, .brand, .eyebrow, button, input, select, textarea {
  font-family: var(--sans); }
code, kbd, pre, samp { font-family: var(--mono); }
/* No guia a profundidade vem do degrau entre superficies. Sombra preta sobre
   canvas preto nao comunica nada. */
* { box-shadow: none !important; }
/* A acao primaria carrega o verde da marca. O par foi escolhido por medicao —
   5,35 de contraste no claro, 10,66 no escuro — e nao por gosto: e a mesma
   verificacao que reprovou branco sobre o indigo anterior, com 2,80. */
.button-primary, .dossier-download, .button.button-primary, .alpha-split i, .alpha-split .ss {
  background: var(--btn) !important; color: var(--btn-fg) !important;
  border-color: var(--btn) !important;
}
.tema-toggle { font: inherit; font-family: var(--mono);
  font-size: 11px; letter-spacing: .85px; text-transform: uppercase; color: var(--fg-2);
  background: transparent; border: 1px solid var(--line-strong); border-radius: 9999px;
  min-height: 34px; padding: 0 12px; cursor: pointer; display: inline-flex;
  align-items: center; gap: 6px; white-space: nowrap; }
.tema-toggle:hover { color: var(--fg); border-color: var(--fg-2); }
.tema-toggle:focus-visible { outline: 2px solid var(--acao); outline-offset: 2px; }
@media (max-width: 780px) { .tema-toggle { min-height: 44px; } }

/* Ajustes a mao: regras que o gerador nao alcanca porque a cor vem de forma
   abreviada com mais de um valor, ou de seletor que ele nao percorre. Sao
   poucas e ficam nomeadas aqui em vez de espalhadas. */
/* !important aqui e deliberado: as regras originais tem especificidade maior, e
   este bloco existe justamente para vencer as poucas que o gerador nao alcanca.
   Fora dele, a camada usa o mesmo seletor da regra original e ganha por ordem. */
details > summary, .annual-decision summary, .live-holdings summary { color: var(--acao) !important; }
.allocation-disclaimer, .live-quality, .research-note, .candidate-disclosure,
.line-chart-caption, .carteira-2026-note { color: var(--fg-2) !important; }
.version-next a, .version-next .button { background: var(--btn) !important;
  color: var(--btn-fg) !important; border-color: var(--btn) !important; }
/* A marca leva a cor do favicon, para que a aba e a pagina sejam a mesma coisa.
   O favicon e o quadrado azul-marinho com o B claro; a cor e dele. */
.brand-mark { background: #102a43 !important; color: #f7fbf8 !important; }
.brand { color: #102a43 !important; }
:root[data-theme="dark"] .brand { color: var(--fg) !important; }

/* Os selos da coluna AÇÃO saiam todos com a mesma menta: seis significados
   diferentes com a mesma aparencia, que e o mesmo que nao ter selo. Cada um
   ganha um sinal proprio, e o sinal e uma FORMA — seta, sinal, traco — porque
   cor sozinha nao carrega significado: o vermelho e o verde da paleta tem
   praticamente o mesmo cinza, e quem nao distingue os dois ficaria sem nada.
   O tom entra depois, so para reforcar o que a forma ja diz.
   "Reduziu" nao ganha vermelho de proposito: diminuir posicao e direcao, nao
   prejuizo, e pintar de perda seria dizer uma coisa que o dado nao diz. */
.alpha-action { display: inline-flex; align-items: center; gap: 5px;
  border: 1px solid transparent; border-radius: 9999px; padding: 2px 9px;
  font-variant-numeric: tabular-nums; }
.alpha-action::before { font-family: var(--mono); font-weight: 500; }
.alpha-entered { background-color: var(--acao) !important; color: var(--btn-fg) !important; }
.alpha-entered::before { content: "+"; }
.alpha-increased { background-color: var(--acao-fraco) !important; color: var(--acao) !important;
  border-color: var(--acao) !important; }
.alpha-increased::before { content: "↑"; }
.alpha-reduced { background-color: var(--card) !important; color: var(--fg) !important;
  border-color: var(--line-strong) !important; }
.alpha-reduced::before { content: "↓"; }
.alpha-maintained { background-color: transparent !important; color: var(--fg-2) !important;
  border-color: var(--line) !important; }
.alpha-maintained::before { content: "="; }
.alpha-exited { background-color: var(--neg-fraco) !important; color: var(--neg) !important; }
.alpha-exited::before { content: "×"; }
.alpha-not_held { background-color: transparent !important; color: var(--fg-2) !important;
  border-style: dashed !important; border-color: var(--line-strong) !important; }
.alpha-not_held::before { content: "–"; }

/* A faixa projetada vira verde pastel e ganha corpo: era um fio cinza de 1px,
   que num grafico de calibracao e justamente o elemento que precisa ser lido. */
.calib-faixa { stroke: var(--acao-fraco) !important; stroke-width: 9;
  stroke-linecap: round; }
.calib-dentro { fill: var(--acao) !important; stroke: var(--canvas) !important;
  stroke-width: 2; }
.calib-fora { fill: var(--neg) !important; stroke: var(--canvas) !important;
  stroke-width: 2; }
/* A linha divisoria entre perfis sai: o espaco ja separa, e a pagina tinha
   fio cinza demais. */
.calib-perfil { border-top: 0 !important; margin-top: 34px; padding-top: 0; }

/* A linha tracejada do "inicio da avaliacao" sai de vista, a pedido. Vai na cor
   do fundo, e nao em branco literal: no tema escuro o branco viraria um risco
   claro atravessando o grafico, que e o oposto de sumir. */
.line-boundary { stroke: var(--canvas) !important; }

/* O painel do herói tem fundo em gradiente de menta. O gerador nao alcança
   gradiente, porque a declaração tem mais de uma cor, e por isso ele continuava
   claro no tema escuro: cartões pretos dentro de uma moldura verde-clara. A
   superfície inteira passa a seguir o tema. */
.hero-performance { background: var(--card) !important;
  border-color: var(--line) !important; }
.hero-performance::before, .hero-performance::after { display: none !important; }

/* As barras empilhadas e as de comparação levam o verde de preenchimento, que é
   mais claro que o do texto: barra escura pesa mais que o número que apresenta.
   O rótulo por cima é escuro, medido em 5,57 no claro e 10,66 no escuro. */
.hero-performance-bars em, .hero-performance-bars > div:first-child em,
.hero-performance-bars > div:nth-child(2) em, .bar i, .alpha-split span:nth-child(1),
.alpha-split span:nth-child(2) { background: var(--acao-vivo) !important; }
/* Cada faixa leva o rotulo da sua propria cor de fundo. A primeira e o verde
   de preenchimento, que e claro nos dois temas, entao o rotulo dela e escuro
   sempre. As outras duas seguem o tema, e por isso usam --fg: fixar preto nelas
   dava 1,18 de contraste no escuro. */
.alpha-split span:nth-child(1), .alpha-split span:nth-child(1) * {
  color: var(--acao-vivo-fg) !important; }
.alpha-split span:nth-child(2), .alpha-split span:nth-child(2) *,
.alpha-split span:nth-child(3), .alpha-split span:nth-child(3) * {
  color: var(--fg) !important; }
/* Os rotulos dentro da faixa traziam fundo proprio, verde escuro, por cima do
   preenchimento claro do pai: davam 3,70 e reprovavam. Eles nao precisam de
   fundo nenhum, porque ja estao sobre a faixa. */
.alpha-split i, .alpha-split .sf, .alpha-split .ss {
  background: transparent !important; }
.alpha-split span:nth-child(2) { background: var(--acao-fraco) !important;
  color: var(--fg) !important; }
.alpha-split span:nth-child(3) { background: var(--elev) !important;
  color: var(--fg) !important; }
/* Uma linha do fundo entre as faixas: sem ela o limite entre duas cores claras
   fica em 1,63 de contraste e some. */
.alpha-split span { box-shadow: 1px 0 0 var(--canvas) !important; }

/* Fios que a pagina nao precisa. Onde separar ainda importa, separa o espaço. */
.calib-perfil, .calib-fig, .calib-nota { border: 0 !important; }
.calib-perfil { margin-top: 40px; padding-top: 0; }
.calib-nota { margin-top: 28px; }
.proof div, .method-grid article { border-right: 0 !important; }

/* Espaçamento: blocos encostavam no cartão de cima. */
.governance-stack .go-card, .version-callout { margin-top: 22px; }
.version-callout + *, .go-card + * { margin-top: 18px; }

/* A nota da carteira caía numa coluna estreita do grid e virava uma tira de
   texto de quarenta caracteres. Ela ocupa a linha inteira, com medida de leitura. */
#carteira-2026-note, .carteira-2026-note { grid-column: 1 / -1; max-width: 68ch;
  margin-top: 18px; }

/* Um cartao escuro no meio de tres claros dentro do mesmo painel: era o
   "fundo diferente" da reclamacao. O destaque passa a vir da borda e do peso,
   nao de inverter a superficie. Fundo e texto mudam juntos, como sempre. */
.wealth-card, .wealth-card.primary, .wealth-card.benchmark,
.hero-performance-pair > div:last-child {
  background: var(--card) !important; border: 1px solid var(--line) !important; }
.wealth-card.primary { border-color: var(--acao) !important; }
.wealth-card, .wealth-card *, .wealth-card.primary, .wealth-card.primary *,
.hero-performance-pair > div:last-child,
.hero-performance-pair > div:last-child * { color: var(--fg) !important; }
.wealth-card header small, .wealth-card-foot span, .wealth-card-foot,
.hero-performance-pair > div:last-child small,
.hero-performance-pair > div:last-child p { color: var(--fg-2) !important; }
.wealth-card .up, .wealth-card-foot .up { color: var(--acao) !important; }

/* Esperado contra realizado: tres blocos, sem fio entre eles. */
.fc-perfil { margin-top: 34px; }
.fc-perfil h3 { color: var(--acao); margin: 0 0 6px; }
.fc-perfil p { color: var(--fg-2); margin: 0 0 12px; max-width: 68ch; }
.fc-perfil p b { color: var(--fg); }
.fc-fig { margin: 0; }
.fc-fig svg { display: block; width: 100%; height: auto; max-width: 620px; }
.fc-fig figcaption { margin-top: 8px; font-size: 12px; color: var(--fg-2); max-width: 68ch; }
#forecast-2026-note { max-width: 68ch; margin-top: 26px; color: var(--fg-2) !important; }

/* Os fios entre secoes. A pagina tem oito secoes e cada uma vinha com um
   traco em cima: o olho le como grade, nao como divisao. O espaco separa. */
.version-section, .version-section-heading, .version-section > div,
.section-heading, .proof, .method-grid { border-top: 0 !important;
  border-bottom: 0 !important; }
.version-section { margin-top: 64px; }
/* As duas linhas verticais que ladeavam o grafico: sao a borda do container
   dele, com mil pixels de altura. Nao delimitam nada que a pessoa precise ver. */
.ladder-wrap, .ladder-wrap > * { border-left: 0 !important; border-right: 0 !important; }

/* Painel branco sobre página branca.
 *
 * No desenho original a página e os painéis eram os dois brancos, e o que
 * separava um do outro era a borda. O gerador, que classifica por luminância,
 * mapeou os dois para --canvas, e enquanto --canvas foi branco ninguém notou.
 *
 * Quando a página virou menta e o cartão virou branco, esses painéis ficaram
 * com a cor exata da página. Sem borda, que também tinha saído, o contêiner
 * desapareceu e o conteúdo passou a flutuar solto. É a mesma lição de sempre:
 * luminância não distingue "página" de "painel", só o DOM sabe qual é qual.
 *
 * A lista abaixo veio de medir a página renderizada. Estes contêm conteúdo,
 * então são cartão, e o degrau de superfície faz o trabalho que a borda fazia. */
.comparison-card, .wealth-panel, .chart-return-summary, .chart-add-details,
.fixed-comparators, .radar-summary, .paper-metric, .version-step,
.benchmark-panel, .comparison-foot, .quick-composition {
  background: var(--card) !important;
  border-radius: 14px !important;
}
/* Os que vivem dentro de um cartão não precisam de superfície própria: dois
   brancos encostados viram um branco só, com uma emenda no meio. */
.return-chart, .chart-sidepanel, .comparison-controls, .chart-tools,
.comparison-card .chart-legend { background: transparent !important; }

/* Fios em coisa que nao e card.
 *
 * Levantei no navegador toda borda visivel das seis paginas e separei em tres
 * grupos. Card fechado com raio fica: ele delimita uma superficie de verdade.
 * Controle fica: borda em botao, campo e seletor e o que diz que aquilo se
 * clica. O que sai e o terceiro grupo, o fio solto de um lado so, que nao
 * fecha nada e existe so para dividir, e a divisao ja vem do espaco.
 *
 * A borda lateral do grafico e do painel dele eram o caso mais visivel: um
 * traco vertical de altura inteira encostado no desenho.
 */
.return-chart, .chart-sidepanel, .ladder-wrap, .comparison-controls,
.comparison-foot, .fixed-comparators-wrap, .version-hero, .paper-foot,
.carteira-2026-split, .annual-decision-body, .annual-decision,
.benchmark-panel, .weight-rule, .version-callout, .paper-callout,
.chart-return-summary, .comparison-card, .wealth-panel, .hero-performance-bars,
.role-contract, .radar-summary {
  border: 0 !important;
}
/* O calloute perdia o proprio sentido sem o trilho: ele e o que diz "isto e um
   aparte". Ele volta como faixa de fundo, que separa sem desenhar linha. */
.version-callout, .paper-callout { background: var(--acao-fraco) !important;
  border-radius: 8px !important; padding: 16px 18px !important; }
.paper-callout.warn { background: var(--neg-fraco) !important; }
/* A moldura externa da tabela sai; as linhas de linha ficam, porque numa tabela
   de sete colunas elas sao o que leva o olho ate o fim da linha certa. */
table, table.policy-split, .alpha-table { border: 0 !important; }
/* Fio vertical dentro de tabela: a linha da tabela ja separa por baixo, e a
   coluna nao precisa de parede. */
th, td { border-left: 0 !important; border-right: 0 !important; }
/* E os ultimos dois fios soltos, achados no levantamento: divisoria de coluna
   no resumo do radar e divisoria entre itens da lista de fontes. */
.radar-summary > div > div { border-right: 0 !important; }
.radar-sources li { border-bottom: 0 !important; }

/* O halo que segue o ponteiro. Menor que o do resumo, porque aqui ele divide a
   tela com conteudo denso: 150px em vez de 260. Fica no fundo de tudo, e por
   isso o conteudo precisa de contexto de empilhamento proprio, senao ele passa
   por cima de secao com fundo transparente. */
#bolinha {
  position: fixed; top: 0; left: 0;
  width: 100px; height: 100px; margin: -50px 0 0 -50px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(53, 189, 135, .30) 0%, transparent 70%);
  opacity: 0; transition: opacity .35s ease;
  pointer-events: none; z-index: 0; will-change: transform;
}
/* No escuro o verde precisa ser o claro, senao o halo some no fundo. A mistura
   de camadas saiu: com o verde ja fraco no proprio valor, multiply so escurecia
   o texto por baixo sem acrescentar nada. */
:root[data-theme="dark"] #bolinha {
  background: radial-gradient(circle, rgba(95, 211, 160, .16) 0%, transparent 70%);
}
body > * { position: relative; z-index: 1; }
body > #bolinha { z-index: 0; }
@media (hover: none), (prefers-reduced-motion: reduce) { #bolinha { display: none; } }

/* Abrir a carteira. O detalhe vive dentro do cartao, entao nao ganha superficie
   propria: ele e separado do resumo pelo espaco e pelo peso do rotulo. */
.c26-det { margin-top: 14px; }
.c26-det > summary { cursor: pointer; font-family: var(--mono); font-size: 11px;
  letter-spacing: .8px; text-transform: uppercase; color: var(--acao);
  padding: 8px 0; list-style: none; }
.c26-det > summary::-webkit-details-marker { display: none; }
.c26-det > summary::after { content: " +"; }
.c26-det[open] > summary::after { content: " –"; }
.c26-corpo { display: flex; flex-direction: column; gap: 6px; padding-top: 6px; }
.c26-titulo { font-family: var(--mono); font-size: 10px; letter-spacing: .8px;
  text-transform: uppercase; color: var(--fg-2); margin: 12px 0 2px; }
.c26-tab { width: 100%; border-collapse: collapse; font-size: 12px;
  font-variant-numeric: tabular-nums; }
.c26-tab th { font-size: 10px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--fg-2); font-weight: 500; text-align: left; padding: 0 0 6px; }
.c26-tab td { padding: 5px 0; border-top: 1px solid var(--line); }
.c26-tab .num { text-align: right; font-family: var(--mono); }
/* A coluna de janeiro e referencia, nao o numero que a pessoa foi buscar. */
.c26-tab .c26-antes { color: var(--fg-2); }
.c26-tab .c26-total td { border-top: 1px solid var(--line-strong); font-weight: 500; }
.c26-motivo { font-size: 12px; line-height: 1.5; color: var(--fg-2); margin: 0 0 6px; }
.c26-mudancas { margin: 0; padding-left: 16px; font-size: 12px; line-height: 1.55;
  color: var(--fg-2); display: flex; flex-direction: column; gap: 8px; }
.c26-mudancas b { color: var(--fg); }
.c26-evento { display: flex; flex-direction: column; gap: 10px; }
.c26-evento + .c26-evento { margin-top: 18px; }
.c26-evento > p { font-size: 12px; line-height: 1.55; color: var(--fg-2); margin: 0; }
.c26-evento > p b { color: var(--fg); }
/* Variacao nao depende de cor para ser lida: o sinal vem antes do numero, e o
   vermelho e o verde tem o mesmo cinza para quem nao distingue os dois. */
.c26-baixa { color: var(--neg); }
.c26-alta { color: var(--acao); }

/* A pastilha "entrou" e preenchida, entao leva o verde de preenchimento e nao
   o de texto: com o escuro por baixo e o rotulo escuro por cima dava 3,70. */
.alpha-action.alpha-entered { background: var(--acao-vivo) !important;
  color: var(--acao-vivo-fg) !important; }

table, th, td { border-color: var(--line); }
/* Paineis escuros cujo fundo o gerador nao alcanca — a cor vem de gradiente,
   que tem mais de um valor e ele ignora. Sem isto o texto deles fica marcado
   como "sobre escuro" (branco) enquanto a superficie ficou clara: branco sobre
   branco. Superficie e texto tem de concordar. */
.version-gateway-card.experimental, .chart-source.active, .chart-add-button {
  background: var(--inverso) !important;
}
.version-gateway-card.experimental *, .chart-source.active,
.chart-add-button { border-color: var(--inverso-linha); }
/* E a contrapartida: superficie escura pede texto claro. Forcar so o fundo
   inverteu o defeito — de branco sobre branco para preto sobre preto. */
.version-gateway-card.experimental,
.version-gateway-card.experimental *, .chart-source.active, .chart-add-button {
  color: var(--sobre-inverso) !important;
}
.version-gateway-card.experimental .version-tag {
  color: var(--acao-inverso) !important; }

/* As duas primeiras barras da comparacao eram blocos verde-escuros no meio de
   uma pagina clara: pesavam mais que o numero que deviam apresentar, e eram
   as unicas tres linhas do bloco a nao se parecerem entre si. Viram cartao
   claro como a terceira, e o verde passa para o preenchimento, que e onde ele
   diz alguma coisa.

   Fundo e texto mudam na mesma edicao. Separar os dois foi como eu troquei
   branco-sobre-branco por preto-sobre-preto da ultima vez. */
/* As tres linhas da comparacao tem de ser a mesma coisa. Duas delas vinham com
   fundo proprio e a terceira nao, e como nao ha padding nem raio o fundo virava
   um retangulo cru atras de duas linhas de tres. Nenhuma tem fundo: elas ja
   estao dentro do painel, e o que separa uma da outra e a barra. */
.hero-performance-bars > div:first-child,
.hero-performance-bars > div:nth-child(2),
.hero-performance-bars > div:nth-child(3) { background: transparent !important; }
.hero-performance-bars > div:first-child, .hero-performance-bars > div:first-child *,
.hero-performance-bars > div:nth-child(2), .hero-performance-bars > div:nth-child(2) * {
  color: var(--fg) !important;
}
.hero-performance-bars i { background: var(--acao-fraco) !important; }
.hero-performance-bars em, .hero-performance-bars > div:first-child em,
.hero-performance-bars > div:nth-child(2) em { background: var(--acao) !important; }
/* O ticker rapido tinha fundo branco fixo, que no tema escuro vira uma ilha
   clara com texto de acento por cima: 2,80 e reprova. */
.quick-ticker { background: var(--card) !important; color: var(--fg) !important;
  border-color: var(--line) !important; }
/* Link dentro de texto corrido. O gerador cobre os que tem classe; estes vem
   de seletores como ".paper-page p" que definem so a cor do paragrafo, e o
   link herdava a cor antiga de marca — 1,85 de contraste no tema escuro. */
p a, li a, td a, dd a, figcaption a { color: var(--acao) !important; }
p a:hover, li a:hover, td a:hover { color: var(--acao-inverso) !important; }

.hero .lede{color:var(--fg-2)}
.hero-performance{border-color:var(--acao)}
.hero-performance::before{background-color:var(--elev)}
.hero-performance::after{background-color:var(--canvas)}
.hero-performance-head{color:var(--fg-2)}
.hero-performance-pair > div{background-color:var(--canvas);border-color:var(--line-strong)}
.hero-performance-pair > div:last-child{background-color:var(--inverso)}
.hero-performance-pair small{color:var(--fg-2)}
.hero-performance-pair > div:last-child small, .hero-performance-pair > div:last-child p{color:var(--fg-2)}
.hero-performance-pair strong{color:var(--fg)}
.hero-performance-pair > div:last-child strong{color:var(--fg-2)}
.hero-performance-pair p{color:var(--fg-2)}
.hero-performance-bars{background-color:var(--canvas);border-color:var(--line-strong)}
.hero-performance-bars header{color:var(--fg)}
.hero-performance-bars i{background-color:var(--acao-fraco)}
.hero-performance-bars em{background-color:var(--acao)}
.hero-performance-bars > div:first-child em{background-color:var(--elev)}
.hero-performance-bars > div:nth-child(2) em{background-color:var(--acao)}
.hero-performance-foot{color:var(--fg-2)}
.hero-performance-foot span{background-color:var(--canvas)}
.hero-performance-foot a{color:var(--acao)}
/* Dense comparison: controls on the left and all outcomes on the right. */
.wealth-panel{background-color:var(--canvas)}
.wealth-card.primary{background-color:var(--inverso);color:var(--fg-2)}
.wealth-card.primary header b, .wealth-card.primary strong, .wealth-card.primary .wealth-card-foot{color:var(--fg-2)}
.wealth-card.primary header small, .wealth-card.primary .wealth-card-foot span{color:var(--fg-2)}
.policy-split{background-color:var(--canvas);border-color:var(--line)}
.policy-split th, .policy-split td{border-color:var(--line)}
.policy-split thead th{color:var(--fg-2)}
.policy-split-wrap > p{color:var(--fg-2)}
.version-nav nav a,
  .version-nav nav a:not([aria-current="page"]):not(.version-back){border-color:var(--line)}
.text-link:hover,
.hero-performance-foot a:hover,
.version-next a:hover{color:var(--acao)}
.quick-composition{color:var(--fg-2)}
.quick-composition a{color:var(--acao)}
.wealth-card.benchmark{background-color:var(--canvas)}
.wealth-tax-note{border-color:var(--line)}
/* Benevente 2 gets an explicit benchmark story before the long-form method. */
.version-benchmark{background-color:var(--canvas)}
.version-benchmark-copy > span{color:var(--acao)}
.version-benchmark-copy h2{color:var(--fg)}
.version-benchmark-copy p{color:var(--fg-2)}
.version-benchmark-copy a{color:var(--acao)}
.version-benchmark-grid article{background-color:var(--canvas);border-color:var(--line)}
.version-benchmark-grid article.primary{color:var(--fg-2);background-color:var(--inverso);border-color:var(--line-strong)}
.version-benchmark-grid span{color:var(--fg-2)}
.version-benchmark-grid .primary span, .version-benchmark-grid .primary small{color:var(--fg-2)}
.version-benchmark-grid strong{color:var(--fg)}
.version-benchmark-grid .primary strong{color:var(--fg-2)}
.version-benchmark-grid small{color:var(--fg-2)}
.version-benchmark-grid i{background-color:var(--elev)}
.version-benchmark-grid em{background-color:var(--acao)}
.version-benchmark-grid article:nth-child(2) em{background-color:var(--elev)}
.version-benchmark-grid article:nth-child(3) em{background-color:var(--acao)}
.chart-title small::after{color:var(--fg-2)}
.carteira-2026-card{background-color:var(--canvas);border-color:var(--line)}
.carteira-2026-card header b{color:var(--fg)}
.carteira-2026-card header small{color:var(--fg-2)}
.carteira-2026-card strong{color:var(--fg)}
.carteira-2026-card strong.up{color:var(--acao)}
.carteira-2026-card strong.down{color:var(--neg)}
.carteira-2026-since{color:var(--fg-2)}
.carteira-2026-names{color:var(--fg-2)}
.carteira-2026-split{color:var(--fg);border-color:var(--line)}
.carteira-2026-note{color:var(--fg-2)}
.comparison h2{color:var(--fg)}
.comparison-head>p{color:var(--fg-2)}
.comparison-card{background-color:var(--canvas);border-color:var(--line)}
.comparison-controls{border-color:var(--line)}
.control-label{color:var(--fg-2)}
.period{background-color:var(--canvas);color:var(--fg-2);border-color:var(--line)}
.period.active{background-color:var(--inverso);color:var(--sobre-inverso);border-color:var(--inverso-linha)}
.comparison-controls p{color:var(--fg-2)}
.comparison-summary{background-color:var(--canvas);color:var(--acao)}
.return-chart{border-color:var(--line)}
.chart-title{color:var(--fg)}
.chart-title small{color:var(--fg-2)}
.perf-row{color:var(--fg)}
.perf-track{background-color:var(--acao-fraco)}
.perf-bar{background-color:var(--elev)}
.perf-row.benevente .perf-bar{background-color:var(--acao)}
.perf-row.mvo .perf-bar{background-color:var(--elev)}
.perf-row b{color:var(--fg)}
.comparison-table-wrap th{color:var(--fg-2)}
.comparison-table-wrap td{color:var(--fg-2);border-color:var(--line)}
.comparison-table-wrap td:first-child{color:var(--fg)}
.comparison-foot{color:var(--fg-2);border-color:var(--line)}
.comparison-foot i{color:var(--acao)}
.research-note{color:var(--fg-2)}
.curve-toggle{background-color:var(--canvas);color:var(--fg-2);border-color:var(--line)}
.curve-toggle[data-kind="Benevente Quant AI"]{color:var(--acao)}
.curve-toggle[data-kind="CDI"]{color:var(--acao)}
.curve-toggle[data-kind="Ibovespa"]{color:var(--fg-2)}
.curve-toggle[data-kind="MVO clássico"]{color:var(--fg-2)}
.line-grid{stroke:var(--line)}
.line-grid-label{fill:var(--fg-2)}
.line-chart-caption{color:var(--fg-2)}
.research-status{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.research-status b{color:var(--acao)}
.portfolio-controls{background-color:var(--inverso);color:var(--fg-2)}
.portfolio-controls .period{color:var(--fg-2);border-color:var(--line)}
.portfolio-controls .period.active{background-color:var(--acao);color:var(--fg);border-color:var(--acao)}
.policy-tuner{background-color:var(--elev);border-color:var(--line)}
.policy-tuner label{background-color:var(--canvas);color:var(--fg)}
.policy-tuner output{color:var(--fg)}
.asset-summary{background-color:var(--elev);border-color:var(--line)}
.asset-summary>div{background-color:var(--canvas)}
.asset-summary small,.asset-card small{color:var(--fg-2)}
.asset-summary strong{color:var(--fg)}
.asset-summary span{color:var(--fg-2)}
.asset-card{background-color:var(--canvas);border-color:var(--line)}
.asset-card.blocked{background-color:var(--canvas)}
.asset-card h3{color:var(--fg)}
.asset-status{background-color:var(--acao-fraco);color:var(--acao)}
.asset-status.blocked{background-color:var(--neg-fraco);color:var(--neg)}
.asset-metrics div{border-color:var(--line)}
.asset-metrics b{color:var(--fg)}
.asset-card p{color:var(--fg-2)}
.asset-card p b{color:var(--fg)}
.asset-weight{color:var(--fg-2);border-color:var(--line)}
.asset-weight strong{color:var(--fg)}
.asset-action-panel{background-color:var(--canvas);border-color:var(--line)}
.asset-action-panel p{color:var(--fg)}
.asset-action-panel b{color:var(--acao)}
.workbench-foot div{border-color:var(--acao)}
.workbench-foot b{color:var(--acao)}
.workbench-foot span{color:var(--fg-2)}
.benchmark-panel{background-color:var(--canvas);border-color:var(--line)}
.benchmark-panel p{color:var(--fg-2)}
.benchmark-actions span{color:var(--fg-2)}
.button-secondary{color:var(--acao);background-color:var(--canvas);border-color:var(--acao)}
.dossier-policy{color:var(--fg-2)}
.annual-protocol-card{background-color:var(--canvas);border-color:var(--line)}
.annual-protocol-card p{color:var(--fg-2)}
.annual-protocol-card li{border-color:var(--line)}
.annual-protocol-card li b{color:var(--acao)}
.annual-protocol-card li span{color:var(--fg-2)}
.research-signal{background-color:var(--elev);border-color:var(--line)}
.research-signal>div,.research-signal>a{background-color:var(--canvas)}
.research-signal span{color:var(--acao)}
.research-signal strong{color:var(--fg)}
.research-signal p{color:var(--fg-2)}
.decision-select-label{color:var(--fg-2)}
.decision-select-label select{background-color:var(--inverso);color:var(--fg-2);border-color:var(--line)}
.asset-return{background-color:var(--canvas);color:var(--fg);border-color:var(--acao)}
.asset-return b{color:var(--acao)}
.asset-card.blocked .asset-return{background-color:var(--neg-fraco);border-color:var(--neg)}
.asset-action-panel .action-label{color:var(--acao)}
.lab-custom-policy{background-color:var(--canvas)}
.lab-custom-policy label{color:var(--fg-2)}
.lab-custom-policy output{color:var(--fg-2)}
.chart-add{background-color:var(--canvas);border-color:var(--line)}
.chart-source,.chart-add-button{background-color:var(--canvas);color:var(--acao);border-color:var(--line)}
.chart-source.active,.chart-add-button{background-color:var(--inverso);color:var(--fg-2);border-color:var(--acao)}
.chart-add label{color:var(--fg-2)}
.chart-add input{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.chart-add-help{color:var(--fg-2)}
.line-cursor{stroke:var(--acao)}
.chart-inspector{background-color:var(--canvas);color:var(--fg-2)}
.chart-inspector b{color:var(--fg)}
/* Declared profile ladder. Three policies where the site used to state one. */
.ladder-wrap{background-color:var(--canvas);border-color:var(--line)}
.ladder-table caption{color:var(--fg-2)}
.ladder-table th,
.ladder-table td{border-color:var(--line)}
.ladder-table thead th{color:var(--fg-2);border-color:var(--line)}
.ladder-table th[scope="row"],
.ladder-table thead th:first-child{color:var(--fg)}
.ladder-strong{color:var(--fg)}
.ladder-reference th[scope="row"],
.ladder-reference td{color:var(--fg-2)}
.ladder-note{color:var(--fg-2)}
.ladder-error{color:var(--fg-2)}
/* The seal is the page's claim to being generated rather than typed. */
.ladder-seal{color:var(--fg-2);border-color:var(--line)}
.ladder-seal span strong{color:var(--fg)}
.alpha-controls button{background-color:var(--canvas);color:var(--fg-2);border-color:var(--line-strong)}
.alpha-controls button.on{background-color:var(--acao-fraco);color:var(--acao);border-color:var(--acao)}
.alpha-controls label{color:var(--fg-2)}
.alpha-controls select{background-color:var(--canvas);color:var(--fg);border-color:var(--line-strong)}
/* A divisão da carteira antes da lista: a proporção é a primeira coisa que
   um revisor confere, e ela some numa tabela de pesos individuais. */
.alpha-split{border-color:var(--line)}
.alpha-split span{color:var(--fg-2)}
}
.alpha-split span:nth-child(1){background-color:var(--acao)}
.alpha-split span:nth-child(2){background-color:var(--acao)}
.alpha-split span:nth-child(3){background-color:var(--elev);color:var(--fg)}
.alpha-action{background-color:var(--acao-fraco);color:var(--fg-2)}
.alpha-entered{background-color:var(--acao-fraco);color:var(--acao)}
.alpha-exited{background-color:var(--neg-fraco);color:var(--neg)}
.alpha-policy{background-color:var(--acao-fraco);color:var(--acao)}
.alpha-policy-row th[scope="row"], .alpha-policy-row td{color:var(--fg-2)}
.alpha-policy-row{border-color:var(--line-strong)}
.dossier-download{background-color:var(--acao);color:var(--sobre-inverso)}
.dossier-download:hover{background-color:var(--acao)}
/* O retorno seguinte é o único número que a decisão não podia usar, então ele
   fica visualmente separado em vez de alinhado com o que era observável. */
.alpha-after{color:var(--fg-2);border-color:var(--line-strong)}
/* Calibração do forecast: a faixa projetada contra o que aconteceu.
   Vive junto do ladder porque as duas coisas saem do mesmo registro. */
.calib-perfil{border-color:var(--line)}
.calib-perfil h3{color:var(--fg)}
.calib-perfil p{color:var(--fg-2)}
.calib-perfil p b{color:var(--fg)}
.calib-fig figcaption{color:var(--fg-2)}
.calib-eixo{fill:var(--fg-2)}
.calib-zero{stroke:var(--line)}
.calib-faixa{stroke:var(--line)}
.calib-meio{stroke:var(--line)}
.calib-dentro{fill:var(--acao);stroke:var(--line)}
.calib-fora{fill:var(--neg);stroke:var(--line)}
.calib-nota{color:var(--fg-2);border-color:var(--line)}
/* Shared shell for the two paper-facing pages. They are argument pages, not
   product pages: a reader arrives from a call for papers or a committee and
   wants the claim, the evidence and the limits, in that order. */
.paper-nav{border-color:var(--line)}
.paper-nav a{color:var(--acao)}
.paper-nav a.current{color:var(--acao);border-color:var(--acao)}
.paper-page h2{color:var(--fg)}
.paper-page h3{color:var(--acao)}
.paper-page p,.paper-page li{color:var(--fg)}
.paper-lede{color:var(--fg)}
.paper-callout{background-color:var(--acao-fraco);border-color:var(--acao)}
.paper-callout b{color:var(--acao)}
.paper-callout.warn{background-color:var(--acao-fraco);border-color:var(--acao)}
.paper-callout.warn b{color:var(--acao)}
.paper-table th{color:var(--fg-2)}
.paper-table td{color:var(--fg);border-color:var(--line)}
.paper-table td:first-child{color:var(--fg)}
.paper-table tr.highlight td{background-color:var(--canvas)}
.paper-metric{background-color:var(--canvas);border-color:var(--line)}
.paper-metric span{color:var(--fg-2)}
.paper-metric b{color:var(--acao)}
.paper-metric small{color:var(--fg-2)}
.paper-metric.negative b{color:var(--neg)}
.paper-portfolio{background-color:var(--canvas);border-color:var(--line)}
.paper-holding b{color:var(--fg)}
.paper-holding .bar{background-color:var(--acao-fraco)}
.paper-holding .bar i{background-color:var(--acao)}
.paper-holding .bar.cash i{background-color:var(--acao)}
.paper-holding span{color:var(--fg-2)}
.live-card-head p{color:var(--fg-2)}
.live-status{color:var(--acao)}
.live-version-tab{color:var(--acao);border-color:var(--line)}
.live-chart{background-color:var(--canvas);border-color:var(--line)}
.live-chart-legend{color:var(--fg-2)}
.live-chart-legend b{color:var(--fg)}
.live-chart-readout{color:var(--fg)}
.live-grid line{stroke:var(--line)}
.live-grid text{fill:var(--fg-2)}
.live-cursor{stroke:var(--acao)}
.live-chart-axis{color:var(--fg-2)}
.live-holdings summary{color:var(--acao)}
.live-quality{color:var(--fg-2)}
.live-allocation-full{border-color:var(--line)}
.allocation-heading span{color:var(--acao)}
.allocation-heading h4{color:var(--fg)}
.allocation-heading small{color:var(--fg-2)}
.allocation-table{background-color:var(--canvas)}
.allocation-table th,.allocation-table td{border-color:var(--line)}
.allocation-table th{color:var(--fg-2)}
.allocation-action.hold{background-color:var(--acao-fraco);color:var(--fg)}
.allocation-action.reduce{background-color:var(--acao-fraco);color:var(--acao)}
.allocation-action.increase{background-color:var(--acao-fraco);color:var(--acao)}
.risk-decision-log h4{color:var(--fg)}
.risk-decision-log li{background-color:var(--canvas);border-color:var(--line)}
.risk-decision-log time{color:var(--acao)}
.risk-decision-log strong{color:var(--fg)}
.allocation-disclaimer{color:var(--fg-2)}
.live-error{color:var(--neg);background-color:var(--canvas);border-color:var(--neg)}
.decision-ledger-intro{background-color:var(--inverso);color:var(--sobre-inverso)}
.decision-ledger-intro span{color:var(--acao-inverso)}
.annual-decision{background-color:var(--canvas);border-color:var(--line)}
.annual-decision summary strong{color:var(--fg)}
.annual-decision summary span{color:var(--fg-2)}
.annual-result b{color:var(--acao)}
.annual-result small{color:var(--fg-2)}
.annual-decision-body{border-color:var(--line)}
.annual-comparison span{color:var(--fg-2)}
.annual-comparison b{color:var(--fg)}
.annual-allocation span{background-color:var(--acao-fraco);color:var(--fg)}
.annual-meta span{color:var(--fg-2)}
.historical-transitions{background-color:var(--canvas)}
.historical-transitions h5{color:var(--fg)}
.historical-transitions time{color:var(--acao)}
.historical-transitions strong{color:var(--fg)}
.historical-transitions p{color:var(--fg-2)}
.no-transition{color:var(--fg-2)}
.decision-hash{color:var(--fg-2)}
.transition-allocation span{color:var(--fg-2)}
.radar-summary{background-color:var(--canvas);border-color:var(--line)}
.radar-summary>div{border-color:var(--line)}
.radar-summary span{color:var(--fg-2)}
.radar-summary strong{color:var(--fg)}
.radar-summary small{color:var(--fg-2)}
.radar-state.normal{color:var(--acao)}
.radar-state.atencao{color:var(--acao)}
.radar-state.alerta,.radar-state.critico{color:var(--neg)}
.radar-event{background-color:var(--canvas);border-color:var(--line);border-left-color:var(--line-strong)}
.radar-event.atencao{border-color:var(--acao)}
.radar-event.alerta,.radar-event.critico{border-color:var(--neg)}
.radar-event-top span{color:var(--acao)}
.radar-event-top time{color:var(--fg-2)}
.radar-event h4{color:var(--fg)}
.radar-event p{color:var(--fg-2)}
.radar-event-meta{color:var(--fg-2)}
.radar-event a{color:var(--acao)}
.radar-sources{background-color:var(--acao-fraco)}
.radar-sources h4{color:var(--fg)}
.radar-sources li{border-color:var(--line)}
.radar-sources li span{color:var(--fg-2)}
.radar-sources li b{color:var(--acao)}
.radar-sources li b.indisponivel{color:var(--acao)}
.radar-sources p{color:var(--fg-2)}
.radar-sources code{color:var(--fg-2)}
.radar-empty{color:var(--fg-2);border-color:var(--line)}
.paper-foot{color:var(--fg-2);border-color:var(--line)}
.orientation-intro h2,.flow-heading h2{color:var(--fg)}
.orientation-intro p:not(.eyebrow){color:var(--fg-2)}
.definition-grid{border-color:var(--line)}
.definition-grid article{border-color:var(--line)}
.definition-grid span,.mvo-explainer .control-label{color:var(--acao)}
.definition-grid h3{color:var(--fg)}
.definition-grid p{color:var(--fg-2)}
.definition-grid a{color:var(--acao)}
.use-flow{background-color:var(--inverso);color:var(--fg-2)}
.flow-heading h2{color:var(--fg-2)}
.flow-heading p:not(.eyebrow){color:var(--fg-2)}
.flow-steps{border-color:var(--line)}
.flow-steps li{border-color:var(--line)}
.flow-steps a{color:var(--fg-2)}
.flow-steps a:hover{background-color:var(--acao)}
.flow-steps b{color:var(--acao)}
.flow-steps span{color:var(--fg-2)}
.mvo-explainer{background-color:var(--canvas);border-color:var(--line)}
.mvo-explainer h3{color:var(--fg)}
.mvo-explainer>div>p{color:var(--fg-2)}
.mvo-columns p{background-color:var(--canvas)}
.mvo-columns b{color:var(--fg)}
.mvo-columns span{color:var(--fg-2)}
.portfolio-controls .portfolio-mode{color:var(--fg-2);border-color:var(--line)}
.portfolio-controls .portfolio-mode:hover{color:var(--fg-2);border-color:var(--acao)}
.portfolio-controls .portfolio-mode.active{background-color:var(--acao);color:var(--fg);border-color:var(--acao)}
.research-signal>div{border-color:var(--line)}
.research-signal>div:first-child{background-color:var(--canvas)}
.research-signal span{color:var(--fg-2)}
.research-signal strong{color:var(--fg)}
.research-signal p{color:var(--fg-2)}
.chart-return-summary span{color:var(--fg)}
.chart-return-summary strong{color:var(--fg)}
.chart-sidepanel{border-color:var(--line)}
.chart-sidepanel .chart-add{background-color:var(--canvas);border-color:var(--line)}
.chart-scale-label{color:var(--fg-2)}
.chart-tools .chart-scale.active{background-color:var(--inverso);border-color:var(--inverso-linha)}
.quick-compare span{color:var(--fg-2)}
.quick-ticker{color:var(--acao);border-color:var(--line)}
.line-axis-title{fill:var(--fg-2)}
.profile-history{background-color:var(--canvas);border-color:var(--line)}
.profile-history-head b{color:var(--fg)}
.profile-history-head small{color:var(--fg-2)}
.profile-history-head>span{color:var(--acao);border-color:var(--line)}
.profile-year{color:var(--fg);border-color:var(--line)}
.profile-year:hover{border-color:var(--acao)}
.profile-year.active{background-color:var(--inverso);border-color:var(--line-strong)}
.chart-tools button{background-color:var(--canvas);color:var(--acao);border-color:var(--line)}
.chart-tools button:hover{background-color:var(--acao-fraco)}
.chart-tools span{color:var(--acao)}
.chart-tools small{color:var(--fg-2)}
.asset-card.defensive{background-color:var(--canvas);border-color:var(--line)}
.asset-card.defensive .asset-status{background-color:var(--acao-fraco);color:var(--acao)}
.asset-card.defensive .asset-return{background-color:var(--canvas);border-color:var(--acao)}
.asset-status.entered,.asset-status.increased{background-color:var(--acao-fraco);color:var(--acao)}
.asset-status.reduced{background-color:var(--acao-fraco);color:var(--acao)}
.asset-status.exited{background-color:var(--acao-fraco);color:var(--fg-2)}
.asset-status.maintained{background-color:var(--acao-fraco);color:var(--acao)}
.embedded-dossier{background-color:var(--canvas);color:var(--fg)}
.embedded-dossier-head h3{color:var(--fg)}
.embedded-dossier-head p{color:var(--fg-2)}
.dossier-details{border-color:var(--line)}
.dossier-details summary{color:var(--acao)}
.fund-preset-button{background-color:var(--canvas);color:var(--acao);border-color:var(--acao)}
.fund-preset-button:hover{background-color:var(--acao-fraco)}
.forecast-shell{background-color:var(--inverso);color:var(--fg-2)}
.forecast-head p:not(.eyebrow){color:var(--fg-2)}
.forecast-card{background-color:var(--canvas);color:var(--fg)}
.research-chip{background-color:var(--acao-fraco);color:var(--acao)}
.scenario-summary div{border-color:var(--line)}
.scenario-summary small,.suggestion-assets small{color:var(--fg-2)}
.scenario-summary b{color:var(--fg)}
.scenario-track{background-color:var(--elev)}
.scenario-range{background-color:var(--acao)}
.scenario-marker{color:var(--fg)}
.scenario-marker i{background-color:var(--canvas);border-color:var(--line-strong)}
.scenario-scale{color:var(--fg-2)}
.scenario-caption,.universe-foot{color:var(--fg-2)}
.suggestion-asset{border-color:var(--line)}
.suggestion-row strong{color:var(--acao)}
.suggestion-asset p{color:var(--fg-2)}
.scenario-limitations span{color:var(--fg-2);border-color:var(--line)}
.universe-head{color:var(--fg)}
.universe-head p:not(.eyebrow){color:var(--fg-2)}
.universe-summary div{background-color:var(--canvas);border-color:var(--line)}
.universe-summary b{color:var(--fg)}
.universe-summary span{color:var(--fg-2)}
.universe-controls label{color:var(--fg-2)}
.universe-controls input,.universe-controls select{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.universe-table-wrap{border-color:var(--line)}
.universe-table th{background-color:var(--canvas);color:var(--fg-2)}
.universe-table td{color:var(--fg);border-color:var(--line)}
.universe-table td:first-child{color:var(--fg)}
.universe-class{background-color:var(--canvas);color:var(--fg-2)}
.universe-status.blocked{color:var(--acao)}
.universe-status.covered{color:var(--acao)}
}
/* Keep the site compact and typographically coherent at 100% zoom. */
.candidate-shell{background-color:var(--inverso);color:var(--fg-2)}
.candidate-grid>div>p:not(.eyebrow){color:var(--fg-2)}
.candidate-card{background-color:var(--canvas);color:var(--fg)}
.candidate-rule{border-color:var(--line)}
.candidate-rule span{color:var(--acao)}
.candidate-rule small{color:var(--fg-2)}
.candidate-warning{background-color:var(--canvas);color:var(--acao);border-color:var(--acao)}
.final-strategy-select{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.profile-picker .choice{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.profile-picker .choice.active{background-color:var(--acao);color:var(--fg-2);border-color:var(--acao)}
.profile-picker .choice:hover{border-color:var(--acao)}
.chart-return-summary{background-color:var(--canvas);border-color:var(--line)}
.chart-inspector .inspector-item strong{color:var(--fg)}
.single-policy-note{color:var(--fg-2)}
.hero-answers li{color:var(--fg)}
.hero-answers li::before{background-color:var(--acao)}
.hero-answers b{color:var(--fg)}
.line-boundary{stroke:var(--line-strong)}
.line-boundary-label{fill:var(--fg-2)}
/* Quanto o patrimônio teria virado. Três cards, uma linha, sem gráfico próprio:
   a comparação é entre três números e não precisa de mais nada para ser lida. */
.wealth-panel{background-color:var(--canvas);border-color:var(--line)}
.wealth-form label{color:var(--fg)}
.wealth-form output{color:var(--acao)}
.wealth-cards-lede{color:var(--fg)}
.wealth-card{background-color:var(--canvas);border-color:var(--line);border-top-color:var(--acao)}
.wealth-card header b{color:var(--fg)}
.wealth-card header small{color:var(--fg-2)}
.wealth-card strong{color:var(--fg)}
.wealth-card-foot{color:var(--fg-2)}
.wealth-card-foot .up{color:var(--acao)}
.wealth-card-foot .down{color:var(--neg)}
/* A faixa de parâmetros tinha raio só no primeiro cartão e nenhum no último, o
   que produzia um canto arredondado solto contra três cantos retos. A moldura
   passa a ser do bloco inteiro, e os cartões apenas se dividem por dentro. */
.research-signal{background-color:var(--canvas);border-color:var(--line)}
.research-signal .text-link{border-color:var(--line)}
/* Comparar com um ativo externo é uma ação de quem já leu o placar, não a
   primeira coisa a se ver. Recolhida, ela deixa o gráfico e a tabela sozinhos. */
.chart-add-details{background-color:var(--canvas);border-color:var(--line)}
.chart-add-details > summary{color:var(--acao)}
.chart-add-details > summary::after{color:var(--fg-2)}
.chart-add-details[open] > summary{border-color:var(--line)}
.version-panel{border-color:var(--line)}
.version-copy h3{color:var(--fg)}
.version-copy p{color:var(--fg-2)}
.version-copy small{color:var(--fg-2)}
.version-metrics>div{background-color:var(--canvas);border-color:var(--line)}
.version-metrics span,.version-metrics small{color:var(--fg-2)}
.version-metrics strong{color:var(--acao)}
.version-metrics b{color:var(--fg)}
.version-gateway-head h2{color:var(--fg)}
.version-gateway-head>p{color:var(--fg-2)}
.version-gateway-card{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.version-gateway-card:hover{border-color:var(--acao)}
.version-gateway-card.experimental{background-color:var(--inverso);color:var(--sobre-inverso);border-color:var(--inverso-linha)}
.version-tag{color:var(--acao)}
.experimental .version-tag{color:var(--acao-inverso)}
.version-gateway-card>p{color:var(--fg-2)}
.experimental>p{color:var(--fg-2)}
.version-gateway-card>b{color:var(--acao)}
.experimental>b{color:var(--fg-2)}
/* Evidence-first release: compact rhythm, explicit research stage and mobile-safe cards. */
.stage-ribbon{background-color:var(--inverso);color:var(--fg-2)}
.stage-ribbon span{color:var(--fg-2)}
.evidence-board{border-color:var(--line)}
.evidence-board-head>p{color:var(--fg-2)}
.evidence-card{background-color:var(--canvas);border-color:var(--line)}
.evidence-card span,.protocol-card>span{color:var(--fg-2)}
.evidence-card p,.protocol-card p{color:var(--fg-2)}
.evidence-card.proven{border-color:var(--acao)}
.evidence-card.observed{border-color:var(--acao)}
.evidence-card.pending{border-color:var(--acao)}
.evidence-card.tracking{border-color:var(--line-strong)}
.audit-block,.protocol-card{background-color:var(--canvas);border-color:var(--line)}
.audit-block summary{color:var(--fg)}
.audit-block li{color:var(--fg-2)}
.protocol-card code{background-color:var(--acao-fraco);color:var(--fg)}
.protocol-card a{color:var(--acao)}
.fixed-comparators{background-color:var(--canvas);border-color:var(--line)}
.fixed-comparators summary{color:var(--fg)}
.fixed-comparators-wrap{border-color:var(--line)}
.fixed-comparators th,.fixed-comparators td{border-color:var(--line)}
.fixed-comparators th{color:var(--fg-2)}
.fixed-comparators>p{color:var(--fg-2)}
/* Evidence contract release, 2026-08-23. One type family, shorter sections and
   explicit boundaries between calculation, explanation and human decision. */
.role-contract{background-color:var(--elev);border-color:var(--line)}
.role-contract div{background-color:var(--canvas)}
.role-contract span{color:var(--acao)}
.role-contract p{color:var(--fg)}
.evidence-matrix-wrap{background-color:var(--canvas);border-color:var(--line)}
.evidence-matrix th{background-color:var(--canvas);color:var(--fg-2)}
.evidence-matrix td{color:var(--fg);border-color:var(--line)}
.evidence-matrix td:first-child{color:var(--fg)}
.evidence-status.demonstrated{background-color:var(--acao-fraco);color:var(--acao)}
.evidence-status.not-demonstrated{background-color:var(--acao-fraco);color:var(--acao)}
.evidence-status.sensitivity{background-color:var(--acao-fraco);color:var(--fg)}
.evidence-status.observed{background-color:var(--acao-fraco);color:var(--acao)}
.explanation-quality{background-color:var(--inverso);color:var(--fg-2);border-color:var(--line)}
.explanation-quality>div>span{color:var(--acao)}
.explanation-quality p{color:var(--fg-2)}
.explanation-quality li{background-color:var(--canvas);border-color:var(--line)}
.explanation-quality li span{color:var(--fg-2)}
.contamination-note{background-color:var(--acao-fraco);color:var(--fg);border-color:var(--line-strong)}
.audit-impact{background-color:var(--canvas);color:var(--neg)}
.wealth-tax-note{color:var(--fg-2)}
.dossier-strategy-button{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.dossier-strategy-button:hover{border-color:var(--acao)}
.dossier-strategy-button.active{background-color:var(--inverso);color:var(--fg-2);border-color:var(--line-strong)}
.dossier-year-control{border-color:var(--line)}
.asset-allocation-path{background-color:var(--canvas)}
.asset-allocation-path span{color:var(--fg-2)}
.asset-allocation-path b{color:var(--fg)}
.asset-card.defensive .asset-allocation-path{background-color:var(--canvas)}
.asset-card.defensive .asset-allocation-path b{color:var(--acao)}
.page-stage{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.page-stage strong{color:var(--acao)}
body{background-color:var(--canvas);color:var(--fg)}
.brand{color:var(--fg)}
.brand-mark{background-color:var(--inverso);color:var(--fg-2)}
.nav nav a,.text-link{color:var(--fg)}
.nav-cta{background-color:var(--acao-fraco);color:var(--fg)}
.nav-cta span{color:var(--acao)}
.eyebrow{color:var(--acao)}
.hero h1,.section-heading h2,.lab-head h2,.governance h2{color:var(--fg)}
.lede{color:var(--fg-2)}
.button-primary{color:var(--sobre-inverso);background-color:var(--acao)}
.text-link{color:var(--fg)}
.text-link span{color:var(--acao)}
.trust-row{color:var(--fg-2)}
.trust-row span:before{color:var(--acao)}
.hero-panel{background-color:var(--inverso);color:var(--fg-2)}
.hero-panel:after{border-color:var(--line)}
.panel-top,.proposal-kicker{color:var(--fg-2)}
.status{color:var(--fg-2)}
.status i{background-color:var(--elev)}
.panel-meta{color:var(--fg-2)}
.allocation-ring:before{background-color:var(--inverso)}
.ring-center small{color:var(--fg-2)}
.legend span{color:var(--fg-2)}
.legend b{color:var(--fg-2)}
.equity{background-color:var(--acao)}
.fixed{background-color:var(--inverso)}
.panel-foot{color:var(--fg-2);border-color:var(--line)}
.panel-foot b{color:var(--fg-2)}
.proof{border-color:var(--line)}
.proof div{border-color:var(--line)}
.proof strong{color:var(--fg)}
.proof span{color:var(--fg-2)}
.proof p{color:var(--fg-2)}
.section-heading>p{color:var(--fg-2)}
.method-grid{border-color:var(--line)}
.method-grid article{border-color:var(--line)}
.step{color:var(--acao)}
.method-grid h3{color:var(--fg)}
.method-grid p{color:var(--fg-2)}
.arrow{color:var(--acao)}
.lab-section{background-color:var(--inverso);color:var(--fg-2)}
.light{color:var(--acao)}
.lab-head h2{color:var(--fg-2)}
.lab-head>p{color:var(--fg-2)}
.lab-form,.proposal{background-color:var(--canvas);color:var(--fg)}
.form-title{border-color:var(--line)}
.form-title>span{color:var(--acao);border-color:var(--line)}
.form-title p{color:var(--fg-2)}
.lab-form output{color:var(--acao)}
input[type=range]{background-color:var(--elev)}
input[type=range]::-webkit-slider-thumb{background-color:var(--acao);border-color:var(--line)}
.choice{color:var(--fg-2);background-color:var(--canvas);border-color:var(--line)}
.choice.active{background-color:var(--acao-fraco);color:var(--acao);border-color:var(--acao)}
.form-note{color:var(--fg-2)}
.form-note i{background-color:var(--acao-fraco);color:var(--acao)}
.empty-mark{color:var(--acao)}
.proposal-empty h3{color:var(--fg)}
.proposal-empty p{color:var(--fg-2)}
.proposal-content h3{color:var(--fg)}
.result-metrics{border-color:var(--line)}
.result-metrics small{color:var(--fg-2)}
.result-metrics strong{color:var(--fg)}
.weight-row{color:var(--fg)}
.bar{background-color:var(--card)}
.bar i{background-color:var(--acao)}
.weight-row b{color:var(--fg)}
.result-callout{background-color:var(--canvas);border-color:var(--acao)}
.result-callout span{color:var(--acao)}
.result-callout p{color:var(--fg)}
.disclaimer{color:var(--fg-2)}
.governance-copy>p:not(.eyebrow){color:var(--fg-2)}
.rule{background-color:var(--acao-fraco);color:var(--acao)}
.evidence{background-color:var(--acao-fraco);color:var(--acao)}
.human{background-color:var(--elev);color:var(--fg)}
.footer{background-color:var(--inverso);color:var(--sobre-inverso)}
.footer .brand{color:var(--sobre-inverso)}
.footer .brand-mark{background-color:var(--canvas);color:var(--fg)}
.footer span:last-child{color:var(--sobre-inverso)}
body.version-page{background-color:var(--canvas);color:var(--fg)}
.version-nav nav a{color:var(--fg-2)}
.version-nav nav a[aria-current="page"]{background-color:var(--acao-fraco);color:var(--acao)}
.version-back{color:var(--fg)}
.version-hero{border-color:var(--line)}
.version-kicker{color:var(--acao)}
.version-hero h1{color:var(--fg)}
.version-lede{color:var(--fg-2)}
.version-status{background-color:var(--canvas);border-color:var(--line)}
.version-status span{color:var(--acao)}
.version-status strong{color:var(--fg)}
.version-status p{color:var(--fg-2)}
.version-scoreboard{background-color:var(--canvas);border-color:var(--line)}
.version-metric{border-color:var(--line)}
.version-metric span,.version-label{color:var(--fg-2)}
.version-metric strong{color:var(--fg)}
.version-metric small{color:var(--fg-2)}
.version-section{border-color:var(--line)}
.version-section-heading h2{color:var(--fg)}
.version-section-heading p{color:var(--fg-2)}
.version-step{background-color:var(--canvas);border-color:var(--line)}
.version-step span{color:var(--acao)}
.version-step h3{color:var(--fg)}
.version-step p{color:var(--fg-2)}
.version-callout{background-color:var(--acao-fraco);border-color:var(--acao)}
.version-callout h3{color:var(--acao)}
.version-callout p{color:var(--fg)}
.weight-rule{border-color:var(--line)}
.weight-rule strong{color:var(--fg)}
.weight-rule p{color:var(--fg-2)}
.comparison-matrix{background-color:var(--canvas);border-color:var(--line)}
.comparison-matrix th,.comparison-matrix td{border-color:var(--line)}
.comparison-matrix th{color:var(--fg-2)}
.comparison-matrix td:first-child{color:var(--fg)}
.evidence-card{background-color:var(--inverso);color:var(--fg-2)}
.evidence-card.secondary{background-color:var(--canvas);color:var(--fg);border-color:var(--line)}
.evidence-card span{color:var(--acao)}
.evidence-card.secondary span{color:var(--acao)}
.evidence-card p{color:var(--fg-2)}
.evidence-card.secondary p{color:var(--fg-2)}
.version-limitations li{background-color:var(--canvas);color:var(--fg-2);border-color:var(--line)}
.version-limitations li::before{background-color:var(--acao-fraco);color:var(--acao)}
.version-next{background-color:var(--inverso);color:var(--sobre-inverso)}
.version-next span{color:var(--sobre-inverso)}
.version-next a{background-color:var(--canvas);color:var(--fg)}
.version-footnote{color:var(--fg-2)}
.version-footer{background-color:var(--inverso);color:var(--sobre-inverso)}
.version-footer a{color:var(--sobre-inverso)}
.stress-timeline{background-color:var(--elev);border-color:var(--line)}
.stress-timeline article{background-color:var(--canvas)}
.stress-timeline span{color:var(--acao)}
.stress-timeline h3{color:var(--fg)}
.stress-timeline p{color:var(--fg-2)}
.version-page .brand{color:var(--fg)}
.version-page .brand-mark{background-color:var(--inverso);color:var(--sobre-inverso)}
@media(max-width:780px){
.comparison-grid .return-chart{border-color:var(--line)}
.research-signal>div,.research-signal>div:first-child{border-color:var(--line)}
.method-grid article,.method-grid article:not(:first-child){border-color:var(--line)}
}
@media(max-width:640px){
.radar-summary>div{border-color:var(--line)}
}
@media(max-width:900px){
.chart-sidepanel{border-color:var(--line)}
.definition-grid article:nth-child(-n+2){border-color:var(--line)}
.flow-steps li:nth-child(-n+4){border-color:var(--line)}
.chart-sidepanel{border-color:var(--line)}
}
@media(max-width:720px){
.embedded-dossier .asset-summary>div{border-color:var(--line)}
.nav nav a{border-color:var(--line)}
}
@media(max-width:560px){
.definition-grid article,.definition-grid article:nth-child(2),.flow-steps li,.flow-steps li:nth-child(2){border-color:var(--line)}
.flow-steps li{border-color:var(--line)}
}
@media (max-width: 780px){
.research-signal .text-link{border-color:var(--line)}
}
@media(max-width:1050px){
.research-signal .text-link{border-color:var(--line)}
}
@media (max-width: 640px){
.paper-nav a{border-color:var(--line)}
}
@media(max-width:680px){
.version-nav nav a{border-color:var(--line)}
}
@media(max-width:430px){
.version-metric{border-color:var(--line)}
}
@media(max-width:800px){
.version-metric:nth-child(-n+2){border-color:var(--line)}
}
@media(max-width:480px){
.version-metric{border-color:var(--line)}
}
