/* ============================================================
   abertura-orcamento.css: o orçamento aprovado da Rede na abertura
   pública, em /{rede}: a seção #secao-orcamento de /redes/index.html.

   Companheiro de /redes/abertura-orcamento.js, que desenha os quatro
   cartões em #orcamento-rede e lhe dá a classe orc-rede. Tudo escopado em
   #orcamento-rede.orc-rede, com uma exceção: a seção é montada em
   .container de 1280px enquanto os painéis acima têm 900px (de 900 a
   1499px) e 1640px (a partir de 1500px); para alinhar, o container da
   seção alarga e a raiz toma a largura dos painéis.
   A seção foi escolhida na prévia local entre 05 e 07/10/2026 (as
   propostas que não foram escolhidas ficam em
   automacao/previa-painel/propostas). Lá a raiz tinha outro id e outra
   classe; aqui é #orcamento-rede.orc-rede, também um id e uma classe: a
   força dos seletores é a mesma, e a cascata contra abertura.css e
   capes-global.css também.
   Cores de fundo e texto por token (--mapa-*, --color-*, --uc-primary); a
   rampa dos temas vem do JS (quatro tons da cor da rede, em variáveis
   --orc-tN-claro / --orc-tN-escuro; os valores abaixo são os da GAIA, para
   o caso de o JS ainda não ter rodado); as cores de rubrica e de instituição
   em linha, vindas do JS. O cartão 3 usa só o acento (o patamar de
   exercícios) e um cinza neutro (os outros anos), na faixa de 100% e no
   filete de cada bloco, mais a tinta da página na marca da metade do total
   (traço e triângulo); a tabela dele vai sem amostras de cor. Nenhum texto
   abaixo de 12px, exceto a etiqueta do painel (.ab-painel-tag, 10,5px), que
   vem de abertura.css.
   ============================================================ */

#abertura #secao-orcamento .container { max-width: 1700px; }

