/* =========================================================================
   GENESIS MINHAS ECONOMIAS, a folha de estilo.

   A regra da Fase 2 diz js, html e css SEPARADOS, e este arquivo nasceu
   em 01/09/2026 porque ela nao estava sendo cumprida: o CSS morava dentro
   de um bloco <style> no index.html desde a Fase 41, e ninguem conferiu
   contra a regra depois. Ha um teste guardando isso agora.

   O logo vai embutido em data URI de proposito: ele e pequeno, e um
   arquivo a menos e uma ida a rede a menos no primeiro desenho da tela.
   ========================================================================= */
/* ==========================================================================
   Gênesis Minhas Economias, front NOVO (Fase 41, 01/09/2026)

   Sistema novo, e não recorte do Gênesis Empresa. O que se aproveita é o
   MOTOR: a mesma API, a mesma tabela, o mesmo Cognito. O front é escrito do
   zero na linguagem do protótipo que ele aprovou em 01/09.

   A paleta e o logo vêm do GFpessoal.css, e não foram inventados aqui.
   ========================================================================== */
:root{
  --logo-efata:url(data:image/png;base64,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);
  --azul:#042C53; --azul-2:#0A3C6B; --tech:#378ADD; --tech-l:#E8F1FB;
  --teal:#1D9E75; --teal-l:#E4F5EE;
  --neg:#A32D2D; --neg-l:#FBEDED;
  --amb:#9A6B12; --amb-l:#FBF3E2;
  --cinza:#888780; --cinza-l:#F2F2F0;
  --paper:#F6F7F9; --card:#FFFFFF; --line:#E2E5E9; --line2:#EFF1F4;
  --text:#12202F; --muted:#5F6B78;
  --r:10px;
  --sh:0 1px 2px rgba(4,44,83,.05), 0 8px 24px -18px rgba(4,44,83,.28);
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--sans);background:var(--paper);color:var(--text);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:13.5px;color:inherit}
.num{font-variant-numeric:tabular-nums}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--tech);outline-offset:2px;border-radius:4px}

/* =============================================================== LOGIN === */
.lg{position:fixed;inset:0;z-index:9000;background:var(--azul);display:flex;
    align-items:center;justify-content:center;padding:24px 16px;overflow:auto}
.lg-cx{background:#fff;border-radius:14px;padding:30px 30px 26px;width:100%;max-width:372px;
       box-shadow:0 20px 60px -20px rgba(0,0,0,.5)}
.lg-marca{display:flex;align-items:center;gap:11px;justify-content:center;margin-bottom:22px}
.lg-marca i{width:44px;height:44px;background-image:var(--logo-efata);background-size:contain;
            background-position:center;background-repeat:no-repeat;display:block;flex:none}
.lg-marca b{font-size:17px;letter-spacing:.4px;display:block;line-height:1.1}
.lg-marca small{font-size:10.5px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-weight:600}
.lg label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:0 0 5px}
.lg input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;
          margin-bottom:13px;background:var(--card)}
.lg input:focus{outline:0;border-color:var(--tech);box-shadow:0 0 0 3px var(--tech-l)}
.lg-btn{width:100%;background:var(--teal);color:#fff;padding:11px;border-radius:8px;
        font-weight:600;font-size:14px;margin-top:4px}
