/* fluxo — sistema visual (paleta RACE) */
:root{
  --tinta:#081524;
  --tinta-2:#0C1E31;
  --ouro:#C9982F;
  --ouro-luz:#E3B85A;
  --ouro-texto:#86611A;
  --creme:#F4F1EA;
  --branco:#FFFFFF;
  --linha:#E3DFD4;
  --linha-2:#EDEAE2;
  --cinza:#5A6270;
  --cinza-2:#3B4350;
  --verde:#1F6B45;
  --verde-bg:#E4F0E8;
  --vermelho:#A32D2D;
  --vermelho-bg:#F6E3E1;
  --ouro-bg:#F7EEDA;
  --neutro-bg:#EDEAE2;
  --fundo-suave:#FBFAF7;
  --fundo-suave-2:#FCFBF8;
  --linha-forte:#D5D0C3;
  --vermelho-borda:#EFC9C5;
  --verde-borda:#C9E2D4;
  --ouro-borda:#EBDCB6;
  --cinza-claro:#BDB6A6;
  --ouro-bg-2:#F8F2E4;
  --mut:#5A6270;
  --serif:Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --menu:232px;
  color-scheme:only light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--creme)}
body{font-family:var(--sans);font-size:14px;line-height:1.55;color:var(--tinta);
     background:var(--creme);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{color:var(--ouro-texto)}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--ouro);outline-offset:2px}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.02em}
.num{font-family:var(--serif);letter-spacing:-.02em;line-height:1.1}
.k{font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--cinza)}
.mut{color:var(--cinza)}
.vermelho{color:var(--vermelho)}
.verde{color:var(--verde)}
.ouro{color:var(--ouro-texto)}
.dir{text-align:right}
.nowrap{white-space:nowrap}

/* ===== ESTRUTURA ===== */
.app{display:flex;min-height:100vh}
.menu{width:var(--menu);flex-shrink:0;background:var(--tinta);color:var(--creme);
      padding:30px 14px 22px;display:flex;flex-direction:column;gap:26px;
      position:fixed;top:0;bottom:0;left:0;overflow-y:auto}
.menu a{color:var(--creme)}
.marca{display:flex;align-items:baseline;gap:8px;padding:0 10px}
.marca span{font-family:var(--serif);font-size:24px;letter-spacing:-.02em}
.marca i{display:block;width:6px;height:6px;background:var(--ouro)}
.menu-grupo{display:flex;flex-direction:column;gap:2px}
.menu-titulo{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
             color:rgba(244,241,234,.4);padding:0 10px 8px}
.menu-item{display:flex;align-items:center;gap:12px;height:40px;padding:0 10px;
           font-size:13.5px;font-weight:500;border-radius:2px}
.menu-item svg{flex-shrink:0}
.menu-item:hover{background:rgba(244,241,234,.06);color:var(--creme)}
.menu-item.on{background:rgba(244,241,234,.08);color:var(--ouro-luz)}
.menu-item.on:hover{color:var(--ouro-luz)}
.menu-rodape{margin-top:auto;border-top:1px solid rgba(244,241,234,.14);padding-top:14px;
             display:flex;flex-direction:column;gap:2px}
.menu-rodape .menu-item{height:38px;font-size:13px;color:rgba(244,241,234,.62)}
.menu-rodape .menu-item:hover{color:var(--creme)}
.conteudo{flex-grow:1;margin-left:var(--menu);padding:34px 40px 60px;background:var(--creme);min-width:0}

/* ===== CABECALHO ===== */
.topo{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.topo h1{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:-.02em;margin-top:6px}
.topo-acoes{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* ===== BOTOES ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:44px;padding:0 20px;
     border:1px solid transparent;border-radius:3px;font-size:13px;font-weight:500;cursor:pointer;
     background:var(--tinta);color:var(--creme);transition:opacity .15s}
.btn:hover{opacity:.88;color:var(--creme)}
.btn-2{background:var(--branco);color:var(--tinta);border-color:var(--linha-forte)}
.btn-2:hover{color:var(--tinta);background:var(--fundo-suave)}
.btn-ouro{background:var(--ouro);color:var(--tinta)}
.btn-ouro:hover{color:var(--tinta)}
.btn-p{height:36px;padding:0 14px;font-size:12px}
.btn-bloco{width:100%}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.link-acao{font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ouro-texto)}

/* ===== CARTOES ===== */
.grid{display:grid;gap:16px;align-items:stretch}
.grid > .card{display:flex;flex-direction:column}

.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.card{background:var(--branco);border:1px solid var(--linha);border-radius:4px;padding:20px 22px}
.card-t{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:14px}
.card-t h2{min-width:0;overflow-wrap:anywhere}
.card-t .link-acao,.card-t .mut{flex-shrink:0;white-space:nowrap}
.card-t .legenda{flex-shrink:0}
.card-t h2{font-size:14px;font-weight:600}
.card-escuro{background:var(--tinta);color:var(--creme);border-color:var(--tinta)}
.card-escuro .k{color:rgba(244,241,234,.5)}
.card-escuro .mut{color:rgba(244,241,234,.62)}
.kpi{display:flex;flex-direction:column;gap:8px;height:100%}
.kpi .num{font-size:24px;margin-top:auto}
.kpi small{font-size:12px;color:var(--cinza);min-height:2.4em;display:flex;align-items:flex-end}