/* ---------- A raiz, alinhada aos painéis ---------- */
#orcamento-rede.orc-rede {
    --orc-t1: var(--orc-t1-claro, #003614);
    --orc-t2: var(--orc-t2-claro, #27633c);
    --orc-t3: var(--orc-t3-claro, #3f9464);
    --orc-t4: var(--orc-t4-claro, #4fc76a);
    --orc-t1-ink: var(--orc-t1-claro-ink, #ffffff);
    --orc-t2-ink: var(--orc-t2-claro-ink, #ffffff);
    --orc-t3-ink: var(--orc-t3-claro-ink, #1a1a1a);
    --orc-t4-ink: var(--orc-t4-claro-ink, #1a1a1a);
    /* O Comitê Gestor: cinza a 2,46:1 do tom 4 claro e 5,1:1 do papel. */
    --orc-cg: #6b6b6b;
    --orc-cg-ink: #ffffff;
    /* O fio de 1px das marcas pequenas: com ele a borda do tom mais claro lê
       3:1 contra o papel. As barras assentam no trilho, mais escuro que o
       papel, e pedem fio mais forte para a borda do tom 4 ler 3:1 contra ele. */
    --orc-fio: rgba(0, 0, 0, 0.18);
    --orc-fio-barra: rgba(0, 0, 0, 0.25);
    --orc-papel: var(--color-bg, #fafafa);
    --orc-acento: var(--uc-primary, #2E7D32);
    --orc-hover: var(--uc-primary-light, rgba(46, 125, 50, 0.07));
    --orc-aberto: var(--uc-primary-light, rgba(46, 125, 50, 0.07));
    display: flex;
    flex-direction: column;
    gap: 28px;
    width: 100%;
    min-width: 0;
    margin: 0 auto;
    text-align: left;
    font-family: var(--font-main, inherit);
    color: var(--mapa-nome);
}
html.darkmode #orcamento-rede.orc-rede {
    --orc-t1: var(--orc-t1-escuro, #cbf2be);
    --orc-t2: var(--orc-t2-escuro, #7ad471);
    --orc-t3: var(--orc-t3-escuro, #579f5f);
    --orc-t4: var(--orc-t4-escuro, #1c5f31);
    --orc-t1-ink: var(--orc-t1-escuro-ink, #1a1a1a);
    --orc-t2-ink: var(--orc-t2-escuro-ink, #1a1a1a);
    --orc-t3-ink: var(--orc-t3-escuro-ink, #1a1a1a);
    --orc-t4-ink: var(--orc-t4-escuro-ink, #ffffff);
    /* Mais claro que antes (#8c8c8c): 2,73:1 do tom 4 escuro, 5,9:1 do papel. */
    --orc-cg: #9a9a9a;
    --orc-cg-ink: #1a1a1a;
    --orc-fio: rgba(255, 255, 255, 0.22);
    --orc-fio-barra: rgba(255, 255, 255, 0.28);
    --orc-acento: var(--mapa-raio, #96BE98);
    --orc-hover: rgba(255, 255, 255, 0.05);
    --orc-aberto: rgba(255, 255, 255, 0.05);
}
/* O realce sob o ponteiro e o fundo do que abre, no claro, saem da cor da
   rede: o --uc-primary-light de abertura.css é verde em qualquer rede. Sem
   color-mix, ficam os valores acima. */
@supports (background: color-mix(in srgb, red 7%, transparent)) {
    #orcamento-rede.orc-rede {
        --orc-hover: color-mix(in srgb, var(--uc-primary, #2E7D32) 7%, transparent);
        --orc-aberto: color-mix(in srgb, var(--uc-primary, #2E7D32) 7%, transparent);
    }
}
@media (min-width: 900px) and (max-width: 1499px) {
    #orcamento-rede.orc-rede { max-width: 900px; }
}
@media (min-width: 1500px) {
    #orcamento-rede.orc-rede { max-width: 1640px; }
}
#orcamento-rede.orc-rede [hidden] { display: none !important; }
#orcamento-rede.orc-rede p { margin: 0; }
#orcamento-rede.orc-rede .orc-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* Os tons da rampa: a mesma classe pinta, no cartão 2, o selo, a barra e o
   fio da caixa que abre. */
#orcamento-rede.orc-rede .orc-tom-1 { --tom: var(--orc-t1); --tom-ink: var(--orc-t1-ink); }
#orcamento-rede.orc-rede .orc-tom-2 { --tom: var(--orc-t2); --tom-ink: var(--orc-t2-ink); }
#orcamento-rede.orc-rede .orc-tom-3 { --tom: var(--orc-t3); --tom-ink: var(--orc-t3-ink); }
#orcamento-rede.orc-rede .orc-tom-4 { --tom: var(--orc-t4); --tom-ink: var(--orc-t4-ink); }
#orcamento-rede.orc-rede .orc-tom-cg { --tom: var(--orc-cg); --tom-ink: var(--orc-cg-ink); }

/* ---------- O olho da seção ---------- */
#orcamento-rede.orc-rede .orc-cab { margin: 0; }
#orcamento-rede.orc-rede .orc-cab-titulo {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--mapa-detalhe);
}

/* ---------- A faixa de capítulo: o cabeçalho de cada cartão ----------
   Escolhida pelo gestor da rede em 11/10/2026 entre cinco propostas de
   título (automacao/previa-painel/propostas/titulos-*.css; esta era a B,
   "Faixa de capítulo"), com os ícones da proposta A (icones-*.css). A
   marcação é a de envolverCabecalhos (abertura-orcamento.js): a faixa no
   acento, de borda a borda do cartão (que não tem padding, raio nem
   moldura), com o disco do ícone à esquerda e a etiqueta sobre o título à
   direita; a medida fica abaixo, no papel. Os títulos eram de 17px, como os
   dos painéis da Rede em números (abertura.css); o pedido de 10/10/2026
   foi de títulos maiores e evidentes.

   Cores: só o acento e neutros. No claro, o verde da rede com tinta
   branca (5,1:1). No escuro, o acento escuro com tinta #1a1a1a (8,4:1),
   escrito como literal porque o acento escuro é um color-mix() que a
   conferência de contraste não lê. A tinta a 85% na etiqueta ficou de
   fora (4,2:1, abaixo do AA para 12px): a etiqueta se subordina por
   tamanho, peso e espacejamento. O disco: branco a 18% no claro (ícone
   branco sobre ele, 3,6:1), preto a 12% no escuro (6,8:1). */
#orcamento-rede.orc-rede {
    --orc-faixa-fundo: var(--uc-primary, #2E7D32);
    --orc-faixa-tinta: #ffffff;
    --orc-faixa-disco: rgba(255, 255, 255, 0.18);
}
html.darkmode #orcamento-rede.orc-rede {
    --orc-faixa-fundo: #96BE98;
    --orc-faixa-tinta: #1a1a1a;
    --orc-faixa-disco: rgba(0, 0, 0, 0.12);
}

/* O olho da seção ganha um fio por baixo, na largura da seção: cabeça de
   página sobre as faixas de capítulo. O cartão 1, "Orçamento da Rede",
   quase o repete; com a faixa e a etiqueta "Total", um é a cabeça da seção
   e o outro, o capítulo. */
#orcamento-rede.orc-rede .orc-cab-titulo {
    padding-bottom: 10px;
    border-bottom: 1px solid var(--orc-fio);
}

#orcamento-rede.orc-rede .orc-cab-faixa {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    padding: 12px 16px 12px 14px;
    background: var(--orc-faixa-fundo);
    color: var(--orc-faixa-tinta);
}
#orcamento-rede.orc-rede .orc-cab-disco {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--orc-faixa-disco);
}
/* O ícone a 20px (a 18px o cifrão da bolsa e as colunas da cúpula se
   perdiam), na tinta da faixa por herança: nas cores forçadas, é por
   herança que a cor do sistema chega a um svg (a roda dos ODS, se um dia a
   faixa for aos painéis do mapa). */
#orcamento-rede.orc-rede .orc-cab-disco i { display: inline-flex; font-size: 20px; line-height: 1; }
#orcamento-rede.orc-rede .orc-cab-disco svg { width: 20px; height: 20px; }
#orcamento-rede.orc-rede .orc-cab-texto {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    overflow-wrap: break-word;
}

/* A etiqueta deixa de ser pílula: linha-olho na tinta da faixa. */
#orcamento-rede.orc-rede .ab-painel-tag {
    display: block;
    padding: 0;
    background: transparent;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--orc-faixa-tinta);
}
#orcamento-rede.orc-rede .ab-painel-titulo {
    margin: 0;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.015em;
    color: var(--orc-faixa-tinta);
}

/* A medida, fora da faixa, no papel: 10px abaixo dela (o vão de 4px que o
   cabeçalho já tem mais 6px de margem). */
#orcamento-rede.orc-rede .ab-painel-medida {
    margin: 6px 0 0;
    font-size: 13px;
    line-height: 1.45;
    color: var(--mapa-detalhe);
}

/* No celular (cartão de 340 e 366px) a faixa aperta o ar e o título desce
   para 21px: "Distribuição por instituição" quebra em duas linhas, sem
   partir palavra. */
@media (max-width: 480px) {
    #orcamento-rede.orc-rede .orc-cab-faixa { gap: 12px; padding: 11px 12px; }
    #orcamento-rede.orc-rede .ab-painel-titulo { font-size: 21px; }
}

/* Nas cores forçadas do sistema e no alto contraste do site, o fundo da
   faixa vira o do modo e ela sumiria: um contorno na tinta do modo a
   mantém. Outline, que os dois modos preservam; uma borda mudaria a medida. */
@media (forced-colors: active) {
    #orcamento-rede.orc-rede .orc-cab-faixa,
    #orcamento-rede.orc-rede .orc-cab-disco { outline: 1px solid CanvasText; outline-offset: -1px; }
}
html.qg-alto-contraste #orcamento-rede.orc-rede .orc-cab-faixa,
html.qg-alto-contraste #orcamento-rede.orc-rede .orc-cab-disco { outline: 1px solid currentColor; outline-offset: -1px; }

/* Os cartões na ordem das perguntas. Abaixo de 1500px, uma coluna só (a de
   900px dos painéis, de 900 a 1499px). A partir de 1500px, duas colunas
   independentes, 1 e 2 à esquerda, 3 e 4 à direita: abrir um tema à
   esquerda não abre vazio sob o gráfico da direita. */
#orcamento-rede.orc-rede .orc-colunas { display: flex; flex-direction: column; gap: 44px; min-width: 0; }
#orcamento-rede.orc-rede .orc-col { display: flex; flex-direction: column; gap: 44px; min-width: 0; }
@media (min-width: 1500px) {
    #orcamento-rede.orc-rede .orc-colunas {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 56px;
        align-items: start;
    }
}

/* Os cartões sem moldura nem sombra, como os painéis laterais de produção:
   o conteúdo assenta no papel da página, separado só pelo vão. */
#orcamento-rede.orc-rede .ab-painel {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    min-width: 0;
}
#orcamento-rede.orc-rede .ab-painel-corpo { gap: 14px; }
#orcamento-rede.orc-rede .ab-painel-fonte { font-size: 12px; }
html.darkmode #orcamento-rede.orc-rede .ab-destaque-icone { background: rgba(255, 255, 255, 0.08); }

/* ---------- Peças comuns ---------- */
#orcamento-rede.orc-rede .orc-rotulo {
    margin: 0 0 6px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mapa-detalhe);
}
#orcamento-rede.orc-rede .orc-sw {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    margin-right: 6px;
    vertical-align: -1px;
    flex: 0 0 auto;
    background: var(--tom, #999999);
}
#orcamento-rede.orc-rede .orc-ponto { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
/* As marcas pequenas (amostras, selos, pontos) com o fio interno de 1px: a
   cor fica, e a borda dela lê contra o papel, a 3:1 nos tons dos temas; nas
   cores que vêm da página (rubricas e instituições) fica entre 2,8 e 3:1 no
   claro, com o nome sempre escrito ao lado. As barras, sobre o trilho, com
   o fio mais forte: a dos temas lê 3:1 contra ele nos dois temas; a das
   rubricas do Comitê fica abaixo disso, e o valor de cada uma está escrito
   na legenda e na tabela. */
#orcamento-rede.orc-rede .orc-sw,
#orcamento-rede.orc-rede .orc-selo,
#orcamento-rede.orc-rede .orc-nota,
#orcamento-rede.orc-rede .orc-ponto,
#orcamento-rede.orc-rede .orc-inst-cor { box-shadow: inset 0 0 0 1px var(--orc-fio); }
#orcamento-rede.orc-rede .orc-fill,
#orcamento-rede.orc-rede .orc-pilha-seg { box-shadow: inset 0 0 0 1px var(--orc-fio-barra); }
#orcamento-rede.orc-rede .orc-legenda {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    font-size: 12px;
    color: var(--mapa-detalhe);
}
#orcamento-rede.orc-rede .orc-legenda li { display: inline-flex; align-items: center; }
#orcamento-rede.orc-rede .orc-legenda-totais { gap: 6px 20px; font-size: 12.5px; }
#orcamento-rede.orc-rede .orc-legenda-totais span { color: var(--mapa-nome); }
#orcamento-rede.orc-rede .orc-leg-total { margin-left: 6px; font-weight: 600; color: var(--mapa-nome); font-variant-numeric: tabular-nums; white-space: nowrap; }
#orcamento-rede.orc-rede .orc-leitura { margin: 0; font-size: 12px; line-height: 1.45; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-chev { flex: 0 0 auto; color: var(--mapa-detalhe); transition: transform 0.2s ease; }
#orcamento-rede.orc-rede [aria-expanded="true"] .orc-chev { transform: rotate(180deg); }

/* Botões que abrem e fecham (tema, Comitê Gestor, instituição): uma grade
   com a barra na segunda linha, para o alvo do toque ser a linha inteira. */
#orcamento-rede.orc-rede .orc-destino-cab,
#orcamento-rede.orc-rede .orc-inst-cab {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto 16px;
    gap: 6px 10px;
    align-items: center;
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 8px 6px;
    border: 0;
    border-radius: 8px;
    background: none;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
#orcamento-rede.orc-rede .orc-destino-cab:hover,
#orcamento-rede.orc-rede .orc-inst-cab:hover { background: var(--orc-hover); }
#orcamento-rede.orc-rede button:focus-visible,
#orcamento-rede.orc-rede summary:focus-visible,
#orcamento-rede.orc-rede .orc-rolagem:focus-visible {
    outline: 2px solid var(--orc-acento);
    outline-offset: 2px;
}
#orcamento-rede.orc-rede .orc-destino-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
#orcamento-rede.orc-rede .orc-destino-nome { font-size: 13.5px; font-weight: 600; line-height: 1.25; color: var(--mapa-nome); }
#orcamento-rede.orc-rede .orc-destino-nome i { font-style: normal; font-weight: 500; font-size: 12px; color: var(--mapa-detalhe); margin-left: 4px; }
#orcamento-rede.orc-rede .orc-destino-meta { font-size: 12px; line-height: 1.3; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-destino-val {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--mapa-nome);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
#orcamento-rede.orc-rede .orc-destino-val small { font-size: 12px; font-weight: 500; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-trilho,
#orcamento-rede.orc-rede .orc-pilha {
    grid-column: 1 / -1;
    display: flex;
    gap: 2px;
    height: 9px;
    border-radius: 100px;
    background: var(--mapa-trilho);
    overflow: hidden;
}
#orcamento-rede.orc-rede .orc-fill { display: block; height: 100%; border-radius: 100px; background: var(--tom, var(--orc-acento)); }
#orcamento-rede.orc-rede .orc-pilha-seg { display: block; height: 100%; min-width: 2px; }
#orcamento-rede.orc-rede .orc-pilha-seg:first-child { border-radius: 100px 0 0 100px; }
#orcamento-rede.orc-rede .orc-pilha-seg:last-child { border-radius: 0 100px 100px 0; }

/* O corpo que abre: a caixa suave da página, com fio na cor do tema ou da
   instituição (o mesmo desenho da .ab-info dos painéis). */
#orcamento-rede.orc-rede .orc-destino-corpo {
    margin: 4px 6px 6px;
    padding: 12px 14px;
    border-left: 3px solid var(--tom, var(--orc-acento));
    border-radius: 0 10px 10px 0;
    background: var(--orc-aberto);
}

/* ---------- 1. Quanto: o herói, os fatos e a faixa por rubrica ---------- */
#orcamento-rede.orc-rede .orc-hero { display: flex; flex-direction: column; gap: 6px; margin: 2px 0 0; }
#orcamento-rede.orc-rede .orc-hero-num {
    margin: 0;
    font-size: 56px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--mapa-nome);
    white-space: nowrap;
}
#orcamento-rede.orc-rede .orc-hero-moeda,
#orcamento-rede.orc-rede .orc-hero-unid {
    font-size: 0.4em;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--mapa-detalhe);
}
#orcamento-rede.orc-rede .orc-hero-moeda { margin-right: 0.22em; vertical-align: 0.95em; }
#orcamento-rede.orc-rede .orc-hero-unid { margin-left: 0.22em; }
#orcamento-rede.orc-rede .orc-hero-sub { font-size: 12.5px; color: var(--mapa-detalhe); font-variant-numeric: tabular-nums; }