.lg-btn:hover{background:#178A65}
.lg-btn:disabled{opacity:.6;cursor:default}
.lg-link{background:none;color:var(--teal);font-size:12.5px;font-weight:600;padding:0;display:block;
         margin-left:auto}
.lg-erro{background:var(--neg-l);color:var(--neg);border:1px solid #F0D2D2;border-radius:8px;
         padding:9px 11px;font-size:12.5px;margin-bottom:12px;display:none}
.lg-ok{background:var(--teal-l);color:#0F6B4E;border:1px solid #BCE3D3;border-radius:8px;
       padding:9px 11px;font-size:12.5px;margin-bottom:12px;display:none}
.lg-rodape{text-align:center;margin-top:18px;font-size:12px;color:#8FB4D9}
.lg-rodape a{color:#C6D9EA}
.lg-troca{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);
          text-align:center;font-size:12.5px;color:var(--muted)}
.lg-troca button{color:var(--teal);font-weight:700;text-decoration:underline}

/* ============================================================ ESTRUTURA === */
.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.side{background:var(--azul);color:#fff;display:flex;flex-direction:column;
      position:sticky;top:0;height:100vh;overflow-y:auto}
.side::-webkit-scrollbar{width:6px}
.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:3px}
.brand{padding:20px 18px 14px;display:flex;gap:11px;align-items:center;width:100%;text-align:left}
.mark{width:30px;height:30px;background-image:var(--logo-efata);background-size:contain;
      background-position:center;background-repeat:no-repeat;flex:none;display:block}
.brand span{display:block;line-height:1.15}
.brand b{font-size:15px;font-weight:700;letter-spacing:.3px;display:block}
.brand small{font-size:10.5px;color:#8FB4D9;font-weight:500;letter-spacing:.5px;text-transform:uppercase}
.nav-secao{font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:#5E86AF;
           padding:15px 18px 5px;font-weight:600}
.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 18px;font-size:13.5px;
          color:#C6D9EA;text-align:left;border-left:3px solid transparent;
          transition:background .12s,color .12s}
.nav-item:hover{background:rgba(255,255,255,.05);color:#fff}
.nav-item.on{background:rgba(55,138,221,.16);color:#fff;border-left-color:var(--tech);font-weight:600}
.nav-item .ico{width:16px;flex:none;opacity:.9;text-align:center}
.nav-item.on .ico{color:var(--tech);opacity:1}
.nav-txt{flex:1;min-width:0}
.zap{font-size:9px;font-weight:700;letter-spacing:.3px;padding:2px 5px;border-radius:4px;flex:none;
     background:rgba(154,107,18,.34);color:#F2CE87}
.side-foot{margin-top:auto;padding:14px 18px;font-size:11px;color:#5E86AF;
           border-top:1px solid rgba(255,255,255,.07);line-height:1.5}
.side-foot button{color:#8FB4D9;font-size:11.5px;font-weight:600;padding:0;margin-top:6px}
.side-foot button:hover{color:#fff}

.main{min-width:0;display:flex;flex-direction:column}
.top{background:#fff;border-bottom:1px solid var(--line);padding:13px 26px;display:flex;
     align-items:center;gap:16px;position:sticky;top:0;z-index:20}
.top h1{margin:0;font-size:17px;font-weight:600;letter-spacing:-.2px}
.top .sub{font-size:12px;color:var(--muted);margin-top:1px}
.top-dir{margin-left:auto;display:flex;align-items:center;gap:8px}
.mes-sel{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:8px;padding:3px}
.mes-sel button{padding:4px 9px;font-size:12.5px;border-radius:6px;color:var(--muted);font-weight:500}
.mes-sel button.on{background:var(--azul);color:#fff;font-weight:600}
.mes-sel button.mes-mais{color:var(--tech);font-weight:700;padding:4px 7px}
.mes-sel button.mes-mais:hover{background:var(--tech-l)}
.mes-todos{position:absolute;right:0;top:40px;z-index:60;background:#fff;
           border:1px solid var(--line);border-radius:10px;padding:10px;
           box-shadow:0 18px 40px -14px rgba(4,44,83,.45);min-width:236px}
.mt-anos{display:flex;gap:4px;margin-bottom:8px}
.mt-anos button{flex:1;padding:5px 0;font-size:12px;font-weight:600;color:var(--muted);
                border-radius:6px;border:1px solid var(--line)}
.mt-anos button.on{background:var(--tech-l);color:var(--azul);border-color:var(--tech)}
.mt-grade{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.mt-grade button{padding:7px 0;font-size:12.5px;font-weight:500;color:var(--text);
                 border-radius:6px;position:relative}
.mt-grade button:hover{background:var(--tech-l)}
.mt-grade button.on{background:var(--azul);color:#fff;font-weight:600}
/* O ponto marca o mes de HOJE, para a pessoa nao perder a referencia
   quando esta olhando outro mes ou outro ano. */
.mt-grade button i{position:absolute;top:1px;right:5px;font-style:normal;
                   font-size:15px;line-height:1;color:var(--teal)}
.mt-grade button.on i{color:#fff}
.mt-todos{width:100%;margin-top:8px;padding:7px 0;font-size:12.5px;font-weight:600;
          color:var(--tech);border:1px solid var(--line);border-radius:6px}
.mt-todos:hover{background:var(--tech-l);border-color:var(--tech)}
.mt-todos.on{background:var(--azul);color:#fff;border-color:var(--azul)}
.ib{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;display:grid;
    place-items:center;color:var(--muted);font-size:14px}
.ib:hover{border-color:var(--tech);color:var(--tech);background:var(--tech-l)}
.av{width:32px;height:32px;border-radius:50%;background:var(--tech-l);color:var(--azul);display:grid;
    place-items:center;font-weight:700;font-size:12px;border:1px solid #C9E0F7}

/* ============================================================= CONTEUDO === */
.tela{padding:22px 26px 70px;display:none}
.tela.on{display:block}
.grid{display:grid;gap:16px}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1080px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* Registrar transacao: os dois blocos ficam CENTRALIZADOS no miolo, e o
   cinza da pagina aparece dos dois lados. Pedido dele em 01/09/2026.

   A largura maxima e do MIOLO, e nao do cartao. Antes o formulario levava
   um max-width:470px preso no proprio cartao, e o resultado era um bloco
   estreito na esquerda com o vizinho da direita esticado ate a borda: dois
   quadros de tamanhos diferentes, colados na esquerda. Limitando o miolo,
   as duas colunas do grid dividem a mesma largura e nascem iguais.

   O numero 1234 sai de uma MEDIDA, e nao de gosto: o cartao "Contas e
   cartoes", do Inicio, mede 609px na tela dele, e ele pediu esta mesma
   largura aqui. 609 + 16 do vao + 609 da o miolo.

   Na tela dele isso quase enche a largura util, e o cinza dos lados some.
   Isso e o certo: o max-width nao existe para deixar sobra de proposito,
   existe para o conteudo PARAR de esticar quando a tela e maior que ele.
   Num monitor mais largo o cinza aparece sozinho, dos dois lados, e os
   dois blocos continuam no meio.

   As duas colunas NAO sao iguais, e isso e pedido dele, nao descuido. O
   formulario tem campo de tamanho fixo, e esticar ele so faz o campo ficar
   largo e vazio: 470px e a largura em que ele foi desenhado. Quem tem
   texto e lista para mostrar e a coluna da direita, entao a sobra toda vai
   para la (1234 - 16 - 470 = 748). O minmax(0,1fr) e o que deixa a direita
   comer a sobra sem estourar a linha quando a descricao e comprida. */
#sc-registrar .g2{max-width:1234px;margin-left:auto;margin-right:auto;
                  grid-template-columns:470px minmax(0,1fr);
                  align-items:start}
@media(max-width:1080px){#sc-registrar .g2{grid-template-columns:1fr}}

/* Contas recorrentes: o formulario tem a MESMA largura do cartao "Sai todo
   mes" logo acima dele, e a sobra toda vai para a coluna da direita.

   Alinhar o formulario com a coluna de cima faz a tela ter DUAS linhas
   verticais em vez de quatro, e quem tem texto e lista para mostrar, que
   sao as duas caixas da direita, ganha o que o formulario nao usava.

   A largura e a CONTA da fileira de cima, e nao um numero.

   Eu tinha escrito 400px, que era a medida certa na tela dele naquela
   hora, e ele voltou dizendo que continuavam diferentes. Estava certo, e o
   erro e do tipo que so aparece em outra tela: os tres cartoes de cima sao
   FLUIDOS (um terco cada), entao eles crescem junto com a janela, e um
   numero fixo embaixo so coincide numa largura exata. Em qualquer monitor
   diferente do dele naquele instante, os dois desalinhavam de novo.

   calc((100% - 32px)/3) e literalmente a mesma conta que o `repeat(3,1fr)`
   da fileira de cima faz: a largura toda menos os dois vaos de 16, dividida
   por tres. Agora eles batem em qualquer largura, porque nao sao dois
   numeros parecidos: sao a mesma conta. */
/* O align-items:start e o que faz o cartao do formulario TERMINAR no
   botao. Sem ele o grid estica as duas colunas ate a altura da mais alta,
   e a caixa do formulario continuava descendo com um vazio branco embaixo
   do "Cadastrar recorrente", acompanhando a altura das listas da direita.
   Pedido dele: "ele tem que terminar certinho no botao, para acompanhar o
   design". Vale para as duas telas de formulario, porque o defeito e o
   mesmo nas duas. */
#sc-recorrentes .g2{grid-template-columns:calc((100% - 32px)/3) minmax(0,1fr);align-items:start}
@media(max-width:1080px){#sc-recorrentes .g2{grid-template-columns:1fr}}

/* MODO DE EDICAO. Pedido dele em 01/09: "quando a pessoa vai editar e
   aparece do lado, voce tem que mudar a cor, colocar algum efeito para a
   pessoa saber que esta do lado a edicao".

   O problema era real: clicar em "editar" trocava o titulo do cartao e mais
   nada. Quem clicou olhando a lista continuava olhando a lista, e o
   formulario do outro lado nao dava sinal de que tinha virado outra coisa.
   Formulario que MUDA de significado sem mudar de cara e como a tela dizer
   "Pronto" com zero gravado: esta certo por dentro e mente por fora.

   Dois sinais, e nao um, porque o olho dele pode estar em qualquer um dos
   dois lados: o cartao ganha borda e faixa azuis, e a LINHA que esta sendo
   editada acende na lista. */
.card.editando{border-color:var(--tech);box-shadow:0 0 0 3px var(--tech-l),var(--sh)}
.card.editando > h2{color:var(--tech)}
.card.editando::before{content:"editando";display:block;font-size:10.5px;font-weight:700;
  letter-spacing:.8px;text-transform:uppercase;color:var(--tech);margin-bottom:6px}
.linha.editando{background:var(--tech-l);border-radius:8px;
  box-shadow:inset 3px 0 0 var(--tech);padding-left:9px}

/* A ETIQUETA DO FOCO. Quem chega por um cartao ve a lista ja cortada para
   o que o cartao contava, e esta faixa e o que impede isso de virar
   armadilha: ela diz o que esta sendo mostrado e como voltar a lista
   inteira.

   Lista curta SEM explicacao e o defeito que este projeto ja teve duas
   vezes com outra roupa: a tela certa por acaso, sem o que explica.

   Ambar, e nao azul: azul nesta casa quer dizer "selecionado" (chip aceso,
   campo com foco, o modo de edicao). Isto aqui nao e selecao, e um aviso
   temporario, e precisa de uma cor que ninguem confunda com estado. */
.foco{display:flex;align-items:center;justify-content:space-between;gap:12px;
  flex-wrap:wrap;margin:0 0 12px;padding:8px 12px;border-radius:8px;
  background:var(--amb-l);border:1px solid #EFDCB4;color:#7A5410;font-size:12.5px;
  animation:acende .9s ease-out 1}
.foco b{color:var(--amb)}
.foco button{font-size:12.5px;font-weight:600;color:var(--azul);
  text-decoration:underline;padding:0}
@keyframes acende{
  0%{background:#F6E3B8}
  100%{background:var(--amb-l)}
}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;
      box-shadow:var(--sh)}
.card h2{margin:0 0 2px;font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:8px}
.card h2 .acao{margin-left:auto;font-size:12px;color:var(--tech);font-weight:500}
.card p.dica{margin:2px 0 12px;font-size:11.5px;color:var(--muted)}
.kpi{font-size:26px;font-weight:700;letter-spacing:-.6px;margin:6px 0 2px}
.kpi small{font-size:14px;font-weight:600;opacity:.65}
.kpi.pos{color:var(--teal)} .kpi.neg{color:var(--neg)} .kpi.az{color:var(--azul)}
.rot{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:600}

table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);
   font-weight:600;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:9px 8px;border-bottom:1px solid var(--line2)}
td.d,th.d{text-align:right}
td.d{font-variant-numeric:tabular-nums}
tbody tr:last-child td{border-bottom:0}
tr.tot td{border-top:2px solid var(--azul);font-weight:700;padding-top:10px;border-bottom:0}
.tabela-rola{overflow-x:auto}

.tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:2px 8px;border-radius:999px;
     font-weight:600;white-space:nowrap}
.tag.ok{background:var(--teal-l);color:#0F6B4E}
.tag.bad{background:var(--neg-l);color:var(--neg)}
.tag.info{background:var(--tech-l);color:#1B5E9E}
.tag.amb{background:var(--amb-l);color:var(--amb)}

.linha{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--line2)}
.linha:last-child{border-bottom:0}
.bolha{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:14px;flex:none}
.linha .txt{flex:1;min-width:0}
.linha .txt b{display:block;font-size:13px;font-weight:600}
.linha .txt small{font-size:11.5px;color:var(--muted)}
.linha .val{font-weight:600;font-variant-numeric:tabular-nums;font-size:13.5px;white-space:nowrap}
.barra{height:7px;border-radius:4px;background:var(--line2);overflow:hidden;margin-top:6px}
.barra i{display:block;height:100%;border-radius:4px}

.abas{display:flex;gap:4px;background:var(--line2);padding:3px;border-radius:9px;margin-bottom:14px;
      width:fit-content}
.abas button{padding:6px 16px;font-size:12.5px;border-radius:7px;color:var(--muted);font-weight:500}
.abas button.on{background:#fff;color:var(--azul);font-weight:600;box-shadow:0 1px 2px rgba(4,44,83,.14)}

.campo{margin-bottom:13px}
.campo label{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin-bottom:4px}
.campo input,.campo select,.campo textarea{width:100%;border:1px solid var(--line);border-radius:8px;
      padding:9px 11px;background:var(--card)}
.campo input:focus,.campo select:focus{outline:0;border-color:var(--tech);box-shadow:0 0 0 3px var(--tech-l)}
.campo input.big{font-size:22px;font-weight:700;color:var(--neg);border-color:#F0D2D2;background:var(--neg-l);
      padding:11px}
.campo input.big.ganho{color:var(--teal);border-color:#BCE3D3;background:var(--teal-l)}
.campo .par{display:flex;gap:10px}
.campo .par>*{flex:1;min-width:0}
.btn{background:var(--azul);color:#fff;padding:10px 18px;border-radius:8px;font-weight:600;font-size:13.5px}
.btn:hover{background:var(--azul-2)}
.btn:disabled{opacity:.55;cursor:default}
.btn.full{width:100%}
.btn.sec{background:#fff;color:var(--azul);border:1px solid var(--line)}
.btn.sec:hover{background:var(--tech-l);border-color:var(--tech)}
.btn.verde{background:var(--teal)}.btn.verde:hover{background:#178A65}
/* O botao e o quadro de perigo. Vermelho e a unica cor que nao
   precisa de legenda numa tela que apaga dinheiro. */
.btn.neg{background:var(--neg)}.btn.neg:hover{background:#8C2626}
.zona-perigo{background:var(--neg-l);border:1px solid #F0D2D2;border-radius:var(--r);padding:14px}
.zona-perigo h3{color:var(--neg)}

/* O CARTAO QUE LEVA A ALGUM LUGAR.
   Pedido dele em 01/09/2026: "quero rastreabilidade das informacoes". Um
   numero grande sem caminho de volta e um numero que a pessoa tem que
   acreditar. Com caminho, ela confere.

   A seta so aparece no hover para nao poluir quatro cartoes lado a lado,
   mas o cursor e o foco de teclado existem sempre: quem navega por Tab
   precisa saber que aquilo abre alguma coisa. */
.card.link{cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s,transform .15s}
.card.link:hover{border-color:var(--tech);box-shadow:0 2px 4px rgba(4,44,83,.06),0 10px 26px -18px rgba(4,44,83,.4);transform:translateY(-1px)}
.card.link:focus-visible{outline:2px solid var(--tech);outline-offset:2px}
.card.link::after{content:'→';position:absolute;top:14px;right:16px;font-size:14px;
                  color:var(--tech);opacity:0;transition:opacity .15s}
.card.link:hover::after,.card.link:focus-visible::after{opacity:1}

/* O MENU DO AVATAR, copiado do .mp-* do Genesis Financeiro em 01/09/2026.
   Eu tinha escrito ele "parecido" com estilo em linha, e errei tres coisas
   que so aparecem lado a lado: a faixa de cima e #FAFBFC e nao branca, o
   titulo dela e 12.5px semibold em caixa NORMAL e nao 11px em caixa alta,
   e os links sao AZUIS (--tech) e nao verdes. O verde fui eu que inventei
   no acerto anterior, olhando um recorte de tela com a cor deslocada. */
.menu-perfil{position:absolute;right:0;top:44px;z-index:60;background:#fff;
             border:1px solid var(--line);border-radius:10px;
             box-shadow:0 18px 40px -14px rgba(4,44,83,.45);
             min-width:300px;padding:0;overflow:hidden}
.mp-topo{display:flex;align-items:center;justify-content:space-between;
         gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);
         background:#FAFBFC}
.mp-topo span{font-size:12.5px;font-weight:600;color:var(--muted);
              overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-sair{flex:none;font-size:12.5px;font-weight:600;color:var(--muted);
         padding:3px 6px;border-radius:6px;transition:.15s}
.mp-sair:hover{background:var(--neg-l);color:var(--neg)}
.mp-pessoa{display:flex;gap:14px;align-items:flex-start;padding:16px 14px 14px}
.mp-foto{flex:none;width:56px;height:56px;border-radius:50%;
         background:var(--tech-l);color:var(--azul);display:grid;
         place-items:center;font-weight:700;font-size:17px;
         border:1px solid #C9E0F7;background-size:cover;
         background-position:center;overflow:hidden}
.mp-dados{min-width:0;flex:1}
.mp-dados strong{display:block;font-size:16px;font-weight:600;
                 line-height:1.25;color:var(--text)}
.mp-dados>span{display:block;font-size:12px;color:var(--muted);
               margin:2px 0 8px;overflow:hidden;text-overflow:ellipsis;
               white-space:nowrap}
.mp-dados button{display:block;width:100%;text-align:left;padding:3px 0;
                 font-size:12.5px;color:var(--tech);text-decoration:underline;
                 text-underline-offset:3px;line-height:1.7}
.mp-dados button:hover{color:var(--azul)}

.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;
      padding:5px 12px;font-size:12px;background:#fff;margin:0 6px 8px 0}
.chip.on{border-color:var(--tech);background:var(--tech-l);color:#1B5E9E;font-weight:600}
.busca{border:1px solid var(--line);border-radius:8px;padding:7px 11px;font-size:13px;min-width:190px}

.vazio{text-align:center;padding:34px 20px;color:var(--muted);font-size:13px}
.vazio .em{font-size:28px;display:block;margin-bottom:8px;opacity:.35}
.nota{font-size:11.5px;color:var(--muted);line-height:1.6;margin-top:10px;padding-top:10px;
      border-top:1px dashed var(--line)}
.nota b{color:var(--text)}
.faixa{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:10px 14px;border-radius:var(--r);
       font-size:12.5px;line-height:1.5}
.faixa.novo{background:var(--amb-l);color:#7A5410;border:1px solid #EFDCB4}
.faixa.info{background:var(--tech-l);color:#1B5E9E;border:1px solid #BFDCF7}
.faixa.ok{background:var(--teal-l);color:#0F6B4E;border:1px solid #BCE3D3}
.faixa.erro{background:var(--neg-l);color:var(--neg);border:1px solid #F0D2D2}

/* ------------------------------------------------------------- avisos --- */
#aviso{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;z-index:9500;
       background:var(--azul);color:#fff;padding:11px 18px;border-radius:9px;font-size:13px;
       box-shadow:0 10px 30px -8px rgba(0,0,0,.45);display:none;max-width:min(92vw,520px)}
#aviso.ruim{background:var(--neg)}
#aviso.bom{background:var(--teal)}
.carregando{display:inline-block;width:15px;height:15px;border:2px solid var(--line);
            border-top-color:var(--tech);border-radius:50%;animation:gira .7s linear infinite;
            vertical-align:-3px}
@keyframes gira{to{transform:rotate(360deg)}}

/* --------------------------------------------------------- passo a passo */
.passos{display:flex;gap:0;margin-bottom:20px;flex-wrap:wrap}
.passo{display:flex;align-items:center;gap:9px;padding:9px 16px 9px 13px;background:#fff;
       border:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.passo:first-child{border-radius:9px 0 0 9px}
.passo:last-child{border-radius:0 9px 9px 0}
.passo+.passo{border-left:0}
.passo b{width:20px;height:20px;border-radius:50%;background:var(--line2);color:var(--muted);
         display:grid;place-items:center;font-size:11px;flex:none}
.passo.on{background:var(--azul);border-color:var(--azul);color:#fff;font-weight:600}
.passo.on b{background:rgba(255,255,255,.22);color:#fff}
.passo.feito{background:var(--teal-l);border-color:#BCE3D3;color:#0F6B4E}
.passo.feito b{background:var(--teal);color:#fff}

.solta{border:2px dashed var(--line);border-radius:12px;padding:34px 20px;text-align:center;
       background:#fff;transition:border-color .15s,background .15s}
.solta.quente{border-color:var(--tech);background:var(--tech-l)}
.solta .em{font-size:32px;display:block;margin-bottom:8px;opacity:.5}

.depara{width:100%;border-collapse:collapse;font-size:13px}
.depara select{border:1px solid var(--line);border-radius:7px;padding:5px 8px;font-size:12.5px;
               background:#fff;max-width:230px}
.depara .amostra{font-size:11.5px;color:var(--muted);font-family:ui-monospace,Consolas,monospace}

/* ------------------------------------------------- GAVETA (aba lateral) ---
   Ela desliza da direita e escurece o resto. O fundo escuro nao e enfeite:
   sem ele a pessoa clica na tabela atras achando que esta na gaveta, e o
   clique nao faz nada, o que se le como sistema travado. */
.gv-fundo{position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:60}
/* 640px e nao 460 (pedido dele, 03/09): com o lapis, a lixeira, a mao de
   arrastar e o campo do valor, a linha ficou apertada e o nome da categoria
   quebrava em duas. min() segura o celular, onde ela ocupa a tela toda. */
.gv{position:fixed;top:0;right:0;bottom:0;width:min(640px,100%);background:#fff;
    z-index:61;display:flex;flex-direction:column;box-shadow:-14px 0 40px rgba(15,23,42,.16)}
.gv-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
         padding:16px 18px;border-bottom:1px solid var(--line)}
/* min-height:0 no filho que rola: sem ele o corpo cresce e empurra o rodape
   para fora da tela, e o botao Salvar deixa de existir sem sumir. */
.gv-corpo{flex:1;min-height:0;overflow-y:auto;padding:12px 18px}
.gv-pe{border-top:1px solid var(--line);padding:14px 18px;background:var(--card)}
.gv-linha{display:grid;grid-template-columns:1fr 118px;gap:10px;align-items:center;
          padding:8px 0;border-bottom:1px solid var(--line)}
.gv-linha:last-child{border-bottom:0}
.gv-linha b{font-size:13.5px;font-weight:600;display:block}
.gv-linha small{font-size:11.5px;color:var(--muted)}
.gv-linha input{text-align:right;padding:7px 9px;font-size:13.5px}
/* DOIS NIVEIS, e o de cima com cor propria (pedido dele, 03/09).
   O grupo era um rotulo cinza do mesmo peso do resto, entao a lista lia como
   uma coisa so e a divisao sumia depois da terceira rolagem. Agora ele e uma
   FAIXA: cor de fundo, borda a esquerda e o subtotal do grupo do lado
   direito. Fica grudada no alto enquanto o grupo rola, senao quem esta no
   meio de trinta e cinco categorias nao sabe mais em qual grupo esta. */
.gv-grupo{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:6px;
          font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
          color:var(--tech);background:var(--tech-l);border-left:3px solid var(--tech);
          border-radius:6px;padding:7px 10px;margin:16px 0 4px}
.gv-grupo:first-child{margin-top:0}
.gv-grupo span{flex:1}
.gv-grupo .gv-soma{flex:none;font-weight:700;letter-spacing:0;text-transform:none;
                   font-size:12px;opacity:.85}
/* a categoria fica recuada, para o olho ver que ela pertence a faixa de cima */
.gv-linha{padding-left:10px}
.gv-acoes{display:flex;gap:8px;padding:10px 18px 0}
.gv-acoes .btn{flex:1;font-size:12.5px;padding:7px 10px}
.gv-acoes .btn.on{background:var(--tech);color:#fff;border-color:var(--tech)}
.gv-nova{margin:10px 18px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
/* O lapis so existe no modo editar, e ocupa lugar so quando existe: sem o
   display:none a coluna dele deixaria um buraco em toda linha o tempo todo. */
.gv-lapis{border:0;background:transparent;cursor:pointer;font-size:14px;padding:0 6px;opacity:.7}
.gv-lapis:hover{opacity:1}
.gv-linha.edit{grid-template-columns:24px 1fr 118px}
.gv-grupo{display:flex;align-items:center;gap:4px}
.gv-renome{width:100%;padding:6px 8px;font-size:13.5px}

/* Os dois níveis do Orçamento do mês. A faixa do grupo tem cor própria
   porque ela é o que dá o desenho da tela: sem ela a lista de trinta e cinco
   categorias lê como uma coisa só. */
#orcTabela tr.grupo-faixa td{background:var(--tech-l);color:var(--tech);
  font-weight:800;font-size:12.5px;letter-spacing:.3px;text-transform:uppercase;
  border-top:2px solid var(--tech);border-bottom:0}
#orcTabela tr.grupo-faixa td.d{letter-spacing:0;text-transform:none;font-size:13px}
#orcTabela td.cat-item{padding-left:26px}
.gv-icones{display:flex;gap:0;flex:none}
.gv-linha.edit{grid-template-columns:56px 1fr 118px}
.gv-confirma{border:1px solid var(--neg);background:#fef2f2;border-radius:10px;
             padding:12px;margin:6px 0 10px}
.gv-confirma b{font-size:13.5px}
.gv-confirma p{font-size:12.5px;line-height:1.5;margin:6px 0 10px;color:var(--text)}
.gv-confirma-pe{display:flex;gap:8px}
.gv-confirma-pe .btn{flex:1;font-size:12.5px;padding:7px 10px}

/* A MAO DE ARRASTAR. So existe no modo editar, e o cursor diz o que ela faz
   antes de a pessoa tentar. */
.gv-mao{cursor:grab;font-size:13px;opacity:.55;padding:0 4px;user-select:none}
.gv-mao:active{cursor:grabbing}
.gv-linha.edit{grid-template-columns:80px 1fr 118px}
.gv-linha.arrastando{opacity:.4}
/* O grupo aceso e para onde o item vai cair. Sem ele, arrastar e adivinhar. */
.gv-grupo.alvo{outline:2px dashed var(--teal);outline-offset:2px;background:var(--teal-l);
               color:var(--teal);border-left-color:var(--teal)}
.gv-orfas{border:1px solid var(--tech);background:var(--tech-l);border-radius:10px;
          padding:12px;margin:6px 0 10px}
.gv-orfas b{font-size:13.5px}
.gv-orfas p{font-size:12.5px;line-height:1.5;margin:6px 0 10px}
.gv-orfas select{width:100%;margin-bottom:8px}

/* O botão da barra de cima veste a MESMA roupa dos meses (pedido dele,
   03/09): azul cheio grita mais alto que o mês selecionado, que é a
   informação mais importante daquela barra. Aqui ele é um vizinho, e não o
   dono da linha. */
/* Verde, o mesmo do Registrar gasto (pedido dele, 03/09). Ele e o unico
   botao de ACAO daquela barra, e o resto ali e navegacao: o verde separa as
   duas coisas sem precisar de rotulo. */
.bt-topo{border:1px solid var(--teal);border-radius:8px;padding:7px 13px;
         font-size:12.5px;font-weight:600;color:#fff;background:var(--teal)}
.bt-topo:hover{filter:brightness(1.06)}

/* Os campos de criar categoria: maiores, porque nesta caixa a pessoa está
   digitando, e não conferindo. */
.gv-campo{padding:9px 11px;font-size:14px;border:1px solid var(--line);
          border-radius:8px;background:#fff;color:var(--text)}
.gv-campo:focus{outline:none;border-color:var(--tech);box-shadow:0 0 0 3px var(--tech-l)}
.gv-nova .par{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#orcTabela tr.grupo-faixa{cursor:pointer}
#orcTabela tr.grupo-faixa:hover td{filter:brightness(.97)}
.orc-seta{display:inline-block;width:16px;font-size:11px;opacity:.8}

/* A barra da seleção em massa. Vermelha de propósito: ela só aparece quando
   há algo marcado para excluir, e o que ela faz não tem volta. */
.gv-selecao{border-top:1px solid var(--neg);background:#FBEDED;padding:12px 18px;
            display:flex;align-items:center;gap:12px;justify-content:space-between}
.gv-selecao span{font-size:13px;font-weight:600;color:var(--neg)}
.gv-sel-bt{display:flex;gap:8px}
.gv-sel-bt .btn{font-size:12.5px;padding:7px 12px}
.gv-marca{width:15px;height:15px;accent-color:var(--tech);cursor:pointer;flex:none;margin:0}
.gv-linha.edit{grid-template-columns:104px 1fr 118px}
.gv-linha.marcada{background:var(--tech-l);border-radius:6px}
#orcTabela th .orc-seta{cursor:pointer;opacity:.9}
#orcTabela th .orc-seta:hover{color:var(--tech)}

/* A coluna do Consumo: o título e a barra no meio dela, e não colados à
   esquerda. A barra tem largura fixa, então sem isto ela e o título ficavam
   em pontos diferentes da mesma coluna. */
#orcTabela th.c{text-align:center}
#orcTabela td.c{text-align:center}
/* A COLUNA CONSUMO ERA SEMPRE VAZIA (ME32, 17/09/2026).

   A `.barra` nao tem largura propria: como bloco, ela ocupa a celula
   inteira. Esta regra a tornou `inline-block` para alinhar no meio da
   linha, e inline-block sem largura encolhe para o conteudo. O
   conteudo e um `<i>` com largura em PORCENTAGEM, e porcentagem de
   zero e zero: a barra colapsava para 0px numa celula de 150px.

   O preenchimento ja vinha calculado e colorido. O que faltava era a
   regua embaixo dele. */
#orcTabela td.c .barra{display:inline-block;vertical-align:middle;
                       width:100%;min-width:60px;margin-top:0}

/* A guimel vem de uma fonte hebraica de sistema, e não da Inter: sem a
   pilha abaixo o navegador escolhe sozinho e a letra sai com outro peso e
   outra altura que o resto do menu. O ajuste fino existe porque ela é uma
   letra e não um ícone: sem ele, ela flutua acima da linha de base. */
.ico.gimel{font-family:'Times New Roman','David','Frank Ruehl CLM',serif;
           font-size:19px;font-weight:600;line-height:1;
           position:relative;top:1px}

/* A CARA DO GIMEL. A arte que ele mandou, com o fundo preto trocado pelo
   azul da marca e recortada em círculo.

   03/09, escolha dele: a versão recolorida nas cores da Efatá, com os anéis
   no azul do sistema e a letra no verde do logo. O arco-íris original não
   era cor de marca nenhuma, e o fundo preto não combinava com nada da tela.

   O que ficou foi a LUMINÂNCIA da arte original: ela dá a forma, o brilho e
   os detalhes de circuito dentro da letra. Só a cor mudou, por uma rampa
   medida no próprio logo-efata.png (#001848 e #30C078), e não chutada.

   O recorte redondo foi feito na imagem, e não com border-radius sozinho: o
   arquivo é retangular e a arte já vinha cortada em cima e embaixo. O
   arquivo-fonte fica em web/gimel.png.

   Vai embutida em data URI pelo mesmo motivo do logo: um arquivo a menos e
   uma ida à rede a menos no primeiro desenho da tela. */
.ia-cabeca{display:flex;align-items:center;gap:11px;margin-bottom:2px}
/* o botao de recomecar cola no canto direito da linha da foto: o
   auto na margem da esquerda empurra ele ate o fim sem precisar de
   um wrapper so para isso */
.ia-cabeca > .ib{margin-left:auto;flex:none}
.ia-av{width:42px;height:42px;flex:none;border-radius:50%;
       background:var(--azul) center/cover no-repeat;
       background-image:url(data:image/png;base64,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);
       box-shadow:0 2px 10px -2px rgba(4,44,83,.5);
       font-size:0;color:transparent}

/* A lista de categorias do Gimel: caixinha, nome e seletor de grupo em cada
   linha. Grid e não flex porque as três colunas precisam ficar alinhadas
   entre linhas: com nomes de tamanhos diferentes, o flex faz o seletor
   dançar de linha para linha e a coluna deixa de ser lida como coluna. */
.cat-linha{display:grid;grid-template-columns:20px 1fr 190px auto;gap:9px;
           align-items:center;padding:7px 0;border-bottom:1px solid var(--line2)}
.cat-linha:last-child{border-bottom:0}
/* a linha da previa que ela desmarcou (10/09/2026): ela continua legivel, e
   nao sumida, porque desmarcar e uma decisao que se desfaz com um clique */
.cat-linha.bc-fora{opacity:.42}
.cat-linha.bc-fora .cat-val{text-decoration:line-through}
.cat-nome b{font-size:13.5px;font-weight:600}
.cat-grupo{padding:5px 8px;font-size:12.5px;border:1px solid var(--line);
           border-radius:7px;background:#fff;width:100%}
/* O SELETOR DE GRUPO E UM BOTAO, e nao um <select>, desde 04/09/2026: o
   nativo nao aceita uma lixeira dentro da opcao. Ele imita o nativo de
   proposito, seta inclusive, porque a pessoa ja sabe o que fazer com ele. */
.cat-grupo-bt{text-align:left;cursor:pointer;position:relative;padding-right:22px}
.cat-grupo-bt::after{content:'\25BE';position:absolute;right:8px;top:50%;
                     transform:translateY(-50%);color:var(--muted);font-size:11px}
.cat-grupo-bt:hover,.cat-grupo-bt.aberto{border-color:var(--tech)}

/* O menu vive no BODY, fixo na tela, para nao ser cortado pela caixa que
   rola. Por isso o z-index alto: ele passa por cima da gaveta tambem. */
.cat-menu{position:fixed;z-index:9000;background:#fff;border:1px solid var(--line);
          border-radius:10px;box-shadow:0 12px 32px -8px rgba(4,44,83,.28);
          max-height:300px;overflow-y:auto;padding:4px;
          /* sem teto, a frase do rodape esticava o menu para 538px sobre uma
             coluna de 170: o menu virava uma tela, e nao uma lista */
          max-width:300px}
.cat-menu-linha{display:flex;align-items:center;gap:2px}
.cat-menu-op{flex:1;text-align:left;padding:7px 9px;font-size:12.5px;
             border-radius:7px;color:var(--text)}
.cat-menu-op:hover{background:var(--tech-l)}
.cat-menu-op.on{background:var(--azul);color:#fff;font-weight:600}
.cat-menu-op.nova{color:var(--tech);font-weight:600;border-top:1px solid var(--line2);
                  border-radius:0;margin-top:3px;padding-top:9px}
/* O PE FICA GRUDADO EMBAIXO (06/09/2026). Ele passou a carregar a
   instrucao que responde "onde e o botao de aplicar", e com o teto de 300px
   do menu ele nascia cortado pela metade justamente quando a lista de
   grupos era longa, que e quando a instrucao mais importa. */
.cat-menu-pe{font-size:11px;color:var(--muted);line-height:1.4;padding:7px 9px 5px;
             border-top:1px solid var(--line2);margin-top:3px;
             position:sticky;bottom:-4px;background:var(--card)}
/* A faixa de grupos em jogo, no alto da lista decidivel. Cada um traz
   quantos itens estao nele e a lixeira que o tira DESTA lista. */
.cat-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;
          background:var(--tech-l);color:var(--azul);border-radius:20px;
          padding:3px 5px 3px 11px}
.cat-chip b{font-weight:700}
.cat-lixo{width:20px;height:20px;border-radius:50%;display:grid;
          place-items:center;font-size:11px;line-height:1;color:var(--muted);
          background:var(--card)}
.cat-lixo:hover{color:var(--neg);background:#FDECEC}
.cat-tag{font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;
         color:var(--tech);background:var(--tech-l);border-radius:5px;padding:2px 7px}
@media (max-width:900px){
  .cat-linha{grid-template-columns:20px 1fr;row-gap:4px}
  .cat-linha .cat-grupo{grid-column:2}
  .cat-linha .cat-tag{display:none}
}
#cadConteudo .linha .gv-icones{flex:none}
#btEditarCad.on{background:var(--tech);color:#fff;border-color:var(--tech)}

/* A GAVETA ESTREITA. Ela vai de ponta a ponta como a do orçamento, para as
   duas abrirem do mesmo jeito: gaveta que às vezes é alta e às vezes é
   baixa faz a pessoa procurar o botão em lugar diferente a cada vez.

   O que muda é só a LARGURA. A do orçamento tem uma tabela de três colunas;
   esta tem quatro campos empilhados, e 640px de largura para um campo de
   texto é espaço que ninguém usa. */
.gv.gv-curta{width:min(420px,100%)}
.gv.gv-curta .gv-corpo{padding:14px 18px 4px}

/* A linha da lista do chat: caixinha, nome, grupo e o par aceitar/recusar.
   O par entra como quarta coluna fixa, para os botões ficarem alinhados
   entre linhas mesmo com nomes de tamanhos diferentes. */
.cat-linha{grid-template-columns:20px 1fr 170px auto}
.cat-nome small{display:block;font-size:11px;color:var(--muted)}
.cat-bts{display:flex;gap:5px;flex:none}
.cat-bts .btn{font-size:11.5px;padding:4px 10px}
@media (max-width:900px){
  .cat-linha{grid-template-columns:20px 1fr;row-gap:5px}
  .cat-linha .cat-grupo,.cat-linha .cat-bts{grid-column:2}
}
.cat-linha.rec{grid-template-columns:20px 1fr 110px auto}
.cat-val{font-size:13px;font-weight:600;text-align:right;color:var(--neg)}
@media (max-width:900px){ .cat-linha.rec{grid-template-columns:20px 1fr} }

/* --------------------------------------------- a conciliacao do banco ---
   O cartao e mais alto que a linha da lista de categorias de proposito: aqui
   a pessoa nao esta so marcando uma caixinha, ela esta decidindo o que a
   linha E, e a decisao vem com um motivo escrito embaixo. Motivo apertado do
   lado do valor ninguem le. */
.bc-conc{border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  margin-bottom:8px;background:var(--card)}
.bc-conc.falta{border-color:var(--amb);background:var(--amb-l)}
.bc-conc-topo{display:flex;gap:10px;align-items:baseline}
.bc-conc-desc{flex:1;min-width:0;display:block}
.bc-conc-desc b{display:block;font-size:13.5px;line-height:1.35;
  overflow:hidden;text-overflow:ellipsis}
.bc-conc-desc small{display:block;color:var(--muted);font-size:11.5px}
.bc-conc-val{font-weight:700;font-size:13.5px;white-space:nowrap}
.bc-conc-porque{font-size:12px;color:var(--muted);margin:6px 0 8px;line-height:1.45}
.bc-conc-escolhas{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.bc-conc-escolhas select{max-width:100%;flex:1 1 190px;min-width:0}
.bc-conc-nada{font-size:12px;color:var(--muted);flex:1 1 100%;line-height:1.45}
.bc-conc-falta{font-size:12px;color:var(--amb);font-weight:600;margin-top:8px}
/* a criacao de categoria dentro do proprio cartao: dois campos e dois
   botoes que quebram em duas linhas quando a coluna aperta */
.bc-conc-nova{display:flex;gap:6px;flex-wrap:wrap;flex:1 1 100%;margin-top:8px}
.bc-conc-nova input{flex:1 1 130px;min-width:0;padding:6px 9px;font-size:12.5px;
  border:1px solid var(--line);border-radius:8px;background:#fff}
.bc-conc-nova input:focus{border-color:var(--tech);outline:none}
.bc-conc-nova .btn{padding:6px 11px;font-size:12.5px}
@media(max-width:760px){
  .bc-conc-escolhas select{flex:1 1 100%}
}

/* ------------------------------- a tela do banco cabe na JANELA ---------
   Pedido dele em 05/09/2026, olhando a tela com o extrato de 94 linhas:
   "quero que o chat chegue até o final da página conforme a conversa fluir,
   e pare no final da página; e o extrato do lado também pare no final da
   página e tenha uma barra de rolagem".

   O que havia antes: a conversa com teto de 420px (uma caixa curta no meio
   de uma tela alta) e a lista das linhas SEM teto nenhum, empurrando a
   página inteira para baixo. Com 94 linhas, ler a conversa exigia subir a
   página, e conferir uma linha lá embaixo exigia descer: os dois lados da
   mesma decisão nunca estavam na tela ao mesmo tempo.

   Agora a seção inteira vale a altura da janela, e cada lado rola por
   dentro. A altura da barra de cima é MEDIDA pelo JS e escrita em
   --altura-do-topo: o valor de reserva existe para o dia em que essa medida
   falhar, e nesse dia a tela fica alguns pixels torta em vez de quebrar.

   SÓ VALE NO LAYOUT DE DUAS COLUNAS. Abaixo de 1080px as duas viram uma
   pilha, e prender uma pilha na altura da janela espremeria os dois cartões
   em faixas de nada. Lá embaixo a página volta a rolar, que é o certo. */
/* fora da media query, para o layout de uma coluna continuar como era */
#sc-banco > .grid{align-items:start}

@media(min-width:1081px){
  /* aqui as colunas ESTICAM: com "start" cada uma assume a altura do
     conteúdo, e a lista de 94 linhas transborda a seção inteira em vez de
     virar barra de rolagem. Foi o que aconteceu na primeira medição. */
  /* A ESQUERDA TEM A ALTURA DA CONVERSA; A DIREITA ESTICA.
     Com as duas esticando, o cartão da conversa ficava do tamanho da tela e
     o vazio aparecia DENTRO dele, entre a fala do Gimel e o "Solte o extrato
     aqui". Pedido dele: "a parte branca entre o chat e Solte o extrato aqui
     voltou; sobe o texto do chat e que ele desça conforme a conversa". */
  #sc-banco.on > .grid{align-items:start}
  #sc-banco.on > .grid > *{max-height:100%}
  #sc-banco.on > .grid > *:last-child{height:100%}
  #sc-banco.on{
    /* A SECAO DEIXA DE SER PRESA NA ALTURA DA JANELA (06/09/2026).

       Pedido dele: "quero q a lista baixe mais uma tela inteira... ficaria
       como se fosse duas telas ate o final... ai se a lista for maior q a
       segunda tela vc coloca a barra dentro; se nao for, vai ter so a
       barra lateral para baixar para proxima tela".

       Presa em 100vh, a faixa so podia crescer ate o que sobrava depois da
       conversa: no notebook dele sobravam 245 pixels, tres linhas. Solta,
       a pagina rola de proposito e a bancada e a SEGUNDA tela inteira.
       Quem tem teto agora e a LISTA, mais abaixo, e o teto e uma tela. */
    height:auto;
    padding-bottom:12px;
    display:flex;
    flex-direction:column;
  }
  #sc-banco.on > .grid{flex:1;min-height:0}
  /* min-height:0 em CADA nível: sem ele, um filho flex se recusa a
     encolher abaixo do próprio conteúdo, e o transbordo escapa da caixa
     em vez de virar barra de rolagem */
  #sc-banco.on > .grid > *{min-height:0}
  #sc-banco.on .card{max-height:100%}
  #bcConversa{max-height:none}
  #bcCxLinhas{display:flex;flex-direction:column;min-height:0}
  /* o resumo em faixa, para a altura sobrar para a lista */
  #bcCxNumeros.compacto{flex:0 0 auto}
  #bcCxNumeros.compacto #bcNumeros{display:grid;grid-template-columns:1fr 1fr;
    gap:2px 14px}
  #bcCxNumeros.compacto #bcNumeros .linha{padding:6px 0}
  #bcCxLinhas .tabela-rola{flex:1;min-height:0;overflow-y:auto}
}

/* ------------------------------- onde a linha arrastada vai cair --------
   Uma barra fina no lado em que ela entra. Sem esta marca, arrastar dentro
   do grupo e adivinhacao: a pessoa solta e descobre depois, e descobrir
   depois numa lista de trinta itens e refazer o arrasto ate acertar. */
.gv-linha.solta-antes{box-shadow:inset 0 3px 0 0 var(--tech)}
.gv-linha.solta-depois{box-shadow:inset 0 -3px 0 0 var(--tech)}
.gv-linha.arrastando{opacity:.45}

/* ==========================================================================
   =====  A BANCADA DE DECISAO  (06/09/2026)
   ==========================================================================

   POR QUE ELA NASCEU. Ele olhou as tres telas que decidem em lista (Migrar
   minha planilha, Extrato do banco e o roteiro do Gimel) e disse: "estes
   menus trazem decisoes que sao lista de um monte de linha... nao esta com
   uma experiencia boa... alguns botoes para decidir muito grande em lugares
   diferentes, uns no chat outros fora em cima na conversa".

   O que a medicao achou, e nao e opiniao:

     1. DUAS ROLAGENS, uma dentro da outra. A conversa com teto de 420px, e
        dentro dela a lista com teto de 340px sobre um conteudo de 1220px.
        Apareciam 3,5 linhas de 24.
     2. QUATRO ZONAS de decisao em quatro alturas da tela: o par por linha,
        o par do lote, o Enviar do texto livre e as acoes do fluxo.
     3. TRES TAMANHOS de botao na mesma familia: 22px por linha, 37px no
        lote, 48px no Enviar. O menor era o mais usado.
     4. TRES CONTROLES para um estado de duas pontas: a caixinha, o aceitar
        e o recusar faziam a mesma coisa, e "Marcar todas" fazia a quarta.
     5. O AGRUPAMENTO CONTAVA, MAS NAO DECIDIA. Os chips diziam
        "Habitacao 8" e mais nada; para mover o grupo era preciso abrir o
        seletor de uma linha e achar a lixeira la dentro.
     6. A COLUNA DA DIREITA NAO PARTICIPAVA: a amostra "do jeito que vao
        entrar" nao reagia a decisao nenhuma.

   As sete decisoes de desenho, aprovadas por ele em 06/09:

     A. A decisao SAI DA CONVERSA e vira uma bancada. A conversa explica a
        bancada, ela nao e a bancada: historico rola para longe, e bancada
        precisa ficar.
     B. UMA ROLAGEM SO.
     C. UMA BARRA DE ACAO SO, sempre no mesmo lugar, mudando de conteudo
        com a selecao.
     D. O CABECALHO DO GRUPO DECIDE: selecionar, mover e tirar o grupo
        inteiro ficam em cima do grupo, que e onde o olho ja esta.
     E. UM CONTROLE POR DECISAO: a caixinha seleciona, o seletor decide o
        grupo, e o X tira da lista. O par aceitar/recusar saiu, e isso e uma
        reversao consciente do pedido dele de 04/09, decidida por ele.
     F. O RECORTE VEM ANTES do "marcar todas": numa lista de quarenta,
        "so o que eu sugeri" leva direto ao que precisa de olho.
     G. A PROVA REAGE: a amostra muda quando um grupo muda, e a linha diz
        quanto aquela categoria pesa.
   ========================================================================== */

/* a casca: tres faixas, e o miolo e o unico que rola */
.bnc-casca{display:flex;flex-direction:column;min-height:0;flex:1}

/* ---------------------------------------------------- a regua das fases --
   Ela e a unica navegacao da tela e fica sempre visivel: quem esta no meio
   de uma lista de quarenta precisa saber que aquilo tem fim.

   O min-width:0 E A LINHA QUE IMPEDE A PAGINA DE ROLAR PARA O LADO
   (At. 53, medido em producao em 10/09/2026).

   Ela vive numa linha flex (.bnc-regua-cx) ao lado do rotulo do
   passo, que e nowrap e fica colado a direita. Com flex:none e o
   min-width:auto que todo item flex tem por padrao, a regua nunca
   encolhia: o overflow-x:auto aqui em cima nao servia para nada,
   porque a caixa era sempre do tamanho do conteudo. Quem sobrava
   era o rotulo, empurrado para FORA da tela.

   O estrago era muito maior do que 30 pixels de rotulo cortado:

     medido em 10/09/2026, Migrar minha planilha vazava 33px e
     Extrato do banco vazava 42px. Isso acende a barra de rolagem
     HORIZONTAL, que come 15px da altura da janela, e ai a pagina
     passa a rolar 15px na VERTICAL sem ter nada para mostrar. Ao
     rolar esses 15px a barra lateral sobe junto e o rodape dela
     descola, deixando uma faixa escura na tela.

   Era esse o defeito que ele viu, e nas duas telas em que ele mais
   estava: as duas do onboarding. Depois do conserto, medido nas
   mesmas telas: sobra horizontal 0, barra horizontal 0, rolagem
   fantasma 0.

   flex:0 1 auto e nao flex:1: ela pode encolher, e nao pode crescer
   para alem do conteudo. Encolhendo, o overflow-x:auto daqui volta
   a valer e a regua rola por dentro, que era o desenho desde o
   comeco. */
.bnc-regua{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;
           flex:0 1 auto;min-width:0;
           border-bottom:1px solid var(--line);margin:0 0 2px}
.bnc-regua::-webkit-scrollbar{display:none}
.bnc-fase{flex:none;display:flex;align-items:center;gap:8px;padding:9px 14px 11px;
          border-bottom:3px solid transparent;color:var(--muted);white-space:nowrap;
          font-size:12.5px;font-weight:600;background:none;border-radius:0}
.bnc-fase:hover{color:var(--text);background:var(--paper)}
.bnc-fase .n{width:20px;height:20px;border-radius:50%;flex:none;display:grid;
             place-items:center;font-size:11px;font-weight:700;
             background:var(--cinza-l);color:var(--muted)}
.bnc-fase.pronta .n{background:var(--teal-l);color:#146B4F}
.bnc-fase.on{color:var(--azul);border-bottom-color:var(--azul)}
.bnc-fase.on .n{background:var(--azul);color:#fff}

/* ------------------------------------------------------ a fala do Gimel --
   Uma linha. A conversa inteira abre em um clique, e fechada por padrao:
   foi isso que acabou com a rolagem dentro da rolagem. */
.bnc-gimel{flex:none;display:flex;align-items:flex-start;gap:11px;
           padding:11px 14px;background:var(--tech-l);border:1px solid #CFE3F7;
           border-radius:10px;margin-bottom:12px}
.bnc-gimel .fala{flex:1;min-width:0;font-size:13px;line-height:1.5;color:var(--azul)}
.bnc-gimel .bts{flex:none;display:flex;gap:6px}
.bnc-vermais{padding:5px 11px;border-radius:7px;font-size:12px;font-weight:600;
             color:#1B5E9E;border:1px solid #BBD8F4;background:var(--card)}
.bnc-vermais:hover{border-color:var(--tech)}

/* ------------------------------------------------------------ a bancada */
.bnc{display:flex;flex-direction:column;min-height:0;background:var(--card);
     border:1px solid var(--line);border-radius:12px;overflow:hidden;flex:1}
.bnc-filtros{flex:none;display:flex;align-items:center;gap:7px;padding:10px 13px;
             border-bottom:1px solid var(--line2);flex-wrap:wrap}
.bnc-busca{flex:1;min-width:140px;position:relative;display:flex}
.bnc-busca input{width:100%;border:1px solid var(--line);border-radius:8px;
                 padding:7px 11px;background:var(--paper)}
/* o X so nasce com texto no campo (08/09/2026), entao o espaco a direita so
   e reservado quando ele existe: campo sempre com a folga do botao pareceria
   um campo torto nas nove vezes em dez que ele esta vazio */
.bnc-busca.tem-texto input{padding-right:32px}
.bnc-x{position:absolute;right:4px;top:50%;transform:translateY(-50%);
       width:24px;height:24px;display:flex;align-items:center;
       justify-content:center;border:0;background:transparent;
       color:var(--muted);font-size:12px;line-height:1;border-radius:6px}
.bnc-x:hover{background:var(--line);color:var(--text)}
/* a caixa de criar categoria da acao em massa mora DENTRO da barra azul,
   entao ela quebra para a linha de baixo e escreve em branco */
.bc-massa-nova{flex-basis:100%;display:flex;gap:8px;align-items:center;
               flex-wrap:wrap;margin-top:2px}
.bc-massa-lado{color:#fff;font-size:12.5px;opacity:.92}
.bc-massa-nova input{flex:1;min-width:130px}
.bnc-busca input:focus{outline:0;border-color:var(--tech);background:#fff;
                       box-shadow:0 0 0 3px var(--tech-l)}
.bnc-rec{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;
         border:1px solid var(--line);border-radius:20px;font-size:12px;
         font-weight:600;color:var(--muted);background:var(--card)}
.bnc-rec:hover{border-color:var(--tech);color:#1B5E9E}
.bnc-rec.on{background:var(--azul);border-color:var(--azul);color:#fff}
.bnc-rec i{font-style:normal;font-weight:700;opacity:.75}
.bnc-rola{flex:1;min-height:0;overflow-y:auto}

/* -------------------------------------------------------------- o grupo --
   O CABECALHO DO GRUPO E ONDE A DECISAO EM MASSA MORA. */
.bnc-grupo{border-bottom:1px solid var(--line)}
.bnc-grupo:last-child{border-bottom:0}
.bnc-gcab{display:flex;align-items:center;gap:10px;padding:9px 13px;
          background:var(--paper);position:sticky;top:0;z-index:2;
          border-bottom:1px solid var(--line2)}
.bnc-gcab .seta{width:18px;flex:none;color:var(--muted);font-size:10px;
                background:none;padding:0}
.bnc-grupo.fechado .bnc-gcab .seta{transform:rotate(-90deg)}
.bnc-gcab .nome{font-size:12.5px;font-weight:700;letter-spacing:.2px;
                text-transform:uppercase;color:var(--azul)}
.bnc-gcab .quantos{font-size:11.5px;color:var(--muted);font-weight:500}
.bnc-gcab .soma{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--muted)}
.bnc-gacoes{display:flex;gap:5px;flex:none}
.bnc-ga{padding:5px 10px;border:1px solid var(--line);border-radius:7px;
        font-size:11.5px;font-weight:600;color:var(--muted);background:var(--card);
        white-space:nowrap}
.bnc-ga:hover{border-color:var(--tech);color:#1B5E9E;background:var(--tech-l)}
.bnc-ga.perigo:hover{border-color:var(--neg);color:var(--neg);background:var(--neg-l)}
.bnc-grupo.fechado .bnc-linhas{display:none}

/* -------------------------------------------------------------- a linha --
   UM CONTROLE POR DECISAO, e o estado se le pela FITA de cor antes de se
   ler pelo texto. */
.bnc-lin{display:grid;grid-template-columns:16px 22px minmax(0,1fr) 96px 190px 108px 40px;
         gap:11px;align-items:center;padding:9px 13px 9px 0;
         border-bottom:1px solid var(--line2);cursor:pointer}
.bnc-lin:last-child{border-bottom:0}
.bnc-lin:hover{background:var(--tech-l)}
.bnc-lin.sel{background:var(--tech-l)}
.bnc-lin.fora{background:var(--cinza-l)}
.bnc-lin.fora .bnc-nome b,.bnc-lin.fora .bnc-val{color:#9AA5B1;text-decoration:line-through}
.bnc-fita{width:4px;height:34px;border-radius:0 3px 3px 0;background:var(--teal)}
.bnc-lin.fora .bnc-fita{background:var(--line)}
.bnc-lin.falta .bnc-fita{background:var(--amb)}
.bnc-lin.falta{background:var(--amb-l)}
.bnc-lin input[type=checkbox]{width:16px;height:16px;accent-color:var(--tech);cursor:pointer}
.bnc-nome{min-width:0}
.bnc-nome b{display:block;font-size:13.5px;font-weight:600;overflow:hidden;
            text-overflow:ellipsis;white-space:nowrap}
.bnc-nome small{display:block;font-size:11px;color:var(--muted)}
.bnc-nome small.sug{color:#1B5E9E}
.bnc-val{font-size:13px;font-weight:600;text-align:right;
         font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.bnc-val.entra{color:#146B4F}
.bnc-val.sai{color:var(--neg)}

/* O PESO DA CATEGORIA, na coluna que antes era vao vazio. Ele decide o que
   vale conferir: errar o grupo de uma categoria com R$ 1.800 dentro custa,
   errar o de uma com R$ 12 nao. A regua e o MAIOR valor da lista, e nao a
   soma: com vinte e quatro itens a soma faz toda barra virar um traco. */
.bnc-peso{display:flex;flex-direction:column;gap:3px}
.bnc-peso i{display:block;height:5px;border-radius:3px;background:var(--line2);
            overflow:hidden}
.bnc-peso i b{display:block;height:100%;border-radius:3px;background:#A9CDF1}
.bnc-peso small{font-size:10.5px;color:#9AA5B1;letter-spacing:.2px}
.bnc-lin.fora .bnc-peso i b{background:var(--line)}

/* O seletor de grupo continua sendo um BOTAO e nao um <select>, porque a
   lixeira mora dentro dele desde 04/09. So o lugar dele na linha mudou.
   O grupo sugerido NAO fica azul no texto: o azul ja diz "eu sugeri" no
   texto pequeno embaixo do nome, e a mesma cor dizendo duas coisas na
   mesma linha faz as duas pararem de dizer alguma. A marca e a borda. */
.bnc-sel{position:relative;text-align:left;width:100%;padding:6px 24px 6px 10px;
         border:1px solid var(--line);border-radius:7px;background:var(--card);
         font-size:12.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;
         white-space:nowrap;color:var(--text)}
.bnc-sel::after{content:'\25BE';position:absolute;right:8px;top:50%;
                transform:translateY(-50%);color:var(--muted);font-size:10px}
.bnc-sel:hover,.bnc-sel.aberto{border-color:var(--tech);background:#fff}
.bnc-sel.sugerido{border-color:#BBD8F4;background:var(--tech-l)}
.bnc-sel.vazio{border-color:var(--amb);background:#fff}

/* o interruptor entra/nao entra: alvo de 40px, um so, sempre no mesmo lugar */
.bnc-chave{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;
           color:#9AA5B1;font-size:15px;justify-self:center;background:none}
.bnc-chave:hover{background:var(--card);color:var(--neg)}
.bnc-lin.fora .bnc-chave{color:#146B4F}
.bnc-lin.fora .bnc-chave:hover{background:var(--card);color:var(--teal)}

/* --------------------------------------------------- a barra de acao ----
   UMA BARRA SO. Ela troca de conteudo com a selecao, e nunca ha botao de
   decisao em duas alturas da tela ao mesmo tempo. */
.bnc-acao{flex:none;display:flex;align-items:center;gap:10px;padding:11px 14px;
          background:var(--card);border:1px solid var(--line);border-top:0;
          border-radius:0 0 12px 12px;margin-top:-1px}
.bnc-acao.selecionando{background:var(--azul);border-color:var(--azul)}
/* enquanto grava, a barra e so o progresso: sem botao para clicar de novo */
.bnc-acao.gravando{background:var(--azul);border-color:var(--azul)}
.bnc-acao.gravando .conta{color:#fff;font-weight:600}
.bc-prog{flex:1;min-width:120px;height:8px;border-radius:6px;
         background:rgba(255,255,255,.25);overflow:hidden}
.bc-dobra{color:var(--amb);font-weight:600}
/* o Editar do Extrato (14/09/2026). A linha marcada muda de fundo, e nao
   so ganha um visto: numa tabela de trinta linhas o visto sozinho se perde
   no meio dos outros trinta. */
.ex-sel > td{background:var(--tech-l)}
.ex-x{border:0;background:transparent;color:var(--muted);font-size:13px;
      line-height:1;padding:4px 6px;border-radius:6px}
.ex-x:hover{background:var(--neg);color:#fff}
.ex-cat{max-width:230px;font-size:12.5px;padding:4px 6px;
        border:1px solid var(--line);border-radius:7px;background:var(--paper)}
#exAcao{margin-top:10px;border-radius:12px}
#btEditarEx.on{background:var(--azul);border-color:var(--azul);color:#fff}
.bc-prog i{display:block;height:100%;background:var(--teal);
           border-radius:6px;transition:width .25s ease}
.bnc-acao .conta{font-size:12.5px;color:var(--muted);font-weight:500}
.bnc-acao.selecionando .conta{color:#fff;font-weight:600}
.bnc-acao .direita{margin-left:auto;display:flex;gap:9px;align-items:center;
                   flex-wrap:wrap;justify-content:flex-end}
/* com selecao a barra carrega as acoes de massa MAIS o botao de seguir, que
   nunca sai dali (07/09/2026). Em tela estreita elas quebram para a linha de
   baixo em vez de empurrar o botao de seguir para fora da vista. */
.bnc-acao{flex-wrap:wrap;row-gap:9px}
/* A BARRA GRUDA NO PE DA VISTA (At. 97, 14/09/2026).

   Medido na tela dele com 533 linhas: a lista rola POR DENTRO, entao o
   ponteiro fica em cima dela o tempo todo e a PAGINA nunca anda. A barra
   com o botao de lancar ficava abaixo da dobra o trabalho inteiro, e ele
   classificou as 533 sem nunca ver o botao. Palavras dele: "ele nao me deu
   um botao para lancar no final".

   Grudada, ela esta sempre na vista enquanto ele trabalha, e o botao deixa
   de ser uma coisa para procurar. */
.bnc-acao{position:sticky;bottom:0;z-index:6}
/* QUANDO NAO FALTA MAIS NADA, ela muda de cor: o fim do trabalho tem que
   ser visivel sem ler. */
.bnc-acao.pronto{background:var(--teal-l);border-color:var(--teal)}
.bnc-acao.pronto .conta{color:var(--teal)}
.bnc-bt{min-height:40px;padding:0 18px;border-radius:8px;font-size:13.5px;
        font-weight:600;display:inline-flex;align-items:center;gap:8px;
        border:1px solid transparent}
.bnc-bt-p{background:var(--azul);color:#fff}
.bnc-bt-p:hover{background:var(--azul-2)}
.bnc-bt-s{background:var(--card);color:var(--azul);border-color:var(--line)}
.bnc-bt-s:hover{border-color:var(--tech);background:var(--tech-l)}
.bnc-bt-t{background:var(--teal);color:#fff}
.bnc-bt-t:hover{background:#178A65}
.bnc-bt-claro{background:rgba(255,255,255,.14);color:#fff;
              border-color:rgba(255,255,255,.3)}
.bnc-bt-claro:hover{background:rgba(255,255,255,.24)}
.bnc-bt[disabled]{opacity:.45;cursor:default}
.bnc-nota{flex:none;font-size:11.5px;color:var(--muted);padding:8px 2px 0}

/* a legenda das cores, porque fita de cor sem legenda e um enigma */
.bnc-legenda{display:flex;gap:16px;flex-wrap:wrap;padding:9px 13px;
             border-top:1px solid var(--line2);font-size:11.5px;
             color:var(--muted);flex:none}
.bnc-legenda span{display:inline-flex;align-items:center;gap:6px}
.bnc-legenda i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ---------------------------------------------- a linha do banco -------
   Ela e mais alta que a da planilha de proposito: aqui a pessoa nao esta so
   escolhendo um grupo, ela esta decidindo o que a linha E, e a decisao vem
   com um motivo escrito embaixo. Motivo apertado do lado do valor ninguem
   le. */
.bnc-lin.banco{grid-template-columns:16px 22px minmax(0,1fr) 128px 40px;
               padding-bottom:0;align-items:start;padding-top:10px}
.bnc-lin.banco input[type=checkbox],.bnc-lin.banco .bnc-fita,
.bnc-lin.banco .bnc-chave{margin-top:2px}
.bnc-lin.banco .bnc-porque{grid-column:3/6;font-size:11.5px;color:var(--muted);
                           line-height:1.45;padding:0 0 7px}
.bnc-lin.banco .bnc-escolhas{grid-column:3/6;display:flex;gap:7px;flex-wrap:wrap;
                             padding:0 0 10px}
.bnc-lin.banco .bnc-escolhas .bnc-sel{width:auto;flex:1 1 180px;min-width:0}
.bnc-lin.banco .bnc-aviso{grid-column:3/6;font-size:11.5px;color:var(--amb);
                          font-weight:600;padding:0 0 10px}

@media (max-width:980px){
  .bnc-lin{grid-template-columns:16px 22px minmax(0,1fr) 40px;row-gap:6px}
  .bnc-lin .bnc-peso{display:none}
  .bnc-lin .bnc-sel{grid-column:3/5}
  .bnc-lin .bnc-val{grid-column:3/5;text-align:left}
  .bnc-gcab{flex-wrap:wrap}
  .bnc-gcab .soma{margin-left:0}
}

/* ==========================================================================
   A BANCADA COMO FAIXA, e nao como coluna (06/09/2026)

   Pedido dele olhando a tela do banco no notebook: "o que fazer concorre
   com o chat lado a lado na tela... no notebook e muito pequeno e fica
   muito ruim para mexer... acho q pode ser melhor ele vir abaixo do chat,
   trazendo a tela toda, e com uma visao de lista ate o final".

   O erro era meu: tirar a decisao de dentro da conversa nao adianta se a
   casa nova tem metade da largura. Numa coluna de meia tela a lista de
   conciliacao mostrava UMA linha por vez.

   Em cima ficam a conversa e o resumo, com a altura que eles tem. Embaixo,
   a bancada com a largura inteira e toda a altura que sobra.
   ========================================================================== */

/* AS TRES BANCADAS NASCEM COM A LARGURA TODA (06/09/2026).

   Palavra dele depois de ver a tela do banco consertada: "vc aplicou isto
   em todas as listas que aparecem durante o onboarding... esta regra deve
   ser para todas". Entao e uma regra so, escrita uma vez, para as tres.

   #sc-ia NAO EXISTE: a secao do Gimel se chama #sc-assistente. A regra
   antiga apontava para um id que nunca esteve no HTML, e por isso a
   bancada do Gimel nunca recebeu a largura que a regra prometia. */
#bcCxLinhas,#cvBancada,#iaBancada{grid-column:1 / -1;width:100%}

@media(min-width:1081px){
  /* o grid de cima para de esticar: ele vale o que o conteudo dele vale, e
     o que sobra e da bancada. Sem isto o grid come a tela inteira e a
     bancada nasce com 40px de altura. */
  #sc-banco.on > .grid{flex:0 0 auto}
  #sc-banco.on > .grid > *:last-child{height:auto}

  /* A FAIXA VALE O QUE AS LINHAS VALEM, ate o teto de uma tela.

     Ela nao estica mais (flex:0 0 auto): esticar so fazia sentido quando a
     secao era presa na janela e havia "o que sobrou" para dividir. Agora
     ela cresce com a lista e para no teto da lista, logo abaixo. Lista
     curta termina onde as linhas terminam, sem barra dentro e sem vao
     branco; lista longa enche a tela e a barra nasce dentro dela. */
  #sc-banco.on > #bcCxLinhas{
    flex:0 0 auto;min-height:0;display:flex;flex-direction:column;
    margin-top:16px;
  }
  #sc-banco.on > #bcCxLinhas > .bnc{flex:0 1 auto;min-height:0}

  /* O TETO DA LISTA E UMA TELA, e os 310 pixels sao o resto da faixa que
     precisa caber na MESMA tela: o titulo, a dica, o filtro, a legenda e a
     barra de confirmar. Sem descontar isso, a faixa fica mais alta que a
     janela e o topo dela nasce escondido atras do cabecalho fixo. */
  #sc-banco.on #bcCxLinhas .bnc-rola{max-height:calc(100vh - 310px)}

  /* a conversa do banco para de esticar junto: ela e curta, e esticada
     deixava o vazio branco entre a fala e o rodape, que ele ja reclamou
     em 05/09 */
  /* O teto da conversa cai de 38vh para 22vh: com 38vh uma conversa de seis
     falas empurrava a faixa para baixo e a pagina voltava a rolar. Encolher
     o GRID inteiro nao serve, ja medi: espremia a conversa para 14 pixels.
     O teto tem que ser da conversa, que rola por dentro. */
  #sc-banco.on #bcConversa{max-height:22vh}
}

/* Abaixo de 1081px tudo vira pilha e a pagina rola, que e o certo: prender
   uma pilha na altura da janela espremeria os dois cartoes em faixas de
   nada. Mas a LISTA continua com teto proprio, senao ela empurra a pagina
   para baixo e a barra de acao some do alcance. */
@media(max-width:1080px){
  #bcCxLinhas .bnc-rola,#cvBancada .bnc-rola,#iaBancada .bnc-rola{
    max-height:60vh
  }
}

/* A BANCADA DA PLANILHA E DO GIMEL SEGUE A MESMA REGRA DA DO BANCO.

   Elas moravam DENTRO do cartao da conversa, em largura de meia tela, com
   teto em vh. Medido no notebook dele: 445 pixels de lista em meia tela,
   com cabecalho de grupo, davam duas linhas por vez. Agora elas sao irmas
   da conversa na secao, com a largura toda, e valem uma tela.

   Um numero so aqui, e nao dois como no banco: o cartao delas gasta 215
   pixels com cabecalho, filtro, legenda e barra de acao em qualquer altura
   de tela, e nada some quando a tela e baixa. */
@media(min-width:1081px){
  /* o padding de 70px do rodape da tela vira 12: com 70 a bancada termina
     70 pixels acima do fim da pagina, e o topo dela nasce escondido atras
     do cabecalho fixo quando a pessoa rola ate o fim */
  #sc-migrar.on,#sc-assistente.on{padding-bottom:12px}
  #cvBancada .bnc-rola,#iaBancada .bnc-rola{max-height:calc(100vh - 305px)}
}

/* ==========================================================================
   A FAIXA PRECISA MOSTRAR LINHA, E NAO SO EXISTIR (06/09/2026)

   Medido no notebook dele (1366x768) com a faixa ja no ar: a faixa ganhou a
   largura toda (1078px) e 347px de altura, mas a LISTA ficou com 118px e a
   linha do banco tem 136px. Zero linha inteira na tela. A faixa estava
   certa; o gasto de altura estava errado. Quem comia a altura era o proprio
   cabecalho da faixa, a legenda e a linha, nao a lista.

   Tres cortes, todos so na faixa e so na tela larga:
   1. a linha do banco para de empilhar as escolhas embaixo do nome e as poe
      na coluna da direita, que so existe porque agora a faixa e larga
   2. o titulo da faixa vira uma linha so
   3. a legenda sai quando a tela e baixa: a cor da fita ja esta no filtro

   Medido depois, mesma tela de 1366x768: lista de 118 para 245 pixels,
   linha de 136 para 75, de ZERO para tres linhas inteiras. Em 1920x1080 sao
   seis. Em nenhum tamanho a pagina voltou a rolar e a barra de confirmar
   nunca saiu da tela.
   ========================================================================== */
@media(min-width:1081px){
  /* 1. AS ESCOLHAS SOBEM PARA A DIREITA.
     Empilhar embaixo do nome fazia sentido na coluna de meia tela, onde nao
     cabia nada ao lado. Na faixa inteira sobra largura, e cada escolha
     empilhada custava 46 pixels em TODA linha. */
  #bcCxLinhas .bnc-lin.banco{
    grid-template-columns:16px 22px minmax(0,1fr) 120px minmax(280px,360px) 40px;
    padding-top:8px;padding-bottom:8px;align-items:center;row-gap:2px
  }
  #bcCxLinhas .bnc-lin.banco .bnc-porque{grid-column:3/5;grid-row:2;padding:0}
  #bcCxLinhas .bnc-lin.banco .bnc-escolhas{
    grid-column:5;grid-row:1/3;padding:0;flex-wrap:nowrap;align-self:center
  }
  /* PISO DE LARGURA NOS DOIS SELETORES. Medido na tela real: com
     min-width:0 o primeiro seletor encolhia para 35 pixels e ficava
     VAZIO, porque o segundo tem texto mais longo e comia a linha. Um
     seletor sem texto e um controle que a pessoa nao sabe que existe. */
  #bcCxLinhas .bnc-lin.banco .bnc-escolhas .bnc-sel{flex:1 1 0;min-width:150px}
  #bcCxLinhas .bnc-lin.banco .bnc-aviso{grid-column:3/7;grid-row:3;padding:2px 0 0}
  #bcCxLinhas .bnc-lin.banco input[type=checkbox],
  #bcCxLinhas .bnc-lin.banco .bnc-fita,
  #bcCxLinhas .bnc-lin.banco .bnc-chave{margin-top:0}

/* A LISTA DO QUE JA FOI DECIDIDO (18/09/2026).

   Mesma linha da bancada, e SEM a caixinha de selecao: desfazer e uma
   decisao por vez, e nao existe desfazer em massa. Sem esta grade propria a
   linha caia na da bancada, que reserva a primeira coluna para a caixinha,
   e o nome nascia espremido em 22 pixels. Achado no Chrome, e so no
   Chrome. */
#bcCxDecididas .bnc-lin.banco{
    grid-template-columns:16px minmax(0,1fr) 128px 40px;
    padding-top:8px;padding-bottom:8px;align-items:center;row-gap:2px;
    cursor:default
  }
#bcCxDecididas .bnc-lin.banco:hover{background:transparent}
#bcCxDecididas .bnc-lin.banco .bnc-porque{grid-column:2/5;grid-row:2;padding:0}
#bcCxDecididas .bnc-lin.banco .bnc-chave{margin-top:0}

  /* 2. O TITULO DA FAIXA EM UMA LINHA */
  #sc-banco.on > #bcCxLinhas > h2{font-size:15px;margin:0 0 1px}
  #sc-banco.on > #bcCxLinhas > .dica{margin:0 0 9px}
  #sc-banco.on > #bcCxLinhas{padding-top:12px;padding-bottom:12px}
}

/* 3. TELA BAIXA: a legenda sai e o cabecalho encolhe mais. A cor da fita ja
   esta escrita no filtro logo acima ("faltam decidir", "fora"), entao a
   legenda repete o que a pessoa acabou de ler, e repetir custa 24 pixels
   que valem um terco de linha no notebook. */
@media(min-width:1081px) and (max-height:860px){
  #bcCxLinhas .bnc-legenda{display:none}
  #sc-banco.on > #bcCxLinhas > .dica{display:none}
  #sc-banco.on > #bcCxLinhas{margin-top:10px}
  /* em tela baixa a faixa gasta menos com cabecalho e legenda, entao sobra
     mais tela para a lista dentro do mesmo teto de uma tela */
  #sc-banco.on #bcCxLinhas .bnc-rola{max-height:calc(100vh - 245px)}
}

/* ==========================================================================
   A FAIXA DO GIMEL E A REGUA, o que faltava do prototipo (06/09/2026)

   Palavra dele: "parece q vc nao aplicou o prototipo... o sistema nao esta
   assim, com estas cores e desta forma".

   Ele estava certo, e o diagnostico e feio: eu escrevi a folha inteira do
   prototipo e liguei so parte dela no JavaScript. .bnc-regua, .bnc-fase e
   .bnc-gimel estavam AQUI desde 05/09 e nenhuma linha de codigo as emitia.
   CSS morto passa em toda guarda que le a folha, e passou nas 44 que eu
   tinha escrito. As guardas novas cobram o JS emitindo, e nao a folha.

   As cores nao mudaram: os vinte tokens do prototipo sao identicos aos
   daqui, conferidos um a um. O que mudava a cara da tela era a AUSENCIA
   desta faixa azul e desta regua.
   ========================================================================== */
:root{--apagado:#9AA5B1;--tech-t:#1B5E9E;--teal-t:#146B4F;--amb-b:#F0DFBB}

/* o avatar do Gimel na faixa e menor que o do cabecalho: aqui ele e uma
   marca de quem esta falando, e nao o retrato do interlocutor */
.bnc-gimel .av{width:32px;height:32px;flex:none;border-radius:50%;
               background:var(--azul);color:#fff;display:grid;place-items:center;
               font-size:15px;font-weight:700}
.bnc-gimel .fala b{font-weight:700}

/* O HISTORICO E DOBRAVEL, e nasce fechado: a conversa explicou e a decisao
   permanece. Quem precisa reler abre; quem nao precisa ganha a tela. */
.bnc-hist{display:none;padding:0 14px 12px;background:var(--tech-l);
          border:1px solid #CFE3F7;border-top:0;border-radius:0 0 10px 10px;
          margin:-13px 0 12px;max-height:240px;overflow-y:auto}
.bnc-hist.aberto{display:block}
.bnc-hf{margin:8px 0;display:flex}
.bnc-hf .b{max-width:74%;padding:9px 12px;border-radius:12px;font-size:12.5px;
           background:var(--card);border:1px solid #D8E7F7}
.bnc-hf.eu{justify-content:flex-end}
.bnc-hf.eu .b{background:var(--azul);color:#fff;border-color:var(--azul)}

/* A REGUA E A UNICA NAVEGACAO DO ROTEIRO e fica sempre visivel: quem esta
   no meio de uma lista de seiscentas precisa saber que aquilo tem fim. */
.bnc-regua-cx{display:flex;align-items:baseline;gap:14px;margin:0 0 2px}

/* A LINHA DE FALA DO EXTRATO (14/09/2026). Ela e discreta de
   proposito: quem quiser so soltar o arquivo nao pode sentir que
   passou por cima de um passo. */
.bc-fala{display:flex;align-items:center;gap:8px}
.bc-fala input{flex:1 1 auto;min-width:0;min-height:38px;border:1px solid var(--line);border-radius:19px;
                background:var(--paper);padding:0 14px;font-size:13px;color:var(--text)}
.bc-fala input:focus{outline:0;border-color:var(--tech)}
.bc-fala .btn{flex:none;min-height:38px;padding:0 16px;font-size:13px}
.bnc-regua-cx .passo{margin-left:auto;font-size:11px;color:var(--apagado);
                     white-space:nowrap}
.bnc-fase .n{font-size:11px}

/* A CASCA DA BANCADA FORA DO CARTAO DA CONVERSA (06/09/2026).
   Enquanto ela morava dentro do cartao, o branco vinha do cartao. Fora
   dele, o titulo e a dica ficavam soltos no cinza da pagina e a caixa
   branca so comecava no filtro: metade do cartao sem cartao. */
#cvBancada .bnc-casca,#iaBancada .bnc-casca{
  background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:14px 16px;margin-top:0;box-shadow:var(--sh)
}

/* O TITULO DO MENU DE GRUPOS (06/09/2026). Ele existe para o menu dizer o
   que o proximo clique faz. Sem ele, uma lista de nomes com barra de
   rolagem parece um lugar onde se escolhe e depois se confirma, e a pessoa
   procura um botao de aplicar que nao existe (e nao deve existir: seria o
   segundo controle para a mesma decisao). */
.cat-menu-tit{position:sticky;top:0;z-index:2;background:var(--card);
  padding:10px 12px 8px;font-size:12px;font-weight:700;color:var(--azul);
  border-bottom:1px solid var(--line2);letter-spacing:-.1px}

/* ---- O RECORTE POR CATEGORIA E A ORDEM DAS COLUNAS (At. 141 e 142) ---- */
.ex-fcat { display: inline-flex; gap: 6px; align-items: center; }
.ex-fcat-sel {
  font: inherit; font-size: 12px; padding: 5px 8px; max-width: 200px;
  border: 1px solid #E2E5E9; border-radius: 999px; background: #fff;
  color: inherit; cursor: pointer;
}
.ex-fcat-sel:focus { outline: 2px solid var(--azul); outline-offset: 1px; }
/* O titulo da coluna E um botao, e precisa deixar de parecer um: ele herda a
   letra do <th> e nao ganha moldura nenhuma. */
button.ex-ord {
  font: inherit; color: inherit; background: none; border: 0; padding: 0;
  margin: 0; cursor: pointer; display: inline-flex; align-items: center;
  gap: 4px;
}
button.ex-ord .ex-seta { font-size: 9px; line-height: 1; opacity: .3; }
button.ex-ord.on { color: var(--azul); }
button.ex-ord.on .ex-seta { opacity: 1; }

/* ---- O SALDO INICIAL AO LADO DO ATUAL, E A TRANSFERENCIA (At. 120 e 143) ---- */
.linha .val.ct-saldos {
  display: flex; flex-direction: column; align-items: flex-end;
  margin-right: 12px; line-height: 1.25;
}
.ct-saldos .ct-agora { font-size: 13.5px; }
.ct-saldos .ct-inicial {
  font-size: 11px; font-weight: 400; color: var(--muted); white-space: nowrap;
}
#btTransferir.on { border-color: var(--tech); background: var(--tech-l); color: #1B5E9E; }
#ctTransf {
  margin-top: 12px; padding: 14px; border: 1px solid #BFDCF7;
  background: var(--tech-l); border-radius: var(--r);
}
#ctTransf .campo { margin-bottom: 10px; }
#ctTransf .tr-seta {
  text-align: center; color: var(--tech); font-size: 15px; margin: -6px 0 4px;
}
.tr-aporte {
  display: flex; gap: 8px; align-items: flex-start; font-size: 12px;
  line-height: 1.45; margin: 0 0 12px; padding: 9px 11px; cursor: pointer;
  background: #fff; border: 1px solid #CFE3F7; border-radius: 8px;
}
.tr-aporte input[type=checkbox] {
  width: 16px; height: 16px; flex: none; margin-top: 1px;
  accent-color: var(--tech); cursor: pointer;
}
.tr-previa {
  font-size: 12px; line-height: 1.5; margin: 2px 0 12px;
  padding: 9px 11px; background: #fff; border: 1px solid #CFE3F7;
  border-radius: 8px;
}
.tr-previa .tr-calmo { color: var(--muted); }
.tr-hist { margin-top: 14px; border-top: 1px solid #CFE3F7; padding-top: 10px; }
.tr-hist .tr-linha {
  display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 5px 0;
}
.tr-hist .tr-linha .tr-txt { flex: 1; min-width: 0; color: var(--muted); }
.tr-hist .tr-linha b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.tr-hist .tr-linha button { flex: none; font-size: 11px; padding: 3px 9px; }

/* ---- OS ITENS DE CADA GRUPO NO CADASTROS (At. 144) ---- */
.cad-grupo .cad-seta {
  border: 0; background: transparent; cursor: pointer; font-size: 12px;
  color: var(--muted); padding: 3px 7px; flex: none; line-height: 1;
}
.cad-grupo .cad-seta:hover { color: var(--tech); }
.cad-grupo.aberto { border-bottom: 0; }
.cad-grupo.aberto .cad-seta { color: var(--azul); }
/* O filete a esquerda diz de quem sao estes itens sem precisar repetir o
   nome do grupo em cada linha. */
.cad-itens {
  margin: 0 0 8px 28px; padding-left: 12px;
  border-left: 2px solid var(--tech-l);
}
.cad-itens .linha.cad-item { padding: 7px 0; border-bottom: 0; }
.cad-itens .linha.cad-item .txt b { font-weight: 500; }
.cad-itens .gv-confirma { margin-left: 0; }


/* AS DUAS SAIDAS DA CONTA COM LANCAMENTO DENTRO (At. 146). Cada saida num
   cartao branco, porque elas moram dentro da caixa vermelha do excluir e
   sem o cartao viram um paragrafo comprido de texto em fundo de alerta. */
#ctExcluirSaidas { display: grid; gap: 10px; margin: 0 0 10px; }
.ct-saida {
  padding: 10px 12px; background: #fff;
  border: 1px solid #E8E8E8; border-radius: var(--r);
}
.ct-saida b { font-size: 13px; }
.ct-saida .dica { margin: 4px 0 8px; }
.ct-saida select { width: 100%; }
/* A palavra "arquivada" na linha da lista, na cor do que esta desligado. */
.ct-arq { color: var(--cinza); font-weight: 600; }


/* O MENU LATERAL RECOLHE NO TELEFONE (ME52, 17/09/2026).

   Medida do QA: com 375px de largura util e a media query de celular JA
   ATIVA, o menu continuava com 236px e sobravam 139px para o sistema
   inteiro. 156 elementos passavam da borda direita e a pagina rolava 228px
   para o lado.

   A causa estava numa linha: o `grid-template-columns: 236px 1fr` do `.app`
   nao muda com a largura da tela. O produto tinha 51 regras de celular e
   nenhuma delas tocava no menu.

   AS REGRAS BASE VEM PRIMEIRO, e isso nao e arrumacao: a media query e o
   bloco base tem a mesma especificidade, entao quem vier depois vence. Base
   escrita depois da media query esconderia a gaveta no telefone tambem. */
.bt-menu {
  display: none; width: 36px; height: 36px; flex: 0 0 auto;
  border: 1px solid var(--line); border-radius: 8px;
  place-items: center; font-size: 17px; color: var(--text); background: #fff;
}
.bt-menu:hover { border-color: var(--tech); color: var(--tech); }
/* O papel da conta na linha da lista (17/09/2026). Cor de informacao,
   e nao de alerta: papel nao e problema. */
.ct-papel { color: var(--tech); font-weight: 600; }

.menu-sombra { display: none; }

@media (max-width: 760px) {
  .app { grid-template-columns: 1fr; }
  /* A gaveta sai do fluxo: e por isso que os 236px voltam para o conteudo.
     O 100dvh depois do 100vh e para o navegador de celular que esconde a
     barra de endereco: com 100vh o rodape do menu fica atras dela. */
  .side {
    position: fixed; left: 0; top: 0; z-index: 60;
    width: min(84vw, 286px); height: 100vh; height: 100dvh;
    transform: translateX(-100%); transition: transform .22s ease;
    box-shadow: 2px 0 18px rgba(15, 32, 51, .28);
  }
  .app.menu-aberto .side { transform: none; }
  .menu-sombra {
    display: block; position: fixed; inset: 0; z-index: 55;
    background: rgba(15, 32, 51, .45);
    opacity: 0; pointer-events: none; transition: opacity .22s ease;
  }
  .app.menu-aberto .menu-sombra { opacity: 1; pointer-events: auto; }
  .bt-menu { display: grid; }
  /* A BARRA DE CIMA QUEBRA EM DUAS LINHAS, e sem isso ela continua
     empurrando a regua de meses e os botoes para fora da tela: foi ela, a
     .top-dir, o primeiro elemento a estourar na medida do QA. */
  .top { padding: 10px 14px; gap: 10px; flex-wrap: wrap; }
  .top-dir { gap: 6px; flex-wrap: wrap; }
  .top h1 { font-size: 16px; }
  .top .sub { font-size: 11.5px; }
}


/* O RELATORIO DESENHADO NA TELA (ME45, 17/09/2026). A tabela rola dentro da
   propria caixa, e nao a pagina: o Extrato do periodo tem oito colunas. */
.rel-topo {
  display: flex; justify-content: space-between;
  align-items: flex-start; gap: 12px; margin-bottom: 10px;
}
.rel-acoes { display: flex; gap: 8px; flex: none; }
.rel-tab th, .rel-tab td {
  padding: 7px 10px; border-bottom: 1px solid #EFEFEF; text-align: left;
  white-space: nowrap;
}
.rel-tab th { font-size: 12px; color: var(--cinza); font-weight: 600; }
.rel-tab .num { text-align: right; font-variant-numeric: tabular-nums; }
.rel-tab tfoot td { border-top: 2px solid var(--azul); border-bottom: 0; }


/* O CAMPO QUE RECUSOU (ME4). A marca fica ate a pessoa digitar, ao
   contrario do aviso do alto, que some em quatro segundos. */
.cx-ruim, input.cx-ruim, select.cx-ruim {
  border-color: var(--neg) !important;
  box-shadow: 0 0 0 3px rgba(193, 63, 63, .12);
}
/* O que e obrigatorio diz que e, antes de o servidor recusar (ME6). */
.obrig {
  font-size: 10.5px; font-weight: 700; color: var(--neg);
  text-transform: uppercase; letter-spacing: .3px; margin-left: 6px;
}
.rot-min {
  display: block; font-size: 11.5px; color: var(--cinza); font-weight: 500;
}
.rot-min input { margin-top: 3px; }
/* A volta do filtro de Meus Gastos (ME38). */
.gs-volta {
  font-size: 11.5px; font-weight: 600; color: var(--azul);
  border: 1px solid var(--azul); border-radius: 999px;
  padding: 2px 10px; margin-left: 8px; background: #fff;
}
.gs-volta:hover { background: var(--azul); color: #fff; }
[data-cat].gs-aberta { outline: 2px solid var(--azul); outline-offset: 4px; }


/* O estabelecimento que ainda nao tem cadastro (ME48). Mesma linha, sem os
   icones de acao, porque nao existe registro para renomear nem apagar. */
.linha.est-solto .txt b { font-weight: 500; }
.linha.est-solto { opacity: .92; }


/* A caixa de aceite do cadastro (ME23). */
.lg-aceite {
  display: flex; gap: 9px; align-items: flex-start;
  font-size: 12.5px; line-height: 1.45; margin: 2px 0 14px;
  color: var(--ds-muted, #55607a); cursor: pointer;
}
.lg-aceite input { width: 16px; height: 16px; margin: 2px 0 0; flex: none; }
.lg-aceite a { font-weight: 600; }


/* O link de pular a navegacao (ME25). Fica fora da tela ate receber o
   foco pelo teclado, que e exatamente quando ele serve. */
.pular {
  position: fixed; left: 8px; top: -60px; z-index: 90;
  background: var(--azul); color: #fff; padding: 9px 14px;
  border-radius: 8px; font-size: 13px; font-weight: 600;
  transition: top .15s ease;
}
.pular:focus { top: 8px; }
/* A regra da senha, visivel antes do erro (ME22). */
.lg-regra {
  font-size: 11.5px; color: var(--ds-muted, #6a7383);
  margin: -6px 0 12px; line-height: 1.4;
}
/* Titulo e explicacao das telas de senha (ME24). */
.lg-tit { font-size: 16px; margin: 0 0 4px; }
.lg-sub { font-size: 12.5px; line-height: 1.5; margin: 0 0 16px;
          color: var(--ds-muted, #6a7383); }

/* ---- A TELA DE IMPLANTACAO, dentro da conversa (At. 165 e 166) ---- */
.imp { margin-top: 10px; }
.imp-linha-datas {
  display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
  margin-bottom: 10px;
}
.imp-linha-datas .imp-atalho { font-size: 11px; padding: 5px 9px; }
.imp-linha-datas .imp-atalho.on {
  border-color: var(--tech); background: var(--tech-l); color: #1B5E9E;
  font-weight: 600;
}
.imp-linha-datas input[type=date] {
  font-size: 12px; padding: 5px 8px; border: 1px solid var(--linha);
  border-radius: 8px; background: #fff;
}
.imp-cartoes { display: flex; flex-wrap: wrap; gap: 8px; }
.imp-cartao {
  flex: 1 1 180px; min-width: 0; padding: 10px 12px; border-radius: 10px;
  border: 1px solid #CFE3F7; background: #fff; display: flex;
  flex-direction: column; gap: 2px;
}
.imp-cartao b { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.imp-cartao .imp-n { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.imp-cartao .imp-v { font-size: 11px; color: var(--muted); font-variant-numeric: tabular-nums; }
.imp-cartao small { font-size: 11px; color: var(--muted); line-height: 1.4; }
.imp-cartao.hist { border-color: #D9D2C4; background: #FBF9F4; }
.imp-cartao.hist b { color: #8A7A55; }
.imp-cartao.oper b { color: var(--tech); }
.imp-dica { font-size: 11.5px; line-height: 1.5; margin: 10px 0 0; }
.imp-dica.calmo { color: var(--muted); }
.imp-bloco {
  margin-top: 12px; padding-top: 10px; border-top: 1px solid #CFE3F7;
  font-size: 12.5px;
}
.imp-bloco .btn { margin-top: 8px; font-size: 11px; padding: 5px 10px; }
.imp-lista {
  margin-top: 8px; max-height: 260px; overflow: auto; border: 1px solid #CFE3F7;
  border-radius: 8px; background: #fff;
}
.imp-item {
  display: flex; align-items: center; gap: 8px; padding: 6px 9px;
  font-size: 12px; border-bottom: 1px solid var(--linha); cursor: pointer;
}
.imp-item:last-child { border-bottom: 0; }
.imp-item input[type=checkbox] {
  width: 15px; height: 15px; flex: none; accent-color: var(--tech);
  cursor: pointer;
}
.imp-item .imp-dia { color: var(--muted); flex: none; font-variant-numeric: tabular-nums; }
.imp-item .imp-txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imp-item .imp-val { flex: none; font-variant-numeric: tabular-nums; }
.imp-item .imp-faltam { flex: none; color: var(--tech); font-size: 10.5px; }

/* o selo do lancamento anterior a data de corte (At. 165) */
.tag.hist { background: #F3EEE2; color: #8A7A55; border: 1px solid #E3D9C4; }
.ex-banco { color: var(--muted); font-size: 11px; }

/* A LEGENDA DO INDICADOR QUE ABRE (18/09/2026).
   Linha que responde ao clique e nao parece clicavel nao e descoberta: a
   pessoa le o numero e vai embora. O cursor e a seta dizem que ha mais. */
.rosca-abre{cursor:pointer;border-radius:8px;margin:0 -6px;padding-left:6px;
     padding-right:6px}
.rosca-abre:hover{background:var(--cinza-l,#F4F6F8)}
.rosca-abre:focus-visible{outline:2px solid var(--tech,#378ADD);outline-offset:2px}
.rosca-seta{color:#8A94A0;font-size:10px;margin:0 6px;flex:none}
.rosca-item{border:0}
.rosca-item small{color:#5F6B78}
