:root{--azul:#173f82;--azul-escuro:#10346f;--azul-claro:#e7edf8;--fundo:#f4f5f7;--branco:#fff;--texto:#202020;--cinza:#6b7280;--borda:#d7dbe2;--linha-alternada:#f2f3f5;--raio:5px}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:"Segoe UI",Arial,sans-serif;background:var(--fundo);color:var(--texto);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}.pagina{width:100%;padding:8px 10px 20px}
.cabecalho{min-height:66px;background:var(--branco);padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-radius:var(--raio);margin-bottom:8px;box-shadow:0 1px 6px rgba(0,0,0,.06)}.cabecalho h1{margin:0;color:var(--azul);font-size:21px}.cabecalho p{margin:3px 0 0;color:var(--cinza);font-size:13px}.cabecalho-direita{font-size:12px;color:var(--cinza);text-align:right}
.filtros-container{background:#e8e8e8;border-radius:var(--raio);padding:9px 12px 10px}.filtros-titulo{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:8px}.filtros-titulo strong{display:block}.filtros-titulo span{display:block;margin-top:2px;color:var(--cinza);font-size:12px}.filtros{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 10px}.filtro{display:flex;flex-direction:column;gap:4px;min-width:0}.filtro label{font-size:12px;font-weight:600}.filtro select{width:100%;height:34px;border:1px solid var(--borda);background:#fff;padding:0 9px;outline:none;border-radius:3px}.filtros-avancados{margin-top:10px;padding-top:10px;border-top:1px solid #d0d0d0}.barra-filtros-acoes{display:flex;justify-content:flex-end;margin-top:8px}.botao-secundario{min-height:31px;border:none;border-radius:4px;padding:6px 12px;background:#dce3ef;color:#172033;font-weight:600}.botao-link{border:none;background:transparent;color:var(--azul);font-weight:600}.oculto{display:none!important}
.barra-informacoes{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px;color:#4b5563;font-size:12px;font-weight:600}.abas{display:flex;align-items:flex-end;gap:3px;overflow-x:auto}.botao-aba{min-height:39px;border:none;background:#dce3ef;padding:8px 17px;border-radius:5px 5px 0 0;color:#1b2b49;font-weight:700;white-space:nowrap}.botao-aba.ativo{background:var(--azul);color:#fff}.painel-aba{display:none}.painel-aba.ativo{display:block}.conteudo-aba{background:#fff;border:1px solid #e1e4e8;padding:14px;min-height:300px}
.pergunta-principal{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:12px}.pergunta-principal>div{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:18px}.rotulo{display:block;color:var(--azul);font-size:11px;font-weight:800;letter-spacing:.5px;margin-bottom:6px}.pergunta-principal h2{margin:0 0 8px;font-size:21px}.pergunta-principal p{margin:0;color:#4b5563;line-height:1.5}.saldo-principal{background:var(--azul-claro)!important;border-color:#b8c8e3!important;display:flex;flex-direction:column;justify-content:center}.saldo-principal span{font-size:13px;font-weight:600}.saldo-principal strong{display:block;margin:4px 0;font-size:30px;color:var(--azul)}.saldo-principal small{color:var(--cinza)}
.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.card{background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:13px 14px;min-width:0}.card-cabecalho{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.card-cabecalho span{color:#4b5563;font-size:12px;font-weight:600}.card strong{display:block;font-size:20px;white-space:nowrap}.card small{display:block;margin-top:5px;color:var(--cinza);font-size:11px}
.bloco{margin-top:10px;background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:14px}.bloco-titulo{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.bloco-titulo h3{margin:0 0 3px;color:var(--azul);font-size:16px}.bloco-titulo p{margin:0;color:var(--cinza);font-size:12px}.percentual-grande{color:var(--azul);font-size:25px}.barra-execucao{width:100%;height:14px;margin-top:16px;background:#e5e7eb;border-radius:20px;overflow:hidden}.barra-execucao-preenchimento{height:100%;width:0;background:var(--azul);border-radius:20px;transition:width .25s ease}.legenda-execucao{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:var(--cinza)}
.organizar-por{width:270px}.organizar-por label{display:block;margin-bottom:4px;font-size:11px;font-weight:600}.organizar-por select{width:100%;height:34px;border:1px solid var(--borda);background:#fff}.barra-analise{display:grid;grid-template-columns:250px minmax(250px,1fr) 260px;gap:10px;padding:11px;margin-bottom:10px;background:#eee;border-radius:var(--raio)}.campo-analise{display:flex;flex-direction:column;gap:4px}.campo-analise label{font-size:11px;font-weight:700}.campo-analise select,.campo-analise input{width:100%;height:35px;padding:0 9px;border:1px solid var(--borda);background:#fff;outline:none}
.tabela-container{width:100%;max-height:430px;overflow:auto;border:1px solid #e1e4e8}table{width:100%;min-width:1050px;border-collapse:collapse;font-size:12px}thead th{position:sticky;top:0;z-index:3;background:#fff;border-bottom:1px solid var(--azul);white-space:nowrap}th,td{height:31px;padding:5px 8px;border-bottom:1px solid #e2e2e2;text-align:right}th:first-child,td:first-child{text-align:left;min-width:290px}tbody tr:nth-child(even){background:var(--linha-alternada)}tbody tr:hover{background:var(--azul-claro)}.tabela-despesas,.tabela-rap,.tabela-receitas,.tabela-comparacoes{max-height:510px}.percentual-tabela{font-weight:700;color:var(--azul)}
.paginacao{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px}.paginacao span{font-size:12px;font-weight:600;color:#4b5563}.botao-paginacao{border:1px solid var(--borda);background:#fff;color:var(--azul);border-radius:4px;padding:6px 11px;font-weight:600}.botao-paginacao:disabled{opacity:.4;cursor:default}.cabecalho-modulo{margin-bottom:12px;padding:4px 2px}.cabecalho-modulo h2{margin:0 0 5px;font-size:20px}.cabecalho-modulo p{margin:0;color:var(--cinza);font-size:12px}.contador-resultados{color:var(--cinza);font-size:12px;font-weight:600}
.drilldown{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--azul-claro)}.drilldown h3{margin:2px 0 4px;color:var(--azul)}.drilldown p{margin:0;color:var(--cinza);font-size:12px}.drilldown-acoes{display:flex;gap:6px;flex-wrap:wrap}.botao-drilldown{border:none;border-radius:4px;background:var(--azul);color:#fff;padding:7px 10px;font-size:12px;font-weight:600}.grupo-rap{margin-bottom:16px}.grupo-rap-titulo{margin-bottom:8px}.grupo-rap-titulo h3{margin:0 0 3px;font-size:17px;color:var(--azul)}.cards-rap{grid-template-columns:repeat(4,minmax(0,1fr))}.cards-rap-rpp{grid-template-columns:repeat(3,minmax(0,1fr))}.cards-receitas{grid-template-columns:repeat(5,minmax(0,1fr))}
.multi-select-original{display:none!important}.multi-select{position:relative;width:100%}.multi-select-trigger{width:100%;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:6px;background:#fff;border:1px solid var(--borda);padding:4px 8px;cursor:pointer}.multi-select-conteudo{flex:1;display:flex;flex-wrap:wrap;gap:4px;min-width:0}.multi-select-placeholder{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.multi-select-seta{font-size:10px}.multi-select-menu{display:none;position:absolute;left:0;right:0;top:calc(100% + 3px);z-index:1000;background:#fff;border:1px solid #cdd2da;box-shadow:0 6px 18px rgba(0,0,0,.16)}.multi-select.aberto .multi-select-menu{display:block}.multi-select-pesquisa{padding:7px;border-bottom:1px solid #e3e3e3}.multi-select-pesquisa input{width:100%;height:32px;padding:0 9px;border:1px solid #cfd4dc}.multi-select-opcoes{max-height:250px;overflow-y:auto}.multi-select-opcao{display:flex;gap:7px;padding:6px 9px;cursor:pointer}.multi-select-opcao:hover{background:var(--azul-claro)}.multi-select-opcao input{accent-color:var(--azul)}.multi-select-rodape{display:flex;justify-content:space-between;padding:7px;border-top:1px solid #e3e3e3}.multi-select-rodape button{border:none;background:transparent;color:var(--azul);font-size:11px;font-weight:600}.multi-select-badge{max-width:150px;display:flex;align-items:center;gap:4px;background:var(--azul-claro);color:var(--azul-escuro);padding:2px 5px;font-size:11px}.multi-select-badge-texto{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.multi-select-badge-remover{border:none;background:transparent;padding:0}.multi-select-contador{background:#dce3ef;padding:2px 5px;font-size:11px;font-weight:700}.multi-select-vazio{padding:14px;text-align:center;color:var(--cinza)}
.conteudo-em-construcao{min-height:300px;background:#fff;border:1px solid var(--borda);padding:25px}.conteudo-em-construcao h2{margin-top:0;color:var(--azul)}.conteudo-em-construcao p{color:var(--cinza)}
.comparacoes-controles{grid-template-columns:260px minmax(300px,1fr) 260px}.anos-comparacao{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-height:35px}.ano-chip{border:1px solid var(--borda);background:#fff;color:#334155;padding:5px 9px;border-radius:4px;font-size:12px;font-weight:600}.ano-chip.ativo{background:var(--azul);color:#fff;border-color:var(--azul)}.cards-comparacoes{grid-template-columns:repeat(4,minmax(0,1fr))}.grafico-barras-simples{display:flex;flex-direction:column;gap:10px;margin-top:14px}.barra-historico-linha{display:grid;grid-template-columns:60px minmax(0,1fr) 150px;gap:10px;align-items:center}.barra-historico-ano{font-weight:700;color:#334155}.barra-historico-trilho{height:24px;background:#edf0f4;border-radius:3px;overflow:hidden}.barra-historico-valor{height:100%;min-width:2px;background:var(--azul)}.barra-historico-numero{text-align:right;font-weight:600;color:#334155;white-space:nowrap}
@media(max-width:1100px){.filtros{grid-template-columns:repeat(3,1fr)}.cards,.cards-receitas{grid-template-columns:repeat(3,1fr)}.cards-rap{grid-template-columns:repeat(2,1fr)}.cards-comparacoes{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.barra-analise,.comparacoes-controles{grid-template-columns:1fr}.drilldown{flex-direction:column;align-items:flex-start}.barra-historico-linha{grid-template-columns:50px minmax(0,1fr)}.barra-historico-numero{grid-column:2;text-align:left}}@media(max-width:760px){.pagina{padding:5px}.cabecalho{flex-direction:column;align-items:flex-start}.filtros{grid-template-columns:1fr}.pergunta-principal{grid-template-columns:1fr}.cards,.cards-rap,.cards-rap-rpp,.cards-receitas,.cards-comparacoes{grid-template-columns:1fr}.bloco-titulo{flex-direction:column}.organizar-por{width:100%}}

/* DETALHAMENTO */
.detalhamento-controles{grid-template-columns:minmax(300px,1.5fr) 240px 150px 210px}.campo-exportar{justify-content:flex-end}.botao-primario{height:35px;border:none;border-radius:4px;background:var(--azul);color:#fff;padding:0 14px;font-weight:700}.botao-primario:hover{background:var(--azul-escuro)}.detalhe-resumo{margin-top:0}.bloco-tabela-detalhe{padding-top:10px}.tabela-detalhamento{max-height:600px}.tabela-detalhamento table{min-width:2450px}.tabela-detalhamento th:first-child,.tabela-detalhamento td:first-child{min-width:70px}.tabela-detalhamento th:nth-child(2),.tabela-detalhamento td:nth-child(2){min-width:150px}.tabela-detalhamento th:nth-child(3),.tabela-detalhamento td:nth-child(3){min-width:280px;text-align:left}.tabela-detalhamento th:nth-child(4),.tabela-detalhamento td:nth-child(4){min-width:280px;text-align:left}.tabela-detalhamento th:nth-child(6),.tabela-detalhamento td:nth-child(6){min-width:270px;text-align:left}.tabela-detalhamento th:nth-child(7),.tabela-detalhamento td:nth-child(7){min-width:230px;text-align:left}.tabela-detalhamento th:nth-child(8),.tabela-detalhamento td:nth-child(8){min-width:250px;text-align:left}.tabela-detalhamento th:nth-child(9),.tabela-detalhamento td:nth-child(9){min-width:220px;text-align:left}.tabela-detalhamento th:nth-child(10),.tabela-detalhamento td:nth-child(10){min-width:320px;text-align:left}.tabela-detalhamento th:nth-child(11),.tabela-detalhamento td:nth-child(11){min-width:260px;text-align:left}.nivel-dado{display:inline-block;padding:2px 6px;border-radius:10px;background:#eef2f7;color:#475569;font-size:10px;font-weight:700;white-space:nowrap}
@media(max-width:900px){.detalhamento-controles{grid-template-columns:1fr}}


/* =====================================================
   GRÁFICOS FUNCIONAIS
===================================================== */

.grafico-execucao {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 14px;
}

.grafico-execucao-linha {
    display: grid;
    grid-template-columns: 180px minmax(160px, 1fr) 150px 70px;
    gap: 10px;
    align-items: center;
}

.grafico-execucao-rotulo {
    font-weight: 600;
    color: #334155;
}

.grafico-execucao-trilho {
    height: 22px;
    background: #edf0f4;
    border-radius: 3px;
    overflow: hidden;
}

.grafico-execucao-barra {
    height: 100%;
    background: var(--azul);
    min-width: 2px;
    transition: width .25s ease;
}

.grafico-execucao-valor,
.grafico-execucao-percentual {
    text-align: right;
    white-space: nowrap;
    font-weight: 600;
}

.grafico-execucao-percentual {
    color: var(--azul);
}

.grafico-vazio {
    padding: 18px;
    color: var(--cinza);
    text-align: center;
}

.grafico-metricas-comparacao {
    overflow-x: auto;
    margin-top: 14px;
}

.comparacao-metricas-grade {
    min-width: 760px;
    display: grid;
    gap: 10px;
}

.comparacao-metricas-cabecalho,
.comparacao-metricas-linha {
    display: grid;
    grid-template-columns: 170px repeat(var(--qtd-anos), minmax(90px, 1fr));
    gap: 8px;
    align-items: end;
}

.comparacao-metricas-cabecalho {
    font-size: 11px;
    font-weight: 700;
    color: #475569;
}

.comparacao-metricas-cabecalho > div:not(:first-child) {
    text-align: center;
}

.comparacao-metricas-linha {
    padding: 8px 0;
    border-top: 1px solid #eceff3;
}

.comparacao-metrica-nome {
    font-weight: 600;
    color: #334155;
    align-self: center;
}

.comparacao-metrica-coluna {
    min-height: 110px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 3px;
    position: relative;
}

.comparacao-metrica-barra {
    width: 36px;
    min-height: 2px;
    background: var(--azul);
    border-radius: 3px 3px 0 0;
}

.comparacao-metrica-valor {
    position: absolute;
    bottom: 100%;
    margin-bottom: 4px;
    font-size: 10px;
    white-space: nowrap;
    color: #475569;
}

@media (max-width: 900px) {
    .grafico-execucao-linha {
        grid-template-columns: 135px minmax(100px, 1fr) 110px;
    }

    .grafico-execucao-percentual {
        grid-column: 2 / 4;
        text-align: left;
        padding-left: 0;
    }
}


/* ===== VISUAL V1 — referências SIE / painéis institucionais ===== */
.filtros-container{
  background:#e8e8e8;
  border-radius:4px;
  padding:10px 12px 9px;
  margin-bottom:12px;
  overflow:visible;
}
.filtros-titulo{margin-bottom:7px;min-height:24px}
.filtros-titulo strong{font-size:13px;color:#1f2937}
.botao-limpar{
  border:0;border-radius:3px;background:#dbe3f0;color:#1b2b49;
  padding:7px 16px;font-weight:700;cursor:pointer
}
.filtros{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px 10px}
.filtros-avancados{
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin-top:8px;padding-top:8px;border-top:1px solid #cfd3d8
}
.filtro{gap:3px}
.filtro label{font-size:12px;font-weight:600;color:#2f3338}
.multi-select-trigger{
  min-height:34px;border:1px solid #cfd4dc;border-radius:2px;
  padding:3px 8px;background:#fff;font-size:12px
}
.multi-select.aberto .multi-select-trigger{border-color:#1f4d8f;box-shadow:0 0 0 1px #1f4d8f inset}
.multi-select-menu{top:calc(100% + 2px);border-color:#bfc7d3;box-shadow:0 5px 16px rgba(0,0,0,.18)}
.multi-select-pesquisa{padding:7px}
.multi-select-pesquisa input{height:34px;border:1px solid #1f4d8f;outline:none}
.multi-select-opcao{padding:7px 9px;font-size:12px}
.multi-select-opcao:hover{background:#e8eef8}
.multi-select-opcao:has(input:checked){background:#e2eaf7}
.multi-select-rodape{padding:7px 9px}
.multi-select-rodape button{font-size:11px}
.multi-select-badge{background:#dce7f7;border-radius:2px;color:#244a82}
.barra-filtros-acoes{justify-content:flex-start;margin-top:7px}
.botao-filtros{
  border:0;background:transparent;color:#214c89;padding:2px 0;
  font-weight:700;font-size:12px;cursor:pointer
}
.abas{margin-top:0}
.conteudo-aba{padding:12px;background:#f5f6f8}
.cards-visao-geral{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px
}
.card-kpi{
  min-height:86px;padding:11px 13px;border:1px solid #d9dee6;border-radius:3px;
  background:#fff;display:flex;flex-direction:column;justify-content:center
}
.card-kpi span{font-size:12px;font-weight:700;color:#2c3440;margin-bottom:8px}
.card-kpi strong{font-size:23px;letter-spacing:-.4px;color:#202a36}
.card-kpi-destaque{border-top:3px solid var(--azul);padding-top:9px}
.card-kpi-destaque strong{color:var(--azul)}
.bloco{border-radius:3px}
.bloco-titulo.compacto{min-height:auto;margin-bottom:7px}
.bloco-titulo.compacto h3{margin:0}
.bloco-tabela-principal{margin-bottom:10px}
.tabela-visao-geral{max-height:365px;overflow:auto;border:1px solid #d8dde5;background:#fff}
.tabela-visao-geral table{min-width:2300px;font-size:11px}
.tabela-visao-geral th{
  position:sticky;top:0;z-index:2;background:#173f7a;color:#fff;
  font-size:11px;padding:7px 8px;white-space:nowrap;border-right:1px solid rgba(255,255,255,.25)
}
.tabela-visao-geral td{padding:6px 8px;white-space:nowrap;border-right:1px solid #e4e7eb}
.tabela-visao-geral tbody tr:nth-child(even){background:#f0f0f0}
.tabela-visao-geral tbody tr:hover{background:#e6edf8}
.bloco-classificacao{margin-top:10px}
@media(max-width:1250px){.cards-visao-geral{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.filtros{grid-template-columns:repeat(3,1fr)}.filtros-avancados{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.filtros,.filtros-avancados{grid-template-columns:1fr}.cards-visao-geral{grid-template-columns:1fr 1fr}}


/* ===== VISUAL V2 — refinamentos solicitados ===== */
body{font-size:15px}
.cabecalho h1{font-size:23px}
.cabecalho p,.cabecalho-direita{font-size:14px}
.filtros-titulo strong{font-size:14px}
.filtro label{font-size:13px}
.multi-select-trigger{font-size:13px;min-height:36px}
.multi-select-pesquisa input{font-size:13px}
.multi-select-opcao{font-size:13px}
.multi-select-rodape button,.botao-filtros{font-size:12.5px}
.botao-aba{font-size:14px;padding:9px 18px}
.card-kpi span{font-size:13px}
.card-kpi strong{font-size:24px}
.card-kpi-destaque{border-top:1px solid var(--borda);padding-top:11px}
.card-kpi-destaque strong{color:#202a36}
.bloco-titulo h3{font-size:17px}
.barra-filtros-acoes{justify-content:flex-end}

/* Detalhamento Orçamentário — maior, alinhado à direita */
.tabela-visao-geral table{min-width:2250px;font-size:13px}
.tabela-visao-geral th,
.tabela-visao-geral td{
  text-align:right!important;
  font-size:13px;
  padding:8px 10px;
  line-height:1.25;
}
.tabela-visao-geral th:first-child,
.tabela-visao-geral td:first-child{
  text-align:right!important;
  min-width:145px;
}
.tabela-visao-geral th{font-size:13px;font-weight:700}

/* Execução por Classificação com a mesma linguagem estrutural */
.bloco-classificacao{padding:14px}
.bloco-classificacao .bloco-titulo{margin-bottom:7px;align-items:flex-end}
.bloco-classificacao .tabela-container{
  max-height:365px;
  overflow:auto;
  border:1px solid #d8dde5;
  background:#fff;
}
.bloco-classificacao table{min-width:1250px;font-size:13px}
.bloco-classificacao thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#173f7a;
  color:#fff;
  font-size:13px;
  padding:8px 10px;
  white-space:nowrap;
  border-right:1px solid rgba(255,255,255,.25);
  text-align:right;
}
.bloco-classificacao thead th:first-child,
.bloco-classificacao tbody td:first-child{
  text-align:left;
  min-width:340px;
}
.bloco-classificacao tbody td{
  padding:8px 10px;
  font-size:13px;
  white-space:nowrap;
  border-right:1px solid #e4e7eb;
}
.bloco-classificacao tbody tr:nth-child(even){background:#f0f0f0}
.bloco-classificacao tbody tr:hover{background:#e6edf8}
.organizar-por label{font-size:12px}
.organizar-por select{font-size:13px;height:36px}

/* Tabelas, controles e módulos em escala ligeiramente maior */
table{font-size:13px}
th,td{height:34px;padding:6px 9px}
.campo-analise label{font-size:12px}
.campo-analise select,.campo-analise input{font-size:13px;height:37px}
.card-cabecalho span{font-size:13px}
.card strong{font-size:21px}
.card small{font-size:12px}
.cabecalho-modulo h2{font-size:21px}
.cabecalho-modulo p,.contador-resultados,.paginacao span{font-size:13px}
.botao-paginacao,.botao-drilldown{font-size:13px}

/* ===== VISUAL V3 — alinhamentos, filtros e tabelas extensas ===== */
.filtros-acoes-superiores{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin-bottom:7px;
  min-height:24px;
}

/* Detalhamento Orçamentário: cabeçalhos centralizados, textos à esquerda,
   PTRES centralizado e valores monetários à direita. */
.tabela-visao-geral{
  max-height:590px;
}
.tabela-visao-geral th{
  text-align:center!important;
  vertical-align:middle;
}
.tabela-visao-geral td{
  text-align:left!important;
  vertical-align:middle;
}
.tabela-visao-geral th:nth-child(3),
.tabela-visao-geral td:nth-child(3){
  text-align:center!important;
}
.tabela-visao-geral th:nth-child(n+9),
.tabela-visao-geral td:nth-child(n+9){
  text-align:right!important;
}

/* Execução por Classificação: mesma presença visual e maior área útil. */
.bloco-classificacao .bloco-titulo{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:7px;
}
.bloco-classificacao .bloco-titulo h3{
  margin:0;
  line-height:1.2;
}
.bloco-classificacao .organizar-por{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
}
.bloco-classificacao .organizar-por label{
  margin:0;
  white-space:nowrap;
  line-height:36px;
}
.bloco-classificacao .organizar-por select{
  min-width:240px;
}
.bloco-classificacao .tabela-container{
  max-height:590px;
}
.bloco-classificacao thead th{
  text-align:center;
  vertical-align:middle;
}
.bloco-classificacao thead th:first-child{
  text-align:center;
}
.bloco-classificacao tbody td:first-child{
  text-align:left;
}
.bloco-classificacao tbody td:not(:first-child){
  text-align:right;
}

@media(max-width:760px){
  .bloco-classificacao .bloco-titulo{
    align-items:flex-start;
    flex-direction:column;
  }
  .bloco-classificacao .organizar-por{
    width:100%;
  }
  .bloco-classificacao .organizar-por select{
    min-width:0;
    width:100%;
  }
}


/* ===== VISUAL V4 — tabelas interativas, totais e congelamento ===== */

:root{
  --azul-suave:#7ea6d8;
  --azul-linha:#8fb3df;
  --cabecalho-tabela:#f8fafc;
  --cabecalho-tabela-hover:#eef4fb;
  --texto-cabecalho:#27364a;
}

/* Abas mais leves: o azul passa a funcionar como linha de destaque. */
.abas{
  border-bottom:1px solid #dbe3ed;
  gap:2px;
}
.botao-aba{
  background:#f3f5f8;
  color:#405169;
  border:1px solid transparent;
  border-bottom:0;
}
.botao-aba:hover{
  background:#edf2f8;
  color:var(--azul);
}
.botao-aba.ativo{
  background:#fff;
  color:var(--azul);
  border-color:#dbe3ed;
  border-bottom:3px solid var(--azul-suave);
}

/* Cabeçalhos das tabelas: sem bloco azul pesado. */
.tabela-visao-geral thead th,
.bloco-classificacao thead th,
.tabela-interativa thead th{
  background:var(--cabecalho-tabela)!important;
  color:var(--texto-cabecalho)!important;
  border-bottom:2px solid var(--azul-linha)!important;
  text-align:center!important;
  font-weight:700;
  cursor:pointer;
  user-select:none;
  vertical-align:middle;
}
.tabela-interativa thead th:hover{
  background:var(--cabecalho-tabela-hover)!important;
}

/* Fonte do cabeçalho explicitamente centralizada. */
#tabelaOrcamentaria thead th:first-child{
  text-align:center!important;
}

/* Conteúdo: dimensões à esquerda, PTRES centralizado e valores à direita. */
#tabelaOrcamentaria tbody td:nth-child(-n+8){
  text-align:left!important;
}
#tabelaOrcamentaria tbody td:nth-child(3){
  text-align:center!important;
}
#tabelaOrcamentaria tbody td:nth-child(n+9){
  text-align:right!important;
}
#tabelaClassificacao tbody td:first-child{
  text-align:left!important;
}
#tabelaClassificacao tbody td:not(:first-child){
  text-align:right!important;
}

/* Mais altura útil para reduzir rolagem vertical. */
.tabela-visao-geral{
  max-height:620px!important;
}
.bloco-classificacao .tabela-container{
  max-height:620px!important;
}

/* Execução por Classificação: título e Organizar por na mesma linha/eixo. */
.bloco-classificacao .bloco-titulo,
.bloco-classificacao .cabecalho-tabela-institucional{
  display:flex;
  align-items:center!important;
  justify-content:space-between;
  min-height:42px;
  margin-bottom:8px;
}
.bloco-classificacao .bloco-titulo h3{
  margin:0!important;
  line-height:36px;
}
.bloco-classificacao .organizar-por{
  width:auto!important;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-left:auto;
}
.bloco-classificacao .organizar-por label{
  display:inline-flex!important;
  align-items:center;
  margin:0!important;
  white-space:nowrap;
  height:36px;
}
.bloco-classificacao .organizar-por select{
  width:270px;
  min-width:270px;
  height:36px;
  margin:0;
}

/* Ordenação A-Z / menor-maior */
.tabela-interativa .cabecalho-conteudo{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:24px;
}
.tabela-interativa .indicador-ordenacao{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:15px;
  color:#7b8796;
  font-size:10px;
  line-height:1;
}
.tabela-interativa th.ordenacao-ativa .indicador-ordenacao{
  color:var(--azul);
  font-weight:900;
}

/* Cadeado por coluna — fixa apenas a coluna escolhida quando ela alcança a borda esquerda. */
.tabela-interativa .botao-congelar{
  flex:0 0 auto;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:3px;
  background:transparent;
  color:#8390a0;
  padding:0;
  font-size:12px;
  cursor:pointer;
}
.tabela-interativa .botao-congelar:hover{
  background:#e8eef6;
  color:var(--azul);
}
.tabela-interativa .botao-congelar.ativo{
  background:#e7eff9;
  color:var(--azul);
}

/* Colunas congeladas */
.tabela-interativa .coluna-congelada{
  position:sticky!important;
  z-index:5;
  background:#fff!important;
}
.tabela-interativa thead .coluna-congelada{
  z-index:9!important;
  background:var(--cabecalho-tabela)!important;
}
.tabela-interativa tfoot .coluna-congelada{
  z-index:8!important;
  background:#f5f8fc!important;
}
.tabela-interativa tbody tr:nth-child(even) .coluna-congelada{
  background:#f6f7f9!important;
}
.tabela-interativa tbody tr:hover .coluna-congelada{
  background:#edf3fa!important;
}
.tabela-interativa .ultima-coluna-congelada{
  box-shadow:4px 0 7px rgba(46,72,103,.16);
  border-right:1px solid #c8d2df!important;
}

/* Totais */
.tabela-interativa tfoot td{
  position:sticky;
  bottom:0;
  z-index:4;
  background:#f5f8fc;
  border-top:2px solid var(--azul-linha);
  border-bottom:0;
  font-weight:700;
  color:#26374c;
  white-space:nowrap;
  text-align:right;
}
.tabela-interativa tfoot .rotulo-total{
  text-align:left!important;
  color:var(--azul);
  letter-spacing:.1px;
}

/* Evita que os botões de cabeçalho deixem o texto desalinhado. */
.tabela-interativa thead th{
  padding:5px 6px!important;
}

@media(max-width:760px){
  .bloco-classificacao .bloco-titulo,
  .bloco-classificacao .cabecalho-tabela-institucional{
    align-items:flex-start!important;
  }
  .bloco-classificacao .organizar-por{
    width:100%!important;
    justify-content:flex-start;
  }
  .bloco-classificacao .organizar-por select{
    width:100%;
    min-width:0;
  }
}


/* ===== VISUAL V5 — Restos a Pagar no padrão da Visão Geral ===== */

/* Botão Limpar filtros menor e menos chamativo. */
.botao-limpar{
  padding:4px 10px!important;
  font-size:11.5px!important;
  line-height:1.2;
  min-height:26px;
  font-weight:650;
  background:#e2e7ee!important;
  color:#425269!important;
}

/* Os cinco indicadores de RP ocupam toda a largura de forma equilibrada. */
.cards-rap-visao{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
}
.cards-rap-visao .card-kpi{
  min-width:0;
}
.texto-secundario-kpi{
  margin-top:5px;
  font-size:11px;
  color:#7b8796;
  font-weight:600;
}

/* Elementos preservados somente para compatibilidade com o dashboard.js. */
.compatibilidade-js{
  display:none!important;
}

/* Tabela de RP segue exatamente a linguagem da Execução por Classificação. */
.bloco-rap-principal{
  margin-top:10px;
}
.tabela-rap-visao{
  max-height:620px!important;
  overflow:auto;
  border:1px solid #d8dde5;
  background:#fff;
}
.tabela-rap-visao table{
  min-width:1400px;
  font-size:13px;
}
#tabelaRap thead th{
  background:var(--cabecalho-tabela)!important;
  color:var(--texto-cabecalho)!important;
  border-bottom:2px solid var(--azul-linha)!important;
  text-align:center!important;
  font-weight:700;
}
#tabelaRap tbody td:first-child{
  text-align:left!important;
  min-width:300px;
}
#tabelaRap tbody td:not(:first-child){
  text-align:right!important;
  white-space:nowrap;
}
#tabelaRap tfoot td{
  text-align:right!important;
}
#tabelaRap tfoot .rotulo-total{
  text-align:left!important;
}
.paginacao-rap{
  margin-top:8px;
}

/* Cadeado mais fino, discreto e com aparência de ferramenta. */
.tabela-interativa .botao-congelar{
  width:18px!important;
  height:18px!important;
  border-radius:2px!important;
  color:#a4adb8!important;
  opacity:.62;
  background:transparent!important;
  padding:1px!important;
  transition:opacity .15s ease,color .15s ease,background .15s ease;
}
.tabela-interativa .botao-congelar svg{
  width:11px;
  height:11px;
  display:block;
  stroke-width:1.45;
}
.tabela-interativa .botao-congelar:hover{
  color:#6f7d8d!important;
  opacity:1;
  background:#eef2f6!important;
}
.tabela-interativa .botao-congelar.ativo{
  color:#60758f!important;
  opacity:.95;
  background:#edf2f7!important;
}

/* Mantém a ordenação mais evidente que o congelamento. */
.tabela-interativa .indicador-ordenacao{
  color:#8794a3!important;
}
.tabela-interativa th.ordenacao-ativa .indicador-ordenacao{
  color:#426b9a!important;
}

/* O cabeçalho continua clean, com somente uma linha azul suave. */
#tabelaRap thead th,
#tabelaOrcamentaria thead th,
#tabelaClassificacao thead th{
  box-shadow:none!important;
}

/* Cards responsivos seguindo a Visão Geral. */
@media(max-width:1250px){
  .cards-rap-visao{
    grid-template-columns:repeat(3,1fr)!important;
  }
}
@media(max-width:760px){
  .cards-rap-visao{
    grid-template-columns:1fr 1fr!important;
  }
}


/* ===== ABA CRÉDITO DISPONÍVEL ===== */
.cards-credito-visao{grid-template-columns:repeat(6,minmax(0,1fr))}
.tabela-credito-detalhamento{max-height:620px!important}
.tabela-credito-detalhamento table{min-width:2300px;font-size:13px}
#tabelaCreditoDetalhamento thead th,
#tabelaCreditoClassificacao thead th{
  text-align:center!important;
}
#tabelaCreditoDetalhamento tbody td:nth-child(-n+9){text-align:left}
#tabelaCreditoDetalhamento tbody td:first-child,
#tabelaCreditoDetalhamento tbody td:nth-child(4){text-align:center!important}
#tabelaCreditoDetalhamento tbody td:nth-child(n+10){text-align:right!important;white-space:nowrap}
#tabelaCreditoClassificacao tbody td:first-child{text-align:left!important}
#tabelaCreditoClassificacao tbody td:not(:first-child){text-align:right!important;white-space:nowrap}
.tabela-credito-classificacao{max-height:620px!important;overflow:auto;border:1px solid #d8dde5;background:#fff}
.tabela-credito-classificacao table{min-width:1450px;font-size:13px}
.bloco-credito-classificacao .bloco-titulo{display:flex;align-items:center;justify-content:space-between}
.bloco-credito-classificacao .organizar-por{margin-left:auto}
/* Valor dos cards menos pesado, conforme ajuste visual atual. */
.card-kpi strong{font-weight:500!important}
/* Seleções dos filtros com a mesma tipografia em todos os campos. */
.multi-select-badge-texto{font-size:11px!important;font-weight:600!important}
@media(max-width:1250px){.cards-credito-visao{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.cards-credito-visao{grid-template-columns:1fr 1fr}}


/* ===== CRÉDITO DISPONÍVEL — alinhamento igual à Visão Geral ===== */
#creditoDetalhamento thead th{
  text-align:center!important;
}

/* Dimensões textuais à esquerda. */
#creditoDetalhamento tbody td:nth-child(1),
#creditoDetalhamento tbody td:nth-child(2),
#creditoDetalhamento tbody td:nth-child(4),
#creditoDetalhamento tbody td:nth-child(5),
#creditoDetalhamento tbody td:nth-child(6),
#creditoDetalhamento tbody td:nth-child(7),
#creditoDetalhamento tbody td:nth-child(8){
  text-align:left!important;
}

/* PTRES centralizado. */
#creditoDetalhamento tbody td:nth-child(3){
  text-align:center!important;
}

/* Valores monetários à direita. */
#creditoDetalhamento tbody td:nth-child(n+9){
  text-align:right!important;
  white-space:nowrap;
}

/* Fonte, assim como na Visão Geral, permanece centralizada no cabeçalho. */
#creditoDetalhamento thead th:first-child{
  text-align:center!important;
}


/* ===== AJUSTES DE ALINHAMENTO — TOTAIS E CRÉDITO DISPONÍVEL ===== */

/* Totais das tabelas de detalhamento alinhados à direita. */
#tabelaOrcamentaria tfoot .rotulo-total,
#creditoDetalhamento tfoot .rotulo-total,
#tabelaRap tfoot .rotulo-total{
  text-align:right!important;
}

/* Mantém os valores monetários dos totais à direita. */
#tabelaOrcamentaria tfoot td,
#creditoDetalhamento tfoot td,
#tabelaRap tfoot td{
  text-align:right!important;
}

/* Crédito Disponível — Fonte e PI alinhados à esquerda nas linhas. */
#creditoDetalhamento tbody td:nth-child(1),
#creditoDetalhamento tbody td:nth-child(4){
  text-align:left!important;
}


/* ===== AJUSTES V4 — alinhamento dos totais e colunas ===== */

/* Visão Geral — Detalhamento Orçamentário: "Totais" à esquerda. */
#tabelaOrcamentaria tfoot .rotulo-total{
  text-align:left!important;
}

/* Execução por Classificação: "Totais" à esquerda. */
#tabelaClassificacao tfoot .rotulo-total{
  text-align:left!important;
}

/* Restos a Pagar: "Totais" à esquerda. */
#tabelaRap tfoot .rotulo-total{
  text-align:left!important;
}

/* Crédito Disponível: "Totais" permanece à esquerda. */
#creditoDetalhamento tfoot .rotulo-total{
  text-align:left!important;
}

/* Valores totais continuam alinhados à direita. */
#tabelaOrcamentaria tfoot td:not(.rotulo-total),
#tabelaClassificacao tfoot td:not(.rotulo-total),
#tabelaRap tfoot td:not(.rotulo-total),
#creditoDetalhamento tfoot td:not(.rotulo-total){
  text-align:right!important;
}

/* Crédito Disponível — Fonte e PI das linhas alinhados à esquerda. */
#creditoDetalhamento tbody td:nth-child(1),
#creditoDetalhamento tbody td:nth-child(4){
  text-align:left!important;
}

/* Crédito Disponível — alinhamento correto das linhas */

#tabelaCreditoDetalhamento tbody td:nth-child(1),
#tabelaCreditoDetalhamento tbody td:nth-child(2),
#tabelaCreditoDetalhamento tbody td:nth-child(4),
#tabelaCreditoDetalhamento tbody td:nth-child(5),
#tabelaCreditoDetalhamento tbody td:nth-child(6),
#tabelaCreditoDetalhamento tbody td:nth-child(7),
#tabelaCreditoDetalhamento tbody td:nth-child(8){
  text-align:left!important;
}

/* PTRES centralizado */
#tabelaCreditoDetalhamento tbody td:nth-child(3){
  text-align:center!important;
}

/* Valores monetários à direita */
#tabelaCreditoDetalhamento tbody td:nth-child(n+9){
  text-align:right!important;
  white-space:nowrap;
}

/* Cabeçalhos continuam centralizados */
#tabelaCreditoDetalhamento thead th{
  text-align:center!important;
}

/* Totais */
#tabelaCreditoDetalhamento tfoot .rotulo-total{
  text-align:left!important;
}

#tabelaCreditoDetalhamento tfoot td:not(.rotulo-total){
  text-align:right!important;
}

#tabelaCreditoDetalhamento tbody td:nth-child(6){
  text-align:center!important;
}
/* ===== LOGIN E PERFIS ===== */
.cabecalho-direita{
  display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap
}
.auth-topo{display:flex;align-items:center;gap:8px}
.botao-login,.botao-sair{
  border:1px solid #b9c3d2;background:#fff;color:#173f7a;border-radius:4px;
  padding:7px 14px;font:inherit;font-weight:700;cursor:pointer
}
.botao-login:hover,.botao-sair:hover{background:#edf3fb;border-color:#8ea5c5}
.usuario-sessao{display:flex;align-items:center;gap:9px}
.usuario-identidade{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.usuario-identidade strong{font-size:13px;color:#1f2937}
.usuario-perfil{
  margin-top:3px;padding:2px 7px;border-radius:999px;background:#e8eef8;color:#234e88;
  font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.02em
}
.usuario-perfil[data-perfil="admin"]{background:#dfeadf;color:#285b31}
.usuario-perfil[data-perfil="gestor"]{background:#e9e4f4;color:#5a3f7a}
.login-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px}
.login-modal.oculto{display:none}
.login-modal-fundo{position:absolute;inset:0;background:rgba(15,23,42,.52);backdrop-filter:blur(2px)}
.login-card{
  position:relative;z-index:1;width:min(430px,100%);background:#fff;border-radius:7px;
  box-shadow:0 22px 60px rgba(0,0,0,.28);padding:25px;border:1px solid #d8dee8
}
.login-card-cabecalho{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.login-card-cabecalho h2{margin:0 0 5px;font-size:21px;color:#173f7a}
.login-card-cabecalho p{margin:0;color:#64748b;font-size:13px}
.login-fechar{border:0;background:transparent;font-size:25px;line-height:1;color:#64748b;cursor:pointer;padding:0 3px}
.login-campo{display:flex;flex-direction:column;gap:6px;margin:13px 0;font-size:13px;font-weight:700;color:#334155}
.login-campo input{
  width:100%;height:39px;border:1px solid #cbd5e1;border-radius:4px;padding:0 10px;
  font:inherit;font-weight:400;box-sizing:border-box
}
.login-campo input:focus{outline:2px solid rgba(31,77,143,.18);border-color:#1f4d8f}
.login-senha-wrap{position:relative}.login-senha-wrap input{padding-right:72px}
.botao-mostrar-senha{
  position:absolute;right:5px;top:5px;height:29px;border:0;background:#eef2f7;color:#334155;
  border-radius:3px;padding:0 8px;font-size:11px;font-weight:700;cursor:pointer
}
.login-erro{margin:10px 0;background:#fff1f2;border:1px solid #fecdd3;color:#9f1239;border-radius:4px;padding:9px 10px;font-size:12px}
.login-entrar{
  width:100%;height:40px;margin-top:8px;border:0;border-radius:4px;background:#173f7a;color:#fff;
  font:inherit;font-weight:800;cursor:pointer
}
.login-entrar:hover{background:#123461}.login-entrar:disabled{opacity:.65;cursor:wait}
.login-perfis{margin:15px 0 0;padding-top:12px;border-top:1px solid #e5e7eb;color:#64748b;font-size:11px;line-height:1.45}
body.modal-aberto{overflow:hidden}
@media(max-width:760px){
  .cabecalho-direita{width:100%;justify-content:space-between;align-items:flex-start}
  .usuario-identidade{align-items:flex-start}.usuario-sessao{flex-wrap:wrap}
}

/* ===== ADMINISTRAÇÃO DE USUÁRIOS ===== */
.botao-usuarios{
  border:1px solid #b9c3d2;background:#fff;color:#173f7a;border-radius:4px;
  padding:7px 14px;font:inherit;font-weight:700;cursor:pointer
}
.botao-usuarios:hover{background:#edf3fb;border-color:#8ea5c5}
.usuarios-modal{position:fixed;inset:0;z-index:10020;display:grid;place-items:center;padding:22px}
.usuarios-modal.oculto{display:none}
.usuarios-modal-fundo{position:absolute;inset:0;background:rgba(15,23,42,.56);backdrop-filter:blur(2px)}
.usuarios-card{
  position:relative;z-index:1;width:min(1120px,96vw);max-height:92vh;overflow:hidden;
  background:#fff;border:1px solid #d8dee8;border-radius:7px;box-shadow:0 22px 70px rgba(0,0,0,.26);
  display:flex;flex-direction:column
}
.usuarios-cabecalho{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid #e4e7ec}
.usuarios-cabecalho h2{margin:0;color:#173f7a;font-size:20px}
.usuarios-cabecalho p{margin:4px 0 0;color:#64748b;font-size:12.5px}
.usuarios-fechar{border:0;background:#eef1f5;color:#3c4657;border-radius:4px;width:34px;height:34px;font-size:22px;cursor:pointer}
.usuarios-conteudo{overflow:auto;padding:18px}
.novo-usuario-box,.lista-usuarios-box{border:1px solid #e1e5eb;border-radius:6px;background:#fff}
.novo-usuario-box{padding:15px;margin-bottom:15px;background:#fafbfc}
.novo-usuario-box h3,.lista-usuarios-box h3{margin:0 0 12px;font-size:14px;color:#263752}
.novo-usuario-grid{display:grid;grid-template-columns:1fr 1.35fr .9fr 1fr auto;gap:10px;align-items:end}
.novo-usuario-grid label{display:flex;flex-direction:column;gap:5px;min-width:0}
.novo-usuario-grid label span{color:#424b5d;font-size:11.5px;font-weight:700}
.novo-usuario-grid input,.novo-usuario-grid select,.usuarios-tabela input[type="text"],.usuarios-tabela input[type="email"],.usuarios-tabela select{
  width:100%;height:34px;border:1px solid #ccd3dd;border-radius:3px;padding:0 8px;background:#fff;box-sizing:border-box;font:inherit;font-size:12px
}
.botao-usuario-principal,.botao-usuario-mini{
  border:1px solid #173f7a;background:#173f7a;color:#fff;border-radius:4px;padding:8px 11px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap
}
.botao-usuario-mini.secundario{background:#fff;color:#173f7a}
.botao-usuario-principal:hover,.botao-usuario-mini:hover{filter:brightness(.95)}
.mensagem-usuarios{margin-top:10px;padding:8px 10px;border:1px solid #b8dfc6;border-radius:4px;background:#effaf3;color:#27653c;font-size:12px}
.mensagem-usuarios.erro{border-color:#efcaca;background:#fdf0f0;color:#9b2c2c}
.lista-usuarios-box{overflow:hidden}.lista-usuarios-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-bottom:1px solid #e4e7ec}
.lista-usuarios-topo h3{margin:0}.lista-usuarios-topo span{color:#64748b;font-size:12px;font-weight:600}
.usuarios-tabela-wrap{max-height:420px;overflow:auto}.usuarios-tabela{width:100%;min-width:790px;border-collapse:collapse}
.usuarios-tabela th,.usuarios-tabela td{padding:7px 9px;border-bottom:1px solid #e7e9ee;font-size:12px;vertical-align:middle}
.usuarios-tabela th{position:sticky;top:0;z-index:2;background:#f7f8fa;color:#39465a;font-weight:700;text-align:left}
.usuario-status-toggle{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.usuario-status-toggle input{accent-color:#173f7a}
.usuario-acoes{display:flex;align-items:center;gap:5px;white-space:nowrap}
@media(max-width:900px){.novo-usuario-grid{grid-template-columns:1fr 1fr}.botao-usuario-principal{min-height:34px}}


/* ===== VISUAL V7 — login, usuários e ações de filtros integrados ao painel ===== */
.barra-filtros-acoes{
  justify-content:flex-end!important;
  align-items:center;
  gap:16px;
  margin-top:9px;
}
.barra-filtros-acoes .botao-filtros{
  border:0!important;
  background:transparent!important;
  color:#214c89!important;
  padding:2px 0!important;
  min-height:auto!important;
  font-size:12.5px!important;
  line-height:1.2!important;
  font-weight:700!important;
  box-shadow:none!important;
}
.barra-filtros-acoes .botao-filtros:hover{color:#10346f!important;text-decoration:underline}

.login-modal-fundo,.usuarios-modal-fundo{background:rgba(23,63,122,.28);backdrop-filter:blur(2px)}
.login-card{
  width:min(470px,100%);
  padding:0;
  overflow:hidden;
  border:1px solid #d7dbe2;
  border-radius:4px;
  background:#f5f6f8;
  box-shadow:0 12px 34px rgba(31,41,55,.20);
}
.login-card-cabecalho{
  margin:0 0 18px;
  padding:15px 18px;
  align-items:center;
  background:#fff;
  border-bottom:1px solid #d7dbe2;
  border-top:4px solid #173f7a;
}
.login-card-cabecalho h2{margin:0;font-size:18px;color:#173f7a;font-weight:700}
.login-fechar,.usuarios-fechar{
  width:31px;height:31px;display:grid;place-items:center;padding:0;
  border:1px solid #d7dbe2;background:#fff;color:#475569;border-radius:3px;
  font-size:20px;line-height:1;cursor:pointer
}
.login-fechar:hover,.usuarios-fechar:hover{background:#e7edf8;color:#173f7a;border-color:#b8c8e3}
.login-card > .login-campo,.login-card > .login-erro,.login-card > .login-entrar{margin-left:18px;margin-right:18px}
.login-card > .login-campo:first-of-type{margin-top:0}
.login-card > .login-campo:last-of-type{margin-bottom:14px}
.login-campo{gap:4px;font-size:13px;color:#2f3338}
.login-campo input{height:36px;border:1px solid #cfd4dc;border-radius:2px;background:#fff;padding:0 9px;font-size:13px}
.login-campo input:focus{outline:none;border-color:#1f4d8f;box-shadow:0 0 0 1px #1f4d8f inset}
.botao-mostrar-senha{right:4px;top:4px;height:28px;border-radius:2px;background:#e7edf8;color:#173f7a}
.login-entrar{
  width:calc(100% - 36px);height:37px;margin-top:2px!important;margin-bottom:18px!important;
  border-radius:3px;background:#173f7a;font-size:13px;font-weight:700
}
.login-entrar:hover{background:#10346f}
.login-erro{border-radius:3px}

.botao-login,.botao-sair,.botao-usuarios{
  border:1px solid #b8c8e3;background:#fff;color:#173f7a;border-radius:3px;
  padding:6px 12px;font-size:12.5px;font-weight:700
}
.botao-login:hover,.botao-sair:hover,.botao-usuarios:hover{background:#e7edf8;border-color:#8ea5c5}

.usuarios-card{
  width:min(1160px,96vw);max-height:92vh;
  border:1px solid #d7dbe2;border-radius:4px;background:#f5f6f8;
  box-shadow:0 14px 40px rgba(31,41,55,.22)
}
.usuarios-cabecalho{
  padding:15px 18px;align-items:center;background:#fff;
  border-bottom:1px solid #d7dbe2;border-top:4px solid #173f7a
}
.usuarios-cabecalho h2{margin:0;color:#173f7a;font-size:18px;font-weight:700}
.usuarios-conteudo{padding:14px;background:#f5f6f8}
.novo-usuario-box,.lista-usuarios-box{border:1px solid #d7dbe2;border-radius:3px;background:#fff}
.novo-usuario-box{padding:14px;margin-bottom:12px}
.novo-usuario-box h3,.lista-usuarios-box h3{color:#173f7a;font-size:14px;font-weight:700}
.novo-usuario-grid{gap:9px}
.novo-usuario-grid label span{font-size:12px;color:#2f3338}
.novo-usuario-grid input,.novo-usuario-grid select,.usuarios-tabela input[type="text"],.usuarios-tabela input[type="email"],.usuarios-tabela select{
  height:36px;border:1px solid #cfd4dc;border-radius:2px;padding:0 9px;background:#fff;font-size:13px
}
.novo-usuario-grid input:focus,.novo-usuario-grid select:focus,.usuarios-tabela input:focus,.usuarios-tabela select:focus{
  outline:none;border-color:#1f4d8f;box-shadow:0 0 0 1px #1f4d8f inset
}
.botao-usuario-principal,.botao-usuario-mini{
  min-height:36px;border-radius:3px;border:1px solid #173f7a;background:#173f7a;color:#fff;
  padding:7px 11px;font-size:12.5px;font-weight:700
}
.botao-usuario-mini.secundario{background:#fff;color:#173f7a}
.lista-usuarios-topo{padding:12px 14px;background:#fff}
.usuarios-tabela th{background:#173f7a;color:#fff;border-bottom:1px solid #10346f}
.usuarios-tabela td{background:#fff}
.usuarios-tabela tbody tr:nth-child(even) td{background:#f2f3f5}
.usuarios-tabela tbody tr:hover td{background:#e7edf8}
.usuario-status-toggle input{accent-color:#173f7a}


/* Aviso discreto de escopo para as bases orçamentárias gerais. */
.aviso-escopo-orcamentario{
  margin:0 0 10px;
  padding:8px 11px;
  border-left:3px solid #7893ad;
  border-radius:0 3px 3px 0;
  background:#edf3f7;
  color:#4e5b6b;
  font-size:11.5px;
  line-height:1.45;
}
.aviso-escopo-orcamentario strong{color:#31445d;font-weight:700}


/* ===== V8 — ação Consultar Dotação no cabeçalho ===== */
.cabecalho-identidade{min-width:0}
.cabecalho-titulo-linha{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cabecalho-titulo-linha h1{margin:0}
.botao-consultar-dotacao{
  border:1px solid #b8c8e3;
  background:#fff;
  color:#173f7a;
  border-radius:3px;
  padding:6px 12px;
  font-size:12.5px;
  line-height:1.2;
  font-weight:700;
  cursor:pointer;
}
.botao-consultar-dotacao:hover{background:#e7edf8;border-color:#8ea5c5}
@media(max-width:760px){
  .cabecalho-titulo-linha{align-items:flex-start}
}

/* ===== V9 — Consultar Dotação e cadeados mais visíveis ===== */
/* A ação de consulta integra o mesmo grupo horizontal de Usuários e Sair. */
.usuario-sessao .botao-consultar-dotacao{
  border:1px solid #b8c8e3;
  background:#fff;
  color:#173f7a;
  border-radius:3px;
  padding:6px 12px;
  font-size:12.5px;
  line-height:1.2;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.usuario-sessao .botao-consultar-dotacao:hover{background:#e7edf8;border-color:#8ea5c5}

/* Modal da consulta de dotação no padrão das abas/tabelas do painel. */
.dotacao-modal{position:fixed;inset:0;z-index:10015;display:grid;place-items:center;padding:22px}
.dotacao-modal.oculto{display:none}
.dotacao-modal-fundo{position:absolute;inset:0;background:rgba(23,63,122,.28);backdrop-filter:blur(2px)}
.dotacao-card{
  position:relative;z-index:1;width:min(920px,95vw);max-height:88vh;overflow:hidden;
  background:#f5f6f8;border:1px solid #d7dbe2;border-radius:4px;
  box-shadow:0 14px 40px rgba(31,41,55,.22);display:flex;flex-direction:column
}
.dotacao-cabecalho{
  display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;
  background:#fff;border-bottom:1px solid #d7dbe2;border-top:4px solid #173f7a
}
.dotacao-cabecalho h2{margin:0;color:#173f7a;font-size:18px;font-weight:700}
.dotacao-cabecalho-acoes{display:flex;align-items:center;gap:7px}
.dotacao-cabecalho-acoes .botao-exportacao{height:32px;min-width:44px}
.dotacao-fechar{
  width:31px;height:31px;display:grid;place-items:center;padding:0;border:1px solid #d7dbe2;
  background:#fff;color:#475569;border-radius:3px;font-size:20px;line-height:1;cursor:pointer
}
.dotacao-fechar:hover{background:#e7edf8;color:#173f7a;border-color:#b8c8e3}
.dotacao-conteudo{padding:14px;background:#f5f6f8;overflow:auto}
.dotacao-tabela-wrap{max-height:62vh;border:1px solid #d7dbe2;background:#fff}
.dotacao-tabela{width:100%;min-width:680px;border-collapse:collapse}
.dotacao-tabela thead th{position:sticky;top:0;z-index:2;background:var(--cabecalho-tabela)!important;color:var(--texto-cabecalho)!important;text-align:center!important}
.dotacao-tabela tbody td:first-child{text-align:left!important}
.dotacao-tabela tbody td:not(:first-child){text-align:right!important}
.dotacao-vazio{text-align:center!important;color:#64748b!important;padding:34px 12px!important}

/* Regra global: qualquer tabela atual ou futura que use o cadeado de congelamento herda este padrão. */
.tabela-interativa .botao-congelar{
  width:22px!important;height:22px!important;padding:2px!important;border-radius:3px!important;
  color:#66778c!important;opacity:.88!important;background:#f5f7fa!important;
  border:1px solid transparent!important;
  transition:opacity .15s ease,color .15s ease,background .15s ease,border-color .15s ease!important
}
.tabela-interativa .botao-congelar svg{
  width:15px!important;height:15px!important;display:block;stroke-width:1.8!important
}
.tabela-interativa .botao-congelar:hover{
  color:#173f7a!important;opacity:1!important;background:#e7edf8!important;border-color:#c5d1e0!important
}
.tabela-interativa .botao-congelar.ativo{
  color:#173f7a!important;opacity:1!important;background:#dfe9f6!important;border-color:#9eb3cf!important
}

@media(max-width:760px){
  .usuario-sessao{align-items:flex-start}
  .dotacao-modal{padding:10px}
  .dotacao-card{width:100%;max-height:94vh}
}
.dotacao-tabela thead th{cursor:default!important;user-select:text}

/* ===== V10 — Comparativo real de dotação por UGR ===== */
.dotacao-tabela th:nth-child(2),
.dotacao-tabela th:nth-child(3),
.dotacao-tabela td.dotacao-valor{text-align:right!important;white-space:nowrap}
.dotacao-tabela th:last-child,
.dotacao-tabela td.dotacao-situacao{text-align:center!important;width:120px}
.dotacao-situacao{vertical-align:middle!important}
.dotacao-status{
  display:inline-block;width:13px;height:13px;border-radius:50%;vertical-align:middle;
  border:1px solid rgba(15,23,42,.18);box-shadow:0 0 0 2px rgba(255,255,255,.8),0 1px 3px rgba(15,23,42,.15)
}
.dotacao-status.verde{background:#22c55e}
.dotacao-status.amarelo{background:#eab308}
.dotacao-status.laranja{background:#f97316}
.dotacao-status.vermelho{background:#dc2626}
.dotacao-status.cinza{background:#94a3b8}
.dotacao-legenda{
  margin-top:12px;padding:11px 12px;background:#fff;border:1px solid #d7dbe2;border-radius:3px;
  display:flex;align-items:center;justify-content:center;gap:16px 22px;flex-wrap:wrap;
  color:#475569;font-size:12.5px;line-height:1.35
}
.dotacao-legenda span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.dotacao-legenda .dotacao-status{width:11px;height:11px;box-shadow:none}
@media(max-width:760px){
  .dotacao-legenda{justify-content:flex-start;gap:10px 16px}
  .dotacao-tabela{min-width:720px}
}

/* ===== V11 — Consultar Dotação alinhado ao padrão das tabelas ===== */
.dotacao-tabela thead th{
  cursor:pointer!important;
  user-select:none!important;
  border-right:1px solid #d7dbe2!important;
}
.dotacao-tabela thead th:last-child{border-right:0!important}
.dotacao-tabela .dotacao-ordenar{
  width:100%;
  min-height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:3px 6px;
}
.dotacao-tabela tbody td,
.dotacao-tabela tfoot td{
  border-right:1px solid #e1e4e8;
}
.dotacao-tabela tbody td:last-child,
.dotacao-tabela tfoot td:last-child{border-right:0}
.dotacao-tabela tbody td.dotacao-situacao,
.dotacao-tabela tfoot td.dotacao-situacao{
  text-align:center!important;
  vertical-align:middle!important;
}
.dotacao-tabela tbody td.dotacao-situacao{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.dotacao-tabela tbody td.dotacao-situacao .dotacao-status{
  display:inline-block;
  margin:0;
  flex-shrink:0;
}

.dotacao-percentual{
  min-width:58px;
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.dotacao-tabela tfoot{
  background:#f3f5f8;
  border-top:2px solid var(--azul-linha);
  font-weight:700;
}
.dotacao-tabela tfoot td{
  background:#f3f5f8;
  height:34px;
}
.dotacao-tabela tfoot .dotacao-total-rotulo{
  text-align:left!important;
  color:#173f7a;
}
.dotacao-tabela tfoot .dotacao-total-situacao{
  color:#64748b;
  font-weight:600;
}

/* Logs de autenticação — visível somente ao Administrador. */
.logs-conteudo{padding-top:0}
.logs-bloco{overflow:hidden}
.logs-titulo{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.logs-titulo h3{margin:0}
.logs-titulo p{margin:4px 0 0;color:#667085;font-size:12.5px;font-weight:400}
.logs-total{flex:0 0 auto;color:#64748b;font-size:12px;font-weight:700;white-space:nowrap}
.logs-tabela-wrap{max-height:66vh;overflow:auto;border:1px solid #d7dbe2;background:#fff}
.logs-tabela{width:100%;min-width:930px;border-collapse:separate;border-spacing:0}
.logs-tabela th,.logs-tabela td{padding:9px 11px;border-right:1px solid #dfe3e8;border-bottom:1px solid #e4e7ec;font-size:12px;vertical-align:middle}
.logs-tabela th:last-child,.logs-tabela td:last-child{border-right:0}
.logs-tabela thead th{position:sticky;top:0;z-index:3;background:var(--cabecalho-tabela)!important;color:var(--texto-cabecalho)!important;text-align:left}
.logs-tabela tbody tr:nth-child(even) td{background:#f5f6f8}
.logs-tabela tbody tr:hover td{background:#e7edf8}
.logs-ordenar{display:flex;align-items:center;gap:6px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}
.logs-ordenar:hover{text-decoration:underline;text-underline-offset:2px}
.logs-data{white-space:nowrap;font-variant-numeric:tabular-nums}
.logs-resultado{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid transparent}
.logs-resultado.sucesso{background:#ecf8f0;color:#226b3b;border-color:#b7ddc4}
.logs-resultado.falha{background:#fff1f1;color:#a33131;border-color:#edc4c4}
.logs-resultado.bloqueado{background:#fff5e8;color:#8a4f0c;border-color:#eed2a8}
.logs-vazio{text-align:center!important;color:#64748b!important;padding:34px 12px!important}
@media (max-width:800px){.logs-titulo{align-items:flex-start;flex-direction:column;gap:7px}.logs-tabela-wrap{max-height:62vh}}

/* ===== V14 — Logs de acesso dentro da Administração de usuários ===== */
.usuarios-subabas{
  display:flex;align-items:center;gap:0;padding:0 18px;background:#fff;border-bottom:1px solid #d7dbe2
}
.usuarios-subaba{
  appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;color:#596579;
  padding:11px 14px 9px;font-size:12.5px;font-weight:700;cursor:pointer
}
.usuarios-subaba:hover{color:#173f7a;background:#f7f9fc}
.usuarios-subaba.ativo{color:#173f7a;border-bottom-color:#173f7a;background:#fff}
.usuarios-painel.oculto{display:none}
.registro-dotacoes-box{overflow:hidden}
.registro-dotacoes-box .lista-usuarios-topo{align-items:flex-start}
.registro-dotacoes-box .lista-usuarios-topo p{margin:4px 0 0;color:#667085;font-size:12.5px;font-weight:400}
.registro-dotacoes-placeholder{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin:18px;padding:18px;border:1px dashed #c7cfda;border-radius:4px;background:#f8fafc;color:#64748b;font-size:12px}
.registro-dotacoes-placeholder strong{color:#173f7a;font-size:13px}
.logs-admin-box{overflow:hidden}
.logs-admin-box .logs-titulo{padding:12px 14px}
.logs-admin-box .logs-titulo p{margin:4px 0 0;color:#667085;font-size:12.5px;font-weight:400}
.logs-admin-box .logs-tabela-wrap{max-height:52vh;border:0;border-top:1px solid #d7dbe2}
.usuarios-card{width:min(1180px,96vw)}
@media(max-width:760px){
  .usuarios-subabas{padding:0 10px}
  .usuarios-subaba{padding-left:10px;padding-right:10px}
}

/* ===== RELATÓRIOS ORÇAMENTÁRIOS ===== */
.relatorios-conteudo{display:flex;flex-direction:column;gap:8px}
.relatorios-cabecalho{margin-top:0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px}
.relatorios-cabecalho h2{margin:0 0 3px;color:var(--azul);font-size:17px;font-weight:700}
.relatorios-cabecalho p{margin:0;color:var(--cinza);font-size:12px}
.relatorios-controles{display:grid;grid-template-columns:minmax(300px,1.1fr) minmax(200px,.65fr);gap:11px 15px;align-items:start;padding:12px 14px}
.relatorios-controle{display:flex;flex-direction:column;gap:6px;min-width:0}
.relatorios-controle>label{font-size:11.5px;font-weight:700;color:#334155}
.relatorios-controle select{height:34px;border:1px solid var(--borda);background:#fff;padding:0 8px;border-radius:3px;font-size:12px}
.relatorios-controle-metricas{grid-column:1/-1}
.relatorios-anos,.relatorios-metricas{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.relatorios-ano{min-width:58px;height:32px;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:3px;font-size:11.5px;font-weight:700}
.relatorios-ano:hover{border-color:#8fb3df;background:#f7faff}
.relatorios-ano.ativo{background:#e6eef9;border-color:#7ea6d8;color:#173f82;box-shadow:inset 0 -2px 0 #7ea6d8}
.relatorios-metrica{position:relative;display:inline-flex;align-items:center;cursor:pointer}
.relatorios-metrica input{position:absolute;opacity:0;pointer-events:none}
.relatorios-metrica span{display:inline-flex;align-items:center;min-height:31px;padding:5px 9px;border:1px solid #cbd5e1;border-radius:3px;background:#fff;color:#475569;font-size:11.5px;font-weight:650}
.relatorios-metrica input:checked+span{background:#e6eef9;border-color:#7ea6d8;color:#173f82;box-shadow:inset 0 -2px 0 #7ea6d8}
.relatorios-totais{display:block}
.relatorios-totais-bloco{margin-top:0;padding:12px}
.relatorios-tabela-wrap{max-height:300px}
.relatorios-tabela{min-width:900px}
.relatorios-tabela th,.relatorios-tabela td{font-size:11.5px}
.relatorios-tabela th{text-align:center!important}
.relatorios-tabela td:first-child{text-align:center!important;min-width:80px}
.relatorios-tabela td:not(:first-child){text-align:right!important}
.relatorios-graficos{display:grid;grid-template-columns:1fr;gap:8px}
.relatorios-grafico-bloco{margin-top:0;padding:12px}
.relatorios-grafico-bloco .bloco-titulo{margin-bottom:6px}
.relatorios-grafico-bloco .bloco-titulo h3{font-size:16px}
.relatorios-grafico-bloco .bloco-titulo p{margin:2px 0 0;color:var(--cinza);font-size:11px}
.relatorios-svg-wrap{width:100%;overflow:auto;border:1px solid #e4e8ee;background:#fff;padding:6px;box-sizing:border-box}
.relatorios-svg-wrap svg{display:block;width:min(100%,1220px);height:auto;min-height:0;margin:0 auto}
.relatorios-evolucao-wrap svg{width:min(100%,1160px)}
.relatorios-barras-wrap svg{width:min(100%,1240px)}
.relatorios-grid{stroke:#dfe5ec;stroke-width:1}
.relatorios-eixo-texto{fill:#52647a;font-family:"Segoe UI",Arial,sans-serif;font-size:11.5px;font-weight:500}
.relatorios-categoria-texto{fill:#3f5066;font-family:"Segoe UI",Arial,sans-serif;font-size:12px;font-weight:600}
.relatorios-rotulo-valor{fill:#23364d;font-family:"Segoe UI",Arial,sans-serif;font-size:11.5px;font-weight:700}
.relatorios-rotulo-ponto{font-family:"Segoe UI",Arial,sans-serif;font-size:11px;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.relatorios-ano-eixo{font-weight:600}
.relatorios-legenda{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:7px;color:#3f5066;font-size:12.5px}
.relatorios-legenda span{display:inline-flex;align-items:center;gap:5px}
.relatorios-legenda i{display:inline-block;width:9px;height:9px;border-radius:2px}
.relatorios-vazio{margin:10px 0 0;color:var(--cinza);font-size:12px}
@media(max-width:900px){
  .relatorios-controles{grid-template-columns:1fr}
  .relatorios-controle-metricas{grid-column:auto}
  .relatorios-svg-wrap{overflow:auto}
  .relatorios-svg-wrap svg{min-width:760px}
}


/* ===== V15 — Painel administrativo e monitoramento das fontes ===== */
.status-fontes-cabecalho{
  display:inline-flex;align-items:center;justify-content:center;width:12px;min-width:12px;min-height:12px;padding:0;
  border:0;border-radius:999px;background:transparent;color:#64748b;line-height:1;white-space:nowrap;position:relative;top:4px;
}
.status-fontes-cabecalho i{width:5px;height:5px;border-radius:50%;background:#94a3b8;box-shadow:0 0 0 1px rgba(148,163,184,.16)}
.status-fontes-cabecalho.verde{background:transparent;border-color:transparent;color:#24643a}
.status-fontes-cabecalho.verde i{background:#2e8b4d;box-shadow:0 0 0 1px rgba(46,139,77,.16)}
.status-fontes-cabecalho.amarelo{background:transparent;border-color:transparent;color:#805b0b}
.status-fontes-cabecalho.amarelo i{background:#d49a16;box-shadow:0 0 0 1px rgba(212,154,22,.16)}

.atualizacoes-admin-box{overflow:hidden}
.atualizacoes-topo{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border-bottom:1px solid #d7dbe2;background:#fff}
.atualizacoes-topo h3{margin:0 0 4px;color:#173f7a;font-size:14px}
.atualizacoes-topo p{margin:0;color:#667085;font-size:12.5px;font-weight:400;line-height:1.45}
.botao-atualizar-fontes{
  flex:0 0 auto;min-width:104px;min-height:36px;border:1px solid #173f7a;border-radius:3px;
  background:#173f7a;color:#fff;padding:7px 14px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer
}
.botao-atualizar-fontes:hover{background:#10346f}.botao-atualizar-fontes:disabled{opacity:.62;cursor:wait}
.atualizacoes-progresso{margin:12px 14px 0;padding:11px 12px;border:1px solid #d7dbe2;border-radius:3px;background:#f8fafc}
.atualizacoes-progresso-linha{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;color:#475569;font-size:12px}
.atualizacoes-progresso-linha strong{color:#173f7a;font-variant-numeric:tabular-nums}
.atualizacoes-progresso-barra{height:7px;overflow:hidden;border-radius:999px;background:#e2e8f0}
.atualizacoes-progresso-barra span{display:block;width:0;height:100%;border-radius:inherit;background:#315f9f;transition:width .25s ease}
.atualizacoes-mensagem{margin:12px 14px 0;padding:9px 11px;border:1px solid #d7dbe2;border-radius:3px;background:#f8fafc;color:#475569;font-size:12px;line-height:1.45}
.atualizacoes-mensagem.sucesso{background:#eef8f1;border-color:#b9dec5;color:#24643a}
.atualizacoes-mensagem.atencao{background:#fff8e8;border-color:#ead59b;color:#805b0b}
.atualizacoes-mensagem.erro{background:#fff1f1;border-color:#edc4c4;color:#9c3030}
.atualizacoes-tabela-wrap{max-height:48vh;border-top:1px solid #d7dbe2;margin-top:12px}
.atualizacoes-tabela{width:100%;border-collapse:separate;border-spacing:0}
.atualizacoes-tabela th,.atualizacoes-tabela td{padding:10px 12px;border-right:1px solid #dfe3e8;border-bottom:1px solid #e4e7ec;font-size:12px;vertical-align:middle}
.atualizacoes-tabela th:last-child,.atualizacoes-tabela td:last-child{border-right:0}
.atualizacoes-tabela thead th{position:sticky;top:0;z-index:2;background:var(--cabecalho-tabela)!important;color:var(--texto-cabecalho)!important;text-align:left;font-weight:700}
.atualizacoes-tabela tbody tr:nth-child(even) td{background:#f7f8fa}
.atualizacoes-tabela tbody tr:hover td{background:#edf3fb}
.atualizacoes-tabela th:nth-child(1){width:44%}.atualizacoes-tabela th:nth-child(2){width:32%}.atualizacoes-tabela th:nth-child(3){width:24%}
.atualizacoes-data{white-space:nowrap;font-variant-numeric:tabular-nums;color:#475569}
.atualizacao-status{display:inline-flex;align-items:center;gap:7px;min-width:90px;font-size:11.5px;font-weight:700}
.atualizacao-status i,.atualizacao-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.atualizacao-status.verde i,.atualizacao-dot.verde{background:#2e8b4d;box-shadow:0 0 0 2px rgba(46,139,77,.12)}
.atualizacao-status.amarelo i,.atualizacao-dot.amarelo{background:#d49a16;box-shadow:0 0 0 2px rgba(212,154,22,.12)}
.atualizacoes-vazio{text-align:center!important;color:#64748b!important;padding:30px 12px!important}
.atualizacoes-nota{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:10px 14px;background:#fff;color:#64748b;font-size:11.5px}
.atualizacoes-nota span{display:inline-flex;align-items:center;gap:6px}
@media(max-width:760px){
  .status-fontes-cabecalho{font-size:10.5px}.atualizacoes-topo{align-items:flex-start;flex-direction:column}.botao-atualizar-fontes{width:100%}
  .atualizacoes-tabela{min-width:620px}.atualizacoes-nota{align-items:flex-start;flex-direction:column;gap:8px}
}

/* ===== V16 — histórico, auditoria e backup das atualizações ===== */
.atualizacoes-backup{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border-top:1px solid #d7dbe2;background:#fbfcfe;color:#475569;font-size:11.8px}
.atualizacoes-backup>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.atualizacoes-backup strong{color:#173f7a}.atualizacoes-backup span{color:#64748b}
.botao-backup-restaurar{border:1px solid #9aa7b8;border-radius:3px;background:#fff;color:#334155;padding:6px 10px;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer}
.botao-backup-restaurar:hover:not(:disabled){background:#f1f5f9}.botao-backup-restaurar:disabled{opacity:.48;cursor:not-allowed}
.atualizacoes-secao{border-top:1px solid #d7dbe2;background:#fff}.atualizacoes-secao>summary{list-style:none;cursor:pointer;padding:11px 14px;color:#173f7a;font-size:12.5px;font-weight:700;user-select:none}
.atualizacoes-secao>summary::-webkit-details-marker{display:none}.atualizacoes-secao>summary::before{content:"▸";display:inline-block;width:14px;color:#64748b;transition:transform .15s ease}.atualizacoes-secao[open]>summary::before{transform:rotate(90deg)}
.atualizacoes-secao-corpo{padding:0 14px 14px}.atualizacoes-historico-wrap{max-height:280px;border:1px solid #dfe3e8;border-radius:3px;overflow:auto}
.atualizacoes-historico-tabela{width:100%;border-collapse:separate;border-spacing:0;min-width:760px}.atualizacoes-historico-tabela th,.atualizacoes-historico-tabela td{padding:8px 10px;border-right:1px solid #e3e7ec;border-bottom:1px solid #e7eaf0;font-size:11.5px;vertical-align:top}.atualizacoes-historico-tabela th:last-child,.atualizacoes-historico-tabela td:last-child{border-right:0}.atualizacoes-historico-tabela thead th{position:sticky;top:0;z-index:1;background:#eef2f7;color:#334155;text-align:left}.atualizacoes-historico-tabela tbody tr:nth-child(even) td{background:#fafbfc}
.execucao-status{display:inline-flex;align-items:center;gap:6px;font-weight:700;white-space:nowrap}.execucao-status i{width:8px;height:8px;border-radius:50%;display:inline-block}.execucao-status.sucesso i{background:#2e8b4d}.execucao-status.atencao i,.execucao-status.interrompido i{background:#d49a16}.execucao-status.falha i{background:#c94747}.execucao-status.processando i{background:#315f9f}.execucao-status.restaurado i{background:#64748b}
.execucao-detalhes{max-width:420px}.execucao-detalhes summary{cursor:pointer;color:#315f9f;font-weight:700}.execucao-detalhes-lista{margin-top:7px;display:grid;gap:5px;color:#5b6574}.execucao-detalhes-lista div{display:flex;justify-content:space-between;gap:12px;border-top:1px dashed #d8dee8;padding-top:5px}.execucao-detalhes-erro{margin-top:7px;padding:6px 7px;border-radius:3px;background:#fff4f4;color:#9c3030;line-height:1.4;word-break:break-word}
.auditoria-contratos-resumo{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}.auditoria-card{border:1px solid #dfe3e8;border-radius:3px;background:#f8fafc;padding:8px 9px}.auditoria-card span{display:block;color:#64748b;font-size:10.5px}.auditoria-card strong{display:block;margin-top:2px;color:#173f7a;font-size:15px;font-variant-numeric:tabular-nums}
.auditoria-contratos-historico{display:grid;gap:7px}.auditoria-item{border:1px solid #e1e5ea;border-radius:3px;background:#fff}.auditoria-item>summary{cursor:pointer;padding:8px 10px;color:#475569;font-size:11.5px;font-weight:700}.auditoria-item-corpo{padding:0 10px 10px;color:#64748b;font-size:11.3px}.auditoria-mudancas{display:grid;gap:6px;margin-top:7px}.auditoria-mudanca{padding:7px 8px;background:#f8fafc;border-left:3px solid #94a3b8}.auditoria-mudanca strong{color:#334155}.auditoria-mudanca small{display:block;margin-top:2px;color:#64748b}.auditoria-sem-mudancas{padding:8px;color:#64748b;background:#f8fafc;border-radius:3px}
@media(max-width:900px){.auditoria-contratos-resumo{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.atualizacoes-backup{align-items:flex-start;flex-direction:column}.botao-backup-restaurar{width:100%}.auditoria-contratos-resumo{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== V0.27.4 — Registro de Dotações ===== */
.registro-dotacoes-box{overflow:hidden}
.registro-dotacoes-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e5e9f0}
.registro-dotacoes-topo h3{margin:0;color:#173f7a}
.registro-dotacoes-topo p{margin:3px 0 0;color:#667085;font-size:12px;max-width:640px;line-height:1.35}
.registro-dotacoes-acoes{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}
.registro-dotacoes-ano{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#475467;font-weight:600}
.registro-dotacoes-ano select{min-width:110px;height:36px;border:1px solid #cbd5e1;border-radius:4px;background:#fff;padding:0 10px;color:#1f2937}
.registro-dotacoes-toggle{display:flex;align-items:center;gap:8px;height:36px;cursor:pointer;user-select:none;color:#344054;font-size:12px;font-weight:600}
.registro-dotacoes-toggle input{position:absolute;opacity:0;pointer-events:none}
.registro-dotacoes-toggle-trilho{position:relative;width:38px;height:21px;border-radius:999px;background:#cbd5e1;transition:.18s ease;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}
.registro-dotacoes-toggle-trilho::after{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.18s ease}
.registro-dotacoes-toggle input:checked + .registro-dotacoes-toggle-trilho{background:#1f6fb2}
.registro-dotacoes-toggle input:checked + .registro-dotacoes-toggle-trilho::after{transform:translateX(17px)}
.registro-dotacoes-toggle input:focus-visible + .registro-dotacoes-toggle-trilho{outline:2px solid #6ea8dc;outline-offset:2px}
.registro-dotacoes-status{margin:8px 14px 0;padding:7px 9px;border:1px solid #dbe4ef;border-radius:4px;background:#f8fafc;color:#52606d;font-size:11.5px}
.registro-dotacoes-status.manual{background:#eef6ff;border-color:#b9d7f2;color:#174a73}
.registro-dotacoes-tabela-wrap{margin:8px 14px 0;max-height:58vh;overflow:auto;border:1px solid #d9e0e8;border-radius:4px}
.registro-dotacoes-tabela{width:100%;border-collapse:collapse;font-size:12px}
.registro-dotacoes-tabela th{position:sticky;top:0;z-index:2;background:#f4f7fb;color:#334155;text-align:left;padding:7px 9px;border-bottom:1px solid #d9e0e8;white-space:nowrap}
.registro-dotacoes-ordenar{width:100%;text-align:inherit}
.registro-dotacoes-tabela td{padding:7px 9px;border-bottom:1px solid #edf0f4;vertical-align:middle}
.registro-dotacoes-tabela td:nth-child(n+2),.registro-dotacoes-tabela th:nth-child(n+2){text-align:right}
.registro-dotacoes-tabela tbody tr:hover{background:#fafcff}
.registro-dotacoes-ugr{font-weight:600;color:#26384a}
.registro-dotacoes-ugr small{display:block;margin-top:2px;color:#667085;font-size:11px;font-weight:400}
.registro-dotacoes-input{width:150px;max-width:100%;height:32px;border:1px solid #cbd5e1;border-radius:4px;padding:0 9px;text-align:right;color:#1f2937;background:#fff}
.registro-dotacoes-input:focus{outline:2px solid #bdd8f0;border-color:#5b9bd5}
.registro-dotacoes-input.invalido{border-color:#d92d20;background:#fff6f5}
.registro-dotacoes-tabela tfoot td{position:sticky;bottom:0;background:#f4f7fb;font-weight:700;border-top:1px solid #cbd5e1;border-bottom:0}
.registro-dotacoes-vazio{text-align:center!important;color:#667085;padding:22px!important}
.registro-dotacoes-nota{margin:7px 14px 12px;color:#667085;font-size:11.3px;line-height:1.4}
@media (max-width:900px){.registro-dotacoes-topo{align-items:flex-start;flex-direction:column}.registro-dotacoes-acoes{justify-content:flex-start}.registro-dotacoes-tabela-wrap{max-height:48vh}.registro-dotacoes-input{width:125px}}

/* Configuração administrativa da agenda. */
.agendamento-resumo {
  margin: 12px 14px;
  color: #667085;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.45;
  text-align: left;
}

.agendamento-form {
  padding: 0 14px 14px;
  background: #fff;
  color: #667085;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.45;
  box-sizing: border-box;
}

.agendamento-form h4 {
  margin: 0 0 12px;
  color: #173f7a;
  font-size: 14px;
  font-weight: 700;
}

.agendamento-form p {
  margin: 12px 0;
  color: #667085;
  font-size: 12.5px;
  font-weight: 400;
  line-height: 1.45;
}

.agendamento-form .agenda-ativar {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 12px;
  color: #475569;
}

.agendamento-form .agenda-horario {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 12px;
  color: #475569;
}

.agendamento-form input[type="time"] {
  width: auto;
  height: 36px;
  padding: 0 9px;
  border: 1px solid #cfd4dc;
  border-radius: 3px;
  background: #fff;
  color: #2f3338;
  font: inherit;
  box-sizing: border-box;
}

.agendamento-form fieldset {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0;
  padding: 10px 12px 12px;
  border: 1px solid #d7dbe2;
  border-radius: 3px;
  box-sizing: border-box;
}

.agendamento-form fieldset legend {
  padding: 0 4px;
  color: #475569;
  font-size: 12.5px;
}

.agendamento-form fieldset label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #475569;
}

.agendamento-form input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #173f7a;
}

.agendamento-form button {
  margin-right: 12px;
}

/* Mesmas dimensões para as ações do cabeçalho de Atualizações. */
#btnAgendamento,#btnAtualizarFontes{
  box-sizing:border-box;flex:0 0 auto;width:104px;min-width:104px;
  height:36px;min-height:36px;padding:7px 8px;
  font-size:12.5px;font-weight:700;line-height:20px;white-space:nowrap;
}
@media(max-width:760px){
  #btnAgendamento,#btnAtualizarFontes{width:100%}
}