/* Os quatro fatos (da proposta G): filete na cor da rede, número e nota. */
#orcamento-rede.orc-rede .orc-fatos {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px 14px;
    margin: 12px 0 18px;
}
#orcamento-rede.orc-rede .orc-fatos div {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-left: 10px;
    border-left: 2px solid var(--orc-acento);
    min-width: 0;
}
#orcamento-rede.orc-rede .orc-fatos dt {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    line-height: 1.25;
    color: var(--mapa-detalhe);
}
#orcamento-rede.orc-rede .orc-fatos dd {
    margin: 0;
    font-size: 22px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--mapa-nome);
}
#orcamento-rede.orc-rede .orc-fatos.orc-fatos-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
#orcamento-rede.orc-rede .orc-fatos dd small {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.3;
    color: var(--mapa-detalhe);
    font-variant-numeric: tabular-nums;
}

/* A faixa por rubrica com o percentual dentro do segmento que couber. Cada
   segmento traz flex: 1 1 <parte>% do JS: as bases somam 100% mais os vãos
   e o encolhimento proporcional fecha a faixa sem cortar o último. */
#orcamento-rede.orc-rede .orc-faixa {
    display: flex;
    gap: 2px;
    height: 28px;
    border-radius: 6px;
    overflow: hidden;
}
#orcamento-rede.orc-rede .orc-faixa-seg {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3px;
    overflow: hidden;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