/* ===== TABELAS ===== */
.tabela-wrap{background:var(--branco);border:1px solid var(--linha);border-radius:4px;overflow:hidden}
.rolagem{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th{text-align:left;font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
   color:var(--cinza);padding:12px 14px;border-bottom:1px solid var(--linha);white-space:nowrap}
td{font-size:13px;padding:12px 14px;border-bottom:1px solid var(--linha-2);vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--fundo-suave-2)}
tr.alerta{background:#FBF5F4}
tr.alerta:hover{background:#F9F0EE}
.t-forte{font-weight:500}
.t-sub{font-size:11px;color:var(--cinza)}

/* ===== ETIQUETAS ===== */
.tag{display:inline-block;font-size:11px;font-weight:500;padding:4px 9px;border-radius:2px;white-space:nowrap}
.tag-red{color:var(--vermelho);background:var(--vermelho-bg)}
.tag-ouro{color:var(--ouro-texto);background:var(--ouro-bg)}
.tag-verde{color:var(--verde);background:var(--verde-bg)}
.tag-mut{color:var(--cinza);background:var(--neutro-bg)}

/* ===== FORMULARIOS ===== */
.campo{display:flex;flex-direction:column;gap:7px;min-width:0}
.campo label{font-size:12px;font-weight:500}
.campo .ajuda{font-size:11px;color:var(--cinza)}
.inp,select.inp,textarea.inp{width:100%;height:44px;padding:0 12px;border:1px solid var(--linha-forte);
     border-radius:3px;background:var(--branco);font-size:14px}
textarea.inp{height:auto;padding:10px 12px;resize:vertical}
.inp:focus{border-color:var(--ouro);outline:none;box-shadow:0 0 0 3px rgba(201,152,47,.14)}
.inp-valor{font-family:var(--serif);font-size:19px}
.form-linha{display:grid;gap:14px;margin-bottom:16px}
.abas{display:inline-flex;gap:2px;padding:3px;background:#E9E5DB;border-radius:3px;max-width:100%;
      overflow-x:auto;-webkit-overflow-scrolling:touch}
.abas::-webkit-scrollbar{display:none}
.aba{height:36px;padding:0 15px;border:none;border-radius:2px;background:transparent;
     font-size:13px;font-weight:500;color:var(--cinza);display:inline-flex;align-items:center;
     cursor:pointer;white-space:nowrap;flex-shrink:0}
.aba.on{background:var(--tinta);color:var(--creme)}
.aba.on:hover{color:var(--creme)}
.filtros{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:18px 0;flex-wrap:wrap}
.filtros form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.filtros .inp{height:40px;font-size:13px;width:auto}

/* ===== AVISOS ===== */
.aviso{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:3px;
       font-size:13px;margin-bottom:16px;border:1px solid}
.aviso-ok{background:var(--verde-bg);border-color:var(--verde-borda);color:#14502F}
.aviso-erro{background:var(--vermelho-bg);border-color:var(--vermelho-borda);color:#7E1F1F}
.aviso-info{background:var(--ouro-bg);border-color:var(--ouro-borda);color:var(--ouro-texto)}
.vazio{padding:56px 24px;text-align:center;color:var(--cinza);font-size:13px;
       flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center}
.vazio strong{display:block;font-family:var(--serif);font-size:18px;color:var(--tinta);
              font-weight:400;margin-bottom:6px}

/* ===== BARRAS E GRAFICOS ===== */
.barra{height:6px;background:var(--linha-2);border-radius:2px;overflow:hidden;flex-grow:1}
.barra i{display:block;height:6px;background:var(--tinta)}
.linha-barra{display:flex;align-items:center;gap:12px;font-size:12px;padding:5px 0}
.linha-barra .rot{width:150px;flex-shrink:0}
.linha-barra .val{width:90px;text-align:right;font-weight:500}
.colunas{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;
         height:170px;padding-top:10px;overflow:hidden}
.col-mes{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.col-par{display:flex;align-items:flex-end;gap:3px;height:140px}
.col-par i{display:block;width:16px;border-radius:1px 1px 0 0}
.col-ent{background:var(--ouro)}
.col-sai{background:var(--tinta)}
.col-rot{font-size:11px;color:var(--cinza)}
.legenda{display:flex;gap:16px;font-size:11px;color:var(--cinza)}
.legenda span{display:flex;align-items:center;gap:6px}
.legenda i{width:10px;height:10px;display:block}

/* ===== LISTAS (mobile e laterais) ===== */
.lista{display:flex;flex-direction:column}
.lista-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--linha-2)}
.lista-item:first-child{border-top:none}
.lista-item .info{flex-grow:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.lista-item .info b{font-size:13px;font-weight:500}
.lista-item .data{width:44px;flex-shrink:0;font-size:12px;font-weight:500}

/* ===== LOGIN ===== */
.login{display:flex;min-height:100vh}
.login-arte{width:46%;background:var(--tinta);color:var(--creme);padding:64px;
            display:flex;flex-direction:column;justify-content:space-between}
.login-arte h1{font-family:var(--serif);font-size:46px;font-weight:400;line-height:1.06;letter-spacing:-.03em}
.login-arte h1 em{font-style:italic;color:var(--ouro)}
.login-arte p{color:rgba(244,241,234,.62);max-width:420px;margin-top:20px;font-size:15px}
.login-rot{display:flex;align-items:center;gap:14px;font-size:10.5px;font-weight:500;
           letter-spacing:.28em;text-transform:uppercase;color:rgba(244,241,234,.4)}
.login-rot i{display:block;width:34px;height:1px;background:var(--ouro)}
.login-form{flex-grow:1;display:flex;align-items:center;justify-content:center;padding:40px 24px}
.login-form .caixa{width:100%;max-width:380px;display:flex;flex-direction:column;gap:22px}

/* ===== CARTAO DE EMPRESA ===== */
.empresa-card{display:flex;flex-direction:column;gap:18px;padding:24px;background:var(--branco);
              border:1px solid var(--linha);border-radius:4px}
.empresa-card:hover{border-color:var(--ouro);color:inherit}
.empresa-card.on{border-color:var(--ouro)}
.avatar{width:44px;height:44px;background:var(--tinta);color:var(--creme);display:flex;
        align-items:center;justify-content:center;font-family:var(--serif);font-size:19px;flex-shrink:0}
.empresa-rod{display:flex;justify-content:space-between;font-size:12px;color:var(--cinza);
             border-top:1px solid var(--linha);padding-top:14px}

/* ===== PLANO DE CONTAS ===== */
.pc-grupo{display:flex;align-items:center;gap:12px;padding:12px 18px;background:var(--creme);
          font-size:13px;font-weight:600}
.pc-item{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;
         padding:11px 16px 11px 22px;font-size:13px;border-top:1px solid var(--linha-2)}
.pc-nome{min-width:0;overflow-wrap:anywhere}
.pc-nome .t-sub{display:block}
.pc-acao{justify-self:end;white-space:nowrap}
.pc-cod{width:52px;flex-shrink:0;font-size:11px;color:var(--cinza)}
.pc-val{font-size:12px;color:var(--cinza);white-space:nowrap}

.col-principal{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;align-items:start}
.col-rel{display:grid;grid-template-columns:236px 1fr;gap:24px;align-items:start}
.rel-lista{display:flex;flex-direction:column;gap:6px}

/* ===== CASCATA ===== */
.cascata{background:var(--branco);border:1px solid var(--linha);border-radius:4px;overflow:hidden}
.nivel{border-bottom:1px solid var(--linha-2)}
.cascata > .nivel:last-child{border-bottom:none}
.nivel > summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;
                 padding:14px 18px;min-height:52px}
.nivel > summary::-webkit-details-marker{display:none}
.nivel > summary::marker{content:''}
.nivel > summary:hover{background:var(--fundo-suave-2)}
.nivel .seta{display:inline-flex;color:var(--ouro-texto);flex-shrink:0;transition:transform .15s}
.nivel[open] > summary .seta{transform:rotate(90deg)}
.nivel .rot{flex-grow:1;min-width:0;overflow-wrap:anywhere}
.nivel .qtd{font-size:11px;color:var(--cinza);white-space:nowrap}
.nivel .val{font-family:var(--serif);font-size:15px;letter-spacing:-.01em;white-space:nowrap;text-align:right}
.nivel-1 > summary{background:var(--creme);font-size:14px;font-weight:600}
.nivel-1 > summary .val{font-size:17px}
.nivel-2 > summary{padding-left:38px;font-size:13px;font-weight:500}
.nivel-3 > summary{padding-left:60px;font-size:13px;color:var(--cinza-2);min-height:46px}
.nivel-3 > summary .val{font-size:14px}
.itens{padding:2px 18px 12px 60px;background:var(--fundo-suave)}
.item{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-top:1px solid var(--linha-2);font-size:12.5px}
.item:first-child{border-top:none}
.item .data{width:78px;flex-shrink:0;color:var(--cinza)}
.item .desc{flex-grow:1;min-width:0;overflow-wrap:anywhere}
.item .val{width:130px;text-align:right;font-weight:500;flex-shrink:0}
a.item{color:inherit}
a.item:hover{background:#F7F4EC;color:inherit}
.item .editar{display:block;font-size:10.5px;font-weight:500;letter-spacing:.1em;
              text-transform:uppercase;color:var(--ouro-texto);margin-top:2px;opacity:0}
a.item:hover .editar{opacity:1}
@media (hover:none){ .item .editar{opacity:1} }
.item{text-decoration:none;color:inherit}
.item:hover{background:#F6F2E7;color:inherit}
.item .editar{display:block;font-size:10.5px;font-weight:500;letter-spacing:.1em;
              text-transform:uppercase;color:var(--ouro-texto);opacity:0}
.item:hover .editar{opacity:1}
@media (hover:none){ .item .editar{opacity:.9} }

/* ===== PAGINAÇÃO ===== */
.paginacao{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px;padding:0 2px}
.pg{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;
    padding:0 10px;border:1px solid var(--linha);background:var(--branco);border-radius:3px;
    font-size:13px;font-weight:500}
.pg.on{background:var(--tinta);color:var(--creme);border-color:var(--tinta)}
.vazio .pg{min-width:0}
.vazio .pg .t-sub{display:inline}
.pg:hover{border-color:var(--ouro)}

/* ===== BARRA MOBILE ===== */
.barra-mob{display:none}
.mob-topo{display:none}
.acoes-mob{display:none}

/* ===== ADMIN DA PLATAFORMA ===== */
body.admin{background:var(--creme)}
.admin-topo{background:var(--tinta);color:var(--creme);position:sticky;top:0;z-index:20}
.admin-topo a{color:var(--creme)}
.admin-topo-in{max-width:1280px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.admin-topo .marca span{color:var(--creme)}
.admin-selo{font-style:normal;font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
            color:var(--ouro-luz);margin-left:4px}
.admin-abas{display:flex;gap:4px;flex-grow:1;flex-wrap:wrap}
.admin-aba{padding:8px 14px;border-radius:2px;font-size:13px;font-weight:500;color:rgba(244,241,234,.66)}
.admin-aba:hover{background:rgba(244,241,234,.08);color:var(--creme)}
.admin-aba.on{background:rgba(244,241,234,.12);color:var(--ouro-luz)}
.admin-usuario{display:flex;align-items:center;gap:12px}
.admin-avatar{width:36px;height:36px;border-radius:18px;background:rgba(244,241,234,.12);
              display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}
.admin-corpo{max-width:1280px;margin:0 auto;padding:32px}
.linha-mapa{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--linha-2);font-size:13px}
.linha-mapa span{flex-grow:1;display:flex;gap:8px;align-items:center}
.linha-mapa .inp{width:150px;height:38px;flex-shrink:0;font-size:13px}

/* ===== INSTALAR O APP ===== */
.instalar{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--tinta);
          color:var(--creme);border-radius:4px;margin-bottom:16px}
.instalar b{font-size:14px;font-weight:500;display:block}
.instalar span{font-size:12px;color:rgba(244,241,234,.62)}
.instalar .btn{height:40px;flex-shrink:0}
.passos{display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--cinza-2);margin-top:4px}
.passos b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
          background:var(--tinta);color:var(--creme);border-radius:11px;font-size:11px;margin-right:8px}

/* ===== LANCAMENTO SIMPLES ===== */
.marcador{display:flex !important;align-items:flex-start;gap:12px;padding:14px 16px;
          background:var(--creme);border-radius:3px;cursor:pointer;margin:4px 0 16px}
.marcador > span{display:block;min-width:0}
.marcador input{width:20px;height:20px;margin-top:1px;flex-shrink:0;accent-color:var(--ouro)}
.marcador b{display:block;font-size:13px;font-weight:500}
.marcador span span{display:block;font-size:11.5px;color:var(--cinza);margin-top:2px}
.detalhes{border-top:1px solid var(--linha);margin-top:4px}
.detalhes > summary{display:flex;align-items:center;gap:10px;padding:16px 2px 4px;cursor:pointer;
                    font-size:13px;font-weight:500;list-style:none}
.detalhes > summary > span{display:inline-flex;align-items:center}
.detalhes > summary::-webkit-details-marker{display:none}
.detalhes > summary::marker{content:''}
.detalhes > summary .mut{font-size:11.5px;font-weight:400}
.detalhes > summary .seta{display:inline-flex;color:var(--ouro-texto);transition:transform .15s}
.detalhes[open] > summary .seta{transform:rotate(90deg)}
.detalhes > summary:hover{color:var(--ouro-texto)}
.detalhes-corpo{padding-top:18px}

.linha-edicao > td{border-top:none}
.linha-edicao > td > details > summary, .linha-edicao details[id^="editar-"] > summary, .linha-edicao details[id^="chave-"] > summary{list-style:none;height:0;overflow:hidden}

/* ===== SERVIÇO (acordeão) ===== */
.servico{border:1px solid var(--linha);border-radius:3px;margin-bottom:8px;background:var(--branco)}
.servico > summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;
                   list-style:none;min-height:52px}
.servico > summary::-webkit-details-marker{display:none}
.servico > summary::marker{content:''}
.servico > summary:hover{background:var(--fundo-suave-2)}
.servico .seta{color:var(--ouro-texto);flex-shrink:0;transition:transform .15s}
.servico[open] > summary .seta{transform:rotate(90deg)}
.servico .info{flex:1;min-width:0}
.servico .info b{display:block;font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
.servico > form{padding:0 14px 12px}
.servico[open]{border-color:var(--ouro)}
.novo-servico > summary{list-style:none;cursor:pointer}
.novo-servico > summary::-webkit-details-marker{display:none}
.novo-servico > summary::marker{content:''}

/* ===== BUSCA COM SUGESTÃO ===== */
.sugestoes{position:absolute;left:0;right:0;top:100%;z-index:40;background:var(--branco);
           border:1px solid var(--linha);border-top:none;border-radius:0 0 3px 3px;
           max-height:280px;overflow-y:auto;box-shadow:0 8px 20px rgba(8,21,36,.08)}
.sug{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;
     padding:11px 12px;border:none;border-bottom:1px solid var(--linha-2);background:none;
     text-align:left;cursor:pointer;font-size:13px;color:var(--tinta)}
.sug:last-child{border-bottom:none}
.sug:hover{background:var(--creme)}
.sug-t{flex:1;min-width:0;overflow-wrap:anywhere}
.sug-e{flex-shrink:0;font-size:11px;color:var(--cinza);white-space:nowrap}
.sug-novo{color:var(--ouro-texto);font-weight:500}
.sug-vazio{padding:12px;font-size:12.5px;color:var(--cinza)}

/* ===== ARQUIVO ===== */
.arquivo{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px dashed #C9C3B4;
         border-radius:3px;background:#FBF9F5;cursor:pointer}
.arquivo input{position:absolute;left:-9999px}
.arquivo .rot{flex-grow:1}
.arquivo b{display:block;font-size:13px;font-weight:500}
.arquivo span{font-size:11.5px;color:var(--cinza)}
.arquivo em{font-style:normal;height:36px;padding:0 14px;border:1px solid var(--linha-forte);border-radius:3px;
            background:#fff;font-size:12px;font-weight:500;display:inline-flex;align-items:center;flex-shrink:0}

/* ===== RESPONSIVO ===== */
@media (max-width:1180px){
  .g5{grid-template-columns:repeat(3,minmax(0,1fr))}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1000px){
  .g2-conteudo{grid-template-columns:1fr}
  .col-principal,.col-rel{grid-template-columns:1fr}
  .rel-lista{flex-direction:row;overflow-x:auto;padding-bottom:4px}
  .rel-lista a{white-space:nowrap;flex-shrink:0;min-width:180px}
}
@media (max-width:900px){
  .menu{display:none}
  .conteudo{margin-left:0;padding:0 0 92px;background:var(--creme)}
  .mob-topo{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;
            padding:22px 18px 12px;background:var(--creme)}
  .mob-topo-txt{min-width:0;flex:1}
  .mob-topo h1{overflow-wrap:anywhere}
  .mob-topo h1{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:-.02em;margin-top:4px}
  .mob-avatar{width:38px;height:38px;border-radius:19px;background:var(--tinta);color:var(--creme);
              display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}
  .topo{display:none}
  .acoes-mob{display:flex;gap:8px;padding:0 18px 14px;flex-wrap:wrap;box-sizing:border-box;
             max-width:100%;overflow:hidden}
  .acoes-mob .btn{flex:1 1 auto;min-width:0;width:auto;height:42px;padding:0 12px;
                  font-size:12.5px;white-space:nowrap}
  .bloco{padding:0 18px}
  .grid{gap:12px}
  .k{letter-spacing:.1em;font-size:10px}
  .card-t{flex-wrap:wrap;align-items:center;row-gap:4px}
  .card-t h2{font-size:13.5px;flex:1 1 auto}
  .card-t .link-acao{font-size:10px;letter-spacing:.08em}
  .card-t .legenda{flex:1 1 100%;order:3;justify-content:flex-start}
  .vazio{padding:28px 16px}
  .vazio strong{font-size:16px}
  .colunas{height:130px}
  .col-par{height:104px}
  .col-par i{width:12px}
  .legenda{gap:10px;font-size:10px}
  .linha-barra{flex-wrap:wrap;row-gap:4px;padding:8px 0}
  .linha-barra .rot{width:auto;flex:1 1 60%;min-width:0;overflow-wrap:anywhere}
  .linha-barra .val{width:auto;flex:0 0 auto;margin-left:auto}
  .linha-barra .barra{flex:1 1 100%;order:3}
  .nivel > summary{padding:12px 14px;gap:8px;flex-wrap:wrap}
  .nivel .qtd{display:none}
  .nivel-2 > summary{padding-left:26px}
  .nivel-3 > summary{padding-left:38px}
  .itens{padding-left:26px;padding-right:14px}
  .item{flex-wrap:wrap}
  .item .data{width:72px}
  .item .val{width:auto;margin-left:auto}
  .paginacao{padding:0 18px}
  .servico > summary{padding:10px;gap:8px}
  .servico > summary .link-acao{font-size:10px}
  .servico > form{padding:0 10px 10px}
  .linha-mapa{flex-wrap:wrap}
  .linha-mapa .inp{width:100%}
  body.admin .topo{display:flex !important;flex-direction:column;align-items:stretch;gap:14px;margin-bottom:18px}
  body.admin .topo h1{font-size:24px}
  body.admin .topo-acoes{width:100%;display:flex;gap:8px;flex-wrap:wrap}
  body.admin .topo-acoes .btn{flex:1 1 auto;min-width:0;width:auto;height:44px;font-size:12.5px;white-space:nowrap}
  .admin-topo-in{padding:12px 18px;gap:12px}
  .admin-corpo{padding:18px}
  .admin-abas{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap}
  .admin-aba{white-space:nowrap}
  .instalar{flex-direction:column;align-items:flex-start;margin:0 18px 14px}
  /* No celular, card de conteúdo (lista, gráfico, tabela) ocupa a largura toda:
     em meia tela o texto encavalava. Só os KPIs ficam lado a lado. */
  .g2,.g3,.g4,.g5{grid-template-columns:1fr}
  .grid:has(> .card.kpi){grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid:has(> .card.kpi) > .card:not(.kpi){grid-column:1 / -1}
  /* card sozinho na última linha ocupa as duas colunas, sem buraco ao lado */
  .grid.g2:has(> .kpi) > .card:last-child:nth-child(odd),
  .grid.g3:has(> .kpi) > .card:last-child:nth-child(odd),
  .grid.g4:has(> .kpi) > .card:last-child:nth-child(odd),
  .grid.g5:has(> .kpi) > .card:last-child:nth-child(odd){grid-column:1 / -1}
  .kpi small{min-height:0}
  .kpi .num{margin-top:4px}
  .g1-mob,.g2.g1-mob{grid-template-columns:1fr}
  .kpi .num{font-size:20px}
  .card{padding:16px 18px}
  .filtros{padding:0 18px;margin:12px 0;flex-direction:column;align-items:stretch;gap:10px}
  .filtros form{width:100%;flex-wrap:wrap;gap:8px}
  .filtros .inp{flex:1 1 140px;min-width:0}
  .filtros .btn{flex:0 0 auto;width:auto;padding:0 16px}
  .pc-item{grid-template-columns:44px 1fr auto;padding-left:14px;padding-right:14px;font-size:12.5px;gap:8px}
  .pc-cod{width:auto;font-size:10.5px}
  .pc-acao .link-acao{font-size:10px;letter-spacing:.06em}
  .pc-grupo{padding:11px 16px;font-size:12.5px}
  .filtros form{width:100%}
  .filtros .inp{flex:1;min-width:130px}
  .abas{width:100%}
  .aba{flex:1 0 auto;justify-content:center;padding:0 12px}
  .tabela-wrap{border-left:none;border-right:none;border-radius:0}
  .esconde-mob{display:none !important}
  .login{flex-direction:column}
  .login-arte{width:100%;padding:56px 24px 34px}
  .login-arte h1{font-size:30px}
  .login-arte p{font-size:14px;margin-top:14px}
  .login-arte .login-rod{display:none}
  .login-form{background:var(--creme);border-radius:12px 12px 0 0;margin-top:-12px;padding:30px 22px 40px}
  .barra-mob{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:center;
             background:var(--tinta);padding:0 6px 12px;z-index:30}
  .barra-mob a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
               gap:4px;height:62px;font-size:10px;font-weight:500;color:rgba(244,241,234,.62)}
  .barra-mob a.on{color:var(--ouro-luz)}
  .barra-mob .mais{flex:0 0 auto;width:52px;height:52px;margin:0 6px;border-radius:26px;
                   background:var(--ouro);color:var(--tinta)}
  .form-linha{grid-template-columns:1fr !important}
  .detalhes > summary{flex-wrap:wrap}
  .detalhes > summary .mut{width:100%;padding-left:24px}
  .col-principal,.col-rel{grid-template-columns:1fr;gap:14px}
  .rel-lista{flex-direction:row;overflow-x:auto;padding-bottom:4px}
  .rel-lista a{white-space:nowrap;flex-shrink:0}
  .topo-acoes{width:100%}
  .btn{width:100%}
  .btn-auto{width:auto}
}
@media (min-width:901px){
  .so-mob{display:none !important}
}
@media print{
  .menu,.barra-mob,.topo-acoes,.filtros,.mob-topo{display:none !important}
  .conteudo{margin:0;padding:0}
  .card,.tabela-wrap{border-color:#ccc}
  body{background:#fff}
}

/* ===== SELEÇÃO E AÇÕES EM LOTE ===== */
th.sel,td.sel{width:44px;padding-right:0}
.marca-sel{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;cursor:pointer;margin:-5px 0 -5px -5px}
.marca-sel input{position:absolute;opacity:0;width:1px;height:1px}
.marca-sel i{width:17px;height:17px;border:1.5px solid var(--cinza-claro);border-radius:3px;background:var(--branco);
             display:block;position:relative;transition:background .12s,border-color .12s}
.marca-sel input:checked + i{background:var(--tinta);border-color:var(--tinta)}
.marca-sel input:checked + i::after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:8px;
             border:solid var(--ouro-luz);border-width:0 2px 2px 0;transform:rotate(45deg)}
.marca-sel input:indeterminate + i{background:var(--tinta);border-color:var(--tinta)}
.marca-sel input:indeterminate + i::after{content:"";position:absolute;left:3.5px;top:6.5px;width:7px;height:2px;background:var(--ouro-luz)}
.marca-sel input:focus-visible + i{outline:2px solid var(--ouro);outline-offset:2px}
tr.marcada,tr.marcada:hover{background:var(--ouro-bg-2)}
body.com-lote .conteudo{padding-bottom:120px}

.lote{position:fixed;left:calc(var(--menu) + 40px);right:40px;bottom:22px;z-index:40;
      max-width:820px;margin:0 auto}
.lote[hidden]{display:none}
.lote-barra{display:flex;align-items:center;gap:14px;background:var(--tinta);color:var(--creme);
            border-radius:6px;padding:8px 8px 8px 18px;box-shadow:0 10px 28px rgba(8,21,36,.22)}
.lote-conta{display:flex;flex-direction:column;line-height:1.25;flex-shrink:0;min-width:0}
.lote-conta b{font-size:13px;font-weight:600}
.lote-conta span{font-family:var(--serif);font-size:15px;color:var(--ouro-luz);letter-spacing:-.01em}
.lote-botoes{display:flex;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.lote-botoes::-webkit-scrollbar{display:none}
.lote-botoes button{height:38px;padding:0 14px;border:0;border-radius:4px;background:transparent;
            color:var(--creme);font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap}
.lote-botoes button:hover{background:rgba(244,241,234,.08)}
.lote-botoes button.on{background:rgba(201,152,47,.18);color:var(--ouro-luz)}
.lote-botoes button[disabled]{opacity:.32;cursor:default;background:transparent}
.lote-fechar{flex-shrink:0;width:38px;height:38px;border:0;border-radius:4px;background:rgba(244,241,234,.08);
            color:var(--creme);font-size:20px;line-height:1;cursor:pointer}
.lote-painel{background:var(--branco);border:1px solid var(--linha);border-radius:6px;padding:18px 20px;
             margin-bottom:8px;box-shadow:0 10px 28px rgba(8,21,36,.14)}
.lote-painel[hidden],.lote-passo[hidden]{display:none}
.lote-passo strong{display:block;font-size:13.5px;font-weight:600;margin-bottom:12px}
.lote-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.lote-nota{font-size:12px;color:var(--cinza);margin-top:10px}
.lote-nota[hidden]{display:none}
.lote-passo .lote-nota:first-of-type:not(:only-child){margin-top:10px}
.lote-confirma{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.btn-perigo{background:var(--vermelho);color:#fff}
.btn-perigo:hover{color:#fff}

/* ===== NOTAS POR SITUAÇÃO ===== */
.situacoes{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:var(--branco);
           border:1px solid var(--linha);border-radius:4px;margin-bottom:16px;overflow:hidden}
.sit{display:flex;flex-direction:column;gap:6px;padding:16px 18px 15px;position:relative;
     border-left:1px solid var(--linha-2);min-width:0}
.sit:first-child{border-left:0}
.sit:hover{background:var(--fundo-suave-2);color:var(--tinta)}
.sit .num{font-size:26px}
.sit small{font-size:11.5px;color:var(--cinza);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sit-rot{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--cinza-2);
         white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sit.zero .num,.sit.zero small{color:#B3AD9F}
.sit.on::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:var(--ouro)}
.sit.on .sit-rot{color:var(--tinta)}
.sit-total{background:var(--tinta);color:var(--creme);border-left-color:var(--tinta)}
.sit-total:hover{background:var(--tinta-2);color:var(--creme)}
.sit-total .sit-rot{color:rgba(244,241,234,.62)}
.sit-total.on .sit-rot{color:var(--creme)}
.sit-total small{color:rgba(244,241,234,.62)}
.kd{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}
.kd-mut{background:#A8A293}.kd-ouro{background:var(--ouro)}.kd-verde{background:var(--verde)}
.kd-red{background:var(--vermelho)}.kd-cinza{background:#D2CCBF}
.filtros form .tag{align-self:center}
.rot-c{display:none}
.grupo-titulo{font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
              color:var(--cinza);margin:22px 0 8px;padding-left:2px}
.grupo-titulo:first-of-type{margin-top:6px}

@media (max-width:1180px){
  .situacoes{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sit:nth-child(4){border-left:0}
  .sit:nth-child(n+4){border-top:1px solid var(--linha-2)}
  .sit-total{border-top-color:var(--tinta) !important}
}
@media (max-width:900px){
  .lote{left:10px;right:10px;bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  /* duas linhas: contagem e fechar em cima, ações dividindo a largura embaixo */
  .lote-barra{flex-wrap:wrap;padding:10px 8px 8px 14px;gap:6px 8px}
  .lote-conta{flex-direction:row;align-items:baseline;gap:8px;flex:1 1 auto}
  .lote-conta b{font-size:12px}
  .lote-conta span{font-size:14px}
  .lote-fechar{width:32px;height:32px;font-size:18px;order:2}
  .lote-botoes{order:3;flex:1 1 100%;margin-left:-6px;overflow:visible}
  .lote-botoes button{flex:1 1 auto;padding:0 4px;height:36px;font-size:11.5px}
  .lote-painel{padding:16px}
  .lote-confirma .btn{flex:1}
  body.com-lote .conteudo{padding-bottom:230px}
  .situacoes{margin:0 0 14px;grid-template-columns:repeat(3,minmax(0,1fr))}
  .sit{padding:12px 12px 11px;gap:4px}
  .sit .num{font-size:21px}
  .sit-rot{font-size:11px;gap:5px}
  .rot-l{display:none}
  .rot-c{display:inline}
  .sit small{font-size:10.5px}
  .sit.on::after{left:12px;right:12px}
  th.sel,td.sel{width:36px;padding-left:10px}
}
@media print{ .lote{display:none !important} }

/* ===== BUSCA GERAL ===== */
.busca-geral{position:relative;display:flex;align-items:center}
.busca-geral input{width:100%;height:38px;padding:0 12px 0 34px;border-radius:4px;font-size:13px;
                   -webkit-appearance:none;appearance:none}
.busca-ico{position:absolute;left:11px;top:50%;transform:translateY(-50%);display:flex;pointer-events:none}
.busca-menu{margin:-8px 0 -4px}
.busca-menu input{background:rgba(244,241,234,.07);border:1px solid rgba(244,241,234,.12);color:var(--creme)}
.busca-menu input::placeholder{color:rgba(244,241,234,.42)}
.busca-menu input:focus{outline:none;border-color:rgba(227,184,90,.55);background:rgba(244,241,234,.1)}
.busca-menu .busca-ico{color:rgba(244,241,234,.45)}
.busca-mob input,.busca-pagina input{height:46px;background:var(--branco);border:1px solid var(--linha-forte);font-size:15px}
.busca-mob .busca-ico,.busca-pagina .busca-ico{color:var(--cinza)}
.busca-mob{margin-bottom:18px}
.busca-pagina{margin-bottom:18px;max-width:640px}
.busca-lista{position:absolute;left:0;top:calc(100% + 6px);z-index:60;background:var(--branco);color:var(--tinta);
             border:1px solid var(--linha);border-radius:6px;box-shadow:0 14px 34px rgba(8,21,36,.2);
             max-height:min(70vh,520px);overflow-y:auto;padding:6px 0}
.busca-menu .busca-lista{width:420px}
.busca-mob .busca-lista{right:0}
.busca-lista[hidden]{display:none}
.busca-grupo{font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--cinza);
             padding:10px 14px 4px}
.busca-item{display:flex;align-items:center;gap:12px;padding:9px 14px;color:var(--tinta)}
.busca-item:hover,.busca-item.on{background:var(--ouro-bg-2);color:var(--tinta)}
.busca-item-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.busca-item-txt b{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.busca-item-txt small{font-size:11.5px;color:var(--cinza);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.busca-item-val{font-size:12.5px;font-weight:500;white-space:nowrap;flex-shrink:0}
.busca-todos{justify-content:center;font-size:12px;font-weight:500;color:var(--ouro-texto);
             border-top:1px solid var(--linha-2);margin-top:6px;padding-top:11px}
.busca-vazio{padding:16px 14px;font-size:13px;color:var(--cinza)}
.busca-res{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--linha-2)}
.busca-res:last-child{border-bottom:0}
.busca-res-txt{display:flex;flex-direction:column;flex:1;min-width:0}
.busca-res-txt b{font-size:14px;font-weight:500}
.busca-res-val{font-size:13px;font-weight:500;white-space:nowrap}

/* abas da seção Relatórios */
.abas-secao{margin-bottom:18px}
.menu-rodape .menu-item.on{color:var(--ouro-luz)}
@media (max-width:900px){
  .abas-secao{display:flex;overflow-x:auto}
  .busca-menu{display:none}
}
.menu .busca-lista a,.menu .busca-lista a:hover{color:var(--tinta)}
.menu .busca-lista a.busca-todos{color:var(--ouro-texto)}
.busca-geral input::-webkit-search-cancel-button{filter:grayscale(1);opacity:.55;cursor:pointer}
/* dica curta em rótulo (termo financeiro) */
.dica{display:inline-flex;width:15px;height:15px;margin-left:5px;border-radius:50%;border:1px solid var(--cinza-claro);
      color:var(--cinza);font-size:10px;align-items:center;justify-content:center;cursor:help;vertical-align:1px}

/* ===== UTILITÁRIOS (gerados do codemod do design system; !important replica a força do antigo style inline; display e colunas ficam sem, para as regras de celular continuarem mandando) ===== */
.ai-c{align-items:center !important}
.ai-e{align-items:flex-end !important}
.b-0{border:0 !important}
.bg-creme{background:var(--creme) !important}
.bg-none{background:none !important}
.bg-ouro{background:var(--ouro) !important}
.c-ouro-luz{color:var(--ouro-luz) !important}
.c-tinta{color:var(--tinta) !important}
.c-vermelho{color:var(--vermelho) !important}
.col{flex-direction:column !important}
.cols-1-1{grid-template-columns:1fr 1fr}
.cols-1-1-1{grid-template-columns:1fr 1fr 1fr}
.cols-1-1-1-1{grid-template-columns:1fr 1fr 1fr 1fr}
.cols-1-1-1-2{grid-template-columns:1fr 1fr 1fr 2fr}
.cols-1-1-2{grid-template-columns:1fr 1fr 2fr}
.cols-1-2{grid-template-columns:1fr 2fr}
.cols-2-1{grid-template-columns:2fr 1fr}
.cols-2-1-1{grid-template-columns:2fr 1fr 1fr}
.cols-2-1-1-1{grid-template-columns:2fr 1fr 1fr 1fr}
.cols-2-2{grid-template-columns:2fr 2fr}
.cols-2-2-1{grid-template-columns:2fr 2fr 1fr}
.cols-2-2-1-1{grid-template-columns:2fr 2fr 1fr 1fr}
.cols-3-1{grid-template-columns:3fr 1fr}
.cols-r2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cols-r3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cols-r4{grid-template-columns:repeat(4,minmax(0,1fr))}
.d-block{display:block}
.d-flex{display:flex}
.d-inline{display:inline}
.d-inline-flex{display:inline-flex}
.d-none{display:none}
.fs-10-5{font-size:10.5px !important}
.fs-11{font-size:11px !important}
.fs-11-5{font-size:11.5px !important}
.fs-12{font-size:12px !important}
.fs-12-5{font-size:12.5px !important}
.fs-13{font-size:13px !important}
.fs-13-5{font-size:13.5px !important}
.fs-14{font-size:14px !important}
.fs-15{font-size:15px !important}
.fs-16{font-size:16px !important}
.fs-17{font-size:17px !important}
.fs-18{font-size:18px !important}
.fs-20{font-size:20px !important}
.fs-21{font-size:21px !important}
.fs-22{font-size:22px !important}
.fs-24{font-size:24px !important}
.fs-26{font-size:26px !important}
.fs-28{font-size:28px !important}
.fs-30{font-size:30px !important}
.fs-32{font-size:32px !important}
.fw-400{font-weight:400 !important}
.fw-500{font-weight:500 !important}
.fw-600{font-weight:600 !important}
.gap-10{gap:10px !important}
.gap-12{gap:12px !important}
.gap-18{gap:18px !important}
.gap-6{gap:6px !important}
.gap-8{gap:8px !important}
.grow{flex-grow:1 !important}
.h-6{height:6px !important}
.jc-c{justify-content:center !important}
.jc-s{justify-content:flex-start !important}
.jc-sb{justify-content:space-between !important}
.lh-1-5{line-height:1.5 !important}
.lh-1-6{line-height:1.6 !important}
.lh-1-7{line-height:1.7 !important}
.lh-1-8{line-height:1.8 !important}
.m-0{margin:0 !important}
.m-0-0-14{margin:0 0 14px !important}
.m-0-0-8{margin:0 0 8px !important}
.m-10-0-14{margin:10px 0 14px !important}
.m-10-0-4{margin:10px 0 4px !important}
.m-2-4-2-0{margin:2px 4px 2px 0 !important}
.m-6-0-12{margin:6px 0 12px !important}
.m-8-0{margin:8px 0 !important}
.maxw-220{max-width:220px !important}
.maxw-620{max-width:620px !important}
.maxw-720{max-width:720px !important}
.maxw-760{max-width:760px !important}
.maxw-820{max-width:820px !important}
.maxw-900{max-width:900px !important}
.maxw-960{max-width:960px !important}
.mb-10{margin-bottom:10px !important}
.mb-12{margin-bottom:12px !important}
.mb-14{margin-bottom:14px !important}
.mb-16{margin-bottom:16px !important}
.mb-18{margin-bottom:18px !important}
.mb-22{margin-bottom:22px !important}
.mb-4{margin-bottom:4px !important}
.mb-5{margin-bottom:5px !important}
.mb-6{margin-bottom:6px !important}
.mb-8{margin-bottom:8px !important}
.minw-0{min-width:0 !important}
.minw-180{min-width:180px !important}
.minw-210{min-width:210px !important}
.minw-86{min-width:86px !important}
.ml-10{margin-left:10px !important}
.ml-6{margin-left:6px !important}
.ml-8{margin-left:8px !important}
.mr-8{margin-right:8px !important}
.mt-0{margin-top:0 !important}
.mt-10{margin-top:10px !important}
.mt-12{margin-top:12px !important}
.mt-14{margin-top:14px !important}
.mt-16{margin-top:16px !important}
.mt-18{margin-top:18px !important}
.mt-20{margin-top:20px !important}
.mt-22{margin-top:22px !important}
.mt-4{margin-top:4px !important}
.mt-6{margin-top:6px !important}
.mt-8{margin-top:8px !important}
.mx-auto{margin:0 auto !important}
.op-60{opacity:0.6 !important}
.p-0{padding:0 !important}
.p-26{padding:26px !important}
.p-28{padding:28px !important}
.p-36-20{padding:36px 20px !important}
.p-48-20{padding:48px 20px !important}
.pl-30{padding-left:30px !important}
.pointer{cursor:pointer !important}
.serif{font-family:var(--serif) !important}
.shrink-0{flex-shrink:0 !important}
.span-all{grid-column:1/-1 !important}
.sr{position:absolute !important;left:-9999px !important}
.ta-c{text-align:center !important}
.ta-r{text-align:right !important}
.w-100p{width:100% !important}
.w-110{width:110px !important}
.w-120{width:120px !important}
.w-300{width:300px !important}
.w-40{width:40px !important}
.w-52{width:52px !important}
.w-6{width:6px !important}
.w-60{width:60px !important}
.w-70{width:70px !important}
.w-80{width:80px !important}
.w-88{width:88px !important}
.w-90{width:90px !important}
.w-92{width:92px !important}
.wrap{flex-wrap:wrap !important}

/* utilitários adicionais */
.ai-s{align-items:flex-start !important}
.bb-linha{border-bottom:1px solid var(--linha) !important}
.bg-tinta{background:var(--tinta) !important}
.bt-linha{border-top:1px solid var(--linha) !important}
.bt-linha-2{border-top:1px solid var(--linha-2) !important}
.c-cinza{color:var(--cinza) !important}
.c-creme{color:var(--creme) !important}
.d-inline-block{display:inline-block}
.fx-220{flex:1 1 220px !important}
.fx-260{flex:1 1 260px !important}
.gap-16{gap:16px !important}
.invisivel{visibility:hidden !important}
.m-12-0-0{margin:12px 0 0 !important}
.m-16-0-14{margin:16px 0 14px !important}
.m-18-0-14{margin:18px 0 14px !important}
.maxw-420{max-width:420px !important}
.ml-12{margin-left:12px !important}
.mt-3{margin-top:3px !important}
.p-0-0-12{padding:0 0 12px !important}
.p-10-12{padding:10px 12px !important}
.p-12{padding:12px !important}
.p-12-0{padding:12px 0 !important}
.p-14{padding:14px !important}
.p-14-0-4{padding:14px 0 4px !important}
.p-16-18{padding:16px 18px !important}
.p-20-24{padding:20px 24px !important}
.p-4{padding:4px !important}
.p-5-7{padding:5px 7px !important}
.p-6-10{padding:6px 10px !important}
.p-6-18-14{padding:6px 18px 14px !important}
.p-8-0-20{padding:8px 0 20px !important}
.pt-12{padding-top:12px !important}
.pt-14{padding-top:14px !important}
.pt-16{padding-top:16px !important}
.pt-18{padding-top:18px !important}
.r-3{border-radius:3px !important}
.r-4{border-radius:4px !important}
.ta-l{text-align:left !important}
.td-none{text-decoration:none !important}
.w-auto{width:auto !important}
/* ===== COMPONENTES (design system) ===== */
.codigo{background:var(--creme);padding:10px 12px;border-radius:3px;font-family:ui-monospace,Menlo,Consolas,monospace;
        font-size:11px;line-height:1.5;word-break:break-all}
.codigo-alerta{background:#FBF7E8;padding:6px 8px}
.codigo-escuro{background:rgba(255,255,255,.08);padding:2px 6px;border-radius:3px;margin-right:6px;font-family:ui-monospace,Menlo,Consolas,monospace}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;word-break:break-all}
.nota-escura{font-size:12.5px;line-height:1.75;margin-top:10px;color:rgba(244,241,234,.78)}
.painel-linha{padding:16px;background:var(--fundo-suave);border-top:1px solid var(--linha-2)}
.painel-linha-tr{display:none;background:var(--fundo-suave)}
.menu-linha{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--linha-2);min-height:52px}
.c-ouro{color:var(--ouro) !important}.c-inherit{color:inherit !important}.ff-inherit{font-family:inherit}
.c-creme-40{color:rgba(244,241,234,.4) !important}.mt-24{margin-top:24px !important}
.lista-limpa{list-style:none}.lista-limpa::-webkit-details-marker{display:none}
.rolagem-420{max-height:420px;overflow:auto;padding-right:6px}
.ancora-90{position:absolute;margin-top:-90px}
.inp-mini{width:auto;display:inline-block;padding:6px 10px;font-size:12px}
.inp-tabela{padding:5px 7px;font-size:12px;text-align:right}
.card-linha{display:flex !important;flex-direction:row !important;align-items:center !important;gap:14px}
.tela-escolha{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:60px 20px 40px;gap:36px}
.gap-0-24{gap:0 24px}
.m-18-0-14{margin:18px 0 14px !important}.m-18-0-20{margin:18px 0 20px !important}
.cols-1-1-1-a{grid-template-columns:1fr 1fr 1fr auto}
.cols-2-1-1-1-a{grid-template-columns:2fr 1fr 1fr 1fr auto}
.cols-1-1-2-a{grid-template-columns:1fr 1fr 2fr auto}
.cols-1-2-a{grid-template-columns:1fr 2fr auto}
.cols-3-a{grid-template-columns:3fr auto}
.cols-2-1-a{grid-template-columns:2fr 1fr auto}
.cols-2-a-a{grid-template-columns:2fr auto auto}
.cols-2-2-1-a{grid-template-columns:2fr 2fr 1fr auto}
.cols-exportar{grid-template-columns:2fr 1fr 1fr 1.4fr auto}
.cols-doc{grid-template-columns:1.2fr auto 1fr}
.cols-endereco{grid-template-columns:2fr 60px 1fr}
.cols-plano{grid-template-columns:100px 2fr 1fr}
/* estados */
.apagado{opacity:.55}
.dre-total td{background:var(--creme);font-weight:600}
.dre-final td{background:var(--tinta);color:var(--creme);font-family:var(--serif);font-size:15px}
td.neg{color:var(--vermelho)}
.rel-item{display:flex;flex-direction:column;gap:3px;padding:13px 16px;border-radius:3px;background:var(--branco);border:1px solid var(--linha)}
.rel-item small{font-size:11px;color:var(--cinza)}
.rel-item.on{background:var(--tinta);color:var(--creme);border-color:var(--tinta)}
.rel-item.on small{color:rgba(244,241,234,.62)}
.farol{width:10px;height:10px;border-radius:5px;margin-top:5px;flex-shrink:0;background:var(--vermelho)}
.farol.ok{background:var(--verde)}
.card.kpi.selecionado{border-color:var(--ouro)}
.check-ok{color:#6FCF97}.check-alerta{color:var(--ouro-luz)}.check-txt{color:rgba(244,241,234,.75)}
.aba-n{display:inline-flex;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:9px;
       background:var(--ouro);color:var(--tinta);font-size:10.5px;font-weight:600;align-items:center;justify-content:center}
.aba.on .aba-n{background:var(--ouro-luz)}
/* manifestação de NF-e */
.manifesto{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--fundo-suave);border:1px solid var(--linha-2);border-radius:3px}
.manifesto-acoes{margin-left:auto}
.manifesto-form{display:flex;flex-direction:column;gap:8px;margin-top:10px;min-width:280px}
.radio-linha{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}
.inp-leitura{display:flex;align-items:center;background:var(--creme);color:var(--tinta);cursor:default}
.faixa-demo{background:var(--ouro-bg);border:1px solid var(--ouro-borda);color:var(--ouro-texto);border-radius:4px;
            padding:8px 14px;font-size:12px;font-weight:500;margin-bottom:14px}

/* ===== AJUSTES DE CELULAR (layouts que quebravam) ===== */
@media (max-width:900px){
  /* linha de "vence em 7 dias": data em cima, valor na mesma linha do nome */
  .lista-item{align-items:flex-start;gap:10px;flex-wrap:wrap}
  .lista-item .data{width:auto;min-width:46px}
  .lista-item .info{flex:1 1 60%}
  .lista-item .info b{overflow-wrap:anywhere}
  .lista-item > .t-forte{margin-left:auto;white-space:nowrap;align-self:center}

  /* saldos por conta: um cartão por linha, sem número cortado */
  .conta-mini{min-width:0}
  .conta-mini b,.conta-mini .num{overflow-wrap:anywhere}

  /* tabelas: rolam de lado inteiras, sem espremer coluna nem quebrar palavra */
  .tabela-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  /* filho de grid/flex precisa disso para poder encolher e rolar por dentro */
  .col-rel > *,.col-principal > *,.bloco > *,.grid > *{min-width:0}
  .tabela-wrap table{min-width:640px}
  .tabela-wrap th,.tabela-wrap td{white-space:nowrap}
  .tabela-wrap td .t-sub,.tabela-wrap td small{white-space:normal}
  .tabela-wrap thead th:first-child,
  .tabela-wrap tbody td:first-child{position:sticky;left:0;background:var(--branco);z-index:2}
  .tabela-wrap tbody tr:nth-child(even) td:first-child{background:var(--fundo-suave)}
  .dre-final td:first-child{background:var(--tinta)}
  .dre-total td:first-child{background:var(--creme)}

  /* valor do KPI: uma linha só, e o tamanho acompanha a largura da tela,
     para R$ 29.002,86 não vazar do card em aparelho estreito */
  .kpi .num{font-size:clamp(16px,5.2vw,22px);white-space:nowrap;letter-spacing:-.015em}
  .card-escuro.kpi .num{font-size:clamp(17px,5.4vw,24px)}
  .kpi{padding-left:14px;padding-right:14px}

  /* gráfico de barras não herda altura do card vizinho */
  .grid > .card > .colunas{height:120px}
}
.faixa-race{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.faixa-race-acoes{display:flex;gap:16px;flex-shrink:0}

/* tamanho do número nos cartões de indicador, no computador; no celular
   vale a regra responsiva do bloco de celular */
@media (min-width:901px){
  .kpi .num{font-size:24px}
  .card-escuro.kpi .num{font-size:26px}
  .conta-mini .num{font-size:18px}
}


.kpi .num,.conta-mini .num{display:block;max-width:100%;overflow:hidden}

/* telas bem estreitas (iPhone SE e afins): indicador ocupa a linha inteira,
   porque em meia tela um valor como R$ 27.724,16 sai do cartão */
@media (max-width:379px){
  .grid:has(> .card.kpi){grid-template-columns:1fr}
  .kpi .num{font-size:22px}
  .card-escuro.kpi .num{font-size:24px}
}.trava-lista{display:flex;flex-direction:column;gap:10px}
.trava-mes{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
           padding:12px 14px;background:var(--creme);border-radius:3px}
.trava-mes form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:900px){
  /* campo de data no iPhone não pode sair do cartão */
  input[type=date].inp,input[type=month].inp{min-width:0;max-width:100%;width:100%;box-sizing:border-box;
    -webkit-appearance:none;appearance:none}
  .trava-mes form{width:100%}
  .trava-mes form .inp{flex:1 1 160px}
}
/* troca de senha pelo painel: abre na própria linha do usuário */
.linha-senha td{background:var(--creme);padding:14px 18px}
.form-senha{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.form-senha .inp{flex:1 1 200px;max-width:260px;min-width:0}
@media (max-width:900px){.form-senha .inp{max-width:none}}
/* × dentro da etiqueta de acesso: alvo de toque confortável e discreto */
.tag-x{background:none;border:0;cursor:pointer;color:var(--cinza);font-size:15px;line-height:1;
       padding:0 2px 0 8px;margin-left:2px;vertical-align:middle}
.tag-x:hover,.tag-x:focus-visible{color:var(--vermelho)}
.maxw-120{max-width:120px !important}
.maxw-160{max-width:160px !important}
/* o "editar" flutua no canto do cartão da conta, sem virar item do grid */
.conta-box{position:relative;display:flex}
.conta-box > .card{flex:1;min-width:0}
.conta-editar{position:absolute;bottom:8px;right:10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
              color:var(--ouro-texto);background:rgba(244,241,234,.9);border-radius:3px;padding:2px 6px;
              text-decoration:none;opacity:0;transition:opacity .12s}
.conta-box:hover .conta-editar,.conta-editar:focus-visible{opacity:1}
.conta-editar.no-escuro{background:rgba(8,21,36,.6);color:var(--ouro)}
@media (hover:none){.conta-editar{opacity:.9}}
/* navegação de páginas das listas */
.paginas{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}
.pag-botoes{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.pag-item{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;
          border:1px solid var(--linha);border-radius:3px;background:var(--branco);color:var(--tinta);
          font-size:12.5px;text-decoration:none}
.pag-item:hover{border-color:var(--ouro)}
.pag-on{background:var(--tinta);color:var(--creme);border-color:var(--tinta);font-weight:600}
.pag-off{opacity:.4;pointer-events:none}
.pag-sep{color:var(--cinza);padding:0 2px}
@media (max-width:900px){.paginas{padding:0 18px}.pag-conta{width:100%}}
/* saldo do contrato licitado */
.saldo-contrato{margin-top:6px;max-width:320px}
.saldo-barra{height:5px;border-radius:3px;background:var(--linha);overflow:hidden}
.saldo-barra i{display:block;height:100%;background:var(--ouro)}
.saldo-contrato.estourou .saldo-barra i{background:var(--vermelho)}

/* ===== LAYOUT DO RECIBO (Configurações) ===== */
.escolha{display:flex;flex-wrap:wrap;gap:8px}
.escolha label{position:relative;display:flex;cursor:pointer;margin:0}
.escolha label > span{flex:1}
.escolha input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.escolha span{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 14px;background:var(--branco);
              border:1px solid var(--linha);border-radius:3px;font-size:13px;color:var(--cinza-2);
              transition:border-color .15s,background .15s}
.escolha svg{width:17px;height:22px;flex-shrink:0;color:var(--cinza)}
.escolha label:hover span{border-color:#D3CDBF}
.escolha input:checked + span{border-color:var(--ouro);background:var(--ouro-bg);color:var(--tinta);font-weight:500}
.escolha input:checked + span svg{color:var(--ouro-texto)}
.escolha input:focus-visible + span{outline:2px solid var(--ouro-luz);outline-offset:1px}
.cor-linha{display:flex;align-items:center;gap:10px}
.cor-linha .inp{max-width:140px;text-transform:uppercase}
.cor-amostra{width:38px;height:38px;flex-shrink:0;border-radius:3px;border:1px solid var(--linha)}
.layout-acoes{display:flex;justify-content:flex-end;gap:10px;padding-top:16px;margin-top:4px;border-top:1px solid var(--linha-2)}
@media (max-width:900px){
  .escolha label{flex:1 1 0;min-width:0}
  .escolha span{justify-content:center;padding:8px 10px}
  .layout-acoes{flex-direction:column-reverse}
  .layout-acoes .btn{width:100%}
}

/* salário mínimo de referência (Configurações) */
.bloco-sm{max-width:100%;overflow:hidden}
.bloco-sm .tabela-wrap{max-width:100%}
.quebra{white-space:normal;overflow-wrap:anywhere}
.card-t .quebra{white-space:normal;flex-shrink:1;min-width:0}
@media (max-width:900px){
  /* no celular o histórico vira lista: data e valor na linha, observação e ação embaixo */
  .tabela-sm{overflow:visible}
  .tabela-sm table{min-width:0;width:100%}
  .tabela-sm thead{display:none}
  .tabela-sm table,.tabela-sm tbody{display:block}
  .tabela-sm tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 14px;
                border-bottom:1px solid var(--linha)}
  .tabela-sm tr:last-child{border-bottom:0}
  .tabela-sm td{display:block;padding:0;border:0;white-space:normal;position:static;background:none !important}
  .tabela-sm td:nth-child(3){grid-column:1 / 2;font-size:12.5px}
  .tabela-sm td:nth-child(4){grid-column:2 / 3;align-self:end}
  .tabela-sm td:nth-child(3):empty{display:none}
}

/* modelos de plano de contas */
.ml-auto{margin-left:auto}
.mb-0{margin-bottom:0}
.tabela-plano table{min-width:760px}
.tabela-plano td{padding-top:6px;padding-bottom:6px}
.tabela-plano .inp{min-height:36px;padding-top:6px;padding-bottom:6px}
.tabela-plano .inp-cod{width:96px}
.tabela-plano td:nth-child(2){min-width:280px;width:36%}
.tabela-plano td:nth-child(3) .inp{width:200px}
.tabela-plano td:nth-child(4){min-width:230px}

/* atualizar pela Receita */
.btn-sel{border-color:var(--tinta);color:var(--tinta);font-weight:600}
.barra-prog{height:4px;background:var(--linha-2);border-radius:2px;overflow:hidden}
.barra-prog i{display:block;height:100%;width:0;background:var(--ouro);transition:width .3s}
.rf-item{padding:14px 0;border-bottom:1px solid var(--linha-2)}
.rf-item:last-child{border-bottom:0}
.rf-item.emdia{opacity:.65}
.rf-topo{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.rf-campo{display:grid;grid-template-columns:18px 130px minmax(0,1fr);gap:10px;align-items:baseline;padding:4px 0;font-size:13px;cursor:pointer}
.rf-rot{color:var(--cinza);font-size:12px}
.rf-val{overflow-wrap:anywhere}
.ml-6{margin-left:6px}
.barra-acao{position:sticky;bottom:0;background:var(--creme);padding:12px 0}
@media (max-width:900px){
  .rf-campo{grid-template-columns:18px minmax(0,1fr)}
  .rf-campo .rf-val{grid-column:2}
  .barra-acao{bottom:64px}
}

/* aviso com ação à direita (quebra para baixo no celular) */
.aviso.aviso-acao{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.aviso.aviso-acao > span{flex:1 1 420px;min-width:0}
.aviso.aviso-acao > .btn{flex:0 0 auto}

/* ações no fim de uma linha de lista */
.acoes-linha{display:flex;gap:18px;align-items:center;white-space:nowrap;flex-shrink:0}
a.info{text-decoration:none;min-width:0}
a.info:hover b{color:var(--ouro)}

/* ---- Faturamento ---- */
.fat-topo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.fat-mes{display:flex;align-items:center;gap:8px}
.fat-mes .inp{width:190px}
.fat-seta{min-width:44px;padding-left:0;padding-right:0;font-size:18px;line-height:1}
button.fat-kpi{text-align:left;cursor:pointer;font:inherit;color:inherit;width:100%}
button.fat-kpi:hover{border-color:var(--ouro)}
.fat-kpi-alerta{border-color:var(--vermelho-borda);background:var(--vermelho-bg)}
.fat-card{padding:0;overflow:hidden}
.fat-barra{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:16px 18px;border-bottom:1px solid var(--linha)}
.fat-busca{flex:1 1 240px;max-width:360px}
.fat-chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--linha);background:var(--branco,#fff);border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;cursor:pointer;color:inherit}
.chip:hover{border-color:var(--ouro)}
.chip.on{background:var(--tinta);border-color:var(--tinta);color:#fff}
.fat-tipo{width:auto;min-width:170px}
.fat-data{margin-left:auto}
.fat-tabela{border:0;border-radius:0}
.fat-tabela table{min-width:0}
.fat-tabela td{vertical-align:middle}
.ord{background:none;border:0;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.ord::after{content:attr(data-dir);margin-left:4px;color:var(--ouro)}
.ord.on{color:var(--tinta)}
.fat-det{max-width:260px;white-space:normal}
.fat-links{display:inline-flex;gap:14px;justify-content:flex-end;align-items:center}
button.fat-kpi.card-escuro{color:#fff}
button.fat-kpi.card-escuro .num{color:#fff}
.fat-barra .fat-tipo{flex:0 0 190px;width:190px}
.fat-rodape{padding:10px 18px 14px;margin:0}
.fat-acao{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:12px;
  padding:14px 18px;background:var(--branco,#fff);border:1px solid var(--linha);border-radius:4px;box-shadow:0 -6px 18px rgba(8,21,36,.06)}
.fat-acao .btn{margin-left:auto}
.fat-acao.ativo{border-color:var(--ouro)}
.fat-sel{font-size:14px}
@media (max-width:900px){
  .fat-busca{max-width:none;flex-basis:100%}
  .fat-data{margin-left:0}
  .fat-tabela thead{display:none}
  .fat-tabela table,.fat-tabela tbody{display:block}
  .fat-tabela tr{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:2px 10px;padding:12px 14px;border-bottom:1px solid var(--linha)}
  .fat-tabela td{display:block;padding:0;border:0;white-space:normal}
  .fat-tabela td:nth-child(1){grid-row:1 / span 3}
  .fat-tabela td:nth-child(2){grid-column:2}
  .fat-tabela td:nth-child(5){grid-column:3;grid-row:1;text-align:right}
  .fat-tabela td:nth-child(3){grid-column:2 / span 2;font-size:12.5px;color:var(--cinza)}
  .fat-tabela td:nth-child(4){display:none}
  .fat-tabela td:nth-child(6){grid-column:2 / span 2}
  .fat-tabela td:nth-child(7){grid-column:2 / span 2;text-align:left}
  .fat-barra .fat-tipo{flex:1 1 100%;width:100%}
  .fat-acao{bottom:64px;flex-wrap:nowrap;gap:10px;padding:10px 12px}
  .fat-acao .btn{padding:10px 14px;white-space:nowrap}
  .fat-sel{font-size:13px;line-height:1.3}
}
.so-mob{display:none}
@media (max-width:900px){ .so-mob{display:inline} }
.secao-card{margin-top:18px;padding-top:16px;border-top:1px solid var(--linha)}
.secao-card .lista-item{border-bottom:0}

/* ---- Relatórios: sintético/analítico, grupos e filtros próprios ---- */
.segmento{display:inline-flex;border:1px solid var(--linha);border-radius:999px;overflow:hidden;background:var(--branco,#fff)}
.segmento a{padding:7px 16px;font-size:13px;color:inherit;text-decoration:none}
.segmento a.on{background:var(--tinta);color:#fff}
tr.dre-grupo td{font-weight:600;font-size:12.5px}
tr.dre-grupo td:first-child{padding-left:22px}
tr.dre-conta td{font-size:12px;color:var(--cinza)}
tr.dre-conta td:first-child{padding-left:40px}
tr.fx-sec td{font-weight:600;border-top:1px solid var(--linha)}
tr.fx-prev td{font-size:12.5px;color:var(--cinza);font-style:italic}
.rel-filtros{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.rel-filtros .campo{min-width:140px}
.rel-filtros select.inp{max-width:260px}
.tab-grupos tr.grp-cab td{background:var(--creme);font-weight:600;padding-top:10px;padding-bottom:10px}
.tab-grupos tr.grp-sub td{font-weight:600;font-size:12.5px;border-top:1px solid var(--linha)}
.tab-grupos tbody + tbody tr.grp-cab td{border-top:10px solid var(--branco,#fff)}

/* ---- Plano de contas: edição direta ---- */
.pc-acoes{display:inline-flex;gap:14px;align-items:center;margin-left:auto}
.pc-acoes .pc-acao{margin:0}
.pc-edicao{padding:12px 18px 16px;background:var(--creme);border-bottom:1px solid var(--linha)}
.pc-edicao .form-linha{margin-bottom:10px}
.cols-pc-ed{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,3fr);gap:10px}
.pc-grupo{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pc-ed-grupo summary{list-style:none;cursor:pointer;font-size:11px}
.pc-ed-grupo summary::-webkit-details-marker{display:none}
@media (max-width:600px){ .cols-pc-ed{grid-template-columns:1fr} }
/* a tabela larga rola dentro da própria caixa; a coluna do relatório não empurra a página */
.col-rel > *, .col-principal > *{min-width:0}
.faixas{font-size:12px;line-height:1.7}
.faixas div{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.faixas span{color:var(--cinza)}
/* lista longa dentro do card, com rolagem própria */
.lista-rolagem{max-height:430px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}
@media (max-width:900px){ .lista-rolagem{max-height:360px} }

/* ---- lista em que dá para digitar ou escolher ---- */
.sel-busca{position:relative}
.sel-busca .sel-original{position:absolute !important;opacity:0 !important;pointer-events:none !important;width:1px !important;height:1px !important;left:0;bottom:0}
.sel-campo{padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--cinza) 50%),linear-gradient(135deg,var(--cinza) 50%,transparent 50%);
  background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.sel-lista{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:60;max-height:280px;overflow-y:auto;background:var(--branco,#fff);
  border:1px solid var(--linha);border-radius:6px;box-shadow:0 10px 28px rgba(8,21,36,.12);padding:4px}
.sel-item{padding:8px 10px;border-radius:4px;cursor:pointer;font-size:13.5px;line-height:1.35}
.sel-item:hover,.sel-item.on{background:var(--creme)}
.sel-item.atual{font-weight:600}
.sel-item.sel-vazio{color:var(--cinza)}
.sel-nada{padding:10px;color:var(--cinza);font-size:13px}

/* ---- Cobranças: abas ---- */
.abas-cob{display:flex;gap:4px;padding:10px 14px 0;border-bottom:1px solid var(--linha);overflow-x:auto}
.aba-cob{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font:inherit;font-size:14px;color:var(--cinza);cursor:pointer;white-space:nowrap}
.aba-cob .qtd{display:inline-block;min-width:20px;padding:1px 7px;margin-left:4px;border-radius:999px;background:var(--creme);font-size:11.5px;color:var(--tinta)}
.aba-cob.on{color:var(--tinta);border-bottom-color:var(--ouro);font-weight:600}
.w-160{width:160px}
.cob-grupo{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cob-par{display:inline-flex;gap:8px;align-items:center}
.cob-par .inp{width:auto;min-width:150px}
@media (max-width:900px){ .cob-grupo{width:100%} .cob-par{flex:1 1 100%} .cob-par .inp{flex:1} }
@media (max-width:900px){
  #cob-acoes{flex-wrap:wrap;gap:10px}
  #cob-acoes .fat-sel{flex:1 1 100%}
  #cob-acoes .btn{flex:1 1 auto}
  .abas-cob{max-width:100%;scrollbar-width:none}
  .abas-cob::-webkit-scrollbar{display:none}
  .fat-card{max-width:100%}
}
@media (max-width:900px){
  #cob-acoes:not(.ativo){display:none !important}   /* no celular a barra só aparece com algo marcado */
  .fat-barra .campo{flex:1 1 130px;min-width:0}
  .fat-barra input[type=date]{min-width:0;width:100%}
}
@media (max-width:900px){
  .fat-tabela tfoot, .fat-tabela tfoot tr{display:block}
  .fat-tabela tfoot tr{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--creme)}
  .fat-tabela tfoot td{display:block;padding:0;border:0;background:none !important}
  .fat-tabela tfoot td:empty{display:none}
  .cob-par .inp{min-width:0}
  .cob-par .btn{flex:1 1 auto;min-width:0;padding-left:10px;padding-right:10px}
}
@media (max-width:900px){
  .cob-par{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}
  .cob-par > *{width:100% !important;min-width:0 !important;margin:0}
}

/* ---- janela de confirmação e botões ---- */
.ui-modal{position:fixed;inset:0;z-index:200;background:rgba(8,21,36,.45);display:flex;align-items:center;justify-content:center;padding:20px}
.ui-modal[hidden]{display:none}
.ui-modal-caixa{background:var(--branco,#fff);border-radius:8px;max-width:440px;width:100%;padding:24px 24px 18px;box-shadow:0 24px 60px rgba(8,21,36,.25)}
.ui-modal-caixa p{margin:0 0 20px;font-size:15px;line-height:1.55;white-space:pre-line;color:var(--tinta)}
.ui-modal-botoes{display:flex;justify-content:flex-end;gap:10px}
.btn-perigo{background:var(--vermelho) !important;border-color:var(--vermelho) !important;color:#fff !important}
.btn.processando{opacity:.75;cursor:progress}

/* ---- gráficos e indicadores ---- */
.grafico-caixa{margin:0 0 16px}
.grafico{width:100%;height:190px;display:block}
.grafico .g-zero{stroke:var(--linha);stroke-width:1}
.grafico .g-rot{font-size:11px;fill:var(--cinza);text-anchor:middle}
.grafico .g-eixo{font-size:10px;fill:var(--cinza)}
.g-legenda{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--cinza);margin-top:6px}
.g-legenda i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.g-legenda i.linha{height:3px;border-radius:2px;vertical-align:3px;width:14px}
.ind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.ind-card{padding:16px 18px}
.ind-card .k{display:block;margin-bottom:6px}
.ind-card .num{font-family:var(--serif);font-size:22px;display:block}
.ind-card small{display:block;color:var(--cinza);font-size:12px;line-height:1.45;margin-top:6px}
.rel-meus{padding:10px 12px 12px;margin-bottom:10px;border:1px solid var(--linha);border-radius:6px;background:var(--branco,#fff)}
.rel-meus .k{display:block;margin-bottom:6px}
.rel-meu{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;padding:3px 0}
.rel-meu a{color:var(--tinta);text-decoration:none}
.rel-meu a:hover{text-decoration:underline}
.rel-salvar summary{list-style:none;cursor:pointer;font-family:var(--sans,inherit)}
.rel-salvar summary::-webkit-details-marker{display:none}
.rel-salvar form .inp{min-width:220px}
.ind-faixa .ind-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
a.ind-card{text-decoration:none;color:inherit}
a.ind-card:hover{border-color:var(--ouro)}
.ind-escolha{position:absolute;right:0;z-index:40;background:var(--branco,#fff);border:1px solid var(--linha);border-radius:6px;padding:12px 14px;box-shadow:0 10px 28px rgba(8,21,36,.12);min-width:250px}
.ind-faixa details{position:relative}
.marcador-lin{display:flex;gap:8px;align-items:center;font-size:13px;padding:3px 0;cursor:pointer}
.api-cod{background:var(--tinta);color:#E9E5DB;border-radius:6px;padding:12px 14px;font-size:12px;line-height:1.55;overflow-x:auto;white-space:pre;margin:6px 0 12px}
.api-resp{background:var(--creme);color:var(--tinta)}
.maxw-900{max-width:900px}
.cols-3-1-1{grid-template-columns:3fr 1fr 1fr}
.cols-2-2-1-1-1{grid-template-columns:2fr 2fr 1fr 1fr 1fr}
textarea.desc-nota{resize:vertical;min-height:96px;line-height:1.5;font:inherit;padding:10px 12px}
.nf-opcoes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.nf-opcoes .marcador{margin:0}
.inp-mini{display:inline-block;width:auto;padding:2px 6px;font-size:12px;height:auto}
.cols-1-1-1{grid-template-columns:1fr 1fr 1fr}
@media (max-width:900px){ .nf-opcoes{grid-template-columns:1fr} }
.desc-acoes{display:inline-flex;gap:16px;align-items:center}
.nf-modelo{grid-column:2}
@media (max-width:900px){ .nf-modelo{grid-column:auto} }
.nf-atalhos{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--linha)}
.btn-sm{padding:7px 12px;font-size:12.5px}
.inp-mini-sel{width:auto;min-width:180px;padding:7px 10px;font-size:13px}
.nf-recem{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-color:var(--verde-borda);background:var(--verde-bg)}
.previa-grade{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:18px;align-items:start}
.previa-resumo{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 18px}
.previa-resumo b{display:block;font-size:16px;margin-top:3px}
.previa-checks div{display:flex;gap:10px;align-items:flex-start;padding:7px 0;font-size:13.5px;border-bottom:1px solid var(--linha-2)}
.previa-checks div:last-child{border-bottom:0}
.pc-ico{flex:0 0 20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.pc-ok .pc-ico{background:var(--verde-bg);color:var(--verde)}
.pc-alerta .pc-ico{background:var(--ouro-bg);color:var(--ouro-texto)}
.pc-erro .pc-ico{background:var(--vermelho-bg);color:var(--vermelho)}
.pc-erro{color:var(--vermelho)}
.previa-pdf{overflow:hidden;min-height:760px}
.previa-pdf iframe{width:100%;height:82vh;min-height:760px;border:0;display:block}
@media (max-width:900px){ .previa-grade{grid-template-columns:1fr} .previa-resumo{grid-template-columns:repeat(2,1fr)} .previa-pdf iframe{height:70vh;min-height:520px} }
.previa-pdf-topo{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--linha)}
.nf-ret{border:1px solid var(--linha);border-radius:6px;padding:10px 14px;background:var(--fundo-suave)}
.nf-ret summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.nf-ret-campos{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px}
.nf-subst{border:1px solid var(--ouro-borda);background:var(--ouro-bg);border-radius:6px;padding:12px 14px}
.cols-1-2{grid-template-columns:1fr 2fr}
@media (max-width:900px){ .nf-ret-campos{grid-template-columns:repeat(2,1fr)} }
.barra-uso{height:6px;background:var(--linha-2);border-radius:3px;margin-top:6px;overflow:hidden}
.barra-uso i{display:block;height:100%;background:var(--ouro)}
.linha-edicao details.nf-ret > summary{height:auto;overflow:visible;padding:0}
@media (max-width:900px){ .rel-dica{flex:1 1 100%} }
.rel-dica{white-space:normal !important;min-width:0}
.card-t.wrap{flex-wrap:wrap}
.nf-trib{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:18px;margin-top:10px}
.nf-trib-bloco .k{display:block;margin-bottom:8px}
.nf-trib-linhas div{display:grid;grid-template-columns:1fr auto 110px;gap:10px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--linha-2)}
.nf-trib-linhas div b{text-align:right}
.nf-trib-linhas div:last-child{border-bottom:0}
.nf-ret-campos [hidden]{display:none}
@media (max-width:900px){ .nf-trib{grid-template-columns:1fr} }
.nf-trib{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:18px;margin-top:10px}
.nf-trib-bloco .k{display:block;margin-bottom:8px}
.nf-trib-linhas div{display:grid;grid-template-columns:1fr auto 110px;gap:10px;font-size:13px;padding:5px 0;border-bottom:1px solid var(--linha-2)}
.nf-trib-linhas div b{text-align:right}
.nf-trib-linhas div:last-child{border-bottom:0}
.nf-ret-campos .campo[hidden]{display:none}
.nf-ret-campos{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){ .nf-trib{grid-template-columns:1fr} }

/* ---- Visão geral nova ---- */
.painel-kpis .kpi .num{font-size:23px}
.kpi-alerta{background:var(--vermelho-bg);border-color:var(--vermelho-borda)}
.bancos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.banco-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;text-decoration:none;color:inherit}
.banco-card:hover{border-color:var(--ouro)}
.banco-card .banco-nome{font-size:13px;color:var(--cinza-2)}
.banco-card .num{font-family:var(--serif);font-size:21px}
.banco-card small{font-size:11.5px;color:var(--cinza)}
.banco-fora{background:var(--fundo-suave)}
.painel-bancos details{position:relative}
.painel-baixo{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:16px;align-items:start}
.dre-mes{width:100%;font-size:13px}
.dre-mes th{font-size:10.5px}
.dre-mes td,.dre-mes th{padding:10px 8px}
.dre-mes td:first-child,.dre-mes th:first-child{padding-left:0}
.dre-mes .dm-sub td{background:var(--fundo-suave);font-weight:600}
.dre-mes .dm-final td{font-weight:700;font-size:14px;border-bottom:0;background:none;color:inherit}
.sit{display:inline-block;font-size:11px;padding:2px 8px;border-radius:99px;white-space:nowrap}
.sit-ok,.sit-bom{background:var(--verde-bg);color:#14502F}
.sit-mau{background:var(--vermelho-bg);color:#7E1F1F}
.es-tot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}
.es-tot > div{border-radius:6px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.es-tot b{font-family:var(--serif);font-size:17px;font-weight:400}
.es-ent{background:var(--verde-bg)} .es-ent .k,.es-ent b{color:#14502F}
.es-sai{background:var(--vermelho-bg)} .es-sai .k,.es-sai b{color:var(--vermelho)}
.es-sal{background:var(--creme)}
@media (max-width:1100px){ .painel-baixo{grid-template-columns:1fr} }
@media (max-width:900px){ .painel-kpis{grid-template-columns:repeat(2,minmax(0,1fr)) !important} .painel-kpis .card-escuro{grid-column:1 / -1} .es-tot{grid-template-columns:1fr 1fr} .es-sal{grid-column:1 / -1} }
.painel-baixo > *{min-width:0}
.kpi-es{display:flex;flex-direction:column;gap:2px}
.es-tot b{white-space:nowrap;font-size:clamp(14px,1.25vw,17px)}
.painel-kpis .kpi-es{align-items:flex-start;text-align:left;margin-left:0}
.dre-mes .dm-fora td{color:var(--cinza);font-style:italic;background:var(--fundo-suave)}
.es-comp{font-size:12px;color:var(--cinza-2);line-height:1.5;padding:2px 0 10px;border-bottom:1px solid var(--linha-2);margin-bottom:4px}
.es-comp p{margin:0 0 4px}
.es-dia{padding:4px 0 12px}
.es-dia + .es-dia{border-top:1px solid var(--linha);padding-top:14px}
.es-dia-topo{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.es-dia-topo > b{font-size:14px}
.es-dia-tot{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}
.es-lista{max-height:260px;overflow-y:auto}
.es-lista .lista-item{padding-left:0}
.es-vazio{padding:6px 0}
/* entradas e saídas: uma rolagem só, com barra sempre visível */
.es-lista{max-height:none;overflow:visible}
.es-rolagem{max-height:560px;overflow-y:auto;padding-right:10px;margin-right:-6px;scrollbar-width:thin;scrollbar-color:var(--linha-forte) transparent;scrollbar-gutter:stable}
.es-rolagem::-webkit-scrollbar{width:8px}
.es-rolagem::-webkit-scrollbar-track{background:var(--fundo-suave);border-radius:4px}
.es-rolagem::-webkit-scrollbar-thumb{background:var(--linha-forte);border-radius:4px}
.es-rolagem::-webkit-scrollbar-thumb:hover{background:var(--cinza-claro)}
@media (max-width:900px){ .es-rolagem{max-height:460px} }
.painel-baixo .es-rolagem{max-height:470px}
.painel-baixo .es-rolagem .lista-item{padding-left:0}
/* entradas e saídas acompanham a altura do resultado do mês */
@media (min-width:1101px){
  .painel-baixo{align-items:stretch}
  .painel-baixo > section:nth-child(2){display:flex;flex-direction:column;position:relative}
  .painel-baixo > section:nth-child(2) .es-rolagem{flex:1 1 0;min-height:220px;max-height:none}
}
.fat-rodada{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;border-radius:6px;background:var(--verde-bg);border:1px solid var(--verde-borda)}
.lt-barra{height:10px;background:var(--linha-2);border-radius:5px;overflow:hidden}
.lt-barra i{display:block;height:10px;background:var(--ouro);transition:width .4s ease}
.lt-lista .lista-item{padding-left:20px;padding-right:20px}
.lote-pilula{position:fixed;right:22px;bottom:22px;z-index:60;display:inline-flex;align-items:center;gap:8px;background:var(--tinta);color:#fff;
  padding:10px 16px;border-radius:99px;font-size:13px;text-decoration:none;box-shadow:0 8px 24px rgba(8,21,36,.25)}
.lote-pilula:hover{color:#fff;background:var(--tinta-2)}
.lote-ponto{width:8px;height:8px;border-radius:50%;background:var(--ouro-luz);animation:lotePisca 1.4s ease-in-out infinite}
@keyframes lotePisca{50%{opacity:.25}}
@media (max-width:900px){ .lote-pilula{bottom:84px;right:14px} }
.us-senha{position:relative;margin-left:4px}
.us-senha summary{list-style:none;cursor:pointer}
.us-senha summary::-webkit-details-marker{display:none}
.us-senha-caixa{position:absolute;right:0;top:26px;z-index:40;width:280px;background:var(--branco);border:1px solid var(--linha);border-radius:6px;padding:14px;box-shadow:0 10px 28px rgba(8,21,36,.14)}
@media (max-width:900px){ .us-senha-caixa{position:static;width:auto;margin-top:8px;box-shadow:none} }