/* A legenda das rubricas com largura de legenda, não a do cartão: na coluna
   de 900px, o nome ficava a mais de 600px do valor. */
#orcamento-rede.orc-rede .orc-legenda-lista { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 7px; max-width: 440px; }
#orcamento-rede.orc-rede .orc-legenda-lista li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto 44px;
    gap: 0 10px;
    align-items: center;
    font-size: 12.5px;
    line-height: 1.3;
}
#orcamento-rede.orc-rede .orc-legenda-lista .orc-sw { margin-right: 0; }
#orcamento-rede.orc-rede .orc-leg-nome { color: var(--mapa-nome); min-width: 0; }
#orcamento-rede.orc-rede .orc-leg-val { color: var(--mapa-nome); font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
#orcamento-rede.orc-rede .orc-leg-pct { color: var(--mapa-detalhe); font-variant-numeric: tabular-nums; text-align: right; }

/* ---------- 2. Para quem: temas e Comitê Gestor, com os PPGs ---------- */
#orcamento-rede.orc-rede .orc-destinos,
#orcamento-rede.orc-rede .orc-insts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
#orcamento-rede.orc-rede .orc-selo {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 800;
    flex: 0 0 auto;
    background: var(--tom, var(--orc-acento));
    color: var(--tom-ink, #ffffff);
}
#orcamento-rede.orc-rede .orc-ficha { margin: 0 0 12px; padding: 0; display: grid; gap: 6px; font-size: 12px; line-height: 1.4; }
#orcamento-rede.orc-rede .orc-ficha div { display: flex; flex-wrap: wrap; gap: 2px 10px; align-items: baseline; }
#orcamento-rede.orc-rede .orc-ficha dt { flex: 0 0 92px; font-weight: 600; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-ficha dd { margin: 0; flex: 1 1 200px; min-width: 0; color: var(--mapa-nome); display: flex; flex-wrap: wrap; gap: 4px 6px; }
#orcamento-rede.orc-rede .orc-chip {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--mapa-trilho);
    font-size: 12px;
    color: var(--mapa-nome);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
#orcamento-rede.orc-rede .orc-chip b { font-weight: 700; margin-right: 4px; }
#orcamento-rede.orc-rede .orc-ies-grade {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px 20px;
}
#orcamento-rede.orc-rede .orc-ies { min-width: 0; }
#orcamento-rede.orc-rede .orc-ies-cab {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 5px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--mapa-cartao-borda);
    font-size: 12px;
    color: var(--mapa-detalhe);
}
#orcamento-rede.orc-rede .orc-ies-cab b { color: var(--mapa-nome); }
#orcamento-rede.orc-rede .orc-ies-cab i { font-style: normal; font-size: 12px; }
#orcamento-rede.orc-rede .orc-ies-cab span:last-child { margin-left: auto; font-variant-numeric: tabular-nums; }
#orcamento-rede.orc-rede .orc-ppgs { list-style: none; margin: 0; padding: 0; }
#orcamento-rede.orc-rede .orc-ppg-btn {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 4px 4px;
    border: 0;
    border-radius: 4px;
    background: none;
    font: inherit;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--mapa-nome);
    text-align: left;
    cursor: pointer;
}
#orcamento-rede.orc-rede .orc-ppg-texto { cursor: default; }
#orcamento-rede.orc-rede button.orc-ppg-btn:hover .orc-ppg-nome { color: var(--orc-acento); text-decoration: underline; }
#orcamento-rede.orc-rede .orc-nota {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
    flex: 0 0 auto;
}
#orcamento-rede.orc-rede .orc-ppg-nome { min-width: 0; overflow-wrap: anywhere; padding-top: 3px; }

/* ---------- 3. Quando: a faixa de 100% e os números de cada exercício ---------- */
/* A régua do JS: mede os rótulos com o CSS deles, fora do fluxo e da vista.
   Ela mora direto na seção, fora do cartão: toda classe de texto que o JS
   mede (orc-ex-seg-*, orc-ex-metade-txt, orc-ex-ano, orc-ex-valor,
   orc-ex-vsub, orc-ex-vnum, orc-ex-v22 a v18, orc-ex-parte*, orc-ex-acum,
   orc-ex-k-*, orc-ex-selo) tem a fonte, o peso e os algarismos num seletor
   sem o cartão. */
#orcamento-rede.orc-rede .orc-regua { position: absolute; width: 0; height: 0; overflow: hidden; visibility: hidden; pointer-events: none; }
/* Uma cor, um sentido: o acento no patamar (os exercícios a até 10% do
   maior), o cinza neutro nos outros anos. O cinza é o único tom novo da
   seção, conferido no validador do skill dataviz: 1,67:1 do papel claro e
   1,97:1 do escuro (alívio: quase todo segmento tem rótulo escrito, e o
   que fica sem ele, porque o rótulo de baixo tocaria outro, tem o valor no
   bloco do ano, na dica e na tabela), longe do cinza do Comitê Gestor; a
   tinta escrita sobre ele lê 10:1 no claro e 6,8:1 no escuro. A caixa leva
   a dica (posição relativa). */
#orcamento-rede.orc-rede .orc-ex {
    --orc-ex-neutro: #c4c4c4;
    position: relative;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 30px;
}
html.darkmode #orcamento-rede.orc-rede .orc-ex { --orc-ex-neutro: #4d4d4d; }
#orcamento-rede.orc-rede .orc-ex-bloco { min-width: 0; }
#orcamento-rede.orc-rede .orc-ex-bloco > .orc-rotulo { margin: 0 0 12px; }

/* 3.1 A faixa de 100%. A tinta do rótulo sobre o acento: a do tema claro
   vem do JS (sai da cor da rede); no escuro o acento é a cor clareada e a
   tinta, a escura. A cor do texto da faixa é a tinta principal que o SVG
   herda (ver abaixo, fora dos segmentos). */
#orcamento-rede.orc-rede .orc-ex-faixa { --orc-ex-acento-ink: var(--orc-ex-acento-ink-claro, #ffffff); min-width: 0; color: var(--mapa-nome); }
html.darkmode #orcamento-rede.orc-rede .orc-ex-faixa { --orc-ex-acento-ink: #1a1a1a; }
#orcamento-rede.orc-rede .orc-ex-svg { display: block; width: 100%; height: auto; font-family: inherit; }
#orcamento-rede.orc-rede .orc-ex-seg-neutro { fill: var(--orc-ex-neutro); }
#orcamento-rede.orc-rede .orc-ex-seg-acento { fill: var(--orc-acento); }
/* O fio de 1px por dentro do cinza: a borda dele lê contra o papel. */
#orcamento-rede.orc-rede .orc-ex-fio { fill: none; stroke: var(--orc-fio); stroke-width: 1; }
/* Medidas pela régua: o ano em negrito e "· 27%" no peso médio. */
#orcamento-rede.orc-rede .orc-ex-seg-ano { font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
#orcamento-rede.orc-rede .orc-ex-seg-pct { font-size: 12px; font-weight: 500; font-variant-numeric: tabular-nums; }
/* Dentro dos segmentos, a tinta fica presa à cor de cada um. */
#orcamento-rede.orc-rede .orc-ex-rot-neutro { fill: var(--mapa-nome); }
#orcamento-rede.orc-rede .orc-ex-rot-acento { fill: var(--orc-ex-acento-ink); }
/* Fora dos segmentos, sobre o papel, a tinta vem de color, com fill e
   stroke em currentColor: o alto contraste do site (color #fff !important
   sobre fundo preto) e as cores forçadas do sistema trocam color, e estes
   textos e traços acompanham (com a cor fixa no fill, ficavam a 1,2:1 do
   fundo preto). Nas cores forçadas, o Chromium só passa a cor do sistema
   ao SVG por herança (um color escrito no próprio elemento fica como
   está): a tinta principal vem herdada da faixa, uma div, e a secundária
   volta à do sistema na regra de forced-colors mais abaixo. */
#orcamento-rede.orc-rede .orc-ex-rot-fora,
#orcamento-rede.orc-rede .orc-ex-patamar-txt { fill: currentColor; }
/* A chave do patamar sobre a faixa: fio fino na tinta secundária, sem tracejado. */
#orcamento-rede.orc-rede .orc-ex-patamar-linha { color: var(--mapa-detalhe); fill: none; stroke: currentColor; stroke-width: 1; }
/* A marca da metade do total: um traço na tinta principal que passa da
   faixa embaixo, e em cima um triângulo de tinta com a ponta junto da
   faixa (o limite entre dois anos é só o vão de papel, sem tinta e dentro
   da faixa). O triângulo fica no papel e lê nos dois temas: no escuro,
   onde o traço claro sobre o acento claro fica a 1,7:1, é o triângulo que
   acha a marca. Sem halo de papel: ele partiria o segmento em dois. O
   rótulo é anotação, na tinta secundária. */
#orcamento-rede.orc-rede .orc-ex-metade-linha { stroke: currentColor; stroke-width: 1.5; }
#orcamento-rede.orc-rede .orc-ex-metade-ponta { fill: currentColor; }
#orcamento-rede.orc-rede .orc-ex-metade-txt { font-size: 12px; font-weight: 500; color: var(--mapa-detalhe); fill: currentColor; }
#orcamento-rede.orc-rede .orc-ex-alvo { fill: transparent; }
/* O realce: os outros segmentos apagam só o preenchimento (e o fio do
   cinza); os rótulos ficam inteiros, e o de dentro do acento apagado passa
   à tinta da página (a branca, sobre o verde a 42%, ficava a 1,8:1). */
#orcamento-rede.orc-rede .orc-ex-seg,
#orcamento-rede.orc-rede .orc-ex-fio { transition: opacity 0.15s ease; }
#orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-seg,
#orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-fio { opacity: 0.42; }
#orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-rot-acento { fill: var(--mapa-nome); }
/* Nas cores forçadas do sistema e no alto contraste do site, o papel sob a
   faixa vira o fundo do modo (preto, em geral), e o segmento apagado
   perderia o contraste com qualquer tinta fixa: ali o realce não apaga
   nada (o bloco do ano e a dica seguem dando os valores). Nas cores
   forçadas, a tinta secundária fora dos segmentos volta à do sistema. */
@media (forced-colors: active) {
    #orcamento-rede.orc-rede .orc-ex-patamar-linha,
    #orcamento-rede.orc-rede .orc-ex-metade-txt { color: CanvasText; }
    #orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-seg,
    #orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-fio { opacity: 1; }
    #orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-rot-acento { fill: var(--orc-ex-acento-ink); }
}
html.qg-alto-contraste #orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-seg,
html.qg-alto-contraste #orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-fio { opacity: 1; }
html.qg-alto-contraste #orcamento-rede.orc-rede .orc-ex-ligado-on .orc-ex-seg-g:not(.orc-ex-ligado) .orc-ex-rot-acento { fill: var(--orc-ex-acento-ink); }

/* 3.2 Os números de cada exercício. Em blocos: as colunas, a largura
   máxima e o vão vêm do JS (medidos). Sem o JS (antes do primeiro desenho,
   ou se ele falhar), uma coluna só, que serve a qualquer largura e a
   qualquer número de anos. Cada bloco sem moldura, como os cartões da
   seção: um filete de 2px em cima, no cinza neutro ou, no patamar, no
   acento (o mesmo da faixa). */
#orcamento-rede.orc-rede .orc-ex-anos {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    column-gap: var(--orc-ex-vao, 16px);
    row-gap: 26px;
}
#orcamento-rede.orc-rede .orc-ex-item {
    position: relative;
    isolation: isolate;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding-top: 10px;
    border-top: 2px solid var(--orc-ex-neutro);
}
#orcamento-rede.orc-rede .orc-ex-item.orc-ex-acento { border-top-color: var(--orc-acento); }
/* O realce do ano sob o ponteiro (no bloco ou no segmento da faixa): um
   fundo suave que passa um pouco das bordas, sem mexer no layout. */
#orcamento-rede.orc-rede .orc-ex-item::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: -2px -8px -10px;
    border-radius: 0 0 8px 8px;
    background: var(--orc-hover);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
}
#orcamento-rede.orc-rede .orc-ex-item.orc-ex-ligado::before { opacity: 1; }
/* No bloco, o ano, o valor, a parte do total, a composição, o acumulado e o
   selo descem um sob o outro: os dois grupos do DOM (cabeçalho e linha de
   percentuais) se desfazem e a ordem visual vem de order. */
#orcamento-rede.orc-rede .orc-ex-cab,
#orcamento-rede.orc-rede .orc-ex-info { display: contents; }
#orcamento-rede.orc-rede .orc-ex-ano {
    order: 1;
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: var(--mapa-nome);
    font-variant-numeric: tabular-nums;
}
/* O número em algarismos proporcionais (número solto, não coluna), no
   tamanho que o JS escolhe (22px no máximo, o dos fatos do cartão 1); o
   "R$" e a unidade menores, na tinta secundária. As três partes ficam em
   linha, na linha de base comum, separadas pelos espaços do próprio
   parágrafo (12,5px): sem flex, o leitor de tela recebe "R$ 16,62 mi"
   como um texto só. */
#orcamento-rede.orc-rede .orc-ex-valor {
    order: 2;
    margin: 0;
    display: block;
    white-space: nowrap;
    font-size: 12.5px;
    line-height: 1.05;
    color: var(--mapa-nome);
}
#orcamento-rede.orc-rede .orc-ex-vnum { font-weight: 700; letter-spacing: -0.02em; }
#orcamento-rede.orc-rede .orc-ex-v22 { font-size: 22px; }
#orcamento-rede.orc-rede .orc-ex-v20 { font-size: 20px; }
#orcamento-rede.orc-rede .orc-ex-v18 { font-size: 18px; }
#orcamento-rede.orc-rede .orc-ex-vsub { font-size: 12.5px; font-weight: 500; letter-spacing: 0; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-ex-parte {
    order: 3;
    margin: 0;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--mapa-detalhe);
    font-variant-numeric: tabular-nums;
}
#orcamento-rede.orc-rede .orc-ex-parte-num { font-size: 12.5px; font-weight: 700; color: var(--mapa-nome); font-variant-numeric: tabular-nums; }
/* A composição em duas linhas: rótulo na tinta secundária à esquerda,
   valor na principal à direita, a 6px um do outro no mínimo (o COMP_VAO do
   JS, que mede o bloco com ele). */
#orcamento-rede.orc-rede .orc-ex-comp { order: 4; margin: 7px 0 0; display: grid; gap: 3px; }
#orcamento-rede.orc-rede .orc-ex-comp div { display: flex; align-items: baseline; justify-content: space-between; gap: 0 6px; }
#orcamento-rede.orc-rede .orc-ex-k-rot { margin: 0; font-size: 12px; font-weight: 400; line-height: 1.35; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-ex-k-val {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--mapa-nome);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
#orcamento-rede.orc-rede .orc-ex-acum {
    order: 5;
    margin: 3px 0 0;
    font-size: 12px;
    line-height: 1.35;
    color: var(--mapa-detalhe);
    font-variant-numeric: tabular-nums;
}
#orcamento-rede.orc-rede .orc-ex-selos { order: 6; margin: 7px 0 0; display: flex; flex-wrap: wrap; gap: 4px; }
#orcamento-rede.orc-rede .orc-ex-selo {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--mapa-trilho);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
    color: var(--mapa-nome);
    white-space: nowrap;
}

/* Em linhas (o JS marca .orc-ex-linhas na caixa estreita, quando os blocos
   não cabem numa fila nem em duas filas de três ou mais, como no celular):
   uma linha por exercício, com o filete por separador. O ano e o valor em
   cima; embaixo, a parte do total e o acumulado; a composição à direita,
   com a mesma largura em toda linha (rótulos e valores alinhados de um ano
   ao outro, rente ao fim da última linha de texto), ou embaixo quando não
   cabe (.orc-ex-empilha). */
#orcamento-rede.orc-rede .orc-ex-anos.orc-ex-linhas { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "cab comp" "info comp" "selos selos";
    align-items: start;
    column-gap: 12px;
    row-gap: 1px;
    padding: 5px 0 7px;
}
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-item::before { inset: -2px -6px 0; border-radius: 0 0 6px 6px; }
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-cab { grid-area: cab; display: flex; align-items: baseline; gap: 10px; min-width: 0; }
/* A parte do total e o acumulado numa linha, com um ponto entre eles. Se a
   linha mais larga não comporta os dois (o "acumulado 100%" é o mais
   largo), o JS marca .orc-ex-quebra e o acumulado desce em todas as
   linhas, sem o ponto: a decisão é uma só, para nenhum ano ficar com uma
   linha a mais que os outros (a medida tem 2px de folga). A quebra por
   linha continua possível para quem aumenta o espaçamento do texto. Cada
   um leva o ponto num prefixo de 14px (o INFO_SEP do JS); a caixa começa
   14px antes da coluna e corta essa faixa, que é onde cai o prefixo do
   primeiro de cada linha. */
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-info {
    grid-area: info;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 1px 0;
    min-width: 0;
    margin-left: -14px;
    clip-path: inset(0 0 0 14px);
}
#orcamento-rede.orc-rede .orc-ex-linhas.orc-ex-quebra .orc-ex-acum { flex-basis: 100%; }
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-info > p::before {
    content: "·";
    content: "·" / "";
    display: inline-block;
    width: 14px;
    text-align: center;
}
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-acum { margin: 0; }
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-comp { grid-area: comp; align-self: end; width: var(--orc-ex-comp, auto); margin: 0; }
#orcamento-rede.orc-rede .orc-ex-linhas .orc-ex-selos { grid-area: selos; margin: 4px 0 0; }
#orcamento-rede.orc-rede .orc-ex-linhas.orc-ex-empilha .orc-ex-item { grid-template-columns: minmax(0, 1fr); grid-template-areas: "cab" "info" "comp" "selos"; }
#orcamento-rede.orc-rede .orc-ex-linhas.orc-ex-empilha .orc-ex-comp { align-self: start; margin-top: 4px; }

/* A dica sob o ponteiro (toda marca com data-dica): os valores exatos. A
   borda transparente não aparece no uso normal, mas vira linha nas cores
   forçadas do sistema e no alto contraste do site (que pinta toda borda de
   branco), onde o fundo e a sombra somem e a dica se misturaria ao texto
   de baixo. */
#orcamento-rede.orc-rede .orc-dica {
    position: absolute;
    z-index: 6;
    pointer-events: none;
    display: grid;
    gap: 2px;
    max-width: 260px;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: var(--mapa-nome);
    color: var(--orc-papel);
    font-size: 12.5px;
    line-height: 1.35;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}
#orcamento-rede.orc-rede .orc-dica b { font-weight: 700; }

/* As tabelas (por exercício; por instituição). O resumo diz o estado: o
   chevron gira e o texto troca. Quando a tabela rola de lado (o JS marca
   .orc-rola), aparecem a dica e a coluna Exercício fixa, com fundo e filete. */
#orcamento-rede.orc-rede .orc-detalhes { margin-top: 2px; font-size: 12px; }
#orcamento-rede.orc-rede .orc-detalhes summary {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 4px;
    cursor: pointer;
    font-weight: 600;
    color: var(--orc-acento);
    border-radius: 4px;
    width: max-content;
    max-width: 100%;
    list-style: none;
}
#orcamento-rede.orc-rede .orc-detalhes summary::-webkit-details-marker { display: none; }
#orcamento-rede.orc-rede .orc-detalhes summary .orc-chev { color: currentColor; }
#orcamento-rede.orc-rede .orc-detalhes[open] > summary .orc-chev { transform: rotate(180deg); }
#orcamento-rede.orc-rede .orc-detalhes:not([open]) .orc-sum-fechar,
#orcamento-rede.orc-rede .orc-detalhes[open] .orc-sum-abrir { display: none; }
#orcamento-rede.orc-rede .orc-rolagem {
    --orc-fundo-fixo: var(--orc-papel);
    overflow-x: auto;
    margin-top: 8px;
    max-width: 100%;
    border-radius: 2px;
}
/* Dentro da caixa que abre, o fundo da coluna fixa repete a caixa sobre o papel. */
#orcamento-rede.orc-rede .orc-destino-corpo .orc-rolagem { --orc-fundo-fixo: linear-gradient(var(--orc-aberto), var(--orc-aberto)), var(--orc-papel); }
#orcamento-rede.orc-rede .orc-rolagem-dica { margin: 6px 0 0; font-size: 12px; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-rolagem + .orc-rolagem-dica + .orc-leitura,
#orcamento-rede.orc-rede .orc-rolagem + .orc-leitura { margin-top: 6px; }
#orcamento-rede.orc-rede .orc-tabela {
    border-collapse: collapse;
    width: 100%;
    font-size: 12px;
    line-height: 1.3;
}
#orcamento-rede.orc-rede .orc-tabela th,
#orcamento-rede.orc-rede .orc-tabela td {
    padding: 5px 7px;
    text-align: right;
    border-bottom: 1px solid var(--mapa-cartao-borda);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
/* Os cabeçalhos das colunas quebram linha ("4. Ciência e Inovação"), para a
   tabela caber sem rolar a partir de 760px. */
#orcamento-rede.orc-rede .orc-tabela thead th { white-space: normal; vertical-align: bottom; font-weight: 600; color: var(--mapa-detalhe); }
#orcamento-rede.orc-rede .orc-tabela th:first-child { text-align: left; padding-left: 2px; }
#orcamento-rede.orc-rede .orc-tabela td:last-child,
#orcamento-rede.orc-rede .orc-tabela th:last-child { padding-right: 2px; }
#orcamento-rede.orc-rede .orc-tabela tbody th { font-weight: 500; color: var(--mapa-nome); }
#orcamento-rede.orc-rede .orc-tabela td { color: var(--mapa-nome); }
#orcamento-rede.orc-rede .orc-tabela .orc-total th,
#orcamento-rede.orc-rede .orc-tabela .orc-total td { font-weight: 700; border-bottom: 0; border-top: 2px solid var(--mapa-cartao-borda); }
#orcamento-rede.orc-rede .orc-rola .orc-tabela th:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    padding-right: 10px;
    background: var(--orc-fundo-fixo);
    box-shadow: inset -1px 0 0 var(--mapa-cartao-borda);
}
/* A rolagem para na borda de uma coluna, logo depois da fixa (o JS mede a
   largura dela em --orc-fixa), e a folga antes do Total (--orc-folga) faz o
   fim da rolagem cair numa borda também: nenhum número para meio escondido
   sob a coluna fixa, com cara de inteiro. */
#orcamento-rede.orc-rede .orc-rolagem.orc-rola { scroll-snap-type: x mandatory; scroll-padding-left: var(--orc-fixa, 0px); }
#orcamento-rede.orc-rede .orc-rola .orc-tabela thead th:not(:first-child) { scroll-snap-align: start; }
#orcamento-rede.orc-rede .orc-rola .orc-tabela tr > :last-child { padding-left: calc(7px + var(--orc-folga, 0px)); }
/* No escuro, as regras genéricas de tabela de style-global.css dariam ao
   cabeçalho uma faixa e à linha sob o ponteiro um fundo, os dois cortados
   pela coluna fixa; aqui, como no claro, sem faixa nem fundo. */
html.darkmode #orcamento-rede.orc-rede .orc-tabela thead th { background: transparent; }
html.darkmode #orcamento-rede.orc-rede .orc-tabela tbody tr:hover { background: none; }

/* ---------- 4. Quem executa: a cor da instituição à esquerda ---------- */
#orcamento-rede.orc-rede .orc-inst-cor { display: block; width: 5px; height: 30px; border-radius: 3px; }

/* ---------- Movimento: o chevron e o realce, e nada quando a pessoa pede menos ---------- */
@media (prefers-reduced-motion: reduce) {
    #orcamento-rede.orc-rede .orc-chev,
    #orcamento-rede.orc-rede .orc-ex-seg,
    #orcamento-rede.orc-rede .orc-ex-fio,
    #orcamento-rede.orc-rede .orc-ex-item::before { transition: none; }
}

/* ---------- Celular ---------- */
@media (max-width: 480px) {
    #orcamento-rede.orc-rede { gap: 24px; }
    #orcamento-rede.orc-rede .orc-colunas,
    #orcamento-rede.orc-rede .orc-col { gap: 32px; }
    #orcamento-rede.orc-rede .orc-hero-num { font-size: 46px; }
    #orcamento-rede.orc-rede .orc-fatos dd { font-size: 20px; }
    #orcamento-rede.orc-rede .orc-destino-cab,
    #orcamento-rede.orc-rede .orc-inst-cab { padding: 8px 2px; gap: 6px 8px; }
    #orcamento-rede.orc-rede .orc-destino-corpo { margin: 4px 0 6px; padding: 10px 10px; }
    #orcamento-rede.orc-rede .orc-ficha dt { flex-basis: 100%; }
    #orcamento-rede.orc-rede .orc-ies-grade { grid-template-columns: minmax(0, 1fr); }
    /* Alvos de toque de 44px: cada programa e o resumo da tabela. */
    #orcamento-rede.orc-rede .orc-ppg-btn { min-height: 44px; align-items: center; padding: 6px 4px; }
    #orcamento-rede.orc-rede .orc-ppg-nome { padding-top: 0; }
    #orcamento-rede.orc-rede .orc-detalhes summary { min-height: 44px; }
    #orcamento-rede.orc-rede .orc-ex { gap: 18px; }
    #orcamento-rede.orc-rede .orc-ex-bloco > .orc-rotulo { margin-bottom: 10px; }
}
